Claude Code Open Source?

  • Posted 4 hours ago by ryanthedev
  • 1 points
Today I learned that they ship the entire CLI with the agent SDK. It's all there...

Do we think this was a mistake? ----

node_modules/@anthropic-ai/claude-agent-sdk/cli.js.

  It's the bundled, minified CLI binary for Claude Code itself (the tool you're talking to right now).

  Key details:
  - Version: 2.1.71, built on 2026-03-06
  - ~13,800 lines of heavily minified/bundled JavaScript
  - Shebang: #!/usr/bin/env node — it's meant to be run as a CLI executable
  - Copyright: Anthropic PBC, with a cheeky note: "Want to see the unminified source? We're hiring!"
  - What it contains: The entire Claude Code CLI application bundled into a single file, including:
    - Onboarding/setup screens
    - Policy/managed settings loading
    - Debugging/inspector detection
    - UI rendering (using Ink/React for terminal UI)
    - Prefetching logic
    - Error handling and exit codes
    - The main entry point (main function) that starts the interactive Claude Code session

  Essentially, when you run claude in your terminal, this is the file that executes. The @anthropic-ai/claude-agent-sdk package ships it so you can
  programmatically invoke Claude Code's capabilities — the SDK wraps this CLI as its underlying engine.
--- Yes, the agent loop is in there. Here's what I can see from the minified code:

  1. i6z function — This is the in-process agent runner, which logs "Starting agent loop for ${agentId}". It sets up agent identity (agentId,
  parentSessionId, agentName, teamName, color, planMode) and runs the loop.
  2. l6z function — A poll loop for in-process teammate agents. It continuously checks for:
    - Pending user messages
    - Mailbox messages from other agents
    - Shutdown requests
    - New tasks from the task list
  3. Main loop model orchestration — There's extensive logic around mainLoopModel that handles:
    - Model selection based on permission mode (plan mode uses Opus, etc.)
    - System prompt assembly (tools, MCP instructions, skills, memory, changed files)
    - Token usage tracking and budget management
    - Compaction (context window management when conversations get long)
  4. Multi-agent coordination — The loop supports a team-based agent architecture with messaging between agents (agentName, teamName, teamLead, mailboxes,
  shutdown requests).

  So yes — the full agentic loop (prompt → LLM call → tool execution → repeat) is bundled in this file, just heavily minified. It's the same loop powering
  this conversation right now.
--- Full system prompts are right there in the bundle as plain text strings. Here's what's embedded:

  Three identity variants:

  - F78 — CLI mode: "You are Claude Code, Anthropic's official CLI for Claude."
  - EtA — SDK mode: "You are Claude Code, Anthropic's official CLI for Claude, running within the Claude Agent SDK."
  - LtA — Agent mode: "You are a Claude agent, built on Anthropic's Claude Agent SDK."

  Full system prompt sections (line ~6213-6217):

  The ULz function assembles the complete system prompt, including all the sections you'd recognize:

  - "# Doing tasks" — instructions about software engineering, not proposing changes to unread code, avoiding over-engineering, OWASP security, etc.
  - Over-engineering rules — "Don't add features beyond what was asked", "Don't add error handling for scenarios that can't happen", "Don't create helpers
  for one-time operations"
  - Help/feedback info — links to GitHub issues
  - Tool usage instructions — Read vs cat, Edit vs sed, etc.

  Output style variants (line ~6517):

  Built-in output styles like Explanatory and Learning with their own prompt overlays.

  Also present:

  - The classifier/safety prompt (~line 2844) for security-relevant harm prevention
  - Subagent instructions like "You ARE the fork. Do NOT spawn sub-agents"
  - Git commit/PR workflow prompts
  - Memory system instructions

0 comments