mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-01-30 04:22:03 +00:00
Compare commits
14 Commits
noahz/adds
...
noahz/prev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf314c23ba | ||
|
|
9215e68d2a | ||
|
|
fd311cd8ba | ||
|
|
d847dfead5 | ||
|
|
bf48ae6c75 | ||
|
|
883f2ba69e | ||
|
|
dbc4a7733c | ||
|
|
15b07b46da | ||
|
|
6d3752c000 | ||
|
|
5f2db35c65 | ||
|
|
4bab8d0f50 | ||
|
|
1d99e18048 | ||
|
|
be56d7114b | ||
|
|
68a5c3685f |
@@ -7,6 +7,227 @@
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "typescript-lsp",
|
||||
"description": "TypeScript/JavaScript language server for enhanced code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/typescript-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"typescript": {
|
||||
"command": "typescript-language-server",
|
||||
"args": ["--stdio"],
|
||||
"extensionToLanguage": {
|
||||
".ts": "typescript",
|
||||
".tsx": "typescriptreact",
|
||||
".js": "javascript",
|
||||
".jsx": "javascriptreact",
|
||||
".mts": "typescript",
|
||||
".cts": "typescript",
|
||||
".mjs": "javascript",
|
||||
".cjs": "javascript"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pyright-lsp",
|
||||
"description": "Python language server (Pyright) for type checking and code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/pyright-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"pyright": {
|
||||
"command": "pyright-langserver",
|
||||
"args": ["--stdio"],
|
||||
"extensionToLanguage": {
|
||||
".py": "python",
|
||||
".pyi": "python"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gopls-lsp",
|
||||
"description": "Go language server for code intelligence and refactoring",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/gopls-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"gopls": {
|
||||
"command": "gopls",
|
||||
"extensionToLanguage": {
|
||||
".go": "go"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "rust-analyzer-lsp",
|
||||
"description": "Rust language server for code intelligence and analysis",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/rust-analyzer-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"rust-analyzer": {
|
||||
"command": "rust-analyzer",
|
||||
"extensionToLanguage": {
|
||||
".rs": "rust"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "clangd-lsp",
|
||||
"description": "C/C++ language server (clangd) for code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/clangd-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"clangd": {
|
||||
"command": "clangd",
|
||||
"args": ["--background-index"],
|
||||
"extensionToLanguage": {
|
||||
".c": "c",
|
||||
".h": "c",
|
||||
".cpp": "cpp",
|
||||
".cc": "cpp",
|
||||
".cxx": "cpp",
|
||||
".hpp": "cpp",
|
||||
".hxx": "cpp",
|
||||
".C": "cpp",
|
||||
".H": "cpp"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "php-lsp",
|
||||
"description": "PHP language server (Intelephense) for code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/php-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"intelephense": {
|
||||
"command": "intelephense",
|
||||
"args": ["--stdio"],
|
||||
"extensionToLanguage": {
|
||||
".php": "php"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "swift-lsp",
|
||||
"description": "Swift language server (SourceKit-LSP) for code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/swift-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"sourcekit-lsp": {
|
||||
"command": "sourcekit-lsp",
|
||||
"extensionToLanguage": {
|
||||
".swift": "swift"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "csharp-lsp",
|
||||
"description": "C# language server for code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/csharp-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"csharp-ls": {
|
||||
"command": "csharp-ls",
|
||||
"extensionToLanguage": {
|
||||
".cs": "csharp"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "jdtls-lsp",
|
||||
"description": "Java language server (Eclipse JDT.LS) for code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/jdtls-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"jdtls": {
|
||||
"command": "jdtls",
|
||||
"extensionToLanguage": {
|
||||
".java": "java"
|
||||
},
|
||||
"startupTimeout": 120000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "lua-lsp",
|
||||
"description": "Lua language server for code intelligence",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
},
|
||||
"source": "./plugins/lua-lsp",
|
||||
"category": "development",
|
||||
"strict": false,
|
||||
"lspServers": {
|
||||
"lua": {
|
||||
"command": "lua-language-server",
|
||||
"extensionToLanguage": {
|
||||
".lua": "lua"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "agent-sdk-dev",
|
||||
"description": "Development kit for working with the Claude Agent SDK",
|
||||
@@ -281,6 +502,16 @@
|
||||
"source": "./external_plugins/context7",
|
||||
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/context7",
|
||||
"tags": ["community-managed"]
|
||||
},
|
||||
{
|
||||
"name": "pinecone",
|
||||
"description": "Pinecone vector database integration. Streamline your Pinecone development with powerful tools for managing vector indexes, querying data, and rapid prototyping. Use slash commands like /quickstart to generate AGENTS.md files and initialize Python projects and /query to quickly explore indexes. Access the Pinecone MCP server for creating, describing, upserting and querying indexes with Claude. Perfect for developers building semantic search, RAG applications, recommendation systems, and other vector-based applications with Pinecone.",
|
||||
"category": "database",
|
||||
"source": {
|
||||
"source": "url",
|
||||
"url": "https://github.com/pinecone-io/pinecone-claude-code-plugin.git"
|
||||
},
|
||||
"homepage": "https://github.com/pinecone-io/pinecone-claude-code-plugin"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
47
.github/workflows/close-external-prs.yml
vendored
Normal file
47
.github/workflows/close-external-prs.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Close External PRs
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
check-membership:
|
||||
if: vars.DISABLE_EXTERNAL_PR_CHECK != 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check if author is org member
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const org = 'anthropics';
|
||||
const author = context.payload.pull_request.user.login;
|
||||
|
||||
try {
|
||||
await github.rest.orgs.checkMembershipForUser({
|
||||
org: org,
|
||||
username: author
|
||||
});
|
||||
console.log(`${author} is an org member, allowing PR`);
|
||||
} catch (e) {
|
||||
if (e.status === 404) {
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.pull_request.number,
|
||||
body: `Thanks for your interest! This repo only accepts contributions from Anthropic team members. If you'd like to submit a plugin to the marketplace, please submit your plugin [here](https://docs.google.com/forms/d/e/1FAIpQLSdeFthxvjOXUjxg1i3KrOOkEPDJtn71XC-KjmQlxNP63xYydg/viewform).`
|
||||
});
|
||||
|
||||
await github.rest.pulls.update({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number,
|
||||
state: 'closed'
|
||||
});
|
||||
|
||||
console.log(`Closed PR from external contributor: ${author}`);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
{
|
||||
"name": "greptile",
|
||||
"description": "AI-powered codebase search and understanding. Query your repositories using natural language to find relevant code, understand dependencies, and get contextual answers about your codebase architecture.",
|
||||
"description": "AI code review agent for GitHub and GitLab. View and resolve Greptile's PR review comments directly from Claude Code.",
|
||||
"author": {
|
||||
"name": "Greptile"
|
||||
}
|
||||
"name": "Greptile",
|
||||
"url": "https://greptile.com"
|
||||
},
|
||||
"homepage": "https://greptile.com/docs",
|
||||
"keywords": ["code-review", "pull-requests", "github", "gitlab", "ai"]
|
||||
}
|
||||
|
||||
57
external_plugins/greptile/README.md
Normal file
57
external_plugins/greptile/README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Greptile
|
||||
|
||||
[Greptile](https://greptile.com) is an AI code review agent for GitHub and GitLab that automatically reviews pull requests. This plugin connects Claude Code to your Greptile account, letting you view and resolve Greptile's review comments directly from your terminal.
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Create a Greptile Account
|
||||
|
||||
Sign up at [greptile.com](https://greptile.com) and connect your GitHub or GitLab repositories.
|
||||
|
||||
### 2. Get Your API Key
|
||||
|
||||
1. Go to [API Settings](https://app.greptile.com/settings/api)
|
||||
2. Generate a new API key
|
||||
3. Copy the key
|
||||
|
||||
### 3. Set Environment Variable
|
||||
|
||||
Add to your shell profile (`.bashrc`, `.zshrc`, etc.):
|
||||
|
||||
```bash
|
||||
export GREPTILE_API_KEY="your-api-key-here"
|
||||
```
|
||||
|
||||
Then reload your shell or run `source ~/.zshrc`.
|
||||
|
||||
## Available Tools
|
||||
|
||||
### Pull Request Tools
|
||||
- `list_pull_requests` - List PRs with optional filtering by repo, branch, author, or state
|
||||
- `get_merge_request` - Get detailed PR info including review analysis
|
||||
- `list_merge_request_comments` - Get all comments on a PR with filtering options
|
||||
|
||||
### Code Review Tools
|
||||
- `list_code_reviews` - List code reviews with optional filtering
|
||||
- `get_code_review` - Get detailed code review information
|
||||
- `trigger_code_review` - Start a new Greptile review on a PR
|
||||
|
||||
### Comment Search
|
||||
- `search_greptile_comments` - Search across all Greptile review comments
|
||||
|
||||
### Custom Context Tools
|
||||
- `list_custom_context` - List your organization's coding patterns and rules
|
||||
- `get_custom_context` - Get details for a specific pattern
|
||||
- `search_custom_context` - Search patterns by content
|
||||
- `create_custom_context` - Create a new coding pattern
|
||||
|
||||
## Example Usage
|
||||
|
||||
Ask Claude Code to:
|
||||
- "Show me Greptile's comments on my current PR and help me resolve them"
|
||||
- "What issues did Greptile find on PR #123?"
|
||||
- "Trigger a Greptile review on this branch"
|
||||
|
||||
## Documentation
|
||||
|
||||
For more information, visit [greptile.com/docs](https://greptile.com/docs).
|
||||
36
plugins/clangd-lsp/README.md
Normal file
36
plugins/clangd-lsp/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# clangd-lsp
|
||||
|
||||
C/C++ language server (clangd) for Claude Code, providing code intelligence, diagnostics, and formatting.
|
||||
|
||||
## Supported Extensions
|
||||
`.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx`, `.C`, `.H`
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Homebrew (macOS)
|
||||
```bash
|
||||
brew install llvm
|
||||
# Add to PATH: export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
|
||||
```
|
||||
|
||||
### Via package manager (Linux)
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install clangd
|
||||
|
||||
# Fedora
|
||||
sudo dnf install clang-tools-extra
|
||||
|
||||
# Arch Linux
|
||||
sudo pacman -S clang
|
||||
```
|
||||
|
||||
### Windows
|
||||
Download from [LLVM releases](https://github.com/llvm/llvm-project/releases) or install via:
|
||||
```bash
|
||||
winget install LLVM.LLVM
|
||||
```
|
||||
|
||||
## More Information
|
||||
- [clangd Website](https://clangd.llvm.org/)
|
||||
- [Getting Started Guide](https://clangd.llvm.org/installation)
|
||||
25
plugins/csharp-lsp/README.md
Normal file
25
plugins/csharp-lsp/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# csharp-lsp
|
||||
|
||||
C# language server for Claude Code, providing code intelligence and diagnostics.
|
||||
|
||||
## Supported Extensions
|
||||
`.cs`
|
||||
|
||||
## Installation
|
||||
|
||||
### Via .NET tool (recommended)
|
||||
```bash
|
||||
dotnet tool install --global csharp-ls
|
||||
```
|
||||
|
||||
### Via Homebrew (macOS)
|
||||
```bash
|
||||
brew install csharp-ls
|
||||
```
|
||||
|
||||
## Requirements
|
||||
- .NET SDK 6.0 or later
|
||||
|
||||
## More Information
|
||||
- [csharp-ls GitHub](https://github.com/razzmatazz/csharp-language-server)
|
||||
- [.NET SDK Download](https://dotnet.microsoft.com/download)
|
||||
20
plugins/gopls-lsp/README.md
Normal file
20
plugins/gopls-lsp/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# gopls-lsp
|
||||
|
||||
Go language server for Claude Code, providing code intelligence, refactoring, and analysis.
|
||||
|
||||
## Supported Extensions
|
||||
`.go`
|
||||
|
||||
## Installation
|
||||
|
||||
Install gopls using the Go toolchain:
|
||||
|
||||
```bash
|
||||
go install golang.org/x/tools/gopls@latest
|
||||
```
|
||||
|
||||
Make sure `$GOPATH/bin` (or `$HOME/go/bin`) is in your PATH.
|
||||
|
||||
## More Information
|
||||
- [gopls Documentation](https://pkg.go.dev/golang.org/x/tools/gopls)
|
||||
- [GitHub Repository](https://github.com/golang/tools/tree/master/gopls)
|
||||
@@ -7,7 +7,7 @@ from functools import lru_cache
|
||||
from typing import List, Dict, Any, Optional
|
||||
|
||||
# Import from local module
|
||||
from hookify.core.config_loader import Rule, Condition
|
||||
from core.config_loader import Rule, Condition
|
||||
|
||||
|
||||
# Cache compiled regexes (max 128 patterns)
|
||||
@@ -275,7 +275,7 @@ class RuleEngine:
|
||||
|
||||
# For testing
|
||||
if __name__ == '__main__':
|
||||
from hookify.core.config_loader import Condition, Rule
|
||||
from core.config_loader import Condition, Rule
|
||||
|
||||
# Test rule evaluation
|
||||
rule = Rule(
|
||||
|
||||
@@ -9,18 +9,14 @@ import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
# CRITICAL: Add plugin root to Python path for imports
|
||||
# Add plugin root to Python path for imports
|
||||
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT')
|
||||
if PLUGIN_ROOT:
|
||||
parent_dir = os.path.dirname(PLUGIN_ROOT)
|
||||
if parent_dir not in sys.path:
|
||||
sys.path.insert(0, parent_dir)
|
||||
if PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
if PLUGIN_ROOT and PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
|
||||
try:
|
||||
from hookify.core.config_loader import load_rules
|
||||
from hookify.core.rule_engine import RuleEngine
|
||||
from core.config_loader import load_rules
|
||||
from core.rule_engine import RuleEngine
|
||||
except ImportError as e:
|
||||
error_msg = {"systemMessage": f"Hookify import error: {e}"}
|
||||
print(json.dumps(error_msg), file=sys.stdout)
|
||||
|
||||
@@ -9,22 +9,14 @@ import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
# CRITICAL: Add plugin root to Python path for imports
|
||||
# We need to add the parent of the plugin directory so Python can find "hookify" package
|
||||
# Add plugin root to Python path for imports
|
||||
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT')
|
||||
if PLUGIN_ROOT:
|
||||
# Add the parent directory of the plugin
|
||||
parent_dir = os.path.dirname(PLUGIN_ROOT)
|
||||
if parent_dir not in sys.path:
|
||||
sys.path.insert(0, parent_dir)
|
||||
|
||||
# Also add PLUGIN_ROOT itself in case we have other scripts
|
||||
if PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
if PLUGIN_ROOT and PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
|
||||
try:
|
||||
from hookify.core.config_loader import load_rules
|
||||
from hookify.core.rule_engine import RuleEngine
|
||||
from core.config_loader import load_rules
|
||||
from core.rule_engine import RuleEngine
|
||||
except ImportError as e:
|
||||
# If imports fail, allow operation and log error
|
||||
error_msg = {"systemMessage": f"Hookify import error: {e}"}
|
||||
|
||||
@@ -9,18 +9,14 @@ import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
# CRITICAL: Add plugin root to Python path for imports
|
||||
# Add plugin root to Python path for imports
|
||||
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT')
|
||||
if PLUGIN_ROOT:
|
||||
parent_dir = os.path.dirname(PLUGIN_ROOT)
|
||||
if parent_dir not in sys.path:
|
||||
sys.path.insert(0, parent_dir)
|
||||
if PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
if PLUGIN_ROOT and PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
|
||||
try:
|
||||
from hookify.core.config_loader import load_rules
|
||||
from hookify.core.rule_engine import RuleEngine
|
||||
from core.config_loader import load_rules
|
||||
from core.rule_engine import RuleEngine
|
||||
except ImportError as e:
|
||||
error_msg = {"systemMessage": f"Hookify import error: {e}"}
|
||||
print(json.dumps(error_msg), file=sys.stdout)
|
||||
|
||||
@@ -9,18 +9,14 @@ import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
# CRITICAL: Add plugin root to Python path for imports
|
||||
# Add plugin root to Python path for imports
|
||||
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT')
|
||||
if PLUGIN_ROOT:
|
||||
parent_dir = os.path.dirname(PLUGIN_ROOT)
|
||||
if parent_dir not in sys.path:
|
||||
sys.path.insert(0, parent_dir)
|
||||
if PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
if PLUGIN_ROOT and PLUGIN_ROOT not in sys.path:
|
||||
sys.path.insert(0, PLUGIN_ROOT)
|
||||
|
||||
try:
|
||||
from hookify.core.config_loader import load_rules
|
||||
from hookify.core.rule_engine import RuleEngine
|
||||
from core.config_loader import load_rules
|
||||
from core.rule_engine import RuleEngine
|
||||
except ImportError as e:
|
||||
error_msg = {"systemMessage": f"Hookify import error: {e}"}
|
||||
print(json.dumps(error_msg), file=sys.stdout)
|
||||
|
||||
33
plugins/jdtls-lsp/README.md
Normal file
33
plugins/jdtls-lsp/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# jdtls-lsp
|
||||
|
||||
Java language server (Eclipse JDT.LS) for Claude Code, providing code intelligence and refactoring.
|
||||
|
||||
## Supported Extensions
|
||||
`.java`
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Homebrew (macOS)
|
||||
```bash
|
||||
brew install jdtls
|
||||
```
|
||||
|
||||
### Via package manager (Linux)
|
||||
```bash
|
||||
# Arch Linux (AUR)
|
||||
yay -S jdtls
|
||||
|
||||
# Other distros: manual installation required
|
||||
```
|
||||
|
||||
### Manual Installation
|
||||
1. Download from [Eclipse JDT.LS releases](https://download.eclipse.org/jdtls/snapshots/)
|
||||
2. Extract to a directory (e.g., `~/.local/share/jdtls`)
|
||||
3. Create a wrapper script named `jdtls` in your PATH
|
||||
|
||||
## Requirements
|
||||
- Java 17 or later (JDK, not just JRE)
|
||||
|
||||
## More Information
|
||||
- [Eclipse JDT.LS GitHub](https://github.com/eclipse-jdtls/eclipse.jdt.ls)
|
||||
- [VSCode Java Extension](https://github.com/redhat-developer/vscode-java) (uses JDT.LS)
|
||||
32
plugins/lua-lsp/README.md
Normal file
32
plugins/lua-lsp/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# lua-lsp
|
||||
|
||||
Lua language server for Claude Code, providing code intelligence and diagnostics.
|
||||
|
||||
## Supported Extensions
|
||||
`.lua`
|
||||
|
||||
## Installation
|
||||
|
||||
### Via Homebrew (macOS)
|
||||
```bash
|
||||
brew install lua-language-server
|
||||
```
|
||||
|
||||
### Via package manager (Linux)
|
||||
```bash
|
||||
# Ubuntu/Debian (via snap)
|
||||
sudo snap install lua-language-server --classic
|
||||
|
||||
# Arch Linux
|
||||
sudo pacman -S lua-language-server
|
||||
|
||||
# Fedora
|
||||
sudo dnf install lua-language-server
|
||||
```
|
||||
|
||||
### Manual Installation
|
||||
Download pre-built binaries from the [releases page](https://github.com/LuaLS/lua-language-server/releases).
|
||||
|
||||
## More Information
|
||||
- [Lua Language Server GitHub](https://github.com/LuaLS/lua-language-server)
|
||||
- [Documentation](https://luals.github.io/)
|
||||
24
plugins/php-lsp/README.md
Normal file
24
plugins/php-lsp/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# php-lsp
|
||||
|
||||
PHP language server (Intelephense) for Claude Code, providing code intelligence and diagnostics.
|
||||
|
||||
## Supported Extensions
|
||||
`.php`
|
||||
|
||||
## Installation
|
||||
|
||||
Install Intelephense globally via npm:
|
||||
|
||||
```bash
|
||||
npm install -g intelephense
|
||||
```
|
||||
|
||||
Or with yarn:
|
||||
|
||||
```bash
|
||||
yarn global add intelephense
|
||||
```
|
||||
|
||||
## More Information
|
||||
- [Intelephense Website](https://intelephense.com/)
|
||||
- [Intelephense on npm](https://www.npmjs.com/package/intelephense)
|
||||
31
plugins/pyright-lsp/README.md
Normal file
31
plugins/pyright-lsp/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# pyright-lsp
|
||||
|
||||
Python language server (Pyright) for Claude Code, providing static type checking and code intelligence.
|
||||
|
||||
## Supported Extensions
|
||||
`.py`, `.pyi`
|
||||
|
||||
## Installation
|
||||
|
||||
Install Pyright globally via npm:
|
||||
|
||||
```bash
|
||||
npm install -g pyright
|
||||
```
|
||||
|
||||
Or with pip:
|
||||
|
||||
```bash
|
||||
pip install pyright
|
||||
```
|
||||
|
||||
Or with pipx (recommended for CLI tools):
|
||||
|
||||
```bash
|
||||
pipx install pyright
|
||||
```
|
||||
|
||||
## More Information
|
||||
- [Pyright on npm](https://www.npmjs.com/package/pyright)
|
||||
- [Pyright on PyPI](https://pypi.org/project/pyright/)
|
||||
- [GitHub Repository](https://github.com/microsoft/pyright)
|
||||
@@ -1,26 +1,18 @@
|
||||
---
|
||||
description: "Cancel active Ralph Wiggum loop"
|
||||
allowed-tools: ["Bash"]
|
||||
allowed-tools: ["Bash(test -f .claude/ralph-loop.local.md:*)", "Bash(rm .claude/ralph-loop.local.md)", "Read(.claude/ralph-loop.local.md)"]
|
||||
hide-from-slash-command-tool: "true"
|
||||
---
|
||||
|
||||
# Cancel Ralph
|
||||
|
||||
```!
|
||||
if [[ -f .claude/ralph-loop.local.md ]]; then
|
||||
ITERATION=$(grep '^iteration:' .claude/ralph-loop.local.md | sed 's/iteration: *//')
|
||||
echo "FOUND_LOOP=true"
|
||||
echo "ITERATION=$ITERATION"
|
||||
else
|
||||
echo "FOUND_LOOP=false"
|
||||
fi
|
||||
```
|
||||
To cancel the Ralph loop:
|
||||
|
||||
Check the output above:
|
||||
1. Check if `.claude/ralph-loop.local.md` exists using Bash: `test -f .claude/ralph-loop.local.md && echo "EXISTS" || echo "NOT_FOUND"`
|
||||
|
||||
1. **If FOUND_LOOP=false**:
|
||||
- Say "No active Ralph loop found."
|
||||
2. **If NOT_FOUND**: Say "No active Ralph loop found."
|
||||
|
||||
2. **If FOUND_LOOP=true**:
|
||||
- Use Bash: `rm .claude/ralph-loop.local.md`
|
||||
- Report: "Cancelled Ralph loop (was at iteration N)" where N is the ITERATION value from above.
|
||||
3. **If EXISTS**:
|
||||
- Read `.claude/ralph-loop.local.md` to get the current iteration number from the `iteration:` field
|
||||
- Remove the file using Bash: `rm .claude/ralph-loop.local.md`
|
||||
- Report: "Cancelled Ralph loop (was at iteration N)" where N is the iteration value
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: "Start Ralph Wiggum loop in current session"
|
||||
argument-hint: "PROMPT [--max-iterations N] [--completion-promise TEXT]"
|
||||
allowed-tools: ["Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup-ralph-loop.sh)"]
|
||||
allowed-tools: ["Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup-ralph-loop.sh:*)"]
|
||||
hide-from-slash-command-tool: "true"
|
||||
---
|
||||
|
||||
@@ -11,36 +11,6 @@ Execute the setup script to initialize the Ralph loop:
|
||||
|
||||
```!
|
||||
"${CLAUDE_PLUGIN_ROOT}/scripts/setup-ralph-loop.sh" $ARGUMENTS
|
||||
|
||||
# Extract and display completion promise if set
|
||||
if [ -f .claude/ralph-loop.local.md ]; then
|
||||
PROMISE=$(grep '^completion_promise:' .claude/ralph-loop.local.md | sed 's/completion_promise: *//' | sed 's/^"\(.*\)"$/\1/')
|
||||
if [ -n "$PROMISE" ] && [ "$PROMISE" != "null" ]; then
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo "CRITICAL - Ralph Loop Completion Promise"
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
echo "To complete this loop, output this EXACT text:"
|
||||
echo " <promise>$PROMISE</promise>"
|
||||
echo ""
|
||||
echo "STRICT REQUIREMENTS (DO NOT VIOLATE):"
|
||||
echo " ✓ Use <promise> XML tags EXACTLY as shown above"
|
||||
echo " ✓ The statement MUST be completely and unequivocally TRUE"
|
||||
echo " ✓ Do NOT output false statements to exit the loop"
|
||||
echo " ✓ Do NOT lie even if you think you should exit"
|
||||
echo ""
|
||||
echo "IMPORTANT - Do not circumvent the loop:"
|
||||
echo " Even if you believe you're stuck, the task is impossible,"
|
||||
echo " or you've been running too long - you MUST NOT output a"
|
||||
echo " false promise statement. The loop is designed to continue"
|
||||
echo " until the promise is GENUINELY TRUE. Trust the process."
|
||||
echo ""
|
||||
echo " If the loop should stop, the promise statement will become"
|
||||
echo " true naturally. Do not force it by lying."
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
fi
|
||||
fi
|
||||
```
|
||||
|
||||
Please work on the task. When you try to exit, the Ralph loop will feed the SAME PROMPT back to you for the next iteration. You'll see your previous work in files and git history, allowing you to iterate and improve.
|
||||
|
||||
@@ -174,3 +174,30 @@ if [[ -n "$PROMPT" ]]; then
|
||||
echo ""
|
||||
echo "$PROMPT"
|
||||
fi
|
||||
|
||||
# Display completion promise requirements if set
|
||||
if [[ "$COMPLETION_PROMISE" != "null" ]]; then
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo "CRITICAL - Ralph Loop Completion Promise"
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
echo "To complete this loop, output this EXACT text:"
|
||||
echo " <promise>$COMPLETION_PROMISE</promise>"
|
||||
echo ""
|
||||
echo "STRICT REQUIREMENTS (DO NOT VIOLATE):"
|
||||
echo " ✓ Use <promise> XML tags EXACTLY as shown above"
|
||||
echo " ✓ The statement MUST be completely and unequivocally TRUE"
|
||||
echo " ✓ Do NOT output false statements to exit the loop"
|
||||
echo " ✓ Do NOT lie even if you think you should exit"
|
||||
echo ""
|
||||
echo "IMPORTANT - Do not circumvent the loop:"
|
||||
echo " Even if you believe you're stuck, the task is impossible,"
|
||||
echo " or you've been running too long - you MUST NOT output a"
|
||||
echo " false promise statement. The loop is designed to continue"
|
||||
echo " until the promise is GENUINELY TRUE. Trust the process."
|
||||
echo ""
|
||||
echo " If the loop should stop, the promise statement will become"
|
||||
echo " true naturally. Do not force it by lying."
|
||||
echo "═══════════════════════════════════════════════════════════"
|
||||
fi
|
||||
|
||||
34
plugins/rust-analyzer-lsp/README.md
Normal file
34
plugins/rust-analyzer-lsp/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# rust-analyzer-lsp
|
||||
|
||||
Rust language server for Claude Code, providing code intelligence and analysis.
|
||||
|
||||
## Supported Extensions
|
||||
`.rs`
|
||||
|
||||
## Installation
|
||||
|
||||
### Via rustup (recommended)
|
||||
```bash
|
||||
rustup component add rust-analyzer
|
||||
```
|
||||
|
||||
### Via Homebrew (macOS)
|
||||
```bash
|
||||
brew install rust-analyzer
|
||||
```
|
||||
|
||||
### Via package manager (Linux)
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install rust-analyzer
|
||||
|
||||
# Arch Linux
|
||||
sudo pacman -S rust-analyzer
|
||||
```
|
||||
|
||||
### Manual download
|
||||
Download pre-built binaries from the [releases page](https://github.com/rust-lang/rust-analyzer/releases).
|
||||
|
||||
## More Information
|
||||
- [rust-analyzer Website](https://rust-analyzer.github.io/)
|
||||
- [GitHub Repository](https://github.com/rust-lang/rust-analyzer)
|
||||
25
plugins/swift-lsp/README.md
Normal file
25
plugins/swift-lsp/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# swift-lsp
|
||||
|
||||
Swift language server (SourceKit-LSP) for Claude Code, providing code intelligence for Swift projects.
|
||||
|
||||
## Supported Extensions
|
||||
`.swift`
|
||||
|
||||
## Installation
|
||||
|
||||
SourceKit-LSP is included with the Swift toolchain.
|
||||
|
||||
### macOS
|
||||
Install Xcode from the App Store, or install Swift via:
|
||||
```bash
|
||||
brew install swift
|
||||
```
|
||||
|
||||
### Linux
|
||||
Download and install Swift from [swift.org](https://www.swift.org/download/).
|
||||
|
||||
After installation, `sourcekit-lsp` should be available in your PATH.
|
||||
|
||||
## More Information
|
||||
- [SourceKit-LSP GitHub](https://github.com/apple/sourcekit-lsp)
|
||||
- [Swift.org](https://www.swift.org/)
|
||||
24
plugins/typescript-lsp/README.md
Normal file
24
plugins/typescript-lsp/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# typescript-lsp
|
||||
|
||||
TypeScript/JavaScript language server for Claude Code, providing code intelligence features like go-to-definition, find references, and error checking.
|
||||
|
||||
## Supported Extensions
|
||||
`.ts`, `.tsx`, `.js`, `.jsx`, `.mts`, `.cts`, `.mjs`, `.cjs`
|
||||
|
||||
## Installation
|
||||
|
||||
Install the TypeScript language server globally via npm:
|
||||
|
||||
```bash
|
||||
npm install -g typescript-language-server typescript
|
||||
```
|
||||
|
||||
Or with yarn:
|
||||
|
||||
```bash
|
||||
yarn global add typescript-language-server typescript
|
||||
```
|
||||
|
||||
## More Information
|
||||
- [typescript-language-server on npm](https://www.npmjs.com/package/typescript-language-server)
|
||||
- [GitHub Repository](https://github.com/typescript-language-server/typescript-language-server)
|
||||
Reference in New Issue
Block a user