logo
0
0
WeChat Login
instructkr<no-contact@instruct.kr>
Publish Claude Code source snapshot from a single baseline commit

Claude Code — Leaked Source (2026-03-31)

On March 31, 2026, the full source code of Anthropic's Claude Code CLI was leaked via a .map file exposed in their npm registry.


How It Leaked

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!"

@Fried_rice, March 31, 2026

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.


Overview

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.

  • Leaked on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink (React for CLI)
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

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

Core Architecture

1. Tool System (src/tools/)

Every tool Claude Code can invoke is implemented as a self-contained module. Each tool defines its input schema, permission model, and execution logic.

ToolDescription
BashToolShell command execution
FileReadToolFile reading (images, PDFs, notebooks)
FileWriteToolFile creation / overwrite
FileEditToolPartial file modification (string replacement)
GlobToolFile pattern matching search
GrepToolripgrep-based content search
WebFetchToolFetch URL content
WebSearchToolWeb search
AgentToolSub-agent spawning
SkillToolSkill execution
MCPToolMCP server tool invocation
LSPToolLanguage Server Protocol integration
NotebookEditToolJupyter notebook editing
TaskCreateTool / TaskUpdateToolTask creation and management
SendMessageToolInter-agent messaging
TeamCreateTool / TeamDeleteToolTeam agent management
EnterPlanModeTool / ExitPlanModeToolPlan mode toggle
EnterWorktreeTool / ExitWorktreeToolGit worktree isolation
ToolSearchToolDeferred tool discovery
CronCreateToolScheduled trigger creation
RemoteTriggerToolRemote trigger
SleepToolProactive mode wait
SyntheticOutputToolStructured output generation

2. Command System (src/commands/)

User-facing slash commands invoked with / prefix.

CommandDescription
/commitCreate a git commit
/reviewCode review
/compactContext compression
/mcpMCP server management
/configSettings management
/doctorEnvironment diagnostics
/login / /logoutAuthentication
/memoryPersistent memory management
/skillsSkill management
/tasksTask management
/vimVim mode toggle
/diffView changes
/costCheck usage cost
/themeChange theme
/contextContext visualization
/pr_commentsView PR comments
/resumeRestore previous session
/shareShare session
/desktopDesktop app handoff
/mobileMobile app handoff

3. Service Layer (src/services/)

ServiceDescription
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.tsToken count estimation
teamMemorySync/Team memory synchronization

4. Bridge System (src/bridge/)

A bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the Claude Code CLI.

  • bridgeMain.ts — Bridge main loop
  • bridgeMessaging.ts — Message protocol
  • bridgePermissionCallbacks.ts — Permission callbacks
  • replBridge.ts — REPL session bridge
  • jwtUtils.ts — JWT-based authentication
  • sessionRunner.ts — Session execution management

5. Permission System (src/hooks/toolPermission/)

Checks 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.).

6. Feature Flags

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


Key Files in Detail

QueryEngine.ts (~46K lines)

The core engine for LLM API calls. Handles streaming responses, tool-call loops, thinking mode, retry logic, and token counting.

Tool.ts (~29K lines)

Defines base types and interfaces for all tools — input schemas, permission models, and progress state types.

commands.ts (~25K lines)

Manages registration and execution of all slash commands. Uses conditional imports to load different command sets per environment.

main.tsx

Commander.js-based CLI parser + React/Ink renderer initialization. At startup, parallelizes MDM settings, keychain prefetch, and GrowthBook initialization for faster boot.


Tech Stack

CategoryTechnology
RuntimeBun
LanguageTypeScript (strict)
Terminal UIReact + Ink
CLI ParsingCommander.js (extra-typings)
Schema ValidationZod v4
Code Searchripgrep (via GrepTool)
ProtocolsMCP SDK, LSP
APIAnthropic SDK
TelemetryOpenTelemetry + gRPC
Feature FlagsGrowthBook
AuthOAuth 2.0, JWT, macOS Keychain

Notable Design Patterns

Parallel Prefetch

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()

Lazy Loading

Heavy modules (OpenTelemetry ~400KB, gRPC ~700KB) are deferred via dynamic import() until actually needed.

Agent Swarms

Sub-agents are spawned via AgentTool, with coordinator/ handling multi-agent orchestration. TeamCreateTool enables team-level parallel work.

Skill System

Reusable workflows defined in skills/ and executed through SkillTool. Users can add custom skills.

Plugin Architecture

Built-in and third-party plugins are loaded through the plugins/ subsystem.


Disclaimer

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.

About

https://github.com/instructkr/claude-code

Language
TypeScript100%
JavaScript0%