Skip to main content
Agent commands. Your AI agent uses this node in workflows. You don’t configure it directly.
Experimental. This node is not extensively tested and may have unexpected behavior. Use with caution in production workflows.
The claude-code node runs agentic tasks using Claude Code’s capabilities. It can read files, write content, execute shell commands, and iterate on complex problems - useful for development, research, analysis, or any task needing file access and multi-step reasoning.
This node requires Claude Code CLI authentication or an Anthropic API key.

Parameters

Task parameters

ParameterTypeRequiredDefaultDescription
taskstrYes-Task description (max 10,000 chars)
contextstr/dictNo-Additional context for the task
output_schemadictNo-JSON schema for structured output

Execution parameters

ParameterTypeRequiredDefaultDescription
working_directorystrNoCurrent dirProject root directory
modelstrNoclaude-sonnet-4-5Claude model to use
allowed_toolslistNo["Read", "Write", "Edit", "Bash"]Permitted tools
max_turnsintNo50Maximum conversation turns (1-100)
max_thinking_tokensintNo8000Reasoning budget (1000-100000)
system_promptstrNo-Custom system instructions

Output

KeyTypeDescription
resultstr/dictResponse text or parsed schema dict
_claude_metadatadictExecution metadata (cost, duration, turns)
llm_usagedictToken usage metrics
_schema_errorstrJSON parse error (only if schema provided and parsing failed)

Metadata structure

{
  "total_cost_usd": 0.0234,
  "duration_ms": 3450,
  "duration_api_ms": 2800,
  "num_turns": 2,
  "session_id": "abc123",
  "usage": {
    "input_tokens": 1500,
    "output_tokens": 450,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  }
}

Authentication

Structured output

Use output_schema to get structured JSON responses:
{
  "id": "review",
  "type": "claude-code",
  "params": {
    "task": "Review this code for security issues",
    "context": "${code.content}",
    "output_schema": {
      "risk_level": {
        "type": "str",
        "description": "high, medium, or low"
      },
      "issues": {
        "type": "list",
        "description": "List of security issues found"
      },
      "score": {
        "type": "int",
        "description": "Security score 1-10"
      }
    }
  }
}
The response is automatically parsed and available as a dict:
${review.result.risk_level}  → "medium"
${review.result.issues}      → ["SQL injection risk", "Missing input validation"]
${review.result.score}       → 6

Schema field types

TypeDescription
strText string
intInteger number
boolBoolean value
listArray/list
dictObject/dictionary

Examples

Code generation

{
  "nodes": [
    {
      "id": "generate",
      "type": "claude-code",
      "params": {
        "task": "Write a Python function to calculate Fibonacci numbers",
        "max_turns": 1
      }
    }
  ]
}

Code review with structured output

{
  "nodes": [
    {
      "id": "read",
      "type": "read-file",
      "params": { "file_path": "src/auth.py" }
    },
    {
      "id": "review",
      "type": "claude-code",
      "params": {
        "task": "Review this authentication code",
        "context": "${read.content}",
        "output_schema": {
          "issues": { "type": "list", "description": "Problems found" },
          "suggestions": { "type": "list", "description": "Improvements" },
          "approved": { "type": "bool", "description": "Ready for production" }
        }
      }
    }
  ]
}

File modification

{
  "nodes": [
    {
      "id": "refactor",
      "type": "claude-code",
      "params": {
        "task": "Refactor the User class to use dataclasses",
        "working_directory": "/path/to/project",
        "allowed_tools": ["Read", "Write", "Edit"]
      }
    }
  ]
}

Tool permissions

Control what Claude can do with allowed_tools:
ToolCapability
ReadRead files
WriteCreate new files
EditModify existing files
BashExecute shell commands
For read-only analysis, use ["Read"]. For full capability, use all four (default).

Limitations

  • Restricted directories: Cannot use /, /etc, /usr, /bin, /sbin, /lib, /sys, /proc as working directory
  • Timeout: 5 minutes (300 seconds) default
  • Cost: More expensive than simple LLM calls - use for tasks that need file access and iteration

Error handling

ErrorCauseSolution
CLI not foundClaude Code not installednpm install -g @anthropic-ai/claude-code
Connection errorAuth issueRun claude auth login or set API key
TimeoutTask too complexIncrease max_turns or simplify task
Rate limitToo many requestsWait and retry
The node retries failures automatically (2 attempts, conservative for expensive API).