A terminal-based HTTP API client, an alternative to Postman and Insomnia, with requests stored as plain YAML files.
4yk5/Ghostman
A keyboard-driven terminal API client with a built-in webhook listener, storing collections as local plain files.
Open-source alternative to:Postman
- Stars
- 117
- Forks
- 3
- Open issues
- 0
- Last commit
- 4 days ago
What is it?
Ghostman is a terminal user interface (TUI) for sending HTTP requests and inspecting incoming webhooks, built with Python and the Textual framework. It covers the common API client workflow of composing GET, POST, PUT, DELETE and PATCH requests, viewing responses with status badges, latency and payload size, and saving requests into collections.
Unlike cloud-based API clients, Ghostman keeps requests and collections as plain JSON or YAML files under ~/.ghostman/, which can be committed to Git. It also includes an embedded webhook server on port 9090 that can be toggled with a shortcut, so local webhook payloads can be captured without a tunnel service such as ngrok.
Installation is available via pip, or by cloning the repository and running main.py. Most actions are bound to keyboard shortcuts such as Ctrl+S to send and Ctrl+K to save.
Key features
- 01Send GET, POST, PUT, DELETE and PATCH requests from the terminal.
- 02Shows DNS and time-to-first-byte latency for each response.
- 03Built-in webhook listener on port 9090, toggled with Ctrl+W.
- 04Stores collections as plain files in ~/.ghostman/ that work with Git.
- 05Formats and syntax-highlights JSON response payloads.
Use cases
- Testing a local API endpoint over SSH without a graphical environment.
- Inspecting payloads from Stripe or GitHub webhooks during local development.
- Keeping API request collections versioned alongside a project in Git.
Quick start
- 1
Install Ghostman via pip
pip install ghostman - 2
Launch Ghostman
ghostman
Things to know
- The README only documents a terminal interface, so it is not suited to users who want a graphical app.
- The project has only 69 stars and no stated release history beyond the PyPI badge, so it is relatively new and lightly used.
In collections
Topics
FAQ
- What is Ghostman?
- A keyboard-driven terminal API client with a built-in webhook listener, storing collections as local plain files. Ghostman is a terminal user interface (TUI) for sending HTTP requests and inspecting incoming webhooks, built with Python and the Textual framework. It covers the common API client workflow of composing GET, POST, PUT, DELETE and PATCH requests, viewing responses with status badges, latency and payload size, and saving requests into collections.
- Is Ghostman free to use? What license does it have?
- Ghostman is open source under the MIT license. Check the license terms before using it in commercial products.
- Is Ghostman still maintained?
- Actively maintained. The last commit to Ghostman was on Nov 3, 2026.
- What can I use Ghostman for?
- Testing a local API endpoint over SSH without a graphical environment. Inspecting payloads from Stripe or GitHub webhooks during local development. Keeping API request collections versioned alongside a project in Git.
- How do I install Ghostman?
- Install Ghostman via pip: pip install ghostman Launch Ghostman: ghostman
- Where can I get Ghostman?
- The source code and installation instructions are on GitHub: https://github.com/4yk5/Ghostman
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A terminal (TUI) todo manager written in Python, with Vim-style keybindings and nested todo lists.
Terminal API client that stores HTTP, GraphQL, gRPC, WebSocket and SSE requests as plain .http files you can version in git.
A lightweight, local-first API debugging client built with Rust and Tauri 2, positioned as a Postman alternative at about 10 MB.
A terminal (TUI) HTTP client that defines and runs REST requests from version-controllable YAML collections.
A terminal picker that jumps you back into recent Claude Code or Codex projects, optionally relaunching the agent or resuming the last session.