開発中のランタイムエラーを自動で拾って Claude Code に直させる(DevSonar)
devsonar run -- <いつもの起動コマンド> で開発サーバーを包むと、例外やスタックトレースを捕まえてまとめ、Claude Code(Agent SDK 経由)にソースを読ませて修正させる。スタックトレースを手でコピペする作業がなくなる。
どんな時に使う?
- エラーが出るたびにターミナルからスタックトレースをコピーして AI に貼っている
- フロントで出たエラーの原因がバックエンドにある、という monorepo(Turborepo など)
- Node.js 以外(Python・Go・Ruby・Java・Rust)のプロセスも同じ仕組みで見たい
手順(Node.js)
bash
npm install devsonarjson
{ "scripts": { "dev": "devsonar run -- tsx watch src/index.ts" } }devsonar runがリレーサーバー(ポート 9100)を立て、Node.js プロセスに計装を差し込む。uncaughtExceptionとunhandledRejectionを拾う- ブラウザ側は
import 'devsonar';を1行足す。window.onerror、unhandledrejection、fetchの 4xx/5xx も拾う - 他の言語: Python は
pip install devsonar→devsonar.init()(Django/Flask のミドルウェアあり)、Go はdevsonar-go。Ruby/Java/Rust はdevsonar run -- ruby app.rbのように包むだけで、stderr のスタックトレースを検出する
無駄な呼び出しを減らす仕組み
- エラーを受けたら3秒待って、その間の追加エラーもまとめて送る(デバウンス)
- 同じメッセージのエラーを処理中ならスキップ
- 50件たまったら即送る
- セッションを保つので、前に直したエラーの文脈を覚えたまま次に対応する
注意点
- 前提は Node.js 18 以上と、Claude Code CLI がインストール済みであること
- エラーのたびにエージェントがコードを書き換えるので、開発ブランチで使い、差分を確認してから取り込む。本番環境では使わない
- 個人の OSS ツール。導入前にリポジトリの中身を確認する
- 直した後のやり取りがループしないようにするルールは バグ修正の「指摘→修正→また指摘」を止める4ルール(CLAUDE.md/AGENTS.md 向け)
出典
- @azu_re 2026-02-14: @azu_re · 2026-02-14
- otomachi「エラーのスタックトレースをAIにコピペする時代、終わらせたい」(Zenn): zenn.dev