Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - AstrZero/claude-code-fork: Fork of instructkr/claude-code · GitHub
Skip to content

Latest commit

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Claude Code Source Snapshot for Security Research

This repository mirrors a publicly exposed Claude Code source snapshot that became accessible on March 31, 2026 through a source map exposure in the npm distribution. It is maintained for educational, defensive security research, and software supply-chain analysis.


Research Context

This repository is maintained by a university student studying:

  • software supply-chain exposure and build artifact leaks
  • secure software engineering practices
  • agentic developer tooling architecture
  • defensive analysis of real-world CLI systems

This archive is intended to support:

  • educational study
  • security research practice
  • architecture review
  • discussion of packaging and release-process failures

It does not claim ownership of the original code, and it should not be interpreted as an official Anthropic repository.


How the Public Snapshot Became Accessible

Chaofan Shou (@Fried_rice) publicly noted that Claude Code source material was reachable through a .map file exposed in the npm package:

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

@Fried_rice, March 31, 2026

The published source map referenced unobfuscated TypeScript sources hosted in Anthropic's R2 storage bucket, which made the src/ snapshot publicly downloadable.


Repository Scope

Claude Code is Anthropic's CLI for interacting with Claude from the terminal to perform software engineering tasks such as editing files, running commands, searching codebases, and coordinating workflows.

This repository contains a mirrored src/ snapshot for research and analysis.

  • Public exposure identified on: 2026-03-31
  • Language: TypeScript
  • Runtime: Bun
  • Terminal UI: React + Ink
  • Scale: ~1,900 files, 512,000+ lines of code

Directory Structure

src/
├── main.tsx # Entrypoint orchestration (Commander.js-based CLI path)
├── commands.ts # Command registry
├── tools.ts # Tool registry
├── Tool.ts # Tool type definitions
├── QueryEngine.ts # LLM query engine
├── 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 and remote-control bridge
├── 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/ # Persistent memory directory
├── tasks/ # Task management
├── state/ # State management
├── migrations/ # Config migrations
├── schemas/ # Config schemas (Zod)
├── entrypoints/ # Initialization logic
├── ink/ # Ink renderer wrapper
├── buddy/ # Companion sprite
├── native-ts/ # Native TypeScript utilities
├── outputStyles/ # Output styling
├── query/ # Query pipeline
└── upstreamproxy/ # Proxy configuration

Architecture Summary

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 timeconstvoiceCommand=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 and React/Ink renderer initialization. At startup, it overlaps 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
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 importsstartMdmRawRead()startKeychainPrefetch()

Lazy Loading

Heavy modules (OpenTelemetry, gRPC, analytics, and some feature-gated subsystems) 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/ are executed through SkillTool. Users can add custom skills.

Plugin Architecture

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


Research / Ownership Disclaimer

  • This repository is an educational and defensive security research archive maintained by a university student.
  • It exists to study source exposure, packaging failures, and the architecture of modern agentic CLI systems.
  • The original Claude Code source remains the property of Anthropic.
  • This repository is not affiliated with, endorsed by, or maintained by Anthropic.

About

Fork of instructkr/claude-code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages