✨ milady
This commit is contained in:
487
README.md
487
README.md
@@ -1,34 +1,182 @@
|
||||
> **Note:** The original unmodified leaked source is preserved in the [`backup` branch](https://github.com/nirholas/claude-code/tree/backup).
|
||||
<div align="center">
|
||||
|
||||
# Claude Code — Leaked Source (2026-03-31)
|
||||
# Claude Code — Leaked Source
|
||||
|
||||
> **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.
|
||||
**The full source code of Anthropic's Claude Code CLI, leaked on March 31, 2026**
|
||||
|
||||
[](#tech-stack)
|
||||
[](#tech-stack)
|
||||
[](#tech-stack)
|
||||
[](#directory-structure)
|
||||
[](#-explore-with-mcp-server)
|
||||
|
||||
> The original unmodified leaked source is preserved in the [`backup` branch](https://github.com/nirholas/claude-code/tree/backup).
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [How It Leaked](#how-it-leaked)
|
||||
- [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)
|
||||
|
||||
---
|
||||
|
||||
## How It Leaked
|
||||
|
||||
[Chaofan Shou (@Fried_rice)](https://x.com/Fried_rice) discovered the leak and posted it publicly:
|
||||
[Chaofan Shou (@Fried_rice)](https://x.com/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](https://x.com/Fried_rice/status/2038894956459290963)
|
||||
|
||||
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.
|
||||
---
|
||||
|
||||
## 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](https://bun.sh) |
|
||||
| **Terminal UI** | [React](https://react.dev) + [Ink](https://github.com/vadimdemedes/ink) |
|
||||
| **Scale** | ~1,900 files · 512,000+ lines of code |
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
## <EFBFBD> Documentation
|
||||
|
||||
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.
|
||||
For in-depth guides, see the [`docs/`](docs/) directory:
|
||||
|
||||
This repository contains the leaked `src/` 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 |
|
||||
|
||||
- **Leaked on**: 2026-03-31
|
||||
- **Language**: TypeScript
|
||||
- **Runtime**: Bun
|
||||
- **Terminal UI**: React + [Ink](https://github.com/vadimdemedes/ink) (React for CLI)
|
||||
- **Scale**: ~1,900 files, 512,000+ lines of code
|
||||
Also see: [CONTRIBUTING.md](CONTRIBUTING.md) · [MCP Server README](mcp-server/README.md)
|
||||
|
||||
---
|
||||
|
||||
## <20>🔍 Explore with MCP Server
|
||||
|
||||
This repo ships an [MCP server](https://modelcontextprotocol.io/) that lets any MCP-compatible client (Claude Code, Claude Desktop, VS Code Copilot, Cursor) explore the full source interactively.
|
||||
|
||||
### One-liner setup
|
||||
|
||||
```bash
|
||||
git clone https://github.com/nirholas/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
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary><strong>Step-by-step setup</strong></summary>
|
||||
|
||||
```bash
|
||||
# 1. Clone the repo
|
||||
git clone https://github.com/nirholas/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.
|
||||
|
||||
</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/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).
|
||||
|
||||
</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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -36,173 +184,158 @@ This repository contains the leaked `src/` directory.
|
||||
|
||||
```
|
||||
src/
|
||||
├── main.tsx # Entrypoint (Commander.js-based CLI parser)
|
||||
├── commands.ts # Command registry
|
||||
├── 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
|
||||
├── 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)
|
||||
├── commands/ # Slash command implementations (~50)
|
||||
├── components/ # Ink UI components (~140)
|
||||
├── hooks/ # React hooks
|
||||
├── services/ # External service integrations
|
||||
├── screens/ # Full-screen UIs (Doctor, REPL, Resume)
|
||||
├── hooks/ # React hooks (incl. permission checks)
|
||||
├── types/ # TypeScript type definitions
|
||||
├── utils/ # Utility functions
|
||||
├── screens/ # Full-screen UIs (Doctor, REPL, Resume)
|
||||
│
|
||||
├── bridge/ # IDE integration bridge (VS Code, JetBrains)
|
||||
├── coordinator/ # Multi-agent coordinator
|
||||
├── bridge/ # IDE integration (VS Code, JetBrains)
|
||||
├── coordinator/ # Multi-agent orchestration
|
||||
├── 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)
|
||||
├── remote/ # Remote sessions
|
||||
├── memdir/ # Persistent memory directory
|
||||
├── tasks/ # Task management
|
||||
├── state/ # State management
|
||||
├── migrations/ # Config migrations
|
||||
│
|
||||
├── 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)
|
||||
├── buddy/ # Companion sprite (Easter egg 🐣)
|
||||
├── native-ts/ # Native TypeScript utils
|
||||
├── outputStyles/ # Output styling
|
||||
├── query/ # Query pipeline
|
||||
└── upstreamproxy/ # Proxy configuration
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Core Architecture
|
||||
## Architecture
|
||||
|
||||
### 1. Tool System (`src/tools/`)
|
||||
### 1. Tool System
|
||||
|
||||
Every tool Claude Code can invoke is implemented as a self-contained module. Each tool defines its input schema, permission model, and execution logic.
|
||||
> `src/tools/` — Every tool Claude can invoke is a self-contained module with its own 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 |
|
||||
| **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 |
|
||||
| `WebFetchTool` | Fetch URL content |
|
||||
| `WebSearchTool` | Web search |
|
||||
| `AgentTool` | Sub-agent spawning |
|
||||
| `WebFetchTool` | Fetch URL content |
|
||||
| **Execution** | |
|
||||
| `BashTool` | Shell command execution |
|
||||
| `SkillTool` | Skill execution |
|
||||
| `MCPTool` | MCP server tool invocation |
|
||||
| `LSPTool` | Language Server Protocol integration |
|
||||
| `NotebookEditTool` | Jupyter notebook editing |
|
||||
| `TaskCreateTool` / `TaskUpdateTool` | Task creation and management |
|
||||
| **Agents & Teams** | |
|
||||
| `AgentTool` | Sub-agent spawning |
|
||||
| `SendMessageTool` | Inter-agent messaging |
|
||||
| `TeamCreateTool` / `TeamDeleteTool` | Team agent management |
|
||||
| `TeamCreateTool` / `TeamDeleteTool` | Team management |
|
||||
| `TaskCreateTool` / `TaskUpdateTool` | Task management |
|
||||
| **Mode & State** | |
|
||||
| `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 |
|
||||
| `CronCreateTool` | Scheduled triggers |
|
||||
| `RemoteTriggerTool` | Remote trigger |
|
||||
| `SyntheticOutputTool` | Structured output generation |
|
||||
|
||||
### 2. Command System (`src/commands/`)
|
||||
### 2. Command System
|
||||
|
||||
User-facing slash commands invoked with `/` prefix.
|
||||
> `src/commands/` — User-facing slash commands invoked with `/` in the REPL.
|
||||
|
||||
| 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 |
|
||||
| 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/`)
|
||||
### 3. Service Layer
|
||||
|
||||
> `src/services/` — External integrations and core infrastructure.
|
||||
|
||||
| Service | Description |
|
||||
|---|---|
|
||||
| `api/` | Anthropic API client, file API, bootstrap |
|
||||
| `mcp/` | Model Context Protocol server connection and management |
|
||||
| `oauth/` | OAuth 2.0 authentication flow |
|
||||
| `mcp/` | Model Context Protocol connection & management |
|
||||
| `oauth/` | OAuth 2.0 authentication |
|
||||
| `lsp/` | Language Server Protocol manager |
|
||||
| `analytics/` | GrowthBook-based feature flags and analytics |
|
||||
| `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 |
|
||||
| `extractMemories/` | Automatic memory extraction |
|
||||
| `tokenEstimation.ts` | Token count estimation |
|
||||
| `teamMemorySync/` | Team memory synchronization |
|
||||
|
||||
### 4. Bridge System (`src/bridge/`)
|
||||
### 4. Bridge System
|
||||
|
||||
A bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the Claude Code CLI.
|
||||
> `src/bridge/` — Bidirectional communication layer connecting IDE extensions (VS Code, JetBrains) with the 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
|
||||
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/`)
|
||||
### 5. Permission System
|
||||
|
||||
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.).
|
||||
> `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 via Bun's `bun:bundle` feature flags:
|
||||
Dead code elimination at build time via Bun's `bun:bundle`:
|
||||
|
||||
```typescript
|
||||
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`
|
||||
Notable flags: `PROACTIVE` · `KAIROS` · `BRIDGE_MODE` · `DAEMON` · `VOICE_MODE` · `AGENT_TRIGGERS` · `MONITOR_TOOL`
|
||||
|
||||
---
|
||||
|
||||
## Key Files in Detail
|
||||
## 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-based CLI parser + React/Ink renderer initialization. At startup, parallelizes MDM settings, keychain prefetch, and GrowthBook initialization for faster boot.
|
||||
| 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 |
|
||||
|
||||
---
|
||||
|
||||
@@ -216,151 +349,89 @@ Commander.js-based CLI parser + React/Ink renderer initialization. At startup, p
|
||||
| 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 |
|
||||
| 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 |
|
||||
| Auth | OAuth 2.0 · JWT · macOS Keychain |
|
||||
|
||||
---
|
||||
|
||||
## Notable Design Patterns
|
||||
## Design Patterns
|
||||
|
||||
### Parallel Prefetch
|
||||
<details>
|
||||
<summary><strong>Parallel Prefetch</strong> — Startup optimization</summary>
|
||||
|
||||
Startup time is optimized by prefetching MDM settings, keychain reads, and API preconnect in parallel — before heavy module evaluation begins.
|
||||
MDM settings, keychain reads, and API preconnect fire in parallel as side-effects before heavy module evaluation:
|
||||
|
||||
```typescript
|
||||
// main.tsx — fired as side-effects before other imports
|
||||
// main.tsx
|
||||
startMdmRawRead()
|
||||
startKeychainPrefetch()
|
||||
```
|
||||
|
||||
### Lazy Loading
|
||||
</details>
|
||||
|
||||
Heavy modules (OpenTelemetry ~400KB, gRPC ~700KB) are deferred via dynamic `import()` until actually needed.
|
||||
<details>
|
||||
<summary><strong>Lazy Loading</strong> — Deferred heavy modules</summary>
|
||||
|
||||
### Agent Swarms
|
||||
OpenTelemetry (~400KB) and gRPC (~700KB) are loaded via dynamic `import()` only when needed.
|
||||
|
||||
Sub-agents are spawned via `AgentTool`, with `coordinator/` handling multi-agent orchestration. `TeamCreateTool` enables team-level parallel work.
|
||||
</details>
|
||||
|
||||
### Skill System
|
||||
<details>
|
||||
<summary><strong>Agent Swarms</strong> — Multi-agent orchestration</summary>
|
||||
|
||||
Reusable workflows defined in `skills/` and executed through `SkillTool`. Users can add custom skills.
|
||||
Sub-agents spawn via `AgentTool`, with `coordinator/` handling orchestration. `TeamCreateTool` enables team-level parallel work.
|
||||
|
||||
### Plugin Architecture
|
||||
</details>
|
||||
|
||||
Built-in and third-party plugins are loaded through the `plugins/` subsystem.
|
||||
<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 (Per-File Pretty Commits)
|
||||
## GitPretty Setup
|
||||
|
||||
If you want GitHub's file UI to show visually distinct commit messages per file, use the helper script in this repo:
|
||||
<details>
|
||||
<summary>Show per-file emoji commit messages in GitHub's file UI</summary>
|
||||
|
||||
```bash
|
||||
# Apply emoji commits
|
||||
bash ./gitpretty-apply.sh .
|
||||
```
|
||||
|
||||
This will:
|
||||
|
||||
1. Clone `gitpretty` into `~/.gitpretty` (first run only)
|
||||
2. Make scripts executable
|
||||
3. Run `emoji-file-commits.sh` against this repo
|
||||
|
||||
Optional: install auto-emoji hooks for future commits:
|
||||
|
||||
```bash
|
||||
# Optional: install hooks for future commits
|
||||
bash ./gitpretty-apply.sh . --hooks
|
||||
```
|
||||
|
||||
After running, push as usual:
|
||||
|
||||
```bash
|
||||
# Push as usual
|
||||
git push origin main
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## Use It in Claude Code (MCP Server)
|
||||
## Contributing
|
||||
|
||||
This repo includes an MCP server that lets you explore the Claude Code source directly from any Claude session. One command to set it up:
|
||||
Contributions to documentation, the MCP server, and exploration tooling are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
||||
|
||||
### Quick Start
|
||||
|
||||
```bash
|
||||
# Clone the repo (if you haven't already)
|
||||
git clone https://github.com/nirholas/claude-code.git
|
||||
cd claude-code/mcp-server
|
||||
|
||||
# Install dependencies and build
|
||||
npm install && npm run build
|
||||
|
||||
# Add to Claude Code (run from the repo root)
|
||||
claude mcp add claude-code-explorer -- node /absolute/path/to/claude-code/mcp-server/dist/index.js
|
||||
```
|
||||
|
||||
Replace `/absolute/path/to/claude-code` with the actual path where you cloned the repo.
|
||||
|
||||
**Or as a single copy-paste block** (clones, builds, and registers in one go):
|
||||
|
||||
```bash
|
||||
git clone https://github.com/nirholas/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
|
||||
```
|
||||
|
||||
### What You Get
|
||||
|
||||
Once added, Claude has access to these tools for exploring the codebase:
|
||||
|
||||
| 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 |
|
||||
|
||||
Plus **prompts** for guided exploration:
|
||||
|
||||
- `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
|
||||
|
||||
### Example Usage
|
||||
|
||||
After adding the MCP server, just ask Claude naturally:
|
||||
|
||||
> "How does the BashTool work?"
|
||||
> "Search for where permissions are checked"
|
||||
> "Show me the /review command source"
|
||||
> "Explain the MCP client integration"
|
||||
|
||||
### Custom Source Path
|
||||
|
||||
If your `src/` directory is in a non-standard location, set the environment variable:
|
||||
|
||||
```bash
|
||||
claude mcp add claude-code-explorer -e CLAUDE_CODE_SRC_ROOT=/path/to/src -- node /path/to/mcp-server/dist/index.js
|
||||
```
|
||||
|
||||
### Remove It
|
||||
|
||||
```bash
|
||||
claude mcp remove claude-code-explorer
|
||||
```
|
||||
> **Note:** The `src/` directory is the original leaked source and should not be modified.
|
||||
|
||||
---
|
||||
|
||||
## 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](https://www.anthropic.com). Contact [nichxbt](https://www.x.com/nichxbt) for any comments.
|
||||
This repository archives source code leaked from Anthropic's npm registry on **2026-03-31**. All original source code is the property of [Anthropic](https://www.anthropic.com). This is not an official release and is not licensed for redistribution. Contact [nichxbt](https://www.x.com/nichxbt) for any comments.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user