
Node Inspect Debugger
- 59 installs
- 385k repo stars
- Updated August 3, 2026
- steipete/clawdis
Helps with debugging tasks during AI-assisted development.
About
node-inspect-debugger is a Claude Code skill for debugging. It helps solo builders move faster with AI-assisted coding.
- node-inspect-debugger
- Debugging
- AI-coding skill
Node Inspect Debugger by the numbers
- 59 all-time installs (skills.sh)
- +1 installs in the week ending Jul 11, 2026 (Skillselion tracking)
- Ranked #293 of 597 Debugging skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/steipete/clawdis --skill node-inspect-debuggerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 59 |
|---|---|
| repo stars | ★ 385k |
| Last updated | August 3, 2026 |
| Repository | steipete/clawdis ↗ |
What it does
Helps with debugging tasks during AI-assisted development.
Files
Node Inspect Debugger
Use for Node.js debugging that needs inspector access: hidden locals, async hangs, flaky tests, child processes, startup races, memory growth, or CPU hot paths.
Default to node inspect first. Use Chrome DevTools Protocol only when you need scripted breakpoints, automated state capture, heap snapshots, or CPU profiles.
Quick start
- Pause on entry:
node inspect path/to/script.js - TypeScript:
node --inspect-brk --import tsx path/to/script.ts - Existing PID:
kill -SIGUSR1 <pid>thennode inspect -p <pid> - Inspect target list:
curl -s http://127.0.0.1:9229/json/list | jq - OpenClaw CLI path:
node --inspect-brk openclaw.mjs ... - OpenClaw test path:
OPENCLAW_VITEST_MAX_WORKERS=1 node --inspect-brk scripts/run-vitest.mjs <file>
Debugger REPL
- Continue/step:
cont,next,step,out,pause - Breakpoints:
sb('file.js', 42),sb(42),sb('functionName'),breakpoints,cb('file.js', 42) - Inspect:
bt,list(8),watch('expr'),exec expr - Current scope:
repl, then evaluate locals directly;Ctrl+Cexits repl mode. - Exit safely:
contbefore quitting if the process should continue; otherwisekill.
OpenClaw tips
- Prefer
127.0.0.1inspector binds. Do not expose--inspect=0.0.0.0unless the network is isolated. - For Vitest, debug one file with one worker. Avoid worker pools while stepping.
- For TS source breakpoints, use
--enable-source-mapswhen useful;node inspectcan still show emitted paths. - For child processes,
NODE_OPTIONS=--inspect-brkcan propagate the inspector, but each child needs its own port. - For long-lived gateway or dev processes, attach by PID after confirming the target with
/json/list.
Programmatic CDP
Install tooling outside the repo unless the project already depends on it:
mkdir -p /tmp/cdp-tools
npm --prefix /tmp/cdp-tools i chrome-remote-interface
NODE_PATH=/tmp/cdp-tools/node_modules node /tmp/cdp-debug.cjsMinimal driver:
const CDP = require("chrome-remote-interface");
(async () => {
const client = await CDP({ port: 9229 });
const { Debugger, Runtime } = client;
Debugger.paused(async ({ callFrames, reason }) => {
const top = callFrames[0];
console.log("paused", reason, top.url, top.location.lineNumber + 1);
const { result } = await Debugger.evaluateOnCallFrame({
callFrameId: top.callFrameId,
expression: "JSON.stringify({ pid: process.pid })",
});
console.log(result.value ?? result.description);
await Debugger.resume();
});
await Runtime.enable();
await Debugger.enable();
await Debugger.setBreakpointByUrl({ urlRegex: ".*target\\.js$", lineNumber: 41 });
await Runtime.runIfWaitingForDebugger();
})();Profiles
- CPU: enable
Profiler,start, wait,stop, write/tmp/profile.cpuprofile, open in Chrome DevTools. - Heap: enable
HeapProfiler, collectaddHeapSnapshotChunk, calltakeHeapSnapshot, write/tmp/heap.heapsnapshot.
Pitfalls
--inspectdoes not pause; use--inspect-brkwhen setup must happen before code runs.- Default port is
9229; use--inspect=0or a unique port for parallel targets. - If a breakpoint misses, confirm file path, source map behavior, and whether execution already passed the line.
- If the process appears frozen after detaching, it may still be paused in the debugger.