Show HN: ProxyBoy - AIアシスタント搭載のWindows向けHTTP/HTTPSデバッグプロキシ
ProxyBoyは、GitHub Copilotを搭載したAIアシスタントを内蔵するWindowsネイティブのMITM HTTP/HTTPSプロキシです。ネットワークトラフィックのキャプチャ、検査、変更が可能で、GraphQL認識、Protobufデコード、ネットワークスロットリング、ブレークポイントルールなどの機能を備えています。Proxymanに触発された実験的なオープンソースツールです。
ProxyBoyは、Windows向けに設計されたHTTP/HTTPSデバッグプロキシツールで、中間者(MITM)技術を使用してネットワークトラフィックをキャプチャ、検査、変更します。Charles Proxy、Fiddler、Proxymanと同様のコア機能を提供するだけでなく、GitHub Copilot SDKをベースにしたAIアシスタントを革新的に統合しており、会話形式でトラフィックの分析、ルール作成、ネットワーク問題のデバッグを支援します。
主な機能
- トラフィックキャプチャ:自動SSL証明書生成によるHTTPおよびHTTPSトラフィックのインターセプト。
- リクエスト/レスポンスインスペクタ:ヘッダー、ボディ(JSON、HTML、XML、画像)、タイミング、メタデータの表示。
- GraphQL認識:GraphQL操作の検出、操作名の表示、操作によるトラフィックフィルタリング。
- Protobuf/gRPCデコード:.protoファイルを使用してProtobufペイロードをデコード。スキーマがない場合は生のフィールド検査にフォールバック。
- キャッシュ無効化トグル:キャッシュバリデータを除去し、Cache-Control: no-storeを返して常に最新のレスポンスを強制。
- ネットワークスロットリング:プリセットまたはカスタムのアップロード、ダウンロード、レイテンシプロファイルで低速リンクをシミュレート。
- リクエストコンポーザー:ゼロからリクエストを構築し、ProxyBoy経由で送信してインラインで結果を検査。
- アップストリームプロキシチェーン:HTTPまたはSOCKS5アップストリームプロキシを介したトラフィック転送、バイパスパターン、安全な資格情報保存に対応。
- Cookieインスペクタ:リクエストCookieとSet-Cookieヘッダーを構造化された検索可能なビューに解析。
- AIアシスタント:GitHub Copilotを搭載したチャットパネルで、トラフィック検索、パターン分析、ルール作成、データエクスポートが可能。
- ブレークポイントルール:処理途中でリクエスト/レスポンスを一時停止し、検査後、転送またはドロップ。
- マップローカルルール:ローカルファイルをリモートレスポンスの代わりに提供し、APIをモック。
- マップリモートルール:クライアントを変更せずに、一致するリクエストを別のアップストリームホストに転送。
- キャプチャルール:全キャプチャ、許可リスト、ブロックリストのモードを切り替え、記録内容を制御。
- システムプロキシ統合:アプリからWindowsシステムプロキシのオン/オフを切り替え。
- HARエクスポート/インポート:標準HAR形式で他のツールとキャプチャを共有。
- 設定可能なカラム:カラムの表示/非表示、任意のフィールドでのソート、タイムスタンプ。
- ボディ検索:トラフィックフィルタリングにリクエストおよびレスポンスのテキストボディを含め、より深い検索が可能。
- WebSocketとSSE検査:トラフィック詳細ビューでライブWebSocketフレームとサーバー送信イベントをキャプチャ。
- スクリプトルール:アプリ内でサンドボックス化されたJavaScriptルールを実行し、アプリを離れずにリクエストとレスポンスを書き換え。
- cURLとしてコピー:任意のリクエストを右クリックしてcURLコマンドとしてコピー。
- キーボードショートカット:プロキシ制御、HARインポート/エクスポート、フィルタリング、トラフィック操作への高速アクセス。
- テーマモード:ダーク、ライト、システムテーマの選択とリアルタイム切り替え。
- 分離可能なAIパネル:アシスタントを別ウィンドウにポップアウト。
AIアシスタントツール
内蔵のCopilotエージェントは以下のツールを呼び出せます:
- getRecentTraffic:最新のキャプチャフローを取得。
- searchTraffic:URL、ボディ、またはヘッダーでフローを検索。
- getErrorFlows:すべての4xx/5xxレスポンスを検索。
- getFlowDetails:特定のリクエストを詳細表示。
- createBreakpointRule:一致するトラフィックを一時停止するブレークポイントを作成。
- createMapLocalRule:ローカルファイルでAPIエンドポイントをモック。
- exportHar:キャプチャしたトラフィックをHARとしてエクスポート。
- controlProxy:プロキシエンジンを起動または停止。
ツールの実行は自動承認または呼び出しごとに手動確認が必要。
技術スタック
- Electron + React + TypeScript
- http-mitm-proxy:MITMプロキシエンジン
- @github/copilot-sdk:AIエージェント機能
- sql.js:プロセス内SQLite永続化
- Tailwind CSS:スタイリング
- react-virtuoso:仮想化トラフィックリスト
- Electron Forge:ビルドとパッケージング
はじめに
前提条件:Windows 10/11、Node.js 20+、GitHub Copilotサブスクリプション(AIアシスタントに必要、プロキシ自体は不要)。
インストールと実行:
git clone https://github.com/pjperez/proxyboy.git
cd proxyboy
npm install
npm startインストーラーのビルド:npm run build、出力はout/make/に。
使用方法:
- ステータスバーの再生ボタンをクリックするか、AIアシスタントを使用してプロキシを起動。
- 設定で「システムプロキシ」を切り替えるか、ブラウザ/アプリを手動で
127.0.0.1:9090に設定。 - 任意の行をクリックしてリクエスト/レスポンスの詳細を表示。
- ブレークポイント、マップローカル、マップリモートビューを使用するか、AIアシスタントに質問してルールを作成。
- サイドバーのロボットアイコンをクリックするか、Ctrl+Shift+AでAIアシスタントを起動。
SSL/HTTPS:ProxyBoyのルートCA証明書を信頼する必要があります。設定→証明書のインストールに移動し、ローカルルートCAをWindows証明書ストアにインストールします。インストール後、ブラウザを再起動してください。証明書はローカルで生成され、ユーザープロファイルに保存され、マシンから外部に出ることはありません。
既知の制限
- Windowsのみ:システムプロキシ統合はWindowsレジストリを使用。その他の部分は理論上クロスプラットフォーム可能。
- ブレークポイントでのリクエスト/レスポンス編集不可:現在は検査と転送/ドロップのみ、変更は未サポート。
- SSL検査の問題:証明書ピン留めやHSTSプリロードを使用するサイトはプロキシを通過できない場合があります。
- Cloudflareチャレンジ:Cloudflareのブラウザチャレンジの背後にあるサイトは、通常どのMITMプロキシでも失敗します。
- 自動テストは非常に限定的:小規模なテスト基盤はありますが、カバレッジは本番環境には程遠いです。
謝辞
- Proxyman:主要なインスピレーション。洗練された信頼性の高いプロキシツールが必要なら、Proxymanを使用することを強くお勧めします。
- Charles ProxyとFiddler:この分野の他の優れたツール。
- GitHub Copilot:AIアシスタントを駆動し、アプリ全体の構築を支援。
ライセンス
MITライセンス – 自由に使用可能。