← ClaudeAtlas

debug-hublisted

Evidence-first debugging WITH MCP tools. Use when debug_hub MCP server is available. Inject log calls, collect via HTTP API (port 39200), analyze through MCP tools, clean up when done. If debug_hub MCP is unavailable, use `debug` skill (bundled Python collector) instead.
rexleimo/harness-cli · ★ 42 · AI & Automation · score 74
Install: claude install-skill rexleimo/harness-cli
# Debug-Hub Working directory: any (scripts run from project root by convention) Evidence-first debugging: inject zero-dependency log calls, collect via debug-hub HTTP API, analyze through MCP tools, strip all injected code when done. ## Inline Reporter Inject once at the top of the first file you modify. Node 18+ / modern browsers, zero npm deps: ```js const __dh=async(m,d)=>{try{await fetch('http://127.0.0.1:39200/api/logs/single',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({id:crypto.randomUUID(),timestamp:Date.now(),level:'debug',message:m,data:d,sdk:{name:'dh',version:'1',runtime:'node'}})})}catch{}} ``` **Python target?** Use the `debug` skill instead — it bundles a Python collector that sends to the same debug-hub API. This applies regardless of whether debug_hub MCP is available; the `__dh` helper is JavaScript-only. ## Marker Convention Every injected debug line carries `DH:<sessionId>`. Cleanup strips any line containing this string. ```js __dh('DH:sess-abc user state', {user}); __dh('DH:sess-abc payment duration', {ms: Date.now()-t0}); ``` ## MCP Tools | Tool | What it does | |------|--------------| | `debug_hub.start_session { objective }` | Start session, returns `sessionId` | | `debug_hub.instrument { sessionId, files: [{path, lineCount}] }` | Track files with injected debug code | | `debug_hub.search_logs { keyword, level, since, traceId }` | Query collected runtime logs | | `debug_hub.get_stats` | Error counts, lev