_ _ _ _ _
| |_| |_| |_ _ __ ___| |_ __ _ _ _ | |_____ _ _
| ' \ _| _| '_ \___| _/ _` | ' \| / / -_) '_|
|_||_\__|\__| .__/ \__\__,_|_||_|_\_\___|_|
|_|
Create, manage and execute HTTP requests directly from your terminal. Includes a built-in MCP server for AI assistant integration.
Everything you need to test APIs from your terminal
Full support for GET, POST, PUT, PATCH and DELETE requests with custom headers and JSON payloads.
Create, edit, delete and browse saved requests. All persisted locally in JSON format.
View response details including status, headers, body and execution time. Inspect in your editor.
Binary responses are streamed directly to disk without loading into memory. Save files to any location.
Generate the equivalent cURL command for any saved request. Copy and share effortlessly.
Skip TLS certificate verification for testing with self-signed certificates.
Get up and running in seconds
Pre-built binaries for Linux and macOS (amd64 and arm64). No Go installation required.
| Platform | Binary |
|---|---|
| Linux (amd64) | tanker-v0.0.1-linux-amd64 |
| Linux (arm64) | tanker-v0.0.1-linux-arm64 |
| macOS (amd64) | tanker-v0.0.1-darwin-amd64 |
| macOS (arm64) | tanker-v0.0.1-darwin-arm64 |
# Example for macOS arm64 cp tanker-v0.0.1-darwin-arm64 /usr/local/bin/tanker chmod +x /usr/local/bin/tanker # macOS: remove quarantine flag (macOS blocks unsigned binaries downloaded from the internet) xattr -d com.apple.quarantine /usr/local/bin/tanker
Requires Go 1.21+.
git clone https://github.com/PierreKieffer/http-tanker.git cd http-tanker ./build.sh v0.1.0
The binaries are generated in the bin/ directory.
Launch the interactive terminal UI
Start http-tanker with the default database:
tanker
Use a custom database location:
tanker -db /path/to/custom/dir
Configure your AI assistant to use http-tanker as an MCP server:
{
"mcpServers": {
"http-tanker": {
"type": "stdio",
"command": "/path/to/tanker",
"args": ["--mcp"]
}
}
}
See http-tanker in action
──────────────────────────────────────────────────
_ _ _ _ _
| |_| |_| |_ _ __ ___| |_ __ _ _ _ | |_____ _ _
| ' \ _| _| '_ \___| _/ _` | ' \| / / -_) '_|
|_||_\__|\__| .__/ \__\__,_|_||_|_\_\___|_|
|_|
version: edge
──────────────────────────────────────────────────
╭──────────────────────────────────────────────────╮
│ Home Menu │
╰──────────────────────────────────────────────────╯
──────────────────────────────────────────────────
? Select : [Use arrows to move, type to filter]
> Browse requests
Create request
About
Exit
╭──────────────────────────────────────────────────╮ │ Requests │ ╰──────────────────────────────────────────────────╯ ────────────────────────────────────────────────── ? Select : [Use arrows to move, type to filter] > Back to Home Menu [GET] get-example - https://httpbin.org/get [GET] get-https-insecure - https://self-signed.badssl.com/ [POST] post-example - https://httpbin.org/post [GET] download-image-example - https://httpbin.org/image/png
? Name : foobar ? Method : POST ? URL : https://foobar/post ? Payload (Enter the payload in json format {"key": "value"}) : [Enter to launch editor] ? Authentication : Basic Auth ? Username : john ? Password : **** ? Headers (Enter the headers in json format {"key": "value"}, default = {}) : {"Content-Type": "application/json"} ? Skip TLS certificate verification ? (y/N) y
╭──────────────────────────────────────────────────╮ │ Request details │ ╰──────────────────────────────────────────────────╯ Name : foobar Method : POST URL : https://foobar/post Payload : { "foo": "bar" } Headers : { "Content-type": "application/json" } Auth : Basic john:**** Insecure : true (TLS verification skipped) ────────────────────────────────────────────────── ? [Use arrows to move, type to filter] > Run cURL Edit Delete Back to requests Exit
╭──────────────────────────────────────────────────╮ │ Response details │ ╰──────────────────────────────────────────────────╯ Status : 200 OK Status code : 200 Protocol : HTTP/2.0 Headers : { "Access-Control-Allow-Credentials": [ "true" ], "Access-Control-Allow-Origin": [ "*" ], "Content-Length": [ "363" ], "Content-Type": [ "application/json" ], "Date": [ "Mon, 16 Feb 2026 13:56:06 GMT" ], "Server": [ "gunicorn/19.9.0" ] } Body : { "args": { "count": "42", "foo": "bar" }, "headers": { "Accept": "application/json", "Accept-Encoding": "gzip", "Host": "httpbin.org", "User-Agent": "Go-http-client/2.0", "X-Amzn-Trace-Id": "Root=1-699321f6-4de146b7397276213e32bb4d" }, "origin": "5.48.194.113", "url": "https://httpbin.org/get?count=42&foo=bar" } Execution time : 426 ms ────────────────────────────────────────────────── ? Inspect response in editor ? (y/N) y
┌──────────────────────────────────────────────────┐ │ Response details │ ╰──────────────────────────────────────────────────╯ Status : 200 OK Content-Type : image/png Size : 8.1 KB Body : [Binary content] ? Save file locally ? Yes ? Save to : ~/Downloads/image.png File saved to ~/Downloads/image.png
AI-powered HTTP request management
http-tanker includes a built-in MCP (Model Context Protocol) server, allowing AI assistants like Claude to manage and execute your HTTP requests through natural language.
⚠ Be cautious when using authentication fields (tokens, passwords, API keys) through an AI agent you don't self-host — your credentials will be visible to the model provider.
| Tool | Description |
|---|---|
list_requests | List all saved HTTP requests |
get_request | Get full details of a saved request |
save_request | Create or update a saved request |
delete_request | Delete a saved request |
send_request | Execute a saved request and return the response |
send_custom_request | Execute an ad-hoc HTTP request without saving it |
curl_command | Generate the equivalent cURL command for a saved request |
Configuration (.mcp.json)
{
"mcpServers": {
"http-tanker": {
"type": "stdio",
"command": "/path/to/tanker",
"args": ["--mcp"]
}
}
}
Interact with http-tanker through your AI assistant