Package Exports
- n8n-nodes-claude-code-cli
- n8n-nodes-claude-code-cli/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (n8n-nodes-claude-code-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
_____ _ _ _____ _
/ ____| | | | / ____| | |
| | | | __ _ _ _ __| | ___ | | ___ __| | ___
| | | |/ _` | | | |/ _` |/ _ \ | | / _ \ / _` |/ _ \
| |____| | (_| | |_| | (_| | __/ | |___| (_) | (_| | __/
\_____|_|\__,_|\__,_|\__,_|\___| \_____\___/ \__,_|\___|
β‘ for n8n β‘n8n-nodes-claude-code-cli
π€ Bring the power of Claude Code AI directly into your n8n workflows
Automate code reviews β’ Generate documentation β’ Fix bugs β’ Build coding bots
Getting Started β’ Use Cases β’ Documentation
β¨ Features
| π³ Docker Execution - Run Claude Code in isolated containers | π Session Management - Multi-turn conversations across executions |
| π― Tool Permissions - Fine-grained control over allowed tools | π Context Files - Include files and directories for analysis |
| π§ Multiple Models - Opus, Sonnet, Haiku support | π Rich Output - Costs, tokens, and session IDs |
β‘ Quick Start
1. Install the n8n node
In n8n: Settings > Community Nodes > Install > n8n-nodes-claude-code-cli
2. Deploy Claude Code Runner
n8n installed on host (not in Docker)? Use the standalone setup:
mkdir -p claude-code-runner && cd claude-code-runner && \
curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/claude-code/docker-compose.yml -o docker-compose.yml && \
curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/claude-code/Dockerfile -o Dockerfile && \
docker compose up -d --buildn8n also running in Docker? Use the complete stack instead
The node uses docker exec to communicate with claude-code-runner. This requires:
- Docker CLI installed inside the n8n container
- Docker socket mounted to access the Docker daemon
The standard n8nio/n8n image doesn't include Docker CLI, so we provide a custom setup:
mkdir -p n8n-claude-code && cd n8n-claude-code && \
curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/n8n-with-claude-code/docker-compose.yml -o docker-compose.yml && \
curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/n8n-with-claude-code/Dockerfile.n8n -o Dockerfile.n8n && \
curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/n8n-with-claude-code/Dockerfile.claude-code -o Dockerfile.claude-code && \
docker compose up -d --buildThis builds a custom n8n image with Docker CLI and deploys both n8n and claude-code-runner together. Access n8n at http://localhost:5678
Already have n8n running in Docker? You can modify your existing setup:
- Create a custom Dockerfile for n8n:
FROM docker:29-cli AS docker-cli
FROM n8nio/n8n
USER root
COPY --from=docker-cli /usr/local/bin/docker /usr/local/bin/docker
RUN chmod +x /usr/local/bin/docker
USER node- Update your docker-compose.yml:
services:
n8n:
build: . # Use the custom Dockerfile above
user: root # Required for Docker socket access
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# ... your other volumes- Deploy claude-code-runner separately using the standalone setup above
Important: Both containers must be managed by the same Docker daemon.
3. Authenticate
docker exec -it claude-code-runner claude loginFollow the browser prompts to complete authentication.
4. Configure n8n credentials
| Parameter | Value |
|---|---|
| Connection Type | Docker |
| Container Name | claude-code-runner |
| Working Directory | /workspace |
5. Start automating π
Search "Claude Code" in n8n node panel and create your first workflow.
π³ Configuration
Workspace Setup
You have two options to work with your code:
Option 1: Clone repos inside container (recommended for isolation)
docker exec -it claude-code-runner git clone <repo-url>
# Or use git worktree for multiple branchesOption 2: Mount existing projects
volumes:
- /path/to/your/project:/workspace/project-nameMCP Servers
Mount your MCP configuration to enable additional tools:
volumes:
# MCP servers directory
- ./mcp-servers:/root/.mcp
# Or mount your local .mcp.json (avoids versioning credentials)
- ~/.mcp.json:/root/.mcp.json:roπ Alternative: SSH deployment
For dedicated VM deployments (AWS EC2, GCP, etc.):
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs git
npm install -g @anthropic-ai/claude-code
claude loginn8n Credentials:
| Parameter | Value |
|---|---|
| Connection Type | SSH |
| Host | Your VM IP |
| Port | 22 |
| Auth Method | privateKey |
βοΈ Node Operations
| Operation | Description | Use Case |
|---|---|---|
| Execute Prompt | Send a prompt and get a response | Direct AI interaction |
| Execute with Context | Include files as context | Code review, analysis |
| Continue Session | Continue last conversation | Multi-turn interactions |
| Resume Session | Resume specific session by ID | Continue after interruption |
π Detailed Parameters
Execute Prompt
- Prompt (required): Instruction for Claude Code
- Model: Claude model to use
- Options: Working directory, timeout, system prompt
Execute with Context
- Prompt (required): Instruction for Claude Code
- Context Files: File paths to include
- Additional Directories: Directory paths
Continue / Resume Session
- Prompt (required): Follow-up message
- Session ID (resume only): Previous session ID
π‘ Use Cases
π MR/PR Code Review Agent
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β GitLab ββββββΆβ Get Diff & ββββββΆβ Claude Code ββββββΆβ Post β
β Webhook β β Files β β Review β β Comments β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββWorkflow Steps
- Trigger: GitLab/GitHub webhook on new MR/PR
- Fetch: Get changed files and diff via API
- Review: Claude Code with
executeWithContext- "Review this code. Check for bugs, security issues, suggest improvements."
- Post: Send review comments back to GitLab/GitHub
- Notify: Alert team via Slack/Discord (optional)
π§ Support Assistant
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β Support ββββββΆβ Analyze ββββββΆβ Claude Code ββββββΆβ Respond β
β Ticket β β Issue β β Solution β β or Route β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββWorkflow Steps
- Trigger: Webhook from support system (Zendesk, Intercom)
- Analyze: Claude Code understands the issue
- "User reports: [issue]. Analyze and suggest solution."
- Respond: Send AI response back via API
- Escalate: Route complex issues to humans
π Auto Documentation
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β Code ββββββΆβ Get Changed ββββββΆβ Claude Code ββββββΆβ Commit β
β Push β β Files β β Gen Docs β β Docs β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββWorkflow Steps
- Trigger: Webhook on code push to main
- Identify: Get list of changed files
- Generate: Claude Code generates documentation
- "Generate docs for this code. Include descriptions, params, examples."
- Commit: Create commit with updated docs
- PR: Optionally create a PR for review
π Auto Bug Fixing
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β Sentry ββββββΆβ Parse ββββββΆβ Claude Code ββββββΆβ Create PR β
β Alert β β Stack Trace β β Fix Bug β β + Notify β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββWorkflow Steps
- Trigger: Webhook from error monitoring (Sentry, Datadog)
- Analyze: Parse error stack trace
- Fix: Claude Code analyzes and fixes
- "Error: [stack trace]. Analyze code and provide a fix."
- Test: Run tests to validate
- PR: Create pull request with fix
- Notify: Alert team about automated fix
π€ Cloud Coding Bots
Build AI coding assistants on Telegram, Slack, Discord, or GitLab/GitHub.
Examples
π± Telegram Bot
- Trigger: Telegram trigger on new message
- Process: Claude Code handles coding question
- Reply: Send response via Telegram node
π¬ Slack Bot
- Trigger: Slack mention or slash command
- Context: Fetch relevant code from repos (optional)
- Respond: Post response to channel
π¦ GitLab/GitHub Bot
- Trigger: Issue comment with keyword (e.g.,
/claude) - Analyze: Fetch issue context and code
- Comment: Post Claude's analysis
π€ Output Structure
{
"success": true,
"sessionId": "550e8400-e29b-41d4-a716-446655440000",
"output": "Here's my analysis of the code...",
"exitCode": 0,
"duration": 15234,
"cost": 0.0523,
"numTurns": 3,
"usage": {
"inputTokens": 1250,
"outputTokens": 890
}
}| Field | Description |
|---|---|
success |
β Execution completed successfully |
sessionId |
π ID for continuing conversations |
output |
π Response text from Claude Code |
cost |
π° Estimated cost in USD |
usage |
π Token breakdown |
π Security
π‘οΈ Tool Permissions
Control what Claude Code can do:
β
Allowed: Read, Glob, Grep
β Blocked: Bash(rm:*), Write(.env)π³ Isolation Best Practices
- Always set specific working directory
- Avoid
/or home directories - Create dedicated workspace per project
π Recommended Security Settings
Disallow dangerous operations:
Bash(rm:*)- Prevent file deletionBash(sudo:*)- No sudo accessWrite(.env)- Protect secretsBash(curl:*)- Block network (if not needed)
π€ Contributing
Development Setup
git clone https://github.com/ThomasTartrau/n8n-nodes-claude-code-cli.git
cd n8n-nodes-claude-code-cli
npm install && npm run build
# Start n8n + claude-code-runner for testing
docker compose -f docker/development/docker-compose.yml up -d --build
# Authenticate claude-code-runner
docker exec -it claude-code-runner claude login
# Access n8n at http://localhost:5678Docker Files Structure
docker/
βββ development/
β βββ Dockerfile # n8n with docker CLI (dev)
β βββ docker-compose.yml # n8n + claude-code-runner (mounts dist/)
βββ production/
βββ claude-code/
β βββ Dockerfile # Standalone claude-code-runner
β βββ docker-compose.yml # For n8n on host (not Docker)
βββ n8n-with-claude-code/
βββ Dockerfile.n8n # n8n with Docker CLI
βββ Dockerfile.claude-code # claude-code-runner
βββ docker-compose.yml # Complete stack (both services)Submit Changes
git checkout -b feature/amazing-feature
git commit -m 'feat: add amazing feature'
git push origin feature/amazing-featureπ License
MIT License - see LICENSE for details.