Ghostman is een TUI (Text User Interface) API-client die is ontwikkeld als een snel en privacyvriendelijk alternatief voor zware enterprise-tools zoals Postman en Insomnia. De applicatie is volledig 'local-first', waarbij alle collecties en verzoeken worden opgeslagen in mensleesbare YAML-bestanden, wat het eenvoudig maakt om deze via Git te beheren.
De belangrijkste functionaliteiten zijn:
- Snelheid en Efficiëntie: Een opstarttijd van minder dan 200ms en een volledige focus op toetsenbordbediening (Vim-stijl).
- Ingebouwde Webhook-ontvanger: Met
Ctrl + W kan een lokale server worden gestart op poort 9090 om inkomende webhooks direct te inspecteren en opnieuw af te spelen.
- HTTP-ondersteuning: Volledige suite voor GET, POST, PUT, DELETE en PATCH, inclusief real-time performance-telemetrie voor DNS- en TTFB-latentie.
- Ontwikkelaarservaring: Automatische JSON-opmaak via Pygments en Rich, en een 'Cyberpunk' Dark TUI-thema.
Het project is geschreven in Python (vereist versie 3.10+) en is beschikbaar onder de MIT-licentie.
Ghostman: Een snelle, toetsenbordgestuurde TUI API-client en webhook-inspector
Waarom Ghostman?
Moderne API-clients zoals Postman en Insomnia begonnen als lichtgewicht utilities voor ontwikkelaars, maar zijn geëvolueerd tot zware enterprise-platforms:
- Cloud-dwang: Ze dwingen cloud-logins, team-workspaces en telemetrie af.
- Hoge resource-consumptie: Ze verbruiken 800MB tot 1,5GB RAM, zelfs wanneer ze op de achtergrond draaien.
- Trage opstarttijden: De applicaties starten traag op.
- Afhankelijkheid van externe tools: Er zijn externe tunnels (zoals ngrok of webhook.site) nodig om een lokale webhook-callback te kunnen inspecteren.
Ghostman is vanaf de grond af opgebouwd voor ontwikkelaars die rauwe snelheid, terminal-workflows en volledige lokale privacy willen:
- Directe opstart: Start in minder dan 200ms direct in je terminal.
- 100% Local-First: Alle collecties en verzoeken worden opgeslagen als platte YAML-bestanden in
.ghostman/collections.yaml. Je kunt deze samen met je codebase in Git commiten.
- Ingebouwde Webhook-ontvanger: Gebruik
Ctrl + W om een tijdelijke server op http://127.0.0.1:9090 op te starten om webhooks live op je scherm op te vangen, te inspecteren en opnieuw af te spelen.
- Vim- & toetsenbordgericht: Volledige toetsenbordnavigatie — wissel tussen collecties, stel JSON-bodies samen en verstuur verzoeken zonder de muis aan te raken.
Kernfuncties
- Volledige HTTP-methode suite: Stel probleemloos GET-, POST-, PUT-, DELETE- en PATCH-verzoeken samen met aangepaste headers en ruwe JSON-payloads.
- Performance-telemetrie: Meet DNS- en TTFB-latentie in realtime om knelpunten in API-endpoints te monitoren.
- Ingebouwde Webhook-server: Geen noodzaak voor het configureren van externe reverse proxies tijdens ontwikkeling; vang inkomende webhooks lokaal op.
- Mooie JSON-opmaak: JSON-payloads worden automatisch ingesprongen, geformatteerd en gekleurd met Pygments en Rich.
- Collection Explorer: Organiseer API-endpoints in collecties die over verschillende sessies bewaard blijven.
- Cyberpunk Dark TUI: Geoptimaliseerd contrast voor ontwikkelaars met ondersteuning voor high-DPI terminals.
Snelstart
Vereisten
Installatie
# 1. Clone de repository
git clone https://github.com/4yk5/ghostman.git
cd ghostman
# 2. Installeer afhankelijkheden
pip install -r requirements.txt
# 3. Start Ghostman
python main.py
Tip voor Windows: Je kunt ook simpelweg dubbelklikken op run.bat in de projectroot.
Toetsencombinaties & Bediening
| Sneltoets | Beschrijving |
Ctrl + S | Verzend HTTP-verzoek (voert aanroep uit en schakelt naar Response-weergave) |
Ctrl + W | Schakel Webhook-server (start/stopt ontvanger op poort 9090) |
Tab / Shift+Tab | Wissel focus tussen invoervelden, methode-selector en tabbladen |
Enter | Selecteer item uit de collectie in de zijbalk |
Ctrl + Q | Sluit Ghostman |
Webhooks lokaal testen
Druk op Ctrl + W in Ghostman om de ontvanger op poort 9090 te starten. Richt je webhook-provider (of verstuur een test-curl vanuit een andere terminal) naar:
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 vangt het inkomende verzoek onmiddellijk op, toont de headers en parseert de payload live in het tabblad "Live Webhooks".
Git-vriendelijke Collecties
Ghostman slaat al je verzoeken op in .ghostman/collections.yaml in schoon, mensleesbaar 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}'
Commit de map .ghostman/ direct naar je repository, zodat je hele team dezelfde API-collecties kan delen zonder dat er cloud-sync-accounts nodig zijn.
Roadmap
- Async HTTP-engine (
httpx) met latentie-telemetrie
- Ephemeral Webhook-ontvanger (poort 9090)
- Lokale YAML-collectie persistentie
- Dark cyber TUI-thema met automatische JSON-styling
- 1-klik "Herhaal opgevangen webhook als uitgaand verzoek"
- Dynamische omgevingsvariabelen (
{{BASEURL}}, {{AUTHTOKEN}})
- Export van verzoeken naar cURL-formaat (
Ctrl + C)
- Standalone binary release (waarbij geen Python-installatie vereist is)
Licentie
Dit project is gelicentieerd onder de MIT-licentie - zie het LICENSE-bestand voor details. Copyright © 2026 4yk5. Alle rechten voorbehouden.
Ghostman: Een snelle, toetsenbordgestuurde TUI API-client en webhook-inspector
Waarom Ghostman?
Moderne API-clients zoals Postman en Insomnia begonnen als lichtgewicht utilities voor ontwikkelaars, maar zijn geëvolueerd tot zware enterprise-platforms:
- Cloud-dwang: Ze dwingen cloud-logins, team-workspaces en telemetrie af.
- Hoge resource-consumptie: Ze verbruiken 800MB tot 1,5GB RAM, zelfs wanneer ze op de achtergrond draaien.
- Trage opstarttijden: De applicaties starten traag op.
- Afhankelijkheid van externe tools: Er zijn externe tunnels (zoals ngrok of webhook.site) nodig om een lokale webhook-callback te kunnen inspecteren.
Ghostman is vanaf de grond af opgebouwd voor ontwikkelaars die rauwe snelheid, terminal-workflows en volledige lokale privacy willen:
- Directe opstart: Start in minder dan 200ms direct in je terminal.
- 100% Local-First: Alle collecties en verzoeken worden opgeslagen als platte YAML-bestanden in
.ghostman/collections.yaml. Je kunt deze samen met je codebase in Git commiten.
- Ingebouwde Webhook-ontvanger: Gebruik
Ctrl + W om een tijdelijke server op http://127.0.0.1:9090 op te starten om webhooks live op je scherm op te vangen, te inspecteren en opnieuw af te spelen.
- Vim- & toetsenbordgericht: Volledige toetsenbordnavigatie — wissel tussen collecties, stel JSON-bodies samen en verstuur verzoeken zonder de muis aan te raken.
Kernfuncties
- Volledige HTTP-methode suite: Stel probleemloos GET-, POST-, PUT-, DELETE- en PATCH-verzoeken samen met aangepaste headers en ruwe JSON-payloads.
- Performance-telemetrie: Meet DNS- en TTFB-latentie in realtime om knelpunten in API-endpoints te monitoren.
- Ingebouwde Webhook-server: Geen noodzaak voor het configureren van externe reverse proxies tijdens ontwikkeling; vang inkomende webhooks lokaal op.
- Mooie JSON-opmaak: JSON-payloads worden automatisch ingesprongen, geformatteerd en gekleurd met Pygments en Rich.
- Collection Explorer: Organiseer API-endpoints in collecties die over verschillende sessies bewaard blijven.
- Cyberpunk Dark TUI: Geoptimaliseerd contrast voor ontwikkelaars met ondersteuning voor high-DPI terminals.
Snelstart
Vereisten
Installatie
# 1. Clone de repository
git clone https://github.com/4yk5/ghostman.git
cd ghostman
# 2. Installeer afhankelijkheden
pip install -r requirements.txt
# 3. Start Ghostman
python main.py
Tip voor Windows: Je kunt ook simpelweg dubbelklikken op run.bat in de projectroot.
Toetsencombinaties & Bediening
| Sneltoets | Beschrijving |
Ctrl + S | Verzend HTTP-verzoek (voert aanroep uit en schakelt naar Response-weergave) |
Ctrl + W | Schakel Webhook-server (start/stopt ontvanger op poort 9090) |
Tab / Shift+Tab | Wissel focus tussen invoervelden, methode-selector en tabbladen |
Enter | Selecteer item uit de collectie in de zijbalk |
Ctrl + Q | Sluit Ghostman |
Webhooks lokaal testen
Druk op Ctrl + W in Ghostman om de ontvanger op poort 9090 te starten. Richt je webhook-provider (of verstuur een test-curl vanuit een andere terminal) naar:
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 vangt het inkomende verzoek onmiddellijk op, toont de headers en parseert de payload live in het tabblad "Live Webhooks".
Git-vriendelijke Collecties
Ghostman slaat al je verzoeken op in .ghostman/collections.yaml in schoon, mensleesbaar 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}'
Commit de map .ghostman/ direct naar je repository, zodat je hele team dezelfde API-collecties kan delen zonder dat er cloud-sync-accounts nodig zijn.
Roadmap
- Async HTTP-engine (
httpx) met latentie-telemetrie
- Ephemeral Webhook-ontvanger (poort 9090)
- Lokale YAML-collectie persistentie
- Dark cyber TUI-thema met automatische JSON-styling
- 1-klik "Herhaal opgevangen webhook als uitgaand verzoek"
- Dynamische omgevingsvariabelen (
{{BASEURL}}, {{AUTHTOKEN}})
- Export van verzoeken naar cURL-formaat (
Ctrl + C)
- Standalone binary release (waarbij geen Python-installatie vereist is)
Licentie
Dit project is gelicentieerd onder de MIT-licentie - zie het LICENSE-bestand voor details. Copyright © 2026 4yk5. Alle rechten voorbehouden.