node-devtools-cli

📁 serkan-ozal/browser-devtools-skills 📅 12 days ago
9
总安装量
8
周安装量
#31443
全站排名
安装命令
npx skills add https://github.com/serkan-ozal/browser-devtools-skills --skill node-devtools-cli

Agent 安装分布

gemini-cli 7
github-copilot 7
codex 7
amp 7
kimi-cli 7
opencode 7

Skill 文档

Node DevTools CLI

Command-line interface for non-blocking debugging of Node.js backend processes. Connects via the Inspector Protocol (Chrome DevTools Protocol) and provides tracepoints, logpoints, exceptionpoints, and watch expressions without pausing execution.

Installation

Same package as browser-devtools-mcp:

npm install -g browser-devtools-mcp

Quick Start

# 1. Start daemon (if not running)
node-devtools-cli daemon start

# 2. Connect to a Node.js process (by PID)
node-devtools-cli --session-id my-debug debug connect --pid 12345

# 3. Set a tracepoint on server.js line 42
node-devtools-cli --session-id my-debug debug put-tracepoint \
  --url-pattern "server.js" \
  --line-number 42

# 4. Trigger the code path (e.g., make API request to your app)
# 5. Get captured snapshots
node-devtools-cli --session-id my-debug --json debug get-probe-snapshots

Global Options

Option Description Default
--port <number> Daemon server port 2020
--session-id <string> Session for Node connection persistence auto
--json Output as JSON (recommended for AI) false
--quiet Suppress log messages false
--verbose Enable debug output false
--timeout <ms> Operation timeout 30000

AI Agent Recommended:

node-devtools-cli --json --quiet --session-id "debug-session" <command>

Tool Domains

Domain Description Reference
debug Connection, tracepoints, logpoints, exceptionpoints, watch, snapshots
run JavaScript execution in connected Node process

Connection Methods

Connect via debug connect with one of:

Method Option Example
PID --pid <number> --pid 12345
Process name --process-name <pattern> --process-name "server.js"
Docker container --container-id or --container-name --container-name my-api
Inspector port --inspector-port <number> --inspector-port 9229
WebSocket URL --ws-url <url> --ws-url "ws://127.0.0.1:9229/abc"

If the process doesn’t have --inspect active, the CLI activates it via SIGUSR1 (no code changes). For Docker: expose port 9229 and use --inspect=0.0.0.0:9229.

CLI Management Commands

Daemon

node-devtools-cli daemon status
node-devtools-cli daemon start
node-devtools-cli daemon stop
node-devtools-cli daemon restart
node-devtools-cli daemon info

Session

node-devtools-cli session list
node-devtools-cli session info <session-id>
node-devtools-cli session delete <session-id>

Tools

node-devtools-cli tools list
node-devtools-cli tools search <query>
node-devtools-cli tools info <tool-name>

Config & Updates

node-devtools-cli config
node-devtools-cli update --check

Examples

Connect by PID

SESSION="--session-id api-debug"

# Connect
node-devtools-cli $SESSION debug connect --pid $(pgrep -f "node server.js")

# Set tracepoint on route handler
node-devtools-cli $SESSION debug put-tracepoint \
  --url-pattern "routes/api.ts" \
  --line-number 25

# Trigger: curl http://localhost:3000/api/users
# Get snapshots
node-devtools-cli $SESSION --json debug get-probe-snapshots

Connect by Process Name

node-devtools-cli debug connect --process-name "api"

Docker Container

# App runs in container with -p 9229:9229
node-devtools-cli debug connect \
  --container-name my-node-app \
  --host host.docker.internal \
  --inspector-port 9229

Exception Catching

SESSION="--session-id exc-debug"

node-devtools-cli $SESSION debug connect --pid 12345
node-devtools-cli $SESSION debug put-exceptionpoint --state uncaught

# Trigger error in app
# Check snapshots
node-devtools-cli $SESSION --json debug get-probe-snapshots --types exceptionpoint

Run JS in Node Process

# After connect
node-devtools-cli run js-in-node --script "process.memoryUsage()"
node-devtools-cli run js-in-node --script "require('os').loadavg()"

Interactive Mode

node-devtools-cli interactive
Command Description
help Show commands
exit, quit Exit
debug connect Connect to process
debug status Connection status
<domain> <tool> Execute tool

Shell Completions

eval "$(node-devtools-cli completion bash)"
eval "$(node-devtools-cli completion zsh)"