
2026/01/29 3:52
**Show HN:** 「あなたのLLMツールが送信している内容を確認できるMitMプロキシ」
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Sherlock は、アプリケーションとLLMプロバイダーのAPIの間に位置する軽量で透明性の高いHTTPSプロキシです。mitmproxy を使ってポート 8080 上のトラフィックをインターセプトすると、ターミナルベースの「燃料計」ダッシュボードが表示され、各プロンプトについてリアルタイムでプロバイダー(例:Anthropic Claude)、モデル名、トークン数、およびタイムスタンプを確認できます。すべてのリクエストとレスポンスは自動的に
~/.sherlock/prompts/ ディレクトリ内に Markdown(人間が読みやすい形式)および JSON(生APIボディ)ファイルとして保存され、開発者はコスト追跡やデバッグのための明確な監査証跡を得られます。
インストールと初回実行
リポジトリをクローンします (
git clone https://github.com/jmuncor/sherlock.git) そして pip で編集モードでインストールします (pip install -e .)。最初に起動すると、Sherlock は自らの mitmproxy CA 証明書を生成し、システムの信頼ストア(macOS/Ubuntu の手順が提供されています)へ追加するよう促されます。また、インターセプトされたプロンプトを保存する場所も選択できます。
使い方
よく使われるコマンドは
sherlock claude(Claude Code 用)、sherlock run <cmd>(任意のコマンドをプロキシ)および sherlock run --node <cmd>(Node.js アプリ用)です。ヘルパーコマンドとして check-certs、install-certs、env があり、証明書と環境変数(HTTP_PROXY、HTTPS_PROXY、NODE_EXTRA_CA_CERTS)を管理します。オプションフラグには --port、--limit、--persist、および --skip-cert-check があり、追加設定が可能です。
プロバイダーサポート
現在は Anthropic の Claude に対応しています;今後のリリースで OpenAI と Google Gemini を追加予定です。新しいプロバイダーを追加するには、
sherlock/config.py にホストを追加し、sherlock/parser.py でパーサーを作成し、parse_request() を更新します。
貢献とライセンス
MIT ライセンスの下での貢献は歓迎されます。ワークフローは fork → branch → commit → push → pull request で進められ、開発は仮想環境(
pip install -e .)内で行われます。また、プロバイダーサポートを拡張するための明確なガイドラインも提供されています。
トークン使用量とプロンプト履歴を公開することで、Sherlock はチームが AI コストをより厳密に管理し、LLM駆動サービスをデバッグし、全体的な信頼性を向上させるのに役立ちます。
本文
Sherlock – LLM API トラフィックインスペクター & トークン使用量ダッシュボード
Sherlock は HTTPS トラフィックを傍受し、LLM API へのリクエストごとのトークン消費をリアルタイムで美しいターミナルダッシュボードに表示する透明なプロキシです。
AI コストの追跡、プロンプトデバッグ、開発セッション全体のコンテキストウィンドウ使用量を監視できます。
なぜ Sherlock なのか?
- トークン使用量を追跡 – 各リクエストが消費するトークン数を正確に確認。
- コンテキストウィンドウを監視 – 燃料計で合計使用量と制限値を可視化。
- プロンプトデバッグ – すべてのプロンプトを Markdown と JSON に自動保存し、レビュー可能に。
- コード変更不要 – プロキシ環境変数を尊重するツールならどれでも使用可。
インストール
# リポジトリをクローン git clone https://github.com/jmuncor/sherlock.git cd sherlock # 開発モードでインストール pip install -e .
要件
- Python 3.10+
- Node.js(Claude Code などの Node アプリを傍受するため)
クイックスタート
-
Sherlock を起動
初回実行時に Sherlock は次を行います:
- mitmproxy の CA 証明書を生成。
- システム信頼ストアへのインストールを促す。
- 傍受したプロンプトの保存場所を尋ねる。
-
LLM ツールを実行
別ターミナルで Sherlock を使ってコマンドをプロキシ:
# Claude Code 用 sherlock claude # 任意のコマンド sherlock run --node <your-llm-tool>LLM API と対話するときにダッシュボードがリアルタイムで更新されます。
機能
ライブターミナルダッシュボード
┌─────────────────────────────────────────────────────────────┐ │ 🔍 SHERLOCK - LLM Traffic Inspector │ ├─────────────────────────────────────────────────────────────┤ │ Context Usage ████████████░░░░░░░░░░░░░░░░ 42% │ │ (84,231 / 200,000 tokens) │ ├─────────────────────────────────────────────────────────────┤ │ Time Provider Model Tokens │ │ 14:23:01 Anthropic claude-sonnet-4-20250514 12,847 │ │ 14:23:45 Anthropic claude-sonnet-4-20250514 8,234 │ │ 14:24:12 Anthropic claude-sonnet-4-20250514 15,102 │ ├─────────────────────────────────────────────────────────────┤ │ Last Prompt: "Can you help me refactor this function..." │ └─────────────────────────────────────────────────────────────┘
プロンプトアーカイブ
傍受したリクエストは次の形式で保存されます:
- Markdown – メタデータ付き人間可読フォーマット。
- JSON – デバッグ用にそのまま API リクエスト本文を保持。
コンテキスト燃料計
色分けされた進捗バー:
- 🟢 緑:< 50% 使用
- 🟡 黄:50–80% 使用
- 🔴 赤:> 80% 使用
コマンド一覧
| コマンド | 説明 |
|---|---|
| プロキシとダッシュボードを起動。 |
| 上記と同じ(明示的に)。 |
| Claude Code をプロキシ付きで実行。 |
| 任意のコマンドをプロキシ付きで実行。 |
| Node.js アプリをプロキシ付きで実行。 |
| CA 証明書のインストール状態を確認。 |
| 証明書インストール手順を表示。 |
| プロキシ環境変数を出力。 |
オプション
sherlock start [OPTIONS] Options: -p, --port NUM プロキシポート(デフォルト: 8080) -l, --limit NUM 燃料計のトークン上限(デフォルト: 200000) --persist セッション間でトークン履歴を保存 --skip-cert-check 証明書検証をスキップ
動作概要
┌──────────────────────────────────────────────────────────────────┐ │ Your LLM Application │ │ (with proxy environment variables) │ └─────────────────────────────┬────────────────────────────────────┘ │ HTTPS ▼ ┌──────────────────────────────────────────────────────────────────┐ │ mitmproxy (port 8080) │ │ + Sherlock Interceptor │ └─────────────────────────────┬────────────────────────────────────┘ │ Parsed events ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Sherlock Dashboard │ │ Token tracking • Request log • Prompt preview │ └──────────────────────────────────────────────────────────────────┘
インターセプタはプロンプトを
~/.sherlock/prompts/ に保存します:
2024-01-15_14-23-01_anthropic.md 2024-01-15_14-23-01_anthropic.json
対応プロバイダー
| Provider | ステータス |
|---|---|
| Anthropic (Claude) | ✅ 対応済み |
| OpenAI | 🔜 近日リリース予定 |
| Google Gemini | 🔜 近日リリース予定 |
設定方法
CA 証明書のセットアップ
Sherlock は mitmproxy を使って HTTPS トラフィックを傍受します。初回実行時に CA 証明書のインストール手順が案内されます。
-
macOS
sudo security add-trusted-cert -d -r trustRoot \ -k /Library/Keychains/System.keychain \ ~/.mitmproxy/mitmproxy-ca-cert.pem -
Ubuntu/Debian
sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem \ /usr/local/share/ca-certificates/mitmproxy-ca-cert.crt sudo update-ca-certificates
環境変数
手動でプロキシ設定する場合:
export HTTP_PROXY="http://127.0.0.1:8080" export HTTPS_PROXY="http://127.0.0.1:8080" export NODE_EXTRA_CA_CERTS="$HOME/.mitmproxy/mitmproxy-ca-cert.pem"
またはヘルパーを使用してください。
コントリビューション
貢献歓迎です!以下の手順で参加できます:
- リポジトリをフォーク。
- 機能ブランチを作成(例:
)。git checkout -b feature/amazing-feature - 変更をコミット(例:
)。git commit -m 'Add amazing feature' - ブランチへプッシュ(例:
)。git push origin feature/amazing-feature - プルリクエストを作成。
開発環境構築
git clone https://github.com/yourusername/sherlock.git cd sherlock python -m venv venv source venv/bin/activate pip install -e .
プロバイダーサポート追加手順
に API ホストを追加。sherlock/config.py
にパーサ関数を作成。sherlock/parser.py
を更新し、該当パーサへルーティング。parse_request()
ライセンス
本プロジェクトは MIT ライセンスの下で公開されています – 詳細は LICENSE ファイルをご覧ください。
実際に LLM に送信されている内容を確認。学習し、最適化し、繰り返す。