MCPcopy
hub / github.com/codeaashu/claude-code

github.com/codeaashu/claude-code @main sqlite

repository ↗ · DeepWiki ↗
13,705 symbols 49,396 edges 2,094 files 1,659 documented · 12%
README

Claude Code — Leaked Source

The full source code of Anthropic's Claude Code CLI, leaked on March 31, 2026

TypeScript Bun React + Ink Files MCP Server npm Twitter Follow

The original unmodified leaked source is preserved in the backup branch.


Table of Contents


How It Leaked

Chaofan Shou (@Fried_rice) discovered that the published npm package for Claude Code included a .map file referencing the full, unobfuscated TypeScript source — downloadable as a zip from Anthropic's R2 storage bucket.

"Claude code source code has been leaked via a map file in their npm registry!"

@Fried_rice, March 31, 2026


What Is Claude Code?

Claude Code is Anthropic's official CLI tool for interacting with Claude directly from the terminal — editing files, running commands, searching codebases, managing git workflows, and more. This repository contains the leaked src/ directory.

Leaked 2026-03-31
Language TypeScript (strict)
Runtime Bun
Terminal UI React + Ink
Scale ~1,900 files · 512,000+ lines of code

� Documentation

For in-depth guides, see the docs/ directory:

Guide Description
Architecture Core pipeline, startup sequence, state management, rendering, data flow
Tools Reference Complete catalog of all ~40 agent tools with categories and permission model
Commands Reference All ~85 slash commands organized by category
Subsystems Guide Deep dives into Bridge, MCP, Permissions, Plugins, Skills, Tasks, Memory, Voice
Exploration Guide How to navigate the codebase — study paths, grep patterns, key files

Also see: CONTRIBUTING.md · MCP Server README


�🔍 Explore with MCP Server

This repo ships an MCP server that lets any MCP-compatible client (Claude Code, Claude Desktop, VS Code Copilot, Cursor) explore the full source interactively.

Install from npm

The MCP server is published as warrioraashuu-codemaster on npm — no need to clone the repo:

# Claude Code
claude mcp add warrioraashuu-codemaster -- npx -y warrioraashuu-codemaster

One-liner setup (from source)

git clone https://github.com/codeaashu/claude-code.git ~/claude-code \
  && cd ~/claude-code/mcp-server \
  && npm install && npm run build \
  && claude mcp add claude-code-explorer -- node ~/claude-code/mcp-server/dist/index.js

Step-by-step setup

# 1. Clone the repo
git clone https://github.com/codeaashu/claude-code.git
cd claude-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/mcp-server/dist/index.js

Replace /absolute/path/to/claude-code with your actual clone path.

VS Code / Cursor / Claude Desktop config

VS Code — add to .vscode/mcp.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:

{
  "mcpServers": {
    "claude-code-explorer": {
      "command": "node",
      "args": ["/absolute/path/to/claude-code/mcp-server/dist/index.js"],
      "env": { "CLAUDE_CODE_SRC_ROOT": "/absolute/path/to/claude-code/src" }
    }
  }
}

Cursor — add to ~/.cursor/mcp.json (same format as Claude Desktop).

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

# 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:

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
Language TypeScript

Extension points exported contracts — how you extend this code

AuthAdapter (Interface)
(no doc) [6 implementers]
src/server/web/auth/adapter.ts
IParsedCommand (Interface)
(no doc) [4 implementers]
src/utils/bash/ParsedCommand.ts
SystemMessageBase (Interface)
Base fields shared by all system messages.
src/types/message.ts
WorkerTask (Interface)
* Lightweight web worker pool. Keeps a fixed number of workers alive * and queues tasks when all workers are busy.
web/lib/performance/worker-pool.ts
Props (Interface)
(no doc)
src/components/ContextVisualization.tsx
InstallProps (Interface)
(no doc)
src/commands/install.tsx
Diagnostic (Interface)
(no doc)
src/services/diagnosticTracking.ts
Plugin (Interface)
(no doc)
scripts/types.d.ts

Core symbols most depended-on inside this repo

push
called by 2768
src/server/web/public/terminal.js
logForDebugging
called by 2740
src/utils/debug.ts
logEvent
called by 1088
src/services/analytics/index.ts
feature
called by 935
src/shims/bun-bundle.ts
get
called by 788
web/lib/api/conversations.ts
logError
called by 623
src/utils/log.ts
max
called by 521
src/utils/fileStateCache.ts
has
called by 438
src/server/web/public/terminal.js

Shape

Function 10,978
Method 2,070
Class 334
Interface 322
Enum 1

Languages

TypeScript100%

Modules by API surface

src/server/web/public/terminal.js979 symbols
src/bootstrap/state.ts212 symbols
src/utils/sessionStorage.ts156 symbols
src/native-ts/yoga-layout/index.ts144 symbols
src/utils/messages.ts122 symbols
src/utils/Cursor.ts105 symbols
src/utils/bash/bashParser.ts84 symbols
src/utils/attachments.ts74 symbols
src/utils/auth.ts69 symbols
src/utils/hooks.ts67 symbols
src/services/mcp/client.ts67 symbols
src/utils/sandbox/sandbox-adapter.ts59 symbols

Dependencies from manifests, versioned

@anthropic-ai/sdk0.39.0 · 1×
@biomejs/biome1.9.0 · 1×
@commander-js/extra-typings13.1.0 · 1×
@modelcontextprotocol/sdk1.12.1 · 1×
@next/bundle-analyzer14.2.0 · 1×
@opentelemetry/api1.9.0 · 1×
@opentelemetry/api-logs0.57.0 · 1×
@opentelemetry/core1.30.0 · 1×
@opentelemetry/sdk-logs0.57.0 · 1×
@opentelemetry/sdk-metrics1.30.0 · 1×
@opentelemetry/sdk-trace-base1.30.0 · 1×

For agents

$ claude mcp add claude-code \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact