A comprehensive reverse-engineering and architectural documentation of Claude Code, Anthropic's official CLI tool for interacting with Claude from the terminal.
Claude Code is a production-grade TypeScript application running on the Bun runtime — ~512,000 lines of source across ~1,900 files, shipped as a single ESM bundle built with esbuild.
CLI Entry (cli.tsx)
|
Initialization
(init.ts + main.tsx)
|
+-------------+-------------+
| |
Interactive REPL Non-Interactive
(React/Ink TUI) (--print pipeline)
| |
+-------------+-------------+
|
Query Engine
(QueryEngine.ts)
|
+----------------+----------------+
| | |
Claude API Tool Execution Context Assembly
(services/api) (services/tools) (context.ts)
| |
| +----------+----------+
| | | |
| Built-in MCP Tools Plugin Tools
| Tools (MCPTool) (plugins/)
| (tools/)
|
+-----+------+
| | |
Direct Bedrock Vertex
API AWS Google
| Document | Description |
|---|---|
| architecture.md | Core architecture overview — pipeline, query engine, tool system, permissions, UI |
| architecture/ | 14-part deep-dive series covering every major subsystem |
| tools.md | Complete catalog of all ~40 agent tools |
| commands.md | Complete catalog of all slash commands |
| subsystems.md | Detailed docs for bridge, MCP, permissions, plugins, skills, tasks, memory, voice |
| bridge.md | Deep-dive into VS Code / JetBrains IDE integration layer |
| exploration-guide.md | How to navigate and study the source code |
The architecture/ directory contains a 14-part series:
| # | Section | Topics |
|---|---|---|
| 00 | Overview | Tech stack, design decisions, repo stats |
| 01 | Entry & Bootstrap | CLI entry, init sequence, session lifecycle |
| 02 | Query Engine | LLM API calls, token budgeting, retry strategy |
| 03 | Tool System | 44 built-in tools, concurrency model, BashTool/AgentTool |
| 04 | Commands & Skills | 89 slash commands, skill system, bundled skills |
| 05 | Permissions & Security | Permission model, hooks, enterprise policies |
| 06 | Terminal Renderer | Custom React reconciler, flexbox, ANSI protocol |
| 07 | MCP Integration | MCP client/server, 7 transports, tool normalization |
| 08 | Agent Coordination | Sub-agents, fork optimization, worktree isolation |
| 09 | State Management | AppState, session persistence, memory system |
| 10 | Build System | esbuild pipeline, feature flags, Docker, CI/CD |
| 11 | Web Frontend | Next.js app, browser terminal, collaboration |
| 12 | Configuration | Settings hierarchy, env vars, hot-reloading, CLAUDE.md |
| 13 | Services & Integrations | OAuth, LSP, telemetry, plugins, voice, bridge |
- React for the terminal — The entire UI is built with React + Ink, making it a fully reactive CLI with components, hooks, and state management
- Tool-call loops — The query engine executes LLM-requested tools and feeds results back in a loop until the model is done
- Permission layering — Enterprise MDM policies > project settings > user settings, with hook-based enforcement
- Single-bundle shipping — Everything compiles to one
dist/cli.mjsvia esbuild - Multi-provider API — Supports Direct API, AWS Bedrock, and Google Vertex backends
MIT — Copyright (c) 2026 DigitizingInc