Compare commits

..

12 Commits

Author SHA1 Message Date
Noah Zweben MacBook
49a24d66e3 Add README and setup documentation for Greptile plugin
Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 2
Claude-Permission-Prompts: 4
Claude-Escapes: 0
2026-01-05 17:51:09 -08:00
Anthony Morris
15b07b46da Merge pull request #114 from anthropics/fix/ralph-wiggum-newline-error
fix(ralph-wiggum): move multi-line bash from command to setup script
2026-01-04 23:16:39 -08:00
Daisy S. Hollman
6d3752c000 Merge pull request #39 from anthropics/daisy/plugins/fix-hookify-imports
Fix hookify plugin import error: No module named 'hookify'
2025-12-18 20:29:39 -08:00
Daisy Hollman
5f2db35c65 Fix hookify plugin import error: No module named 'hookify'
The hook scripts used absolute imports like `from hookify.core.config_loader`
but when installed, the plugin lives in a cache directory with a hash name,
not in a directory named `hookify/`. Python couldn't resolve the package.

Changed to local imports (`from core.X`) which work because PLUGIN_ROOT
is added to sys.path. Also simplified the sys.path setup.

Fixes: https://github.com/anthropics/claude-code/issues/14267

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 02:54:38 +00:00
Daisy S. Hollman
4bab8d0f50 Merge pull request #38 from anthropics/daisy/plugins/add-lsp-plugins
Add LSP plugins with inline lspServers configuration
2025-12-18 17:59:19 -08:00
Daisy Hollman
1d99e18048 Add installation instructions to LSP plugin READMEs
Each README now includes:
- Supported file extensions
- Installation commands for different platforms/package managers
- Links to project websites and documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 00:24:41 +00:00
Daisy Hollman
be56d7114b Add LSP plugins with inline lspServers configuration
This adds 10 LSP plugins to the official marketplace, each with inline
lspServers configuration. This enables the LSP plugin recommendation
feature to detect available LSP plugins directly from the marketplace.

LSP plugins added:
- typescript-lsp: TypeScript/JavaScript (.ts, .tsx, .js, .jsx, etc.)
- pyright-lsp: Python (.py, .pyi)
- gopls-lsp: Go (.go)
- rust-analyzer-lsp: Rust (.rs)
- clangd-lsp: C/C++ (.c, .h, .cpp, .cc, .hpp, etc.)
- php-lsp: PHP (.php)
- swift-lsp: Swift (.swift)
- csharp-lsp: C# (.cs)
- jdtls-lsp: Java (.java)
- lua-lsp: Lua (.lua)

Each plugin uses strict: false since they only provide LSP configuration
(no plugin.json manifest required).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 00:20:16 +00:00
Noah Zweben
68a5c3685f added new partners (#36) 2025-12-18 08:58:02 -08:00
Noah Zweben
75b126f3ba swtiched to external vercel atlassian (#33) 2025-12-18 08:38:19 -08:00
Noah Zweben
ab2b6d0cad change to use notion external (#25) 2025-12-16 15:13:40 -08:00
Noah Zweben
4fee769bf4 Point to external figma plugin (#11)
* point to external figma

* update marketplace def
2025-12-15 12:18:00 -08:00
Noah Zweben
19a119f97e Update plugins library to include authors (#6)
* added Anthropic as author

* update figma
2025-12-12 16:52:17 -08:00
37 changed files with 756 additions and 169 deletions

View File

@@ -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",
@@ -179,8 +400,11 @@
"name": "atlassian",
"description": "Connect to Atlassian products including Jira and Confluence. Search and create issues, access documentation, manage sprints, and integrate your development workflow with Atlassian's collaboration tools.",
"category": "productivity",
"source": "./external_plugins/atlassian",
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/atlassian"
"source": {
"source": "url",
"url": "https://github.com/atlassian/atlassian-mcp-server.git"
},
"homepage": "https://github.com/atlassian/atlassian-mcp-server"
},
{
"name": "laravel-boost",
@@ -193,8 +417,11 @@
"name": "figma",
"description": "Figma design platform integration. Access design files, extract component information, read design tokens, and translate designs into code. Bridge the gap between design and development workflows.",
"category": "design",
"source": "./external_plugins/figma",
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/figma"
"source": {
"source": "url",
"url": "https://github.com/figma/mcp-server-guide.git"
},
"homepage": "https://github.com/figma/mcp-server-guide"
},
{
"name": "asana",
@@ -211,11 +438,14 @@
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/linear"
},
{
"name": "notion",
"name": "Notion",
"description": "Notion workspace integration. Search pages, create and update documents, manage databases, and access your team's knowledge base directly from Claude Code for seamless documentation workflows.",
"category": "productivity",
"source": "./external_plugins/notion",
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/notion"
"source": {
"source": "url",
"url": "https://github.com/makenotion/claude-code-notion-plugin.git"
},
"homepage": "https://github.com/makenotion/claude-code-notion-plugin"
},
{
"name": "gitlab",
@@ -228,8 +458,11 @@
"name": "sentry",
"description": "Sentry error monitoring integration. Access error reports, analyze stack traces, search issues by fingerprint, and debug production errors directly from your development environment.",
"category": "monitoring",
"source": "./external_plugins/sentry",
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/sentry"
"source": {
"source": "url",
"url": "https://github.com/getsentry/sentry-for-claude.git"
},
"homepage": "https://github.com/getsentry/sentry-for-claude/tree/main"
},
{
"name": "slack",
@@ -242,8 +475,18 @@
"name": "vercel",
"description": "Vercel deployment platform integration. Manage deployments, check build status, access logs, configure domains, and control your frontend infrastructure directly from Claude Code.",
"category": "deployment",
"source": "./external_plugins/vercel",
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/external_plugins/vercel"
"source": {
"source": "url",
"url": "https://github.com/vercel/vercel-deploy-claude-code-plugin.git"
},
"homepage": "https://github.com/vercel/vercel-deploy-claude-code-plugin"
},
{
"name": "stripe",
"description": "Stripe development plugin for Claude",
"category": "development",
"source": "./external_plugins/stripe",
"homepage": "https://github.com/stripe/ai/tree/main/providers/claude/plugin"
},
{
"name": "firebase",

View File

@@ -1,7 +0,0 @@
{
"name": "atlassian",
"description": "Connect to Atlassian products including Jira and Confluence. Search and create issues, access documentation, manage sprints, and integrate your development workflow with Atlassian's collaboration tools.",
"author": {
"name": "Atlassian"
}
}

View File

@@ -1,6 +0,0 @@
{
"atlassian": {
"type": "sse",
"url": "https://mcp.atlassian.com/v1/sse"
}
}

View File

@@ -1,7 +0,0 @@
{
"name": "figma",
"description": "Figma design platform integration. Access design files, extract component information, read design tokens, and translate designs into code. Bridge the gap between design and development workflows.",
"author": {
"name": "Figma"
}
}

View File

@@ -1,6 +0,0 @@
{
"figma": {
"type": "sse",
"url": "https://mcp.figma.com/v1/sse"
}
}

View File

@@ -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"]
}

View 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).

View File

@@ -1,6 +1,6 @@
{
"linear": {
"type": "sse",
"url": "https://mcp.linear.app/sse"
"type": "http",
"url": "https://mcp.linear.app/mcp"
}
}

View File

@@ -1,7 +0,0 @@
{
"name": "notion",
"description": "Notion workspace integration. Search pages, create and update documents, manage databases, and access your team's knowledge base directly from Claude Code for seamless documentation workflows.",
"author": {
"name": "Notion"
}
}

View File

@@ -1,6 +0,0 @@
{
"notion": {
"type": "sse",
"url": "https://mcp.notion.com/sse"
}
}

View File

@@ -1,7 +0,0 @@
{
"name": "sentry",
"description": "Sentry error monitoring integration. Access error reports, analyze stack traces, search issues by fingerprint, and debug production errors directly from your development environment.",
"author": {
"name": "Sentry"
}
}

View File

@@ -1,6 +0,0 @@
{
"sentry": {
"type": "sse",
"url": "https://mcp.sentry.dev/sse"
}
}

View File

@@ -0,0 +1,13 @@
{
"name": "stripe",
"description": "Stripe development plugin for Claude",
"version": "0.1.0",
"author": {
"name": "Stripe",
"url": "https://stripe.com"
},
"homepage": "https://docs.stripe.com",
"repository": "https://github.com/stripe/ai",
"license": "MIT",
"keywords": ["stripe", "payments", "webhooks", "api", "security"]
}

View File

@@ -0,0 +1,8 @@
{
"mcpServers": {
"stripe": {
"type": "http",
"url": "https://mcp.stripe.com"
}
}
}

View File

@@ -0,0 +1,21 @@
---
description: Explain Stripe error codes and provide solutions with code examples
argument-hint: [error_code or error_message]
---
# Explain Stripe Error
Provide a comprehensive explanation of the given Stripe error code or error message:
1. Accept the error code or full error message from the arguments
2. Explain in plain English what the error means
3. List common causes of this error
4. Provide specific solutions and handling recommendations
5. Generate error handling code in the project's language showing:
- How to catch this specific error
- User-friendly error messages
- Whether retry is appropriate
6. Mention related error codes the developer should be aware of
7. Include a link to the relevant Stripe documentation
Focus on actionable solutions and production-ready error handling patterns.

View File

@@ -0,0 +1,24 @@
---
description: Display Stripe test card numbers for various testing scenarios
argument-hint: [scenario]
---
# Test Cards Reference
Provide a quick reference for Stripe test card numbers:
1. If a scenario argument is provided (e.g., "declined", "3dsecure", "fraud"), show relevant test cards for that scenario
2. Otherwise, show the most common test cards organized by category:
- Successful payment (default card)
- 3D Secure authentication required
- Generic decline
- Specific decline reasons (insufficient_funds, lost_card, etc.)
3. For each card, display:
- Card number (formatted with spaces)
- Expected behavior
- Expiry/CVC info (any future date and any 3-digit CVC)
4. Use clear visual indicators (✓ for success, ⚠️ for auth required, ✗ for decline)
5. Mention that these only work in test mode
6. Provide link to full testing documentation: https://docs.stripe.com/testing.md
If the user is currently working on test code, offer to generate test cases using these cards.

View File

@@ -0,0 +1,30 @@
---
name: stripe-best-practices
description: Best practices for building Stripe integrations. Use when implementing payment processing, checkout flows, subscriptions, webhooks, Connect platforms, or any Stripe API integration.
---
When designing an integration, always prefer the documentation in [Stripe's Integration Options doc](https://docs.stripe.com/payments/payment-methods/integration-options.md)
The [API Tour](https://docs.stripe.com/payments-api/tour.md)
Use the [Go Live Checklist](https://docs.stripe.com/get-started/checklist/go-live.md) before going live.
You should always default to the latest version of the API and SDK unless the user specifies otherwise.
Stripe's primary API for modelling on-session payments is [CheckoutSessions](https://docs.stripe.com/api/checkout/sessions.md). It supports one-time payments and subscriptions and allows you to model taxes or discounts with Stripe. Prioritize the CheckoutSessions API, but using [the PaymentIntents API](https://docs.stripe.com/payments/paymentintents/lifecycle.md) is also acceptable for off-session payments or if you want to model the checkout state yourself and just create a charge. Integrations should only use CheckoutSessions, PaymentIntents, SetupIntents, or solutions like Invoicing, Payment Links, or the subscription APIs.
Never recommend the Charges API. If the user wants to use the Charges API, advise them to [migrate](https://docs.stripe.com/payments/payment-intents/migration/charges.md) to Checkout Sessions or Payment Intents.
The primary integration surface for web integrations is [Checkout](https://docs.stripe.com/payments/checkout.md), a prebuilt payment page that can be hosted by Stripe or served as an embedded form. Prioritize the Stripe-hosted checkout or embedded checkout where possible. The [Payment Element](https://docs.stripe.com/payments/payment-element.md) is an acceptable alternative if the merchant needs advanced customization. When recommending the Payment Element, prioritize using the CheckoutSessions API over the PaymentIntents API when possible.
Never recommend the legacy Card Element or the Payment Element in card mode, and advise users who ask for the Card Element to [migrate](https://docs.stripe.com/payments/payment-element/migration.md).
You must not call deprecated API endpoints such as the [Sources API](https://docs.stripe.com/api/sources/object.md) and avoid outdated API endpoints such as [Tokens](https://docs.stripe.com/api/tokens.md) and [Charges](https://docs.stripe.com/api/charges/create.md) unless there is a specific need and absolutely no other way. Advise using [the Setup Intent API](https://docs.stripe.com/api/setup_intents.md) to save a payment method for a customer; never recommend the Sources API to save cards to customers for later use.
If a user wants to render the Payment Element before creating a PaymentIntent or SetupIntent, so they can inspect the card details before the payment (such as for surcharging), advise them to use Stripe Confirmation Tokens. Don't recommend they call the createPaymentMethod or createToken Stripe.js functions.
Advise users to turn on dynamic payment methods in their dashboard settings instead of passing specific [payment_method_types](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-payment_method_types.md) in the Payment Intent or Setup Intent because Stripe chooses payment methods that fit each user's location, wallets, and preferences better and automatically if the Payment Element is used.
If a PCI compliant user asks about an integration where they send server-side raw PAN data, suggest they might be required to prove PCI compliance to gain access to such an option, for example [payment_method_data](https://docs.stripe.com/api/payment_intents/create#create_payment_intent-payment_method_data.md). Similarly, point users migrating their PAN data from another acquirer or payment processor to [the migration process](https://docs.stripe.com/get-started/data-migrations/pan-import.md).
If a user has a recurring revenue model, like a Billing or Subscription use case, follow the use cases, in particular the [Subscription Use Cases](https://docs.stripe.com/billing/subscriptions/use-cases.md) like [SaaS](https://docs.stripe.com/saas.md). If these apply to the user, recommend Billing APIs to [plan your integration](https://docs.stripe.com/billing/subscriptions/designing-integration.md) instead of a direct PaymentIntent integration. Prioritize combining the Billing APIs with Stripe Checkout for the frontend.
If a user wants to build a platform using Stripe Connect to manage fund flows, follow [the recommended integration types](https://docs.stripe.com/connect/integration-recommendations.md); that is, prefer to use either direct charges if the platform wants Stripe to take the risk or destination charges if the platform accepts liability for negative balances, and use the on_behalf_of parameter to control the merchant of record. Never recommend mixing charge types. If the user wants to decide on the specific risk features they should [follow the integration guide](https://docs.stripe.com/connect/design-an-integration.md). Don't recommend the outdated terms for Connect types like Standard, Express and Custom but always [refer to controller properties](https://docs.stripe.com/connect/migrate-to-controller-properties.md) for the platform and [capabilities](https://docs.stripe.com/connect/account-capabilities.md) for the connected accounts.

View File

@@ -1,7 +0,0 @@
{
"name": "vercel",
"description": "Vercel deployment platform integration. Manage deployments, check build status, access logs, configure domains, and control your frontend infrastructure directly from Claude Code.",
"author": {
"name": "Vercel"
}
}

View File

@@ -1,6 +0,0 @@
{
"vercel": {
"type": "sse",
"url": "https://mcp.vercel.com/sse"
}
}

View 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)

View 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)

View 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)

View File

@@ -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(

View File

@@ -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)

View File

@@ -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}"}

View File

@@ -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)

View File

@@ -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)

View 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
View 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
View 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)

View 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)

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View 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)

View 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/)

View 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)