parsel is a terminal UI HTTP client for crafting requests and inspecting responses.
curl -fsSL https://raw.githubusercontent.com/StanleyMasinde/parsel/main/install.sh | shOptional: install a specific version
curl -fsSL https://raw.githubusercontent.com/StanleyMasinde/parsel/main/install.sh | sh -s v1.2.3Install to a custom directory
curl -fsSL https://raw.githubusercontent.com/StanleyMasinde/parsel/main/install.sh | PARSEL_INSTALL=~/.local/bin shRun:
parselOr start with a URL pre-filled from the first positional argument:
parsel https://httpbin.org/getOnly the first command-line argument is used as the initial URL.
Workflow:
- Enter a URL and configure the request on the left panels.
- Press Enter to send the request and view the response on the right panels.
Global (Normal mode):
Tab/Shift+Tab: next/previous panelEnter: send requestq: quit
Editing:
i: enter Edit mode on URL, Query, Headers, or Body panelsEsc: back to Normal modeEnter: send request when editing URLCtrl+Enter: send request from any edit panel
Request helpers:
m/M: next/previous HTTP methodb/B: next/previous body mode
Response:
j/k: scroll response body down/uph/l: scroll response body left/right
Query params, headers, and body inputs are entered as key: value pairs, one per line.
Examples:
token: 123
page: 2
Body modes:
- JSON: values are encoded into a flat JSON object
- Form: values are encoded as
application/x-www-form-urlencoded
Header notes:
- Brotli workaround: parsel parses
Accept-Encoding(includingq=weights) and enables Brotli decompression only whenbris the highest-preference encoding. - Enabling Brotli disables
gzipanddeflatefor that request. - This is a workaround because Rust libcurl does not support Brotli by default.
cargo build --releaseBinary will be at:
target/release/parselMIT License. See LICENSE.