Content
<div align="center">
# Claude Code Source Snapshot
**An exploratory mirror of a source snapshot reportedly exposed via published source maps on March 31, 2026**
[](#tech-stack)
[](#tech-stack)
[](#directory-structure)
[](#-explore-with-mcp-server)
</div>
> The raw imported snapshot is preserved in this repository's [`backup` branch](https://github.com/muhammadhaseebiqbal-dev/claude-code-leak-source-code/tree/backup). The `main` branch contains added documentation, tooling, and repository metadata.
---
## Table of Contents
- [The Story: How the Source Code Leaked](#the-story-how-the-source-code-leaked)
- [Full Breakdown of Code Findings](#full-breakdown-of-code-findings)
- [What Is Claude Code?](#what-is-claude-code)
- [Documentation](#-documentation)
- [Explore with MCP Server](#-explore-with-mcp-server)
- [Directory Structure](#directory-structure)
- [Architecture](#architecture)
- [Tool System](#1-tool-system)
- [Command System](#2-command-system)
- [Service Layer](#3-service-layer)
- [Bridge System](#4-bridge-system)
- [Permission System](#5-permission-system)
- [Feature Flags](#6-feature-flags)
- [Key Files](#key-files)
- [Tech Stack](#tech-stack)
- [Design Patterns](#design-patterns)
- [GitPretty Setup](#gitpretty-setup)
- [Contributing](#contributing)
- [Disclaimer](#disclaimer)
---
## The Story: How the Source Code Leaked
On March 31, 2026, the developer community was stunned when the entire uncompiled TypeScript source code for Anthropic's flagship CLI tool, Claude Code, was exposed to the public. The leak wasn't the result of a sophisticated hack or an insider threat, but a simple build configuration oversight.
Security researcher [Chaofan Shou (@Fried_rice)](https://x.com/Fried_rice) discovered that the officially published npm registry package for Claude Code accidentally included a `.map` (source map) file. This file contained a direct reference to Anthropic's R2 storage bucket, allowing anyone to download a zip archive containing the full, unobfuscated TypeScript source code of the project.
> **"Claude code source code has been leaked via a map file in their npm registry!"**
>
> — [@Fried_rice, March 31, 2026](https://x.com/Fried_rice/status/2038894956459290963)
The leaked code revealed a massive, highly sophisticated terminal application containing over 512,000 lines of code across roughly 1,900 files. It gave developers an unprecedented look into how one of the world's leading AI labs builds internal tooling, Agent Swarms, and integrations with the Model Context Protocol (MCP).
---
## Full Breakdown of Code Findings
By analyzing the leaked repository, developers uncovered several fascinating architectural decisions and advanced systems powering Claude Code:
### 1. The Terminal is a React App
Perhaps the most surprising finding is that the entire CLI is built using **React and Ink**. Instead of traditional stdout printing, Claude Code functions identically to a modern React web app with hooks, contexts, and over 140 UI components—all rendering directly into the terminal interface using chalk for styling.
### 2. Bun Runtime & Dead Code Elimination
Instead of Node.js, Claude Code relies on the **Bun runtime**. This allows it to run TSX files natively without a separate transpilation step. The codebase makes heavy use of Bun's `bun:bundle` feature for dead-code elimination, stripping out unreleased features via flags like `PROACTIVE` (autonomous agent mode), `WORKFLOW_SCRIPTS`, and `VOICE_MODE`.
### 3. Agent Swarms and Multi-Agent Architecture
The code includes an advanced `QueryEngine.ts` (a massive ~46K line file) that handles LLM tool-calling loops. More importantly, it features an `AgentTool` and a `coordinator/` subsystem that allows Claude to spawn sub-agents to parallelize tasks. Agents can even communicate with each other using a `SendMessageTool` and form groups via a `TeamCreateTool`.
### 4. Comprehensive Tool & Command Ecosystem
Claude Code features around 40 advanced tools ranging from standard shell execution (`BashTool`) and file editing (`FileEditTool`), to powerful search modules (`GrepTool` powered by ripgrep). It also contains a robust command system with ~50 slash commands (like `/commit`, `/review`, `/mcp`), some of which return full React JSX components directly to the user's terminal to render diagnostics or UI screens.
### 5. IDE "Bridge" System
A `bridge/` subsystem acts as a bidirectional communication layer, securely connecting the CLI tool with IDE extensions (like VS Code and JetBrains) using JWT authentication, allowing the terminal agent to drive the editor and read its state.
---
## What Is Claude Code?
Claude Code is Anthropic's official CLI tool for interacting with Claude directly from the terminal. This leaked source code repository acts as a breakthrough artifact showing how modern LLM interfaces work: editing files, running commands, searching codebases, and managing git workflows using Model Context Protocol (MCP) and multi-agent systems.
This repository contains the complete source snapshot alongside newly added docs, MCP tooling, and repository metadata to help inspect it. Discover the power of agent swarms, terminal voice modes, and IDE bridges hidden deep in the React & Ink architecture!
| | |
|---|---|
| **Leaked Artifact** | 2026-03-31 |
| **Language** | TypeScript (strict) |
| **Runtime Architecture** | [Bun](https://bun.sh) |
| **Terminal UI Framework** | [React](https://react.dev) + [Ink](https://github.com/vadimdemedes/ink) |
| **Code Scale** | ~1,900 files · 512,000+ lines of codebase |
---
## Documentation
For in-depth guides, see the [`docs/`](docs/) directory:
| Guide | Description |
|-------|-------------|
| **[Architecture](docs/architecture.md)** | Core pipeline, startup sequence, state management, rendering, data flow |
| **[Tools Reference](docs/tools.md)** | Complete catalog of all ~40 agent tools with categories and permission model |
| **[Commands Reference](docs/commands.md)** | All ~85 slash commands organized by category |
| **[Subsystems Guide](docs/subsystems.md)** | Deep dives into Bridge, MCP, Permissions, Plugins, Skills, Tasks, Memory, Voice |
| **[Exploration Guide](docs/exploration-guide.md)** | How to navigate the codebase — study paths, grep patterns, key files |
Also see: [CONTRIBUTING.md](CONTRIBUTING.md) · [MCP Server README](mcp-server/README.md)
---
## Explore with MCP Server
This repo also ships an [MCP server](https://modelcontextprotocol.io/) that lets any MCP-compatible client (Claude Code, Claude Desktop, VS Code Copilot, Cursor) explore the snapshot interactively.
### Install from npm
The MCP server is published as [`claude-code-explorer-mcp`](https://www.npmjs.com/package/claude-code-explorer-mcp) on npm — no need to clone the repo:
```bash
# Claude Code
claude mcp add claude-code-explorer -- npx -y claude-code-explorer-mcp
```
### One-liner setup (from source)
```bash
git clone https://github.com/muhammadhaseebiqbal-dev/claude-code-leak-source-code.git ~/claude-code-source-code \
&& cd ~/claude-code-source-code/mcp-server \
&& npm install && npm run build \
&& claude mcp add claude-code-explorer -- node ~/claude-code-source-code/mcp-server/dist/index.js
```
<details>
<summary><strong>Step-by-step setup</strong></summary>
```bash
# 1. Clone the repo
git clone https://github.com/muhammadhaseebiqbal-dev/claude-code-leak-source-code.git
cd claude-code-source-code/mcp-server
# 2. Install & build
npm install && npm run build
# 3. Register with Claude Code
claude mcp add claude-code-explorer -- node /absolute/path/to/claude-code-source-code/mcp-server/dist/index.js
```
Replace `/absolute/path/to/claude-code-source-code` with your actual clone path.
</details>
<details>
<summary><strong>VS Code / Cursor / Claude Desktop config</strong></summary>
**VS Code** — add to `.vscode/mcp.json`:
```json
{
"servers": {
"claude-code-explorer": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/mcp-server/dist/index.js"],
"env": { "CLAUDE_CODE_SRC_ROOT": "${workspaceFolder}/src" }
}
}
}
```
**Claude Desktop** — add to your config file:
```json
{
"mcpServers": {
"claude-code-explorer": {
"command": "node",
"args": ["/absolute/path/to/claude-code-source-code/mcp-server/dist/index.js"],
"env": { "CLAUDE_CODE_SRC_ROOT": "/absolute/path/to/claude-code-source-code/src" }
}
}
}
```
**Cursor** — add to `~/.cursor/mcp.json` (same format as Claude Desktop).
</details>
### Available tools & prompts
| Tool | Description |
|------|-------------|
| `list_tools` | List all ~40 agent tools with source files |
| `list_commands` | List all ~50 slash commands with source files |
| `get_tool_source` | Read full source of any tool (e.g. BashTool, FileEditTool) |
| `get_command_source` | Read source of any slash command (e.g. review, mcp) |
| `read_source_file` | Read any file from `src/` by path |
| `search_source` | Grep across the entire source tree |
| `list_directory` | Browse `src/` directories |
| `get_architecture` | High-level architecture overview |
| Prompt | Description |
|--------|-------------|
| `explain_tool` | Deep-dive into how a specific tool works |
| `explain_command` | Understand a slash command's implementation |
| `architecture_overview` | Guided tour of the full architecture |
| `how_does_it_work` | Explain any subsystem (permissions, MCP, bridge, etc.) |
| `compare_tools` | Side-by-side comparison of two tools |
**Try asking:** *"How does the BashTool work?"* · *"Search for where permissions are checked"* · *"Show me the /review command source"*
### Custom source path / Remove
```bash
# Custom source location
claude mcp add claude-code-explorer -e CLAUDE_CODE_SRC_ROOT=/path/to/src -- node /path/to/mcp-server/dist/index.js
# Remove
claude mcp remove claude-code-explorer
```
---
## Directory Structure
```
src/
├── main.tsx # Entrypoint — Commander.js CLI parser + React/Ink renderer
├── QueryEngine.ts # Core LLM API caller (~46K lines)
├── Tool.ts # Tool type definitions (~29K lines)
├── commands.ts # Command registry (~25K lines)
├── tools.ts # Tool registry
├── context.ts # System/user context collection
├── cost-tracker.ts # Token cost tracking
│
├── tools/ # Agent tool implementations (~40)
├── commands/ # Slash command implementations (~50)
├── components/ # Ink UI components (~140)
├── services/ # External service integrations
├── hooks/ # React hooks (incl. permission checks)
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
├── screens/ # Full-screen UIs (Doctor, REPL, Resume)
│
├── bridge/ # IDE integration (VS Code, JetBrains)
├── coordinator/ # Multi-agent orchestration
├── plugins/ # Plugin system
├── skills/ # Skill system
├── server/ # Server mode
├── remote/ # Remote sessions
├── memdir/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
│
├── voice/ # Voice input
├── vim/ # Vim mode
├── keybindings/ # Keybinding configuration
├── schemas/ # Config schemas (Zod)
├── migrations/ # Config migrations
├── entrypoints/ # Initialization logic
├── query/ # Query pipeline
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite (Easter egg 🐣)
├── native-ts/ # Native TypeScript utils
├── outputStyles/ # Output styling
└── upstreamproxy/ # Proxy configuration
```
---
## Architecture
### 1. Tool System
> `src/tools/` — Every tool Claude can invoke is a self-contained module with its own input schema, permission model, and execution logic.
| Tool | Description |
|---|---|
| **File I/O** | |
| `FileReadTool` | Read files (images, PDFs, notebooks) |
| `FileWriteTool` | Create / overwrite files |
| `FileEditTool` | Partial modification (string replacement) |
| `NotebookEditTool` | Jupyter notebook editing |
| **Search** | |
| `GlobTool` | File pattern matching |
| `GrepTool` | ripgrep-based content search |
| `WebSearchTool` | Web search |
| `WebFetchTool` | Fetch URL content |
| **Execution** | |
| `BashTool` | Shell command execution |
| `SkillTool` | Skill execution |
| `MCPTool` | MCP server tool invocation |
| `LSPTool` | Language Server Protocol integration |
| **Agents & Teams** | |
| `AgentTool` | Sub-agent spawning |
| `SendMessageTool` | Inter-agent messaging |
| `TeamCreateTool` / `TeamDeleteTool` | Team management |
| `TaskCreateTool` / `TaskUpdateTool` | Task management |
| **Mode & State** | |
| `EnterPlanModeTool` / `ExitPlanModeTool` | Plan mode toggle |
| `EnterWorktreeTool` / `ExitWorktreeTool` | Git worktree isolation |
| `ToolSearchTool` | Deferred tool discovery |
| `SleepTool` | Proactive mode wait |
| `CronCreateTool` | Scheduled triggers |
| `RemoteTriggerTool` | Remote trigger |
| `SyntheticOutputTool` | Structured output generation |
### 2. Command System
> `src/commands/` — User-facing slash commands invoked with `/` in the REPL.
| Command | Description | | Command | Description |
|---|---|---|---|---|
| `/commit` | Git commit | | `/memory` | Persistent memory |
| `/review` | Code review | | `/skills` | Skill management |
| `/compact` | Context compression | | `/tasks` | Task management |
| `/mcp` | MCP server management | | `/vim` | Vim mode toggle |
| `/config` | Settings | | `/diff` | View changes |
| `/doctor` | Environment diagnostics | | `/cost` | Check usage cost |
| `/login` / `/logout` | Auth | | `/theme` | Change theme |
| `/context` | Context visualization | | `/share` | Share session |
| `/pr_comments` | PR comments | | `/resume` | Restore session |
| `/desktop` | Desktop handoff | | `/mobile` | Mobile handoff |
### 3. Service Layer
> `src/services/` — External integrations and core infrastructure.
| Service | Description |
|---|---|
| `api/` | Anthropic API client, file API, bootstrap |
| `mcp/` | Model Context Protocol connection & management |
| `oauth/` | OAuth 2.0 authentication |
| `lsp/` | Language Server Protocol manager |
| `analytics/` | GrowthBook feature flags & analytics |
| `plugins/` | Plugin loader |
| `compact/` | Conversation context compression |
| `extractMemories/` | Automatic memory extraction |
| `teamMemorySync/` | Team memory synchronization |
| `tokenEstimation.ts` | Token count estimation |
| `policyLimits/` | Organization policy limits |
| `remoteManagedSettings/` | Remote managed settings |
### 4. Bridge System
> `src/bridge/` — Bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the CLI.
Key files: `bridgeMain.ts` (main loop) · `bridgeMessaging.ts` (protocol) · `bridgePermissionCallbacks.ts` (permission callbacks) · `replBridge.ts` (REPL session) · `jwtUtils.ts` (JWT auth) · `sessionRunner.ts` (session execution)
### 5. Permission System
> `src/hooks/toolPermission/` — Checks permissions on every tool invocation.
Prompts the user for approval/denial or auto-resolves based on the configured permission mode: `default`, `plan`, `bypassPermissions`, `auto`, etc.
### 6. Feature Flags
Dead code elimination at build time via Bun's `bun:bundle`:
```typescript
import { feature } from 'bun:bundle'
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`
---
## Key Files
| File | Lines | Purpose |
|------|------:|---------|
| `QueryEngine.ts` | ~46K | Core LLM API engine — streaming, tool loops, thinking mode, retries, token counting |
| `Tool.ts` | ~29K | Base types/interfaces for all tools — input schemas, permissions, progress state |
| `commands.ts` | ~25K | Command registration & execution with conditional per-environment imports |
| `main.tsx` | — | CLI parser + React/Ink renderer; parallelizes MDM, keychain, and GrowthBook on startup |
---
## Tech Stack
| Category | Technology |
|---|---|
| Runtime | [Bun](https://bun.sh) |
| Language | TypeScript (strict) |
| Terminal UI | [React](https://react.dev) + [Ink](https://github.com/vadimdemedes/ink) |
| CLI Parsing | [Commander.js](https://github.com/tj/commander.js) (extra-typings) |
| Schema Validation | [Zod v4](https://zod.dev) |
| Code Search | [ripgrep](https://github.com/BurntSushi/ripgrep) (via GrepTool) |
| Protocols | [MCP SDK](https://modelcontextprotocol.io) · LSP |
| API | [Anthropic SDK](https://docs.anthropic.com) |
| Telemetry | OpenTelemetry + gRPC |
| Feature Flags | GrowthBook |
| Auth | OAuth 2.0 · JWT · macOS Keychain |
---
## Design Patterns
<details>
<summary><strong>Parallel Prefetch</strong> — Startup optimization</summary>
MDM settings, keychain reads, and API preconnect fire in parallel as side-effects before heavy module evaluation:
```typescript
// main.tsx
startMdmRawRead()
startKeychainPrefetch()
```
</details>
<details>
<summary><strong>Lazy Loading</strong> — Deferred heavy modules</summary>
OpenTelemetry (~400KB) and gRPC (~700KB) are loaded via dynamic `import()` only when needed.
</details>
<details>
<summary><strong>Agent Swarms</strong> — Multi-agent orchestration</summary>
Sub-agents spawn via `AgentTool`, with `coordinator/` handling orchestration. `TeamCreateTool` enables team-level parallel work.
</details>
<details>
<summary><strong>Skill System</strong> — Reusable workflows</summary>
Defined in `skills/` and executed through `SkillTool`. Users can add custom skills.
</details>
<details>
<summary><strong>Plugin Architecture</strong> — Extensibility</summary>
Built-in and third-party plugins loaded through the `plugins/` subsystem.
</details>
---
## GitPretty Setup
<details>
<summary>Show per-file emoji commit messages in GitHub's file UI</summary>
```bash
# Apply emoji commits
bash ./gitpretty-apply.sh .
# Optional: install hooks for future commits
bash ./gitpretty-apply.sh . --hooks
# Push as usual
git push origin main
```
</details>
---
## Contributing
Contributions to documentation, the MCP server, and exploration tooling are welcome. Changes to the archived snapshot under `src/` are not the default contribution path. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
> **Note:** The `src/` directory is the archived source snapshot and should generally remain unchanged.
---
## Disclaimer
This repository archives a source snapshot reportedly exposed via Anthropic's npm distribution on **2026-03-31**. It is provided for research, documentation, and exploratory tooling around the snapshot. The original Claude Code source remains the property of [Anthropic](https://www.anthropic.com), this is not an official release, and no rights to Anthropic's original code are granted by this repository. If you choose to use or redistribute any of the archived material, you are responsible for assessing the legal implications yourself. Contact [nichxbt](https://www.x.com/nichxbt) for any comments.
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.