node-devtools-cli について
node-devtools-cliは、Node.jsバックエンドプロセスを停止せずにデバッグするコマンドラインツールです。開発者やAIエージェント向けに、Inspector Protocol経由でトレースポイントなどを設定できます。
主な機能
- 01停止しないトレースポイントとログポイント
- 02例外ポイントとウォッチ式
- 03PID、名前、コンテナ、ポート、WebSocketで接続
- 04デーモンとデバッグセッションの管理
- 05JSON出力と対話モード
活用シーン
- 01Node.jsバックエンドを停止せずに調査
- 02ソース位置を指定したルート処理の追跡
- 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 CLI
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 エージェントに推奨:
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 が有効になっていない場合、CLI は SIGUSR1 を使って有効化します(コードの変更は不要です)。Docker の場合は、ポート 9229 を公開し、--inspect=0.0.0.0:9229 を使用してください。
CLI 管理コマンド
デーモン
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> | ツールを実行 |
シェル補完
eval "$(node-devtools-cli completion bash)"
eval "$(node-devtools-cli completion zsh)"
コメント
Markdown 対応