| name | claude-code-analysis-research |
| description | Expert in analyzing the leaked Claude Code TypeScript source and architecture |
| triggers | ["analyze Claude Code source code","explain Claude Code architecture","how does Claude Code implement memory","Claude Code security analysis","what tools does Claude Code use","Claude Code MCP integration","compare Claude Code to Cursor","Claude Code sandbox mechanism"] |
Claude Code Analysis Research
Skill by ara.so — Claude Code Skills collection.
Overview
The claude-code-analysis project is a comprehensive analysis of Anthropic's Claude Code leaked TypeScript source (513,237 lines across 1,902 files). On March 31, 2026, security researcher Chaofan Shou discovered that Anthropic's npm package included source maps, exposing the complete codebase.
This skill enables agents to:
- Navigate the leaked source structure and architecture
- Understand Claude Code's memory, tool call, and MCP implementations
- Analyze security mechanisms (sandbox, permissions)
- Compare Claude Code to competitors (Cursor, Aider, Codex)
- Reference implementation patterns and code evidence
Project Structure
claude-code-analysis/
├── README.md # Main index
├── analysis/ # Analysis documents
│ ├── 01-architecture-overview.md
│ ├── 02-security-analysis.md
│ ├── 04-agent-memory.md
│ ├── 04b-tool-call-implementation.md
│ ├── 04c-skills-implementation.md
│ ├── 04d-mcp-implementation.md
│ ├── 04e-sandbox-implementation.md
│ ├── 04f-context-management.md
│ ├── 04g-prompt-management.md
│ ├── 04h-multi-agent.md
│ ├── 04i-session-storage-resume.md
│ ├── 05-differentiators-and-comparison.md
│ ├── 06-extra-findings.md
│ ├── 06b-negative-keyword-analysis.md
│ ├── 07-code-evidence-index.md
│ ├── 08-competitive-comparison.md
│ ├── 09-final-summary.md
│ ├── 10-src-file-tree.md
│ ├── 11-hidden-features-and-easter-eggs.md
│ └── components/ # UI component analysis
├── src.zip # Source archive
└── src/ # Full TypeScript source
Key Architecture Components
Entry Points
The application flow:
- CLI/Entry →
entrypoints/cli.tsx, main.tsx
- Initialization →
init.ts, setup.ts
- Command Layer →
commands.ts, PromptInput
- TUI/REPL →
App, REPL, Messages
- Execution Kernel →
query.ts, QueryEngine.ts
- Core Systems:
- Tool/Permission:
Tool.ts, orchestration
- Memory:
sessionStorage, memdir, SessionMem
- Extensions: MCP, Plugins, Remote, Swarm
Memory System
Claude Code implements a multi-layer memory architecture:
interface SessionMemory {
transcript: Message[];
context: Context;
compressedHistory: CompressedEntry[];
}
Key patterns:
- Hierarchical storage (session → compressed → indexed)
- Automatic context pruning based on token limits
- Session resumption via
Transcript persistence
Tool Call Mechanism
interface Tool {
name: string;
description: string;
inputSchema: JSONSchema;
execute: (params: unknown) => Promise<ToolResult>;
}
class ToolOrchestrator {
async executeTool(
toolName: string,
params: Record<string, unknown>,
permissions: PermissionSet
): Promise<ToolResult>;
}
Built-in tools:
- File operations:
readFile, writeFile, listFiles
- Execution:
runCommand, executeCode
- Search:
searchCode, grepFiles
- Browser: web scraping, navigation
MCP (Model Context Protocol) Integration
interface MCPServer {
name: string;
transport: Transport;
capabilities: Capability[];
}
const mcpClient = await MCPClient.connect({
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem"],
env: { ...process.env }
});
MCP usage patterns:
await mcpClient.initialize();
const tools = await mcpClient.listTools();
const result = await mcpClient.callTool("read_file", {
path: "/path/to/file"
});
Sandbox Mechanism
class Sandbox {
async executeInIsolation(
code: string,
options: SandboxOptions
): Promise<ExecutionResult> {
}
}
Security layers:
- Permission system (user approval for sensitive ops)
- Filesystem isolation (chroot/container)
- Network filtering
- Resource limits (CPU, memory, time)
Skills Extension System
interface Skill {
name: string;
triggers: string[];
execute: (context: Context) => Promise<void>;
}
export const debugSkill: Skill = {
name: "debug-assistant",
triggers: ["debug", "fix error", "troubleshoot"],
async execute(context) {
const error = await analyzeError(context);
const fix = await suggestFix(error);
await applyFix(fix);
}
};
Installation & Access
This is an analysis repository, not executable code. To explore:
git clone https://github.com/liuup/claude-code-analysis.git
cd claude-code-analysis
unzip src.zip
cd analysis
Key Analysis Documents
Architecture Understanding
cat analysis/01-architecture-overview.md
Security Analysis
cat analysis/02-security-analysis.md
Memory Implementation
Tool Call Deep Dive
MCP Technical Details
cat analysis/04d-mcp-implementation.md
Common Patterns
Analyzing Agent Memory Usage
const activeContext = {
messages: Message[],
tools: ToolDefinition[],
files: FileContext[]
};
const compressed = {
summary: string,
keyPoints: string[],
truncatedMessages: Message[]
};
interface PersistedSession {
id: string;
timestamp: number;
transcript: Message[];
metadata: SessionMetadata;
}
Tracing Tool Execution
const tool = {
name: "read_file",
schema: { path: { type: "string" } },
execute: async (params) => {
if (needsApproval(params.path)) {
await requestPermission("read_file", params);
}
return await sandbox.readFile(params.path);
}
};
Understanding Security Boundaries
enum PermissionLevel {
ALWAYS_ALLOW = "always",
PROMPT = "prompt",
NEVER_ALLOW = "never"
}
const sandboxConfig = {
workingDir: "/tmp/claude-sandbox-xxx",
allowedPaths: ["/workspace"],
blockedHosts: ["internal.company.com"],
resourceLimits: {
maxMemory: "2GB",
maxCPU: "2 cores",
timeout: 30000
}
};
Comparing to Other AI Coding Agents
Configuration
Claude Code configuration (inferred from source):
interface Config {
apiKey?: string;
model: string;
memory: {
maxTokens: number;
compressionThreshold: number;
persistSessions: boolean;
};
sandbox: {
enabled: boolean;
isolation: "process" | "container";
allowedPaths: string[];
};
mcpServers: {
[name: string]: {
command: string;
args: string[];
env?: Record<string, string>;
};
};
telemetry: {
enabled: boolean;
endpoint?: string;
};
}
Environment variables:
export ANTHROPIC_API_KEY=your_api_key_here
export CLAUDE_CODE_CONFIG_DIR=~/.claude-code
export CLAUDE_CODE_LOG_LEVEL=debug
export CLAUDE_CODE_TELEMETRY_OPT_OUT=1
Troubleshooting
Understanding Data Collection
Issue: What user data does Claude Code collect?
ls -la ~/.claude-code/sessions/
ls -la ~/.claude-code/memory/
Analyzing Memory Compression
Issue: How does Claude Code handle long conversations?
Tracing Tool Permission Flows
Issue: Why does Claude Code ask permission for certain operations?
Investigating MCP Integration Issues
Issue: MCP server not connecting
npx -y @modelcontextprotocol/server-filesystem
tail -f ~/.claude-code/logs/mcp-*.log
Understanding Hidden Features
Code Evidence References
Key source files for common investigations:
"entrypoints/cli.tsx"
"src/init.ts"
"src/query.ts"
"src/sessionStorage/"
"src/memdir/"
"src/transcript/"
"src/tools/"
"src/orchestration/"
"src/permissions/"
"src/mcp/"
"src/mcp/transports/"
"src/sandbox/"
"src/permissions/"
"src/telemetry/"
"src/components/"
"src/tui/"
Analysis Navigation
cat analysis/01-architecture-overview.md
cat analysis/04-agent-memory.md
cat analysis/04b-tool-call-implementation.md
cat analysis/04d-mcp-implementation.md
cat analysis/02-security-analysis.md
cat analysis/08-competitive-comparison.md
cat analysis/10-src-file-tree.md
ls analysis/components/
Academic & Research Use
This repository is for academic research and technical learning only:
- ✅ Understanding AI coding agent architecture
- ✅ Security boundary analysis
- ✅ Privacy design patterns
- ✅ Competitive landscape research
- ❌ Commercial use prohibited
- ❌ Bypassing security mechanisms prohibited
- ❌ Violating Anthropic terms of service prohibited
All source code rights belong to Anthropic.