Description
_ / _| | | | / _| | | | | | | | | | | | | | | | |/|/ | | / /| | | |/|/| |_| | (| | || | (| | / | || () | (_| | / ||,|,|,|| / ,|__|β‘ 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 --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:
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:
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:
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.
3. Authenticate
docker exec -it claude-code-runner claude login
Follow the browser prompts to complete authentication.
4. Configure n8n credentials
| Parameter | Value |
|-----------|-------|
| Connection Type | Docker |
| Container Name | claude-code-runner |/workspace
| Working Directory | |
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
Or use git worktree for multiple branches
Option 2: Mount existing projects
volumes:
- /path/to/your/project:/workspace/project-name
MCP 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 login
n8n Credentials:
| Parameter | Value |
|-----------|-------|
| Connection Type | SSH |
| Host | Your VM IP |
| Port | 22 |privateKey
| Auth Method | |
---
βοΈ 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
- Prompt (required): Instruction for Claude Code
- Context Files: File paths to include
- Additional Directories: Directory paths
- Prompt (required): Follow-up message
- Session ID (resume only): Previous session ID
Execute with Context
Continue / Resume Session
---
π‘ Use Cases
π MR/PR Code Review Agent
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β 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 Assistant
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β 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
---
π Auto Documentation
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β 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
---
π Auto Bug Fixing
βββββββββββββββ ββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β 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
---
π€ Cloud Coding Bots
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
---
π€ 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
or home directoriesπ Recommended Security Settings
Disallow dangerous operations:
- Prevent file deletion - No sudo access - Protect secrets---
π€ 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 buildStart n8n + claude-code-runner for testing
docker compose -f docker/development/docker-compose.yml up -d --buildAuthenticate claude-code-runner
docker exec -it claude-code-runner claude loginAccess n8n at http://localhost:5678
Docker 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.
---