Show HN:Ghostman – 一款快速、键盘驱动的 TUI API 客户端和 Webhook 检查工具

Hacker News Top 工具

摘要

Ghostman 是一个开源的、键盘驱动的终端 TUI API 客户端与 Webhook 检查工具,主打本地优先、极速启动(<200ms),内置本地 Webhook 接收器,旨在替代 Postman/Insomnia 等重型客户端。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/31 18:20

4yk5/Ghostman

来源:https://github.com/4yk5/Ghostman

``


/ | | ___ | | _ __ ___ __ _ _ __
| | | ’ \ / _ / __| | ’ _ \ / _ | ’ \
| |
| | | | | (
) _
\ || | | | | | (| | | | | _|| ||_/|/_|| || ||_,|| ||

``

👻 Ghostman

直接在终端中使用的高速、键盘驱动的 API 客户端和 Webhook 检查工具。
无需云端账户。没有占用 1GB 的臃肿 Electron 应用。100% 本地优先。

许可证:MIT Python:3.10+ (https://www.python.org/) UI:Textual (https://github.com/Textualize/textual)

Ghostman 主工作台


💡 为什么选择 Ghostman?

Postman 和 Insomnia 等现代 API 客户端最初都是轻量级开发工具,但后来逐渐演变成了庞大的企业平台:

  • ❌ 强制使用云端登录、团队工作区和遥测
  • ❌ 仅在后台闲置就会消耗 800MB - 1.5GB 内存
  • ❌ 启动缓慢
  • ❌ 仅仅为了检查本地 Webhook 回调,就需要借助外部隧道服务(ngrok、webhook.site)

Ghostman 专为追求极致速度、终端工作流和完全本地隐私保护的开发者从零打造:

  • ⚡ 即刻启动: 直接在终端中启动,耗时不到 200 毫秒。
  • 🔒 100% 本地优先: 所有集合和请求都以纯 YAML 格式保存在 .ghostman/collections.yaml 中。可将其与代码库一同提交到 Git。
  • 🛰️ 内置 Webhook 接收器: 按下 Ctrl + W 即可在 http://127.0.0.1:9090 启动临时服务器,在屏幕上实时捕获、检查和重放 Webhook。
  • ⌨️ Vim 与键盘优先: 支持完整的键盘导航,无需触碰鼠标即可切换集合、编写 JSON 请求体并发送请求。

📸 界面导览

1. 高速响应与遥测

即时追踪毫秒级延迟,提供 HTTP 状态徽标、载荷大小指标,以及自动格式化的 JSON 语法高亮: Ghostman 响应

2. 实时 Webhook 流

实时捕获来自 Stripe、GitHub、Shopify 或本地微服务的 HTTP 回调: Ghostman Webhook


⚡ 核心功能

  • 完整的 HTTP 方法支持: 轻松构建 GET、POST、PUT、DELETE 和 PATCH 请求,支持自定义请求头和原始 JSON 载荷。
  • 性能遥测: 实时测量 DNS + TTFB 延迟,监控 API 端点的性能瓶颈。
  • 内嵌 Webhook 服务器: 开发期间无需配置第三方反向代理,即可在本地捕获传入的 Webhook。
  • 美观的 JSON 格式化: 使用 Pygments 和 Rich 自动为 JSON 载荷添加缩进、格式化和着色。
  • 集合浏览器: 将 API 端点整理为集合,并在会话之间持久保存。
  • 赛博朋克深色 TUI: 针对开发者的视觉体验优化对比度,支持高 DPI 终端。

🚀 快速开始

前置条件

  • Python 3.10 或更高版本

安装

``bash

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

  1. 在 Ghostman 中按下 Ctrl + W,在端口 9090 上启动接收器。
  2. 将 Webhook 提供方的回调地址指向以下地址(也可以从另一个终端发送测试 curl 请求): bash 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 将所有请求以简洁、易读的 YAML 格式存储在 .ghostman/collections.yaml 中:

``yaml

  • name: “身份验证 API” requests:
    • name: “用户登录” method: “POST” url: “https://api.example.com/v1/auth/login” headers: Content-Type: “application/json” body: ‘{\n “email”: “[email protected]”,\n “password”: “secretpassword”\n}’ ``

将 .ghostman/ 直接提交到仓库,整个团队就能共享相同的 API 集合,无需用于云端同步的账户。


🗺️ 路线图

  • 带延迟遥测的异步 HTTP 引擎(httpx)
  • 临时 Webhook 接收器(端口 9090)
  • 本地 YAML 集合持久化
  • 深色赛博风格 TUI 主题,支持自动 JSON 样式
  • 一键“将捕获的 Webhook 作为出站请求重放”
  • 动态环境变量({{BASE_URL}}、{{AUTH_TOKEN}})
  • 将请求导出为 cURL 格式(Ctrl + C)
  • 发布独立二进制程序(无需安装 Python)

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
版权所有 © 2026 4yk5。保留所有权利。

相似文章