A webhook inspector for local development
Project description
Capstan: The Webhook Inspector
Capstan is a modern, lightweight, and terminal-based webhook inspector for local development. It provides a TUI ( Terminal User Interface) to monitor and inspect incoming HTTP requests, making it the perfect companion for debugging webhooks and API integrations without leaving your terminal.
Features
- Overview: Quick view of method, path, host, and timestamp.
- Headers & Cookies: Complete breakdown of all request headers and cookies.
- Query Parameters: Easy-to-read table of all URL parameters.
- Body Analysis:
- Syntax Highlighting: Built-in support for JSON, XML, and more.
- Hexdump: Automatic fallback to a polished hexdump for binary or unknown content.
Capstan is designed to be a simple and lightweight tool. As such, it does not support:
- Persistence: Captured requests are stored in-memory and are lost when the application is closed.
- HTTPS/SSL: The local server only supports HTTP. Use a tunnel like
ngrokif you need to receive webhooks from HTTPS sources or from the internet. - Dynamic Responses: It returns a static response (status, body, headers) for all requests.
- Request Replay: There is no functionality to "replay" or "resend" captured requests.
mitmproxy can be used instead should those advanced features be needed.
Installation
You can install Capstan using uv (recommended) :
uv tool install capstan
Alternatively, you could install it with pipx:
pipx install capstan
Quick Start
Simply run capstan to start the inspector:
capstan
By default, Capstan will start a server on http://127.0.0.1:8080.
You can now send requests to this address (or any path under it),
and they will appear in the TUI.
You can send then HTTP requests to that address with arbitrary paths. Example:
curl -X POST http://127.0.0.1:8080/test-webhook \
-H "Content-Type: application/json" \
-d '{"event": "user_signup", "user_id": 123}'
Usage
See the help documentation for more information:
$ capstan --help
Usage: capstan COMMAND [OPTIONS]
A webhook inspector for local development.
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ --help (-h) Display this message and exit. │
│ --install-completion Install shell completion for this application. │
│ --version Display application version. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Parameters ─────────────────────────────────────────────────────────────────╮
│ --host The listen address for the endpoint [default: 127.0.0.1] │
│ --port The port for the endpoint [default: 8080] │
│ --status The response status code for the webhook [default: 201] │
╰──────────────────────────────────────────────────────────────────────────────╯
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file capstan-1.0.0.tar.gz.
File metadata
- Download URL: capstan-1.0.0.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d2f611cf1cccab31f46a9377faf8a60e6aa152da8d9c954e0b2e9a05e00e442
|
|
| MD5 |
1db27e8152fc8f910a2d2afda77d5f02
|
|
| BLAKE2b-256 |
f764dacc5b2c7e7957a01630acb618fcf11eb3704977b3b02d65566590fe4b42
|
Provenance
The following attestation bundles were made for capstan-1.0.0.tar.gz:
Publisher:
release.yml on julien-hadleyjack/capstan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
capstan-1.0.0.tar.gz -
Subject digest:
7d2f611cf1cccab31f46a9377faf8a60e6aa152da8d9c954e0b2e9a05e00e442 - Sigstore transparency entry: 1239419727
- Sigstore integration time:
-
Permalink:
julien-hadleyjack/capstan@09636d3a3645cab6d1cb3022fc3f641bc31d09c2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/julien-hadleyjack
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@09636d3a3645cab6d1cb3022fc3f641bc31d09c2 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file capstan-1.0.0-py3-none-any.whl.
File metadata
- Download URL: capstan-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b550fd44ed6bbafbeffba7d9e2053df4af34a75b184a2d5f81660878b5c758f6
|
|
| MD5 |
4272c4af58907a001bdbb01443b1c9d6
|
|
| BLAKE2b-256 |
95028bbf1c29c2f20548db8ccda5e643443523217648b7dce13e219304254dcf
|
Provenance
The following attestation bundles were made for capstan-1.0.0-py3-none-any.whl:
Publisher:
release.yml on julien-hadleyjack/capstan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
capstan-1.0.0-py3-none-any.whl -
Subject digest:
b550fd44ed6bbafbeffba7d9e2053df4af34a75b184a2d5f81660878b5c758f6 - Sigstore transparency entry: 1239419728
- Sigstore integration time:
-
Permalink:
julien-hadleyjack/capstan@09636d3a3645cab6d1cb3022fc3f641bc31d09c2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/julien-hadleyjack
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@09636d3a3645cab6d1cb3022fc3f641bc31d09c2 -
Trigger Event:
workflow_dispatch
-
Statement type: