On March 31, 2026, the full source code of Anthropic's Claude Code CLI was leaked via a
.mapfile exposed in their npm registry.
Chaofan Shou (@Fried_rice) discovered the leak and posted it publicly:
"Claude code source code has been leaked via a map file in their npm registry!"
The source map file in the published npm package contained a reference to the full, unobfuscated TypeScript source, which was downloadable as a zip archive from Anthropic's R2 storage bucket.
Claude Code is Anthropic's official CLI tool that lets you interact with Claude directly from the terminal to perform software engineering tasks — editing files, running commands, searching codebases, managing git workflows, and more.
This repository contains the leaked src/ directory.
src/ ├── main.tsx # Entrypoint (Commander.js-based CLI parser) ├── commands.ts # Command registry ├── tools.ts # Tool registry ├── Tool.ts # Tool type definitions ├── QueryEngine.ts # LLM query engine (core Anthropic API caller) ├── context.ts # System/user context collection ├── cost-tracker.ts # Token cost tracking │ ├── commands/ # Slash command implementations (~50) ├── tools/ # Agent tool implementations (~40) ├── components/ # Ink UI components (~140) ├── hooks/ # React hooks ├── services/ # External service integrations ├── screens/ # Full-screen UIs (Doctor, REPL, Resume) ├── types/ # TypeScript type definitions ├── utils/ # Utility functions │ ├── bridge/ # IDE integration bridge (VS Code, JetBrains) ├── coordinator/ # Multi-agent coordinator ├── plugins/ # Plugin system ├── skills/ # Skill system ├── keybindings/ # Keybinding configuration ├── vim/ # Vim mode ├── voice/ # Voice input ├── remote/ # Remote sessions ├── server/ # Server mode ├── memdir/ # Memory directory (persistent memory) ├── tasks/ # Task management ├── state/ # State management ├── migrations/ # Config migrations ├── schemas/ # Config schemas (Zod) ├── entrypoints/ # Initialization logic ├── ink/ # Ink renderer wrapper ├── buddy/ # Companion sprite (Easter egg) ├── native-ts/ # Native TypeScript utils ├── outputStyles/ # Output styling ├── query/ # Query pipeline └── upstreamproxy/ # Proxy configuration
Every tool Claude Code can invoke is implemented as a self-contained module. Each tool defines its input schema, permission model, and execution logic.
| Tool | Description |
|---|---|
BashTool | Shell command execution |
FileReadTool | File reading (images, PDFs, notebooks) |
FileWriteTool | File creation / overwrite |
FileEditTool | Partial file modification (string replacement) |
GlobTool | File pattern matching search |
GrepTool | ripgrep-based content search |
WebFetchTool | Fetch URL content |
WebSearchTool | Web search |
AgentTool | Sub-agent spawning |
SkillTool | Skill execution |
MCPTool | MCP server tool invocation |
LSPTool | Language Server Protocol integration |
NotebookEditTool | Jupyter notebook editing |
TaskCreateTool / TaskUpdateTool | Task creation and management |
SendMessageTool | Inter-agent messaging |
TeamCreateTool / TeamDeleteTool | Team agent management |
EnterPlanModeTool / ExitPlanModeTool | Plan mode toggle |
EnterWorktreeTool / ExitWorktreeTool | Git worktree isolation |
ToolSearchTool | Deferred tool discovery |
CronCreateTool | Scheduled trigger creation |
RemoteTriggerTool | Remote trigger |
SleepTool | Proactive mode wait |
SyntheticOutputTool | Structured output generation |
User-facing slash commands invoked with / prefix.
| Command | Description |
|---|---|
/commit | Create a git commit |
/review | Code review |
/compact | Context compression |
/mcp | MCP server management |
/config | Settings management |
/doctor | Environment diagnostics |
/login / /logout | Authentication |
/memory | Persistent memory management |
/skills | Skill management |
/tasks | Task management |
/vim | Vim mode toggle |
/diff | View changes |
/cost | Check usage cost |
/theme | Change theme |
/context | Context visualization |
/pr_comments | View PR comments |
/resume | Restore previous session |
/share | Share session |
/desktop | Desktop app handoff |
/mobile | Mobile app handoff |
| Service | Description |
|---|---|
api/ | Anthropic API client, file API, bootstrap |
mcp/ | Model Context Protocol server connection and management |
oauth/ | OAuth 2.0 authentication flow |
lsp/ | Language Server Protocol manager |
analytics/ | GrowthBook-based feature flags and analytics |
plugins/ | Plugin loader |
compact/ | Conversation context compression |
policyLimits/ | Organization policy limits |
remoteManagedSettings/ | Remote managed settings |
extractMemories/ | Automatic memory extraction |
tokenEstimation.ts | Token count estimation |
teamMemorySync/ | Team memory synchronization |
A bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the Claude Code CLI.
bridgeMain.ts — Bridge main loopbridgeMessaging.ts — Message protocolbridgePermissionCallbacks.ts — Permission callbacksreplBridge.ts — REPL session bridgejwtUtils.ts — JWT-based authenticationsessionRunner.ts — Session execution managementChecks permissions on every tool invocation. Either prompts the user for approval/denial or automatically resolves based on the configured permission mode (default, plan, bypassPermissions, auto, etc.).
Dead code elimination via Bun's bun:bundle feature flags:
import { feature } from 'bun:bundle'
// Inactive code is completely stripped at build time
const voiceCommand = feature('VOICE_MODE')
? require('./commands/voice/index.js').default
: null
Notable flags: PROACTIVE, KAIROS, BRIDGE_MODE, DAEMON, VOICE_MODE, AGENT_TRIGGERS, MONITOR_TOOL
The core engine for LLM API calls. Handles streaming responses, tool-call loops, thinking mode, retry logic, and token counting.
Defines base types and interfaces for all tools — input schemas, permission models, and progress state types.
Manages registration and execution of all slash commands. Uses conditional imports to load different command sets per environment.
Commander.js-based CLI parser + React/Ink renderer initialization. At startup, parallelizes MDM settings, keychain prefetch, and GrowthBook initialization for faster boot.
| Category | Technology |
|---|---|
| Runtime | Bun |
| Language | TypeScript (strict) |
| Terminal UI | React + Ink |
| CLI Parsing | Commander.js (extra-typings) |
| Schema Validation | Zod v4 |
| Code Search | ripgrep (via GrepTool) |
| Protocols | MCP SDK, LSP |
| API | Anthropic SDK |
| Telemetry | OpenTelemetry + gRPC |
| Feature Flags | GrowthBook |
| Auth | OAuth 2.0, JWT, macOS Keychain |
Startup time is optimized by prefetching MDM settings, keychain reads, and API preconnect in parallel — before heavy module evaluation begins.
// main.tsx — fired as side-effects before other imports
startMdmRawRead()
startKeychainPrefetch()
Heavy modules (OpenTelemetry ~400KB, gRPC ~700KB) are deferred via dynamic import() until actually needed.
Sub-agents are spawned via AgentTool, with coordinator/ handling multi-agent orchestration. TeamCreateTool enables team-level parallel work.
Reusable workflows defined in skills/ and executed through SkillTool. Users can add custom skills.
Built-in and third-party plugins are loaded through the plugins/ subsystem.
This repository archives source code that was leaked from Anthropic's npm registry on 2026-03-31. All original source code is the property of Anthropic.