命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
启用调试模式并可选择性过滤类别
--debug [categories]claude --debug "api,mcp"--debug 是 Claude Code 的 CLI 启动 flag,用来开启 debug 模式,并可选择按类别(category)过滤日志。官方 CLI reference 的原文描述:
Enable debug mode with optional category filtering, such as
--debug='mcp,startup'or--debug='!1p'. The filter binds only in the=form; a space-separated filter enables debug mode without filtering
要点:
! 表示排除该类别(官方示例 --debug='!1p')。= 形式下生效。 空格分隔的写法只会开启 debug 模式,不做过滤。mcp、startup、1p。api 是否为有效类别,本文的来源无法确认。# 开启 debug,不过滤
claude --debug
# 只看指定类别(官方示例)
claude --debug='mcp,startup'
# 排除某类别(官方示例)
claude --debug='!1p'
# 排查 MCP server 时(官方 debug 指南中的用法)
claude --debug=mcp
注意任务给定的示例 claude --debug "api,mcp" 是空格分隔写法。 按官方 CLI reference,这种写法只会开启 debug 模式,"api,mcp" 不会被当作过滤器。要过滤请写成 claude --debug="api,mcp"。不过 api 这个类别名本身未在官方文档中出现。
相关的 slash 命令:/debug [issue] 会在当前会话内启用 debug 日志,并让 Claude 根据日志输出和 settings 路径来诊断问题。
| flag / 变量 | 关系 |
|---|---|
--debug-file <path> | 把 debug 日志写到指定文件,并隐式开启 debug 模式。官方示例:claude --debug-file /tmp/claude-debug.log。 |
CLAUDE_CODE_DEBUG_LOGS_DIR | 覆盖 debug 日志文件路径。官方说明:尽管名字里有 DIR,它实际是文件路径而不是目录;需另外通过 --debug、/debug 或 DEBUG 环境变量开启 debug 模式。--debug-file 的优先级高于它。 |
官方文档没有写 --debug 与 --debug-file 同时使用时的具体交互,本文不做推断。
| flag | env | settings.json |
|---|---|---|
--debug[=<filter>] | 已验证的官方来源中未找到等价项 | 已验证的官方来源中未找到等价项 |
--debug-file <path> | CLAUDE_CODE_DEBUG_LOGS_DIR(只覆盖 debug 日志文件路径,不会单独开启 debug 模式,且优先级低于 --debug-file) | 未找到 |
| 约束 | 原因 |
|---|---|
过滤器必须用 --debug=<filter> | 官方文档明确说明过滤只在 = 形式下绑定,空格形式不过滤 |
用 claude --debug=mcp 排查 MCP 时,debug 日志位于 ~/.claude/debug/<session-id>.txt | 来自官方 debug 指南中排查 MCP 的说明 |
CLAUDE_CODE_DEBUG_LOGS_DIR 单独设置不会开启 debug 模式 | 官方 env-vars 文档:需另外通过 --debug、/debug 或 DEBUG 环境变量开启 |
/mcp 显示 server 已连接但工具数为 0,点 Reconnect 后仍为 0,则运行 claude --debug=mcp,在 ~/.claude/debug/<session-id>.txt 中查看该 server 的 stderr。(官方 debug 指南)/hooks 中能看到 Hook 但不触发时,用 claude --debug 启动会话并触发对应 tool call。官方指南称日志会记录每个事件、检查过哪些 matcher,以及 Hook 的 exit code 和输出。--debug-file <path> 把日志写到固定路径,便于会话结束后查看或附到问题报告里。claude --debug "mcp" 只是开启 debug,日志里仍是全部类别。要过滤必须写 --debug=mcp。--debug-file 优先于 CLAUDE_CODE_DEBUG_LOGS_DIR:两者同时设置时,以 --debug-file 为准。docs.claude.com/en/docs/claude-code/cli-reference 会 301 跳转到此)--debug-file 捕获 Hook 执行的调试日志)修复大量调试日志导致内存增长,以及调试日志位于不再接受写入的挂载盘时退出卡住的问题。
改进调试输出:会指出自定义 agent 文件中无法识别的 frontmatter 字段并给出可能的拼写提示;同时 hook 命令在完成时会记录其命令、插件、结果和耗时。
修复了 `claude remote-control --debug` 参数报"Unknown argument"错误的问题
将 --debug 日志迁移到文件以便于查看和过滤
引入新的 debug 启动参数