Show HN: Ghostman – 高速でキーボード駆動のTUI APIクライアントおよびWebhookインスペクター
Show HN: Ghostman – A fast, keyboard-driven TUI API client and webhook inspector (github.com)
要約
Ghostmanは、ターミナル上で動作する高速なAPIクライアントおよびWebhookインスペクターです。クラウドアカウントやElectronの重さを排除し、ローカルファーストで動作します。キーボード操作に最適化されており、APIリクエストの送信やWebhookの受信・検査を効率的に行えます。
全文翻訳
👻 Ghostman
____ _ _
/ ___| |__ ___ ___| |_ _ __ ___ __ _ _ __
| | _| '_ \ / _ \/ __| __| '_ ` _ \ / _` | '_ \
| |_| | | | | (_) \__ \ |_| | | | | | (_| | | | |
\____|_| |_|\___/|___/\__|_| |_| |_|\__,_|_| |_|
ターミナル上で動作する、高速でキーボード駆動のAPIクライアントおよびWebhookインスペクター。
クラウドアカウント不要。1GBのElectronの肥大化なし。100%ローカルファースト。
[画像: License: MIT] [画像: Python: 3.10+] [画像: UI: Textual]
💡 なぜ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 + S | HTTPリクエストを送信(呼び出しを実行し、レスポンスビューに切り替えます) |
Ctrl + W | Webhookサーバーを切り替え(ポート9090でレシーバーを開始/停止します) |
Tab / Shift+Tab | 入力フィールド、メソッドセレクター、タブ間のフォーカスを循環します |
Enter | サイドバーからコレクションアイテムを選択します |
Ctrl + Q | Ghostmanを終了 |
🛠️ Webhookのローカルテスト
-
Ghostman内で
Ctrl + Wを押して、ポート9090でレシーバーを開始します。 -
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}' -
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.