mcpField
N
node-devtools-cli

node-devtools-cli

github.com/serkan-ozal开发736 次安装33 周前更新
代码仓库

关于 node-devtools-cli

node-devtools-cli 是用于非阻塞调试 Node.js 后端进程的命令行工具,面向开发者和 AI Agent。它通过 Inspector Protocol 设置追踪点等探针,避免暂停程序执行。

主要功能

  1. 01非阻塞追踪点与日志点
  2. 02异常点与监视表达式
  3. 03按进程、容器、端口或 WebSocket 连接
  4. 04管理守护进程与调试会话
  5. 05JSON 输出与交互模式

适用场景

  1. 01不停下 Node.js 后端进程进行检查
  2. 02按源码位置追踪路由处理程序
  3. 03捕获未捕获异常的快照

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/serkan-ozal/browser-devtools-skills --skill node-devtools-cli

安装后在 Claude Code 中输入/node-devtools-cli确认已加载。

附带文件references/debug.md

详细介绍

Node DevTools 命令行工具

用于非阻塞调试 Node.js 后端进程的命令行界面。通过 Inspector Protocol(Chrome DevTools Protocol)连接,并提供跟踪点、日志点、异常点和监视表达式,且不会暂停执行。

安装

与 browser-devtools-mcp 使用同一个包:

npm install -g browser-devtools-mcp

快速开始

# 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

全局选项

选项说明默认值
--port <number>守护进程服务端口2020
--session-id <string>用于持久化 Node 连接的会话自动
--json以 JSON 格式输出(推荐用于 AI)false
--quiet隐藏日志消息false
--verbose启用调试输出false
--timeout <ms>操作超时时间30000

AI Agent 推荐选项:

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

工具域

域说明参考
debug连接、跟踪点、日志点、异常点、监视、快照

连接方式

使用 debug connect 连接,可选择以下任一方式:

方式选项示例
PID--pid <number>--pid 12345
进程名称--process-name <pattern>--process-name "server.js"
Docker 容器--container-id 或 --container-name--container-name my-api
Inspector 端口--inspector-port <number>--inspector-port 9229
WebSocket URL--ws-url <url>--ws-url "ws://127.0.0.1:9229/abc"

如果进程未启用 --inspect,命令行工具会通过 SIGUSR1 启用它(无需更改代码)。对于 Docker:公开端口 9229,并使用 --inspect=0.0.0.0:9229。

命令行管理命令

守护进程
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
会话
node-devtools-cli session list
node-devtools-cli session info <session-id>
node-devtools-cli session delete <session-id>
工具
node-devtools-cli tools list
node-devtools-cli tools search <query>
node-devtools-cli tools info <tool-name>
配置与更新
node-devtools-cli config
node-devtools-cli update --check

示例

按 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
按进程名称连接
node-devtools-cli debug connect --process-name "api"
Docker 容器
# 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
捕获异常
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

交互模式

node-devtools-cli interactive
命令说明
help显示命令
exit、quit退出
debug connect连接到进程
debug status连接状态
<domain> <tool>执行工具

Shell 补全

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

评论

支持 Markdown