agent-dbg is a CLI debugger that supports Node.js (V8/CDP), Bun (WebKit/JSC), and native code (C/C++/Rust/Swift via LLDB/DAP). It uses short @refs for all entities -- use them instead of long IDs.
Supported Runtimes
| Runtime | Language | Launch example |
|---|---|---|
| Node.js | JavaScript | agent-dbg launch --brk node app.js |
| tsx / ts-node | TypeScript | agent-dbg launch --brk tsx src/app.ts |
| Bun | JavaScript / TypeScript | agent-dbg launch --brk bun app.ts |
| LLDB | C / C++ / Rust / Swift | agent-dbg launch --brk --runtime lldb ./program |
The runtime is auto-detected from the launch command for JS runtimes. For native code, use --runtime lldb.
Core Debug Loop
# 1. Launch with breakpoint at first line
agent-dbg launch --brk node app.js
# Or: agent-dbg launch --brk bun app.ts
# Or: agent-dbg launch --brk --runtime lldb ./my_program
# Or attach to a running process with the --inspect flag
agent-dbg attach 9229
# 2. Set breakpoints at suspicious locations
agent-dbg break src/handler.ts:42
agent-dbg break src/utils.ts:15 --condition "count > 10"
# 3. Run to breakpoint
agent-dbg continue
# 4. Inspect state (shows location, source, locals, stack)
agent-dbg state
# 5. Drill into values
agent-dbg props @v1 # expand object
agent-dbg props @v1 --depth 3 # expand nested 3 levels
agent-dbg eval "x + 1"
# 6. Fix and verify (JS/TS only)
agent-dbg set count 0 # change variable
agent-dbg hotpatch src/utils.js # live-edit (reads file from disk)
agent-dbg continue # verify fix
Debugging Strategies
Bug investigation -- narrow down with breakpoints
agent-dbg launch --brk node app.js
agent-dbg break src/api.ts:50 # suspect line
agent-dbg break src/api.ts:60 --condition "!user" # conditional
agent-dbg continue
agent-dbg vars # check locals
agent-dbg eval "JSON.stringify(req.body)" # inspect deeply
agent-dbg step over # advance one line
agent-dbg state # see new state
Native code debugging (C/C++/Rust)
agent-dbg launch --brk --runtime lldb ./my_program
agent-dbg break main.c:42
agent-dbg break-fn main # function breakpoint (DAP only)
agent-dbg continue
agent-dbg vars # inspect locals
agent-dbg eval "array[i]" # evaluate expression
agent-dbg step into # step into function
Attach to running/test process
# Start with inspector enabled
node --inspect app.js
# Or: bun --inspect app.ts
# Then attach
agent-dbg attach 9229
agent-dbg state
Trace execution flow with logpoints (no pause)
agent-dbg logpoint src/auth.ts:20 "login attempt: ${username}"
agent-dbg logpoint src/auth.ts:45 "auth result: ${result}"
agent-dbg continue
agent-dbg console # see logged output
Exception debugging
agent-dbg catch uncaught # pause on uncaught exceptions
agent-dbg continue # runs until exception
agent-dbg state # see where it threw
agent-dbg eval "err.message" # inspect the error
agent-dbg stack # full call stack
TypeScript source map support
agent-dbg automatically resolves .ts paths via source maps. Set breakpoints using .ts paths, see .ts source in output. Use --generated to see compiled .js if needed.
Ref System
Every output assigns short refs. Use them everywhere:
@v1..@vN-- variables:agent-dbg props @v1,agent-dbg set @v2 true@f0..@fN-- stack frames:agent-dbg eval --frame @f1 "this"BP#1..N-- breakpoints:agent-dbg break-rm BP#1,agent-dbg break-toggle BP#1LP#1..N-- logpoints:agent-dbg break-rm LP#1
Refs @v/@f reset on each pause. BP#/LP# persist until removed.
Key Flags
--json-- machine-readable JSON output on any command--session NAME-- target a specific session (default: "default")--runtime NAME-- select debug adapter (e.g.lldbfor native code)--generated-- bypass source maps, show compiled JS (on state/source/stack)
Command Reference
See references/commands.md for full command details and options.
Tips
agent-dbg stateafter stepping always shows location + source + locals -- usually enough contextagent-dbg state -cfor source only,-vfor vars only,-sfor stack only -- save tokensagent-dbg evalsupportsawait-- useful for async inspection (JS/TS)agent-dbg blackbox "node_modules/**"-- skip stepping into dependenciesagent-dbg hotpatch filereads the file from disk -- edit the file first, then hotpatch (JS/TS only)agent-dbg break-fn funcName-- function breakpoints work with DAP runtimes (LLDB)- Execution commands (
continue,step,pause,run-to) auto-return status agent-dbg stopkills the debugged process and daemon