noya21th/claude-source-leaked
GitHub: noya21th/claude-source-leaked
对 Claude Code v2.1.88 源码进行静态逆向分析,完整揭示其系统提示词架构、隐藏功能标志、遥测机制与成本优化策略,为安全研究和工程实践提供参考。
Stars: 85 | Forks: 107
# Claude Code 揭秘
**首份 Claude Code 架构深度剖析、隐藏功能目录及成本优化指南 —— 基于 v2.1.88 源码分析(1,884 个文件,132K 行 TypeScript)。**
[中文版](README_CN.md) | English
## 目录
- [系统提示词 (完整重构)](#system-prompt-complete-reconstruction)
- [87 个隐藏的特性标志](#87-hidden-feature-flags)
- [15 个隐藏的斜杠命令](#15-hidden-slash-commands)
- [25 个仅供内部使用的命令](#25-internal-only-commands)
- [潜伏模式 (Anthropic 如何隐藏 AI 归属)](#undercover-mode)
- [成本优化 (源自代码的 10 个技巧)](#cost-optimization)
- [架构图](#architecture-diagrams)
- [Claude Code vs Cursor vs Cline](#claude-code-vs-cursor-vs-cline)
- [遥测与隐私](#telemetry--what-data-is-collected)
- [远程控制与熔断开关](#remote-control--killswitches)
- [未来路线图 (未发布功能)](#unreleased-features--future-roadmap)
- [CLAUDE.md 最佳实践](#claudemd-best-practices)
## 系统提示词 (完整重构)
### 5 层优先级系统
```
Priority 0: Override (loop mode, testing) ← highest
Priority 1: Coordinator (multi-worker orchestration)
Priority 2: Agent (subagent definitions)
Priority 3: Custom (--system-prompt flag)
Priority 4: Default (standard Claude Code) ← lowest
+ appendSystemPrompt (always appended unless override)
```
### 默认提示词的实际内容
系统提示词包含 **9 个主要部分**:
1. **身份** — “你是一个交互式代理,帮助用户完成软件工程任务”
2. **系统规则** — 工具执行、权限模式、提示词注入检测
3. **任务执行** — 最详细的部分:
- 修改前必须阅读代码(强制要求)
- 不要添加未要求的功能/重构
- 不要为一次性操作创建辅助函数
- “三行相似的代码胜过早熟的抽象”
- 避免 OWASP Top 10 漏洞
4. **谨慎操作** — 破坏性操作需要用户确认 (rm -rf、force push 等)
5. **工具使用** — 使用专用工具 (Read/Edit/Glob/Grep) 代替 Bash
6. **语气** — 无表情符号,简洁,`file_path:line_number` 格式
7. **输出效率** — “如果你能用一句话说明白,就不要用三句”
8. **缓存边界** — `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 分隔静态/动态部分
9. **环境** — CWD、平台、模型名称、知识截止日期
### 缓存优化
提示词由 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 分隔:
- **边界之前 (静态)**:全局缓存,在重复调用时节省 token
- **边界之后 (动态)**:用户/会话特定,每次重新计算 (memory、MCP、语言等)
### 模型知识截止日期
| 模型 | 显示名称 | 截止日期 |
|-------|-------------|--------|
| claude-opus-4-6 | Claude Opus 4.6 | 2025 年 5 月 |
| claude-sonnet-4-6 | Claude Sonnet 4.6 | 2025 年 8 月 |
| claude-haiku-4-5 | Claude Haiku 4.5 | 2025 年 2 月 |
## 87 个隐藏的特性标志
这些是通过 `bun:bundle feature()` 实现的编译时开关。大多数在公开的 npm 构建版本中已被死代码消除。
### 核心代号
| 代号 | 功能 | 跨文件引用 |
|----------|-------------|----------------------|
| **KAIROS** | 自主助手平台 (assistant mode、brief、channels、cron、webhooks) | 210 个文件 |
| **PROACTIVE** | 主动任务规划和自动化 | 关联至 KAIROS |
| **COORDINATOR_MODE** | 具备 worker 的多 agent 编排 | 45 个文件 |
| **VOICE_MODE** | 具有跨平台二进制文件的语音输入/输出 | 38 个文件 |
| **BUDDY** | 带有动画系统的 AI 伴侣精灵 | 14 个文件, 1,298 行 |
| **ULTRATHINK** | 扩展的深度推理模式 | 编译时 |
| **ULTRAPLAN** | 带有选择对话框的超级规划器 | 编译时 |
| **TORCH** | 推理增强 | 编译时 |
| **BRIDGE_MODE** | 移动/Web 远程控制 | 编译时 |
| **CHICAGO_MCP** | 计算机使用 MCP 服务器 | 内部 |
### 上下文与压缩
| 标志 | 用途 |
|------|---------|
| CONTEXT_COLLAPSE | 智能上下文折叠 |
| REACTIVE_COMPACT | 响应式会话压缩 |
| CACHED_MICROCOMPACT | 微型缓存压缩 |
| HISTORY_SNIP | 历史消息分片 |
| BG_SESSIONS | 后台会话管理 |
| AWAY_SUMMARY | 用户离开时自动摘要 |
### 混淆的运行时配置 (tengu_* 门控)
运行时标志使用 `tengu_` + **随机词对** 来刻意隐藏其用途:
```
tengu_frond_boric → Analytics killswitch (Datadog/FirstParty)
tengu_passport_quail → Memory extraction gate
tengu_moth_copse → Memory extraction enable
tengu_bramble_lintel → Memory extraction frequency
tengu_cicada_nap_ms → Background refresh throttle
tengu_slate_prism → Connector text summarization
tengu_amber_json_tools → JSON tool format (token-efficient)
tengu_tool_pear → Structured output (strict tools)
```
## 15 个隐藏的斜杠命令
这些需要特定的特性标志才能出现:
| 命令 | 功能 | 所需标志 |
|---------|----------|---------------|
| `/assistant` | 助手模式 | KAIROS |
| `/brief` | 简短消息 | KAIROS_BRIEF |
| `/bridge` | 远程控制桥接 | BRIDGE_MODE |
| `/voice` | 语音模式 | VOICE_MODE |
| `/buddy` | AI 伴侣精灵 | BUDDY |
| `/ultraplan` | 超级规划器 | ULTRAPLAN |
| `/torch` | 推理加速 | TORCH |
| `/workflows` | 工作流脚本 | WORKFLOW_SCRIPTS |
| `/fork` | 子 agent 分支 | FORK_SUBAGENT |
| `/peers` | 对等消息传递 | UDS_INBOX |
| `/proactive` | 主动规划 | PROACTIVE |
| `/force-snip` | 强制历史记录截断 | HISTORY_SNIP |
| `/subscribe-pr` | PR 订阅 | KAIROS_GITHUB_WEBHOOKS |
| `/remote-setup` | 远程 CCR 设置 | CCR_REMOTE_SETUP |
| `/remote-control-server` | 远程控制服务器 | DAEMON + BRIDGE_MODE |
## 25 个仅供内部使用的命令
| 命令 | 功能 |
|---------|----------|
| `/bughunter` | 自动化 Bug 检测 |
| `/good-claude` | 模型评估工具 |
| `/commit` | 隐藏的 Git 提交 |
| `/commit-push-pr` | 一键提交 → 推送 → 创建 PR |
| `/ctx-viz` | 上下文可视化 |
| `/break-cache` | 强制缓存失效 |
| `/mock-limits` | 模拟速率限制 |
| `/reset-limits` | 重置速率限制 |
| `/ant-trace` | Anthropic 内部追踪 |
| `/perf-issue` | 性能诊断 |
| `/debug-tool-call` | 工具调用调试器 |
| `/agents-platform` | Agents 平台管理 |
| `/autofix-pr` | 自动修复 PR |
| `/backfill-sessions` | 回填会话数据 |
| `/share` | 会话共享 |
| `/summary` | 会话摘要 |
| `/onboarding` | 引导流程 |
| `/init-verifiers` | 初始化验证器 |
| `/bridge-kick` | 踢除桥接连接 |
| `/version` | 版本显示 |
| `/oauth-refresh` | OAuth token 刷新 |
| `/env` | 环境变量 |
| `/issue` | 问题跟踪 |
| `/teleport` | 会话传送 |
| `/tags` | 会话标签 |
## 潜伏模式
当 Anthropic 员工 (`USER_TYPE=ant`) 在公共代码库中工作时,Claude Code **会自动隐藏所有内部信息**。
### 工作原理
```
isUndercover() check:
USER_TYPE !== 'ant' → always OFF (external users unaffected)
USER_TYPE === 'ant' →
CLAUDE_CODE_UNDERCOVER=1 → forced ON
Repo in internal allowlist → OFF
Repo is public/unknown → ON (safe default)
```
**没有强制关闭选项。** 如果 Claude Code 无法确认这是内部代码库,潜伏模式将保持开启。
### 注入的内容
```
## UNDERCOVER MODE — 严重
You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository.
NEVER include in commit messages or PR descriptions:
- Internal model codenames (Capybara, Tengu, etc.)
- Unreleased model version numbers
- Internal repo or project names
- The phrase "Claude Code" or any mention that you are an AI
- Co-Authored-By lines or any other attribution
```
### 内部代码库白名单 (22 个私有代码库)
```
anthropics/claude-cli-internal, anthropics/anthropic, anthropics/apps,
anthropics/casino, anthropics/dbt, anthropics/dotfiles,
anthropics/terraform-config, anthropics/hex-export, anthropics/feedback-v2,
anthropics/labs, anthropics/argo-rollouts, anthropics/starling-configs,
anthropics/ts-tools, anthropics/ts-capsules, anthropics/feldspar-testing,
anthropics/trellis, anthropics/claude-for-hiring, anthropics/forge-web,
anthropics/infra-manifests, anthropics/mycro_manifests,
anthropics/mycro_configs, anthropics/mobile-apps
```
来源: `src/utils/commitAttribution.ts` 第 30-75 行
## 成本优化
### 模型定价 (每百万 token)
| 模型 | 输入 | 输出 | 缓存读取 | 缓存写入 |
|-------|-------|--------|------------|------------|
| Haiku 4.5 | $1 | $5 | $0.10 | $1.25 |
| Sonnet 4.6 | $3 | $15 | $0.30 | $3.75 |
| Opus 4.6 | $5 | $25 | $0.50 | $6.25 |
| **Opus 4.6 Fast** | **$30** | **$150** | **$3.00** | **$37.50** |
来源: `src/utils/modelCost.ts` 第 36-69 行
### 10 个省钱技巧
| # | 技巧 | 源码证据 |
|---|-----|----------------|
| 1 | 输出预留为 8K (不是 32K) — 触达上限时自动升级至 64K | `context.ts:24-25` |
| 2 | 保持 CLAUDE.md 在 500 字以内 — 它会随每次请求发送 | `context.ts` getUserContext() |
| 3 | 主动使用 `/compact` — 手动压缩仅使用 3K 缓冲区,而自动压缩使用 13K | `autoCompact.ts:62,65` |
| 4 | 不要在会话中途切换模型 — 有 18 个维度的缓存失效机制 | `promptCacheBreakDetection.ts:28-99` |
| 5 | Fast 模式 = 6 倍成本 — 在执行长任务时将其关闭 | `modelCost.ts:62-69` |
| 6 | API Key 用户默认使用 Sonnet (更便宜) — 除非必要否则不要切换到 Opus | `model.ts:178-207` |
| 7 | 设置 `CLAUDE_CODE_SUBAGENT_MODEL=haiku` — 子 agent 执行简单任务,成本降低 5 倍 | `agent.ts:37-95` |
| 8 | 后台任务遇到 429/529 错误从不重试 (内置机制,节省级联成本) | `withRetry.ts:62-88` |
| 9 | 压缩后的文件恢复有预算限制:最多 5 个文件,每个 5K token | `compact.ts:122-130` |
| 10 | 缓存读取费用减免 90% — 保持系统提示词稳定以最大化缓存命中率 | `modelCost.ts` |
### 关键阈值
```
Context window: 200,000 tokens
Auto-compact trigger: ~167,000 tokens (200K - 20K output - 13K buffer)
Manual compact buffer: 3,000 tokens
Default max_output: 8,000 tokens (escalates to 64,000 on retry)
Session memory min: 10,000 tokens
Session memory max: 40,000 tokens
Post-compact restore: 50,000 tokens budget, 5 files max
```
## 架构图
### 请求生命周期
```
sequenceDiagram
participant User
participant REPL
participant Query as QueryEngine
participant API as Claude API
participant Tool as Tool Executor
User->>REPL: Input message
REPL->>Query: submitMessage()
Query->>Query: Build system prompt (5-layer priority)
Query->>Query: Load CLAUDE.md + Memory
Query->>API: messages.create(stream)
loop Tool Loop
API-->>Query: tool_use response
Query->>Tool: Permission check → Execute
Tool-->>Query: Tool result
Query->>API: Continue with result
end
API-->>REPL: Final text response
Query->>Query: Cost tracking + auto-compact check
```
### 工具系统
**4 个权限级别中共有 40 多个内置工具:**
| 级别 | 自动允许 | 示例 |
|-------|-----------|---------|
| 0 | 始终允许 | Read, Glob, Grep, LSP, TaskGet, ToolSearch |
| 1 | 首次确认 | Write, Edit, WebFetch, WebSearch, Bash (安全) |
| 2 | 每次确认 | Bash (危险: rm, git push, chmod) |
| 3 | 阻止并警告 | rm -rf /, git push --force origin main, DROP TABLE |
### 权限模型
```
4 modes: Default (ask) → Plan (read-only) → Auto (smart judge) → Bypass (allow all)
```
### 多 Agent 架构
```
Main Thread → Agent tool → Subagent (fresh context, isolated)
→ Subagent (can use different model)
→ Subagent (can run in git worktree)
```
子 agent 模型优先级:`CLAUDE_CODE_SUBAGENT_MODEL` 环境变量 > 工具指定 > agent 配置 > 继承父级
## Claude Code vs Cursor vs Cline
| 方面 | Claude Code | Cursor | Cline |
|--------|------------|--------|-------|
| **形态** | 终端 CLI | VS Code 分支 | VS Code 扩展 |
| **模型** | 仅 Claude | OpenAI/Claude/Gemini/xAI | 任何兼容 OpenAI 的模型 |
| **开源** | 否 | 否 | 是 (Apache 2.0) |
| **最大上下文** | 1M token | ~272K (RAG) | 取决于提供商 |
| **多 Agent** | 子 agent (无限) | 8 个并行 | 仅限单个 |
| **权限** | 4 级分类 | 隐式信任 | 逐操作审批 |
| **记忆** | 跨会话持久化 | 仅限会话内 | 无 |
| **成本** | 按 token / 订阅 | $20-40/月 | 免费 (自带密钥) |
| **代码库搜索** | 按需 ripgrep | AST + 嵌入索引 | VS Code 搜索 |
| **自动化** | Hooks + Skills | 有限 | 有限 |
## 遥测 — 收集了哪些数据
### 双通道架构
```
Claude Code → First-Party (api.anthropic.com/api/event_logging/batch) [640+ event types]
→ Datadog (us5.datadoghq.com) [64 allowed events]
→ BigQuery Metrics (api.anthropic.com/api/claude_code/metrics)
```
### 收集内容
- **环境**: 平台、架构、终端、包管理器、运行时、CI 检测
- **用户 ID**:_id (已去标识化)、user_bucket (SHA256 % 30)、session_id
- **事件**: 会话生命周期、API 调用 (模型、token、延迟)、工具使用、权限决策、语音切换
- **默认不收集**: 用户提示词 (需要 `OTEL_LOG_USER_PROMPTS=1`)、完整文件路径 (仅限扩展名)
### 如何禁用
```
DISABLE_TELEMETRY=1 # Disable analytics
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 # Disable all non-API network
```
## 远程控制与熔断开关
### 轮询机制
- **端点**: `{BASE_URL}/api/claude_code/settings`
- **间隔**: 每 1 小时
- **缓存**: 基于 ETag 并带有 SHA256 校验和验证
- **故障模式**: 故障开放 (继续使用缓存/默认设置工作)
### 已知熔断开关
| 开关 | 控制项 |
|--------|---------|
| `tengu_frond_boric` | 分析数据流 (Datadog/FirstParty) |
| `tengu_auto_mode_config` | 自动模式启用/禁用 |
| Statsig 门控 | 权限绕过控制 |
| `tengu_bridge_poll_interval_config` | 桥接轮询频率 |
| `tengu_kairos_cron_config` | KAIROS cron 任务速率限制 |
| `tengu_event_sampling_config` | 事件采样率 (0-100%) |
### 可远程修改的行为
数据上报、自动模式、权限绕过、轮询频率、事件采样、模型路由、记忆系统、缓存策略、Bash 分类、版本限制。
## 未发布功能 — 未来路线图
通过**可验证的代码指标**评估,而非主观百分比:
| 功能 | 专用代码 | 跨文件引用 | 基础设施 |
|---------|---------------|----------------------|----------------|
| **KAIROS** | 597 行 | **210 个文件** | 3 个 GrowthBook 门控 |
| **Voice Mode** | 54 行 | 38 个文件 | 6 个平台的原生二进制文件 |
| **Coordinator** | 369 行 | 45 个文件 | 专用系统提示词 |
| **Buddy** | 1,298 行 | 14 个文件 | 动画 + 通知系统 |
| **UltraPlan/Think/Torch** | 命令注册 | 分散 | 编译时标志 |
| **Web Browser** | 0 个文件 (在 npm 中) | 特性门控 | 可能在内部 monorepo 中 |
**108 个模块** 已从 npm 构建中死代码消除,仅存在于 Anthropic 的内部 monorepo 中。
## CLAUDE.md 最佳实践
### 加载顺序
```
~/.claude/CLAUDE.md (global) + project/CLAUDE.md (project) + .claude/CLAUDE.md
→ Merged → Injected into system prompt dynamic section → Sent with EVERY request
```
### 推荐模板
```
# CLAUDE.md
## Tech Stack
- Language: TypeScript 5.x, strict mode
- Framework: Next.js 14, App Router
- Testing: vitest
- Package manager: pnpm
## Conventions
- Components: PascalCase, hooks: camelCase
- Commits: conventional commits (feat/fix/chore)
## Project Structure
- src/app/ — routes
- src/components/ — shared components
- src/lib/ — utilities
```
### 不应该写的内容
- 不要重复系统提示词规则 (已硬编码)
- 不要写长篇描述 (每次请求都会浪费 token)
- 不要粘贴 API 文档 (让 Claude 去读取实际文件)
- 不要放置 TODO 列表 (使用对话,而不是 CLAUDE.md)
## 准确性与方法论
基于对 Claude Code v2.1.88 的**静态源码阅读**:
- 所有数字常量均已对照带有文件路径和行号的源码进行了验证
- 架构图是简化后的 — 实际流程可能存在未捕获的边缘情况
- 功能评估使用可验证的指标 (文件数、LOC、交叉引用)
- Cursor/Cline 比较使用公开文档;内部细节可能有所不同
- **没有在运行时执行或测试任何代码**
**发现错误?请附带源文件和行号提交 Issue。**
## 免责声明
- **未附属、未获认可、也非由 Anthropic 维护**
- 所有原始源码均为 Anthropic 的知识产权
- 仅限**教育和安全研究目的**
- **未重新分发任何专有源代码** — 所有内容均为原创分析
## 许可证
分析与文档: MIT | 原始 Claude Code 源码: Anthropic (保留所有权利)
标签:AI编程助手, Claude Code, Cline, Cursor, IP 地址批量处理, MITM代理, SOC Prime, TypeScript, 云资产清单, 人工智能, 功能开关, 卧底模式, 安全插件, 对比评测, 开发工具, 成本优化, 提示词工程, 无线安全, 架构图, 源码分析, 用户模式Hook绕过, 策略决策点, 网络安全研究, 自动化攻击, 逆向工程, 遥测, 隐私