面向 AI Agent 的通用调试器 CLI,以 @ref 引用系统与极简 token 输出支持 Node.js/Bun/LLDB/Python 等多运行时调试。
debug-that 是由 Theodo Group 开发的面向 AI Agent 的通用调试器 CLI,核心设计目标是让 Claude Code、Codex 等 AI 编码助手获得真实调试能力,同时将 token 消耗降至最低。
项目采用 Daemon + 无状态 CLI 架构:持久后台进程管理调试会话,CLI 通过 Unix socket 与之通信,会话在 Agent 多轮对话间持续存活。每个变量、栈帧、断点均分配短句柄(如 @v1、@f0、BP#1),Agent 无需解析复杂输出即可精确引用实体。输出格式无 ANSI 颜色与装饰边框,每行一个实体,并支持 --json 模式供程序化消费。
底层采用双协议路径:CDP 路径通过策略模式适配 Node.js(V8 Inspector)与 Bun(WebKit Inspector)的差异;DAP 路径通过 stdin/stdout 与 lldb-dap、debugpy 等调试适配器通信,覆盖 C/C++/Rust/Swift 与 Python。运行时可从启动命令自动检测,也可手动指定。
支持热补丁(JS/TS 通过 inspector API 实时替换,Java 通过 ECJ 编译 + JDI redefineClasses)、Source Map 断点定位、条件断点/日志断点/异常捕获、黑盒脚本跳过、附加运行中进程等能力。命令体系包含 30+ 命令,覆盖会话管理、执行控制、状态检查、断点管理与变量修改。
运行时依赖 Bun,可通过 bun install --global 安装,也可作为 Claude Code / Codex 的 skill 集成。项目以 TypeScript(92%)为主,Java(8%)用于热补丁编译等场景。当前版本 v0.6.2,采用 MIT 许可证。
多运行时支持状态
| 运行时 | 语言 | 协议 | 状态 |
|---|---|---|---|
| Node.js | JS / TS | CDP (V8 Inspector) + Source Maps | ✅ Supported |
| Bun | JS / TS | WebKit Inspector (JSC) | ✅ Supported |
| LLDB | C / C++ / Rust / Swift | DAP | ✅ Supported |
| Python | Python | DAP (debugpy) | ✅ Supported(成熟度待确认) |
| Java | Java | JDWP/DAP + ECJ Hotpatch | 🔶 部分支持(v0.6.0 热补丁) |
| Deno | JS / TS | CDP | 📋 Planned |
| Go | Go | delve/DAP | 📋 Planned |
命令体系概览
| 分类 | 命令 |
|---|---|
| 会话管理 | launch, attach, stop, status, sessions |
| 执行控制 | continue, step [over|into|out], pause, run-to, restart-frame |
| 状态检查 | state, vars, stack, eval, props, source, scripts, search, console, exceptions |
| 断点管理 | break, break-rm, break-ls, break-toggle, breakable, logpoint, catch, break-fn |
| 变量修改 | set, set-return, hotpatch |
| 黑盒控制 | blackbox, blackbox-ls, blackbox-rm |
待确认事项
- npm 包发布状态:文档站有链接,但 GitHub Packages 显示未发布,可用性待确认
- 文档站版本滞后:文档站显示 v0.2.1,仓库实际已到 v0.6.2
- Python (debugpy) 支持成熟度低于 Node/Bun/LLDB
- Deno / Go / 完整 Java 调试无明确时间线
- Windows 兼容性未提及(架构依赖 Unix socket IPC)