命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
可视化当前上下文使用情况和优化建议
/context/context 是 Claude Code 的会话内诊断命令,展示当前 session 中上下文窗口的完整占用情况,按类别分解:系统提示词、内存文件、skills、MCP tools 和对话消息。
官方文档将其定位为配置调试的第一步——当 Claude 未遵循某条指令或某个功能没有生效时,先运行 /context 确认相关文件是否已加载进上下文。
无平台或订阅计划限制说明(官方文档未提及)。
/context
输出当前 session 上下文窗口的分类占用明细。
/context all
[all] 参数由用户提供为已知语法。截至本文撰写时,已访问的官方文档页面均未收录该参数的具体说明,此节内容暂省略,不作推测。
根据官方 debug-your-config 文档,/context 按以下类别分解上下文占用:
| 类别 | 说明 |
|---|---|
System prompt | Claude Code 的核心行为指令,始终首先加载 |
Memory files | CLAUDE.md 及 auto-memory 文件 |
Skills | 已注册 skill 的描述文本 |
MCP tools | 已连接 MCP server 的 tool 定义(含 deferred 条目) |
System tools | 内置 tool(Read、Edit、Bash、Grep、Glob 等) |
Messages | 对话历史、prompt、响应及 tool 调用结果 |
Autocompact buffer | 系统预留的自动压缩缓冲区 |
Free space | 当前剩余可用 token 数 |
上方类别名称来自第三方实测截图(thesciencetalk.com),官方文档仅列举前五类的文字描述,未提供完整枚举。
官方明确:/context 给出的是"a live breakdown by category with optimization suggestions"——不只是数字,还会附带优化建议。
会话还没开始打字,前几类就已经吃掉一块上下文了(官方 context-window 时间线给出代表性 token 数,你的实际值看 /context):
| 段 | 它装的是什么 / 怎么解读 |
|---|---|
System prompt | Claude Code 核心行为指令 + 环境信息(cwd / 平台 / git 状态)。还包含你的 --append-system-prompt 和 output style——这两样也算进系统提示。你永远看不到正文,但它是固定开销 |
Memory files | 项目根 CLAUDE.md + auto memory(MEMORY.md 的前 200 行或 25KB,取先到者)。这块异常大通常是 CLAUDE.md 写太长 |
Skills | 每个 skill 的一行描述(不是正文)。skill 正文只在真正调用时才加载;disable-model-invocation: true 的 skill 连描述都不在这里 |
MCP tools | 已连 MCP server 的工具——默认只列工具名(deferred),完整 schema 按需经 tool search 加载。这段占比异常大,往往是某个 MCP server 把全量 schema 都塞进来了(见下方裁剪建议) |
System tools | 内置工具(Read/Edit/Bash/Grep/Glob…)。基本恒定,无需优化 |
Messages | 对话历史、你的 prompt、Claude 响应、工具调用结果。随会话增长——/compact 主要压的就是这块 |
Autocompact buffer | 系统给自动压缩预留的缓冲,不可回收 |
Free space | 当前剩余可用 token。盯这个判断要不要手动 /compact |
诊断思路:固定成本(system prompt / memory / skills / system tools / MCP 名)在第一条消息前就定型,增长成本只有 Messages。所以如果新 session 刚开就所剩无几,问题在固定成本(多半是 CLAUDE.md 或 MCP);如果是聊久了才满,那是 Messages,/compact 即可。
| 命令 | 作用 | 是否修改上下文 |
|---|---|---|
/context | 可视化当前上下文占用,只读 | 否 |
/compact | 将对话历史压缩为摘要 | 是(不可逆) |
/clear | 清空全部对话历史 | 是(不可逆) |
/memory | 查看已加载的 CLAUDE.md 和规则文件 | 否 |
/doctor | 检测配置文件语法错误和 schema 问题 | 否 |
/mcp | 查看 MCP server 连接状态和 tool 列表 | 否 |
/context 是这组命令中唯一给出全局 token 占用分布的命令;其他命令关注各自子系统的加载状态。
/context 确认文件是否出现在内存文件类别中,再用 /memory 深入查看具体路径。/compact:对话进行到一半时查看 Free space 余量,评估是否需要手动压缩,而不是等系统自动触发。MCP tools 条目占比异常大时,用 /mcp 进一步确认每个 server 的开销(官方:"Run /mcp to check per-server costs"),断开用不上的 server。MCP 工具 schema 默认就是 deferred 按需加载(只列工具名);若你之前设过 ENABLE_TOOL_SEARCH=false(一次性加载全部 schema),把它去掉或改回 auto(仅当 schema 占比 < 上下文 10% 时才前置加载)能立刻省下一大块。/context、/compact、/memory 是一组配合使用的诊断—治理工具,官方推荐的闭环:
/context):先看哪一类在膨胀。Messages 大 → 该清对话;Memory files 大 → CLAUDE.md/MEMORY 太肥;MCP tools 大 → server 太多。/compact 或 /clear):Messages 撑爆时——继续同一任务用 /compact(必要时带 focus 指令保关键信息),切换任务用 /clear。/memory):发现"明明写过的规则 Claude 不遵守",先 /memory 确认该 CLAUDE.md 是否真加载进来了(子目录 CLAUDE.md 启动时不加载、压缩后也会丢),再决定是否把规则上移到项目根 CLAUDE.md 让它跨压缩存活。记忆法:/context 负责"看",/compact+/clear 负责"清",/memory+CLAUDE.md 负责"存"。
/context 能确认文件是否进入上下文,但无法判断 Claude 是否遵循其中的指令。文件出现在输出里但 Claude 仍然忽略某条规则,问题通常在指令的写法(过于模糊、互相冲突、文件过长)而非加载本身。/context 看不到它是正常现象,并非配置错误。修复在 Bedrock 上显示 0 tokens 的问题
现在显示 per-skill token 估计值和插件源信息
修复渲染的 ASCII 可视化网格浪费约 1.6k token
在 VSCode 中现在打开原生 token 使用对话框
修复网格渲染显示多余空行的问题
现在支持从 Remote Control 客户端调用
修复 `/context` 的释放空间和消息分解显示与标题百分比不一致的问题
新增actionable suggestions用于识别context-heavy工具、memory bloat和capacity warnings并给出优化建议
修复了 `/context` 为同一服务器中所有 MCP 工具显示相同 token counts 的问题。
修复彩色输出不显示的问题
修复某些命令(如 /context)的重复输出问题
修复 /context 命令在 verbose 模式下显示 token 计数和百分比不正确的问题
修复 /context 命令覆盖层意外关闭的问题
修复了 /context 命令在非交互模式下不尊重自定义系统提示,及修复了技能 token 估计
改进了命令可视化,通过来源分组技能和 agents,并按 token 数排序
修复了命令在非交互模式下不尊重自定义系统提示的问题
修复了因 thinking.budget_tokens 导致 max_tokens 检验失败的问题
在 Bedrock 和 Vertex 上启用了 /context 命令
新增 /context 命令帮助用户自助调试上下文问题。