命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
使用空上下文开始新对话并保留前一个
/clear/clear 是 Claude Code 的内置 Slash 命令,用于丢弃当前会话的上下文,以空白状态开始一段新对话。执行后:
SDK 限制:在 Agent SDK 中使用 /clear 需要 Claude Code v2.1.117 或更高版本;早于该版本时,/clear 不会出现在 system/init 消息的 slash_commands 列表中。
命令只在消息开头才被识别,后跟的文字作为参数传入。
/clear
立即丢弃当前对话历史,进入空白 context。前一段对话在本地磁盘仍可恢复。/clear 本身不接受任何参数。
命名 session 是独立操作:为 session 起一个可识别的名称,应在启动时用
claude -n <name>,或在会话中用/rename,与/clear无关,两者不合并。
虽然 /rename 与 /clear 是两条独立命令,官方 costs 页把它们组成一条黄金工作流:清空前先重命名,方便日后找回,再用 /resume 回到该会话。原文逐字:
Clear between tasks: Use
/clearto start fresh when switching to unrelated work. Stale context wastes tokens on every subsequent message. Use/renamebefore clearing so you can easily find the session later, then/resumeto return to it.
即推荐顺序:
/rename my-feature-debug # 1. 先给当前会话起可识别的名字
/clear # 2. 再清空,以空白 context 开干无关的新任务
/resume # 3. 日后用会话选择器按名字找回这段对话
这条组合的价值在于:/clear 本身不删历史而是落盘,但默认 session 名是难以辨认的 ID;先 /rename 给它一个语义化名字,/resume 时才能一眼定位,避免"清了之后再也找不回"。
SDK 的 streaming input 模式下,跨多个 query() 调用共享同一连接,此时 /clear 可重置 context:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "/clear",
options: { maxTurns: 1 }
})) {
// 新一轮对话从空 context 开始
}
注意:在一次性
query()调用中,每次调用本身已从空 context 启动,发送/clear没有实际效果;此时直接开启新的query()即可。
官方 costs 页「Manage context proactively」一节建议:在 clear 之前先看清 context 占用,再决定要不要清。两个观测入口:
/usage:查看当前会话的 token 用量。官方原文:"Use /usage to check your current token usage..."/en/statusline#context-window-usage)也可用 /context 看 context window 的逐项占用,定位是哪些内容(历史、MCP、文件读取)撑大了 context,再判断 clear 还是 compact。
官方 costs 页把 /clear 与 /compact 并列为"主动管理 context"的两个手段,分工明确:
/clear:原文 "Use /clear to start fresh when switching to unrelated work."。无关任务的旧上下文是纯噪音,全丢即可。/compact:把历史压成摘要留在当前 session。还可用自定义指令告诉 Claude 该保留什么,官方示例:"/compact Focus on code samples and API usage tells Claude what to preserve during summarization."CLAUDE.md 里写常驻压缩指令(官方示例):# Compact instructions
When you are using compact, please focus on test output and code changes
一句话:任务换了就 clear,任务没换但太长就 compact。
| 命令 | 做了什么 | 历史是否保留 |
|---|---|---|
/clear | 完全丢弃 context,新建 session | 保留在磁盘,可 resume |
/compact [instructions] | 将历史压缩成摘要,继续在同一 session 内 | 以摘要形式留在 context 内 |
/context | 只读——显示 context window 当前占用情况 | 不修改 context |
/branch [name] | 复制当前会话并切入副本,原会话不变 | 原会话完整保留 |
/clear 以更精准的 prompt 重新开始,而不丢失磁盘历史/clear 后再开始干净的新任务。这正是官方背书的首要用法——costs 页原文:"Use /clear to start fresh when switching to unrelated work. Stale context wastes tokens on every subsequent message."(陈旧 context 会在之后每条消息上持续浪费 token)/clear 在不断开连接的情况下重置会话状态/clear 后,通过 claude --resume <session-id> 或会话选择器(/resume)找回之前的对话/resume 检索范围:恢复旧 session 时,claude --resume <session-id> 的查找范围限定于当前目录对应的项目。若在其他目录执行,会报 No conversation found with session ID,需切换到正确目录。
SDK 版本过旧时不可用:低于 v2.1.117 时,/clear 不出现在 slash_commands 列表,需检查版本后升级。
修复了在 Windows 上背景任务输出在 /clear 后被永久替换为空文件的问题
现在支持 `<name>` 参数来标记已清除的会话
修复 MCP 服务器在 `/clear` 后 VS Code 扩展、JetBrains 插件和 Agent SDK 中失踪问题
修复未重置终端标签标题
修复删除 /rename 设置的会话名的问题
修复空闲返回时 "/clear to save X tokens" 提示显示累积会话令牌而非当前上下文大小的问题
修复了 `/clear` 错误地 killing 后台任务的问题,现仅清除前台任务。
修复了 `/clear` 无法完全清除所有会话缓存的问题。
修复了 `/clear` 无法重置缓存 skills 导致新会话中出现过时 skill 内容的问题。
修复 `/clear` 命令执行后会话名称仍在状态栏中保留的问题
修复计划文件在 /clear 后仍持久化的问题