n8n community node for Claude Code CLI integration - execute AI-assisted coding tasks
npm install n8n-nodes-claude-code-cli`` | | | |/ _
_____ _ _ _____ _
/ ____| | | | / ____| | |
| | | | __ _ _ _ __| | ___ | | ___ __| | ___
| | | |/ _ |/ _ \ | | / _ \ / _ |/ _ \
| |____| | (_| | |_| | (_| | __/ | |___| (_) | (_| | __/
\_____|_|\__,_|\__,_|\__,_|\___| \_____\___/ \__,_|\___|
β‘ for n8n β‘
``




π€ Bring the power of Claude Code AI directly into your n8n workflows
Automate code reviews β’ Generate documentation β’ Fix bugs β’ Build coding bots
---
| | |
|---|---|
| π³ 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 |
---
In n8n: Settings > Community Nodes > Install > n8n-nodes-claude-code-cli
n8n installed on host (not in Docker)? Use the standalone setup:
`bash`
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 --build
n8n also running in Docker? Use the complete stack instead
The node uses docker exec to communicate with claude-code-runner. This requires:
1. Docker CLI installed inside the n8n container
2. Docker socket mounted to access the Docker daemon
The standard n8nio/n8n image doesn't include Docker CLI, so we provide a custom setup:
`bash`
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 --build
This 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:
1. Create a custom Dockerfile for n8n:
`dockerfile`
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
2. Update your docker-compose.yml:
`yaml`
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
3. Deploy claude-code-runner separately using the standalone setup above
Important: Both containers must be managed by the same Docker daemon.
`bash`
docker exec -it claude-code-runner claude login
Follow the browser prompts to complete authentication.
| Parameter | Value |
|-----------|-------|
| Connection Type | Docker |
| Container Name | claude-code-runner |/workspace
| Working Directory | |
Search "Claude Code" in n8n node panel and create your first workflow.
---
You have two options to work with your code:
Option 1: Clone repos inside container (recommended for isolation)
`bash`
docker exec -it claude-code-runner git clone Or use git worktree for multiple branches
Option 2: Mount existing projects
`yaml`
volumes:
- /path/to/your/project:/workspace/project-name
Mount your MCP configuration to enable additional tools:
`yaml`
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.):
`bash`
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 login
n8n Credentials:
| Parameter | Value |
|-----------|-------|
| Connection Type | SSH |
| Host | Your VM IP |
| Port | 22 |privateKey
| Auth Method | |
---
| 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
---
``
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β GitLab ββββββΆβ Get Diff & ββββββΆβ Claude Code ββββββΆβ Post β
β Webhook β β Files β β Review β β Comments β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
Workflow Steps
1. Trigger: GitLab/GitHub webhook on new MR/PR
2. Fetch: Get changed files and diff via API
3. Review: Claude Code with executeWithContext
- "Review this code. Check for bugs, security issues, suggest improvements."
4. Post: Send review comments back to GitLab/GitHub
5. Notify: Alert team via Slack/Discord (optional)
---
``
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β Support ββββββΆβ Analyze ββββββΆβ Claude Code ββββββΆβ Respond β
β Ticket β β Issue β β Solution β β or Route β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
Workflow Steps
1. Trigger: Webhook from support system (Zendesk, Intercom)
2. Analyze: Claude Code understands the issue
- "User reports: [issue]. Analyze and suggest solution."
3. Respond: Send AI response back via API
4. Escalate: Route complex issues to humans
---
``
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β Code ββββββΆβ Get Changed ββββββΆβ Claude Code ββββββΆβ Commit β
β Push β β Files β β Gen Docs β β Docs β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
Workflow Steps
1. Trigger: Webhook on code push to main
2. Identify: Get list of changed files
3. Generate: Claude Code generates documentation
- "Generate docs for this code. Include descriptions, params, examples."
4. Commit: Create commit with updated docs
5. PR: Optionally create a PR for review
---
``
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β Sentry ββββββΆβ Parse ββββββΆβ Claude Code ββββββΆβ Create PR β
β Alert β β Stack Trace β β Fix Bug β β + Notify β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
Workflow Steps
1. Trigger: Webhook from error monitoring (Sentry, Datadog)
2. Analyze: Parse error stack trace
3. Fix: Claude Code analyzes and fixes
- "Error: [stack trace]. Analyze code and provide a fix."
4. Test: Run tests to validate
5. PR: Create pull request with fix
6. Notify: Alert team about automated fix
---
Build AI coding assistants on Telegram, Slack, Discord, or GitLab/GitHub.
Examples
π± Telegram Bot
1. Trigger: Telegram trigger on new message
2. Process: Claude Code handles coding question
3. Reply: Send response via Telegram node
π¬ Slack Bot
1. Trigger: Slack mention or slash command
2. Context: Fetch relevant code from repos (optional)
3. Respond: Post response to channel
π¦ GitLab/GitHub Bot
1. Trigger: Issue comment with keyword (e.g., /claude)
2. Analyze: Fetch issue context and code
3. Comment: Post Claude's analysis
---
`json`
{
"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 |
---
Control what Claude Code can do:
``
β
Allowed: Read, Glob, Grep
β Blocked: Bash(rm:*), Write(.env)
- 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)
---
`bash
git clone https://github.com/ThomasTartrau/n8n-nodes-claude-code-cli.git
cd n8n-nodes-claude-code-cli
npm install && npm run build
$3
`
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)
`$3
`bash
git checkout -b feature/amazing-feature
git commit -m 'feat: add amazing feature'
git push origin feature/amazing-feature
``---
MIT License - see LICENSE for details.
---