跳转到内容

什么是 Claude Code?

Claude Code 是 Anthropic 官方出品的 AI 编程助手 — 一款终端原生、以 agent 为核心的 CLI 工具,将 Claude 的智能直接带入你的开发工作流。与依赖 IDE 的 copilot 不同,Claude Code 在开发者本已熟悉的环境中运行:终端。

Claude Code 在 AI 编程助手领域占据独特位置。它既不是插件,也不是 IDE 扩展,更不是网页聊天界面。它是一款独立的 CLI 应用,作为自主编程 agent 运行,具备深度文件系统访问、shell 执行能力和多轮对话 context。

核心定位原则:

  • 终端原生:兼容任意终端模拟器 — iTerm2、Kitty、Ghostty、Windows Terminal 等
  • agent 优先:从底层设计为自主 agent,而非代码补全引擎
  • 无 IDE 依赖:兼容任何编辑器、任何工作流、任何项目
  • 全项目感知:自主读取、写入和遍历整个代码库

Claude Code 基于现代 TypeScript 技术栈构建,针对 CLI 性能进行了优化:

整个应用运行在 Bun 之上,这是 Jarred Sumner 开发的 JavaScript 运行时。Bun 提供:

  • 启动速度显著快于 Node.js
  • 内置 TypeScript 转译
  • bun:bundle feature flag,支持构建时死代码消除
// src/tools.ts — Feature flag gating via Bun's build-time DCE
import { feature } from 'bun:bundle'
const SleepTool =
feature('PROACTIVE') || feature('KAIROS')
? require('./tools/SleepTool/SleepTool.js').SleepTool
: null

终端用户界面基于 Ink 构建,这是一个面向 CLI 的 React 渲染器。这使 TUI 拥有与 Web 应用相同的组件模型 — props、state、hook 和组合能力。

// src/main.tsx — React/Ink rendering
import React from 'react'
import { launchRepl } from './replLauncher.js'

命令行参数解析使用 @commander-js/extra-typings,这是 commander.js 的类型安全变体:

src/main.tsx
import { Command as CommanderCommand, InvalidArgumentError, Option }
from '@commander-js/extra-typings'

代码库中的 schema 验证全面采用 zod v4:

src/Tool.ts
import type { z } from 'zod/v4'
export type Tool<
Input extends AnyObject = AnyObject,
Output = unknown,
P extends ToolProgressData = ToolProgressData,
> = {
readonly inputSchema: Input // Zod schema for tool input validation
// ...
}
依赖用途
@anthropic-ai/sdk官方 Anthropic API 客户端
chalk终端字符串样式
lodash-es工具函数(memoize、mergeWith 等)
picomatchGlob 模式匹配
markedMarkdown 解析(用于 CLAUDE.md)
strip-ansiANSI 转义码剥离
维度Claude CodeCopilot
界面终端 CLIIDE 插件
模式Agent(自主多步执行)建议(内联补全)
文件范围整个项目当前文件 + context
Shell 访问完整 bash/zsh 执行
IDE 要求VS Code、JetBrains 等
维度Claude CodeCursor
界面终端 CLI定制 IDE(VS Code fork)
锁定风险无编辑器锁定依赖 Cursor IDE
Agent 模式主要模式次要功能
多文件编辑原生,agent 驱动Composer 功能
模型提供商Anthropic(+ Bedrock/Vertex)多家提供商
维度Claude CodeAider
提供商Anthropic(官方)多家提供商
架构React/Ink TUI,agentic loopPython,纯文本
Tool 系统30+ 内置 tool以 Git 为中心的工具
MCP 支持原生有限
安全模型多层权限基础

Claude Code 具备完善的 multi-agent 系统。AgentTool 允许主 agent 为复杂任务派生 sub-agent:

// src/tools.ts — Core tool pool includes AgentTool at the top
export function getAllBaseTools(): Tools {
return [
AgentTool, // Sub-agent spawning
TaskOutputTool, // Background task monitoring
BashTool, // Shell execution
GlobTool, // File pattern matching
GrepTool, // Content search
FileReadTool, // File reading
FileEditTool, // Surgical file editing
FileWriteTool, // File creation
// ... 30+ more tools
]
}

Claude Code 实现了纵深防御的 permission 模型:

  • Permission modedefaultplanautobypassPermissions
  • Tool 级权限:每个 tool 声明 isReadOnly()isDestructive()checkPermissions()
  • Hook 系统:tool 使用前后的 hook,支持自定义验证
  • 模式匹配:基于 glob 模式的规则化允许/拒绝

一个分层的指令系统,加载项目专属 context:

托管记忆 → /etc/claude-code/CLAUDE.md
用户记忆 → ~/.claude/CLAUDE.md
项目记忆 → ./CLAUDE.md, .claude/CLAUDE.md, .claude/rules/*.md
本地记忆 → ./CLAUDE.local.md

越靠近工作目录的文件优先级越高。@include 指令支持从多个文件组合指令。

除交互式 REPL 外,Claude Code 还通过 QueryEngine 提供程序化 SDK:

src/QueryEngine.ts
export class QueryEngine {
async *submitMessage(
prompt: string | ContentBlockParam[],
options?: { uuid?: string; isMeta?: boolean },
): AsyncGenerator<SDKMessage, void, unknown> {
// Full query lifecycle management
}
}

这为 VS Code 扩展、桌面应用和 CI/CD 流水线等集成提供了支撑。

原生支持 MCP 服务器,允许 Claude Code 连接外部 tool 和数据源:

src/tools.ts
export function assembleToolPool(
permissionContext: ToolPermissionContext,
mcpTools: Tools,
): Tools {
const builtInTools = getTools(permissionContext)
const allowedMcpTools = filterToolsByDenyRules(mcpTools, permissionContext)
return uniqBy(
[...builtInTools].sort(byName).concat(allowedMcpTools.sort(byName)),
'name',
)
}
能力说明
多文件编辑Agent 在整个项目范围内读取、写入和编辑文件
Shell 执行在权限控制下运行任意 shell 命令
网页搜索/抓取内置网页搜索和 URL 抓取 tool
Git 集成对 diff、分支和提交有深度感知
Notebook 编辑支持 Jupyter notebook 单元格编辑
会话管理恢复、分享和管理对话会话
费用追踪实时 token 用量和费用监控
自动 compaction针对长对话的自动 context 管理
  • 专业开发者,习惯以终端为中心的工作流
  • DevOps/SRE 工程师,需要在 SSH 会话中获得 AI 辅助
  • 开源贡献者,在多个项目和编辑器之间切换工作
  • 团队,需要在多样化开发环境中使用统一的 AI 工具
  • 功能开发:“为设置页面添加深色模式支持”
  • Bug 修复:“调试 API 在大载荷时返回 500 的原因”
  • 代码审查:“审查这个 PR 中的变更,排查安全问题”
  • 重构:“将 auth 模块从回调风格迁移到 async/await”
  • DevOps 任务:“为这个项目配置 GitHub Actions CI”
  • 文档生成:“为 user service 生成 API 文档”