HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: Ghostman – 高速でキーボード駆動のTUI APIクライアントおよびWebhookインスペクター

Show HN: Ghostman – A fast, keyboard-driven TUI API client and webhook inspector (github.com)

19 pointsby 4yk59 コメント

要約

Ghostmanは、ターミナル上で動作する高速なAPIクライアントおよびWebhookインスペクターです。クラウドアカウントやElectronの重さを排除し、ローカルファーストで動作します。キーボード操作に最適化されており、APIリクエストの送信やWebhookの受信・検査を効率的に行えます。

全文翻訳

👻 Ghostman

   ____ _               _                          
  / ___| |__   ___  ___| |_ _ __ ___   __ _ _ __   
 | |  _| '_ \ / _ \/ __| __| '_ ` _ \ / _` | '_ \  
 | |_| | | | | (_) \__ \ |_| | | | | | (_| | | | | 
  \____|_| |_|\___/|___/\__|_| |_| |_|\__,_|_| |_| 
                                                   

ターミナル上で動作する、高速でキーボード駆動のAPIクライアントおよびWebhookインスペクター。
クラウドアカウント不要。1GBのElectronの肥大化なし。100%ローカルファースト。

[画像: License: MIT] [画像: Python: 3.10+] [画像: UI: Textual]

[画像: Ghostman Main Studio]


💡 なぜGhostmanか?

PostmanやInsomniaのようなモダンなAPIクライアントは、軽量な開発者ユーティリティとして始まりましたが、重厚なエンタープライズプラットフォームへと進化しました。

  • ❌ クラウドログイン、チームワークスペース、テレメトリを強制する
  • ❌ アイドル状態でも800MB~1.5GBのRAMを消費する
  • ❌ 起動時間が遅い
  • ❌ ローカルのWebhookコールバックを検査するためだけに外部トンネル(ngrok, webhook.site)が必要

Ghostmanは、生のスピード、ターミナルワークフロー、そして完全なローカルプライバシーを求める開発者のためにゼロから構築されました。

  • ⚡ 瞬時の起動: ターミナルで200ミリ秒未満で起動します。
  • 🔒 100%ローカルファースト: すべてのコレクションとリクエストは、.ghostman/collections.yamlにプレーンなYAMLファイルとして保存されます。コードベースと一緒にGitにコミットできます。
  • 🛰️ 組み込みWebhookレシーバー: Ctrl + Wを押すと、http://127.0.0.1:9090で一時的なサーバーが起動し、Webhookをキャッチ、検査、画面上でライブ再生できます。
  • ⌨️ Vim & キーボードファースト: 完全なキーボードナビゲーション – マウスに触れることなく、コレクションの切り替え、JSONボディの作成、リクエストの送信が可能です。

📸 インターフェースツアー

1. 高速レスポンス&テレメトリ

ミリ秒単位のレイテンシ追跡、HTTPステータスバッジ、ペイロードサイズメトリクス、自動フォーマットされたJSON構文ハイライト:
[画像: Ghostman Response]

2. ライブWebhookストリーム

Stripe, GitHub, Shopify, またはローカルマイクロサービスからのHTTPコールバックをリアルタイムでキャッチ:
[画像: Ghostman Webhooks]


⚡ コア機能

  • 完全なHTTPメソッドスイート: GET, POST, PUT, DELETE, PATCHリクエストを、カスタムヘッダーと生のJSONペイロードとともにシームレスに作成できます。
  • パフォーマンステレメトリ: DNS + TTFBレイテンシをリアルタイムで測定し、APIエンドポイントのボトルネックを監視します。
  • 組み込みWebhookサーバー: 開発中にサードパーティの逆プロキシを設定する必要はありません。ローカルで受信Webhookをキャッチします。
  • プリティJSONフォーマット: PygmentsとRichを使用して、JSONペイロードを自動的にインデント、フォーマット、カラーリングします。
  • コレクションエクスプローラー: APIエンドポイントをコレクションに整理し、セッション間で永続化します。
  • サイバーパンクダークTUI: 高DPIターミナルサポートを備え、開発者の目に優しいコントラストに最適化されています。

🚀 クイックスタート

前提条件
  • Python 3.10以降
インストール
# 1. リポジトリをクローン
git clone https://github.com/4yk5/ghostman.git
cd ghostman

# 2. 依存関係をインストール
pip install -r requirements.txt

# 3. Ghostmanを起動
python main.py

Windowsユーザー向け: プロジェクトルートのrun.batをダブルクリックするだけでも起動できます!


⌨️ キーバインドとコントロール

ショートカット説明
Ctrl + SHTTPリクエストを送信(呼び出しを実行し、レスポンスビューに切り替えます)
Ctrl + WWebhookサーバーを切り替え(ポート9090でレシーバーを開始/停止します)
Tab / Shift+Tab入力フィールド、メソッドセレクター、タブ間のフォーカスを循環します
Enterサイドバーからコレクションアイテムを選択します
Ctrl + QGhostmanを終了

🛠️ Webhookのローカルテスト

  1. Ghostman内でCtrl + Wを押して、ポート9090でレシーバーを開始します。

  2. Webhookプロバイダーをポイントするか、別のターミナルからテストcurlを実行します。

    curl -X POST http://127.0.0.1:9090/api/webhooks/stripe \
         -H "Content-Type: application/json" \
         -d '{"event": "payment_intent.succeeded", "amount": 4900}'
    
  3. Ghostmanは受信リクエストを即座にキャプチャし、ヘッダーを表示し、ペイロードをライブWebhookタブでライブ解析します。


📁 Gitフレンドリーなコレクション

Ghostmanは、すべてのリクエストを.ghostman/collections.yaml内に、クリーンで人間が読めるYAML形式で保存します。

- name: "Authentication API"
  requests:
    - name: "Login User"
      method: "POST"
      url: "https://api.example.com/v1/auth/login"
      headers:
        Content-Type: "application/json"
      body: '{\n  "email": "user@example.com",\n  "password": "secretpassword"\n}'

.ghostman/をリポジトリに直接コミットすることで、チーム全体がクラウド同期アカウントなしで同じAPIコレクションを共有できます。


🗺️ ロードマップ

  • 非同期HTTPエンジン(httpx)とレイテンシテレメトリ
  • 一時的なWebhookレシーバー(ポート9090)
  • ローカルYAMLコレクション永続化
  • 自動JSONスタイリングを備えたダークサイバーTUIテーマ
  • ワンクリック「キャプチャしたWebhookをアウトバウンドリクエストとして再実行」
  • 動的環境変数({{BASE_URL}}, {{AUTH_TOKEN}})
  • cURL形式へのリクエストエクスポート(Ctrl + C)
  • スタンドアロンバイナリリリース(Pythonのインストール不要)

📄 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。
Copyright © 2026 4yk5。All rights reserved.