Skip to content

Uaghazade1/claude-code3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Claude Code β€” Source Code Archive

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. This repository preserves that snapshot for educational, security research, and software supply-chain analysis purposes.


How It Leaked

Security researcher Chaofan Shou (@Fried_rice) publicly reported the exposure:

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

β€” @Fried_rice, March 31, 2026

What happened: The published npm package included a .map file that referenced the full, unobfuscated TypeScript source. The source files were hosted on Anthropic's R2 storage bucket and were publicly downloadable as a zip archive. This is a classic source map exposure β€” a well-known supply-chain security risk where build artifacts leak developer-only source code into production packages.


What Is Claude Code

Claude Code is Anthropic's official CLI tool for interacting with Claude from the terminal. It performs software engineering tasks such as:

  • Editing files and running shell commands
  • Searching codebases (glob + ripgrep)
  • Managing git workflows (commits, PRs, branches)
  • Coordinating multi-agent workflows
  • Integrating with IDEs (VS Code, JetBrains) via a bridge
  • Connecting to external tools via MCP (Model Context Protocol)

Repository Info

Leaked on March 31, 2026
Language TypeScript (strict mode)
Runtime Bun
Terminal UI React + Ink
CLI Framework Commander.js
Scale ~1,900 files, 512,000+ lines of code

Directory Structure

src/
β”œβ”€β”€ main.tsx                  # CLI entrypoint (Commander.js parser + Ink renderer)
β”œβ”€β”€ commands.ts               # Slash command registry
β”œβ”€β”€ tools.ts                  # Tool registry
β”œβ”€β”€ Tool.ts                   # Tool type definitions & interfaces
β”œβ”€β”€ QueryEngine.ts            # Core LLM query engine (~46K lines)
β”œβ”€β”€ 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 (permissions, state)
β”œβ”€β”€ services/                 # External service integrations
β”‚   β”œβ”€β”€ api/                  #   Anthropic API client
β”‚   β”œβ”€β”€ mcp/                  #   MCP server management
β”‚   β”œβ”€β”€ oauth/                #   OAuth 2.0 auth
β”‚   β”œβ”€β”€ lsp/                  #   Language Server Protocol
β”‚   └── analytics/            #   GrowthBook feature flags
β”‚
β”œβ”€β”€ screens/                  # Full-screen UIs (Doctor, REPL, Resume)
β”œβ”€β”€ types/                    # TypeScript type definitions
β”œβ”€β”€ utils/                    # Utility functions
β”‚
β”œβ”€β”€ bridge/                   # IDE integration (VS Code, JetBrains)
β”œβ”€β”€ coordinator/              # Multi-agent orchestration
β”œβ”€β”€ plugins/                  # Plugin system
β”œβ”€β”€ skills/                   # Reusable skill workflows
β”œβ”€β”€ keybindings/              # Keybinding configuration
β”œβ”€β”€ vim/                      # Vim keybinding mode
β”œβ”€β”€ voice/                    # Voice input support
β”œβ”€β”€ remote/                   # Remote session management
β”œβ”€β”€ server/                   # Server mode
β”œβ”€β”€ memdir/                   # Persistent memory directory
β”œβ”€β”€ tasks/                    # Task management
β”œβ”€β”€ state/                    # State management
β”œβ”€β”€ migrations/               # Config migrations
β”œβ”€β”€ schemas/                  # Config schemas (Zod)
β”œβ”€β”€ entrypoints/              # Initialization & bootstrap logic
β”œβ”€β”€ ink/                      # Ink renderer wrapper
β”œβ”€β”€ buddy/                    # Companion sprite (Easter egg)
β”œβ”€β”€ native-ts/                # Native TypeScript utilities
β”œβ”€β”€ outputStyles/             # Output styling
β”œβ”€β”€ query/                    # Query pipeline
└── upstreamproxy/            # Proxy configuration

Core Architecture

1. Tool System (src/tools/)

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

Tool Description
BashTool Shell command execution
FileReadTool File reading (code, 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 invocation
SleepTool Proactive mode wait
SyntheticOutputTool Structured output generation

2. Command System (src/commands/)

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 window visualization
/pr_comments View PR comments
/resume Restore previous session
/share Share session
/desktop Desktop app handoff
/mobile Mobile app handoff

3. Service Layer (src/services/)

Service Description
api/ Anthropic API client, file API, bootstrap
mcp/ Model Context Protocol server connection & management
oauth/ OAuth 2.0 authentication flow
lsp/ Language Server Protocol manager
analytics/ GrowthBook-based feature flags & 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

4. Bridge System (src/bridge/)

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 auto-resolves based on 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

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 CLI parser + React/Ink renderer initialization. Parallelizes MDM settings, keychain prefetch, and GrowthBook initialization at startup for faster boot.


Tech Stack

Category Technology
Runtime Bun
Language TypeScript (strict)
Terminal UI React + Ink
CLI Parsing Commander.js (extra-typings)
Schema Validation Zod v4
Code Search ripgrep
Protocols MCP SDK, LSP
API Anthropic SDK
Telemetry OpenTelemetry + gRPC
Feature Flags GrowthBook
Auth OAuth 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, gRPC, analytics, feature-gated subsystems) are deferred via dynamic import() until actually needed, reducing cold-start time.

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/ are executed through SkillTool. Users can add custom skills for repeated tasks.

Plugin Architecture

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


Why This Repo Exists

This archive is maintained for:

  • Educational study β€” understanding how a production-grade agentic CLI is architected
  • Security research β€” analyzing supply-chain exposure risks (source map leaks, build artifact hygiene)
  • Software engineering analysis β€” studying real-world patterns in tool systems, permission models, and multi-agent orchestration
  • Defensive research β€” helping developers and security teams understand and prevent similar leaks in their own projects

Legal & Disclaimer

This repository is not affiliated with, endorsed by, or maintained by Anthropic PBC.

Ownership

All source code in this repository is the original intellectual property of Anthropic. This repository does not claim ownership, authorship, or rights over the code.

Purpose

This repository exists solely for educational, academic, and defensive security research purposes. It is maintained by an individual studying software supply-chain security and agentic developer tooling architecture.

Fair Use & Research

The code was made publicly available by Anthropic themselves through their npm registry. This repository preserves a snapshot of that public exposure for research and analysis purposes, consistent with:

  • Academic study of software architecture
  • Security research on supply-chain vulnerabilities
  • Analysis of build artifact and packaging hygiene

No Malicious Intent

This repository:

  • Does not encourage piracy, unauthorized use, or redistribution of Anthropic's products
  • Does not provide instructions for exploiting or misusing the code
  • Does not claim to be an official Anthropic product or resource
  • Is not used for commercial purposes

DMCA / Takedown

If you are an authorized representative of Anthropic and would like this repository removed, please open an issue or file a DMCA takedown request through GitHub's standard process. This repository will comply with any legitimate takedown request promptly.


Acknowledgments

About

Claude Code Snapshot for Research: All original source code is the property of Anthropic.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors