
resterm v1.8.1
Terminal API client for HTTP, GraphQL and gRPC. Plain .http files you can diff and version, with workflows, mocks, profiling, tracing, OpenAPI import, SSH tunnels, Kubernetes port-forwards, WebSocket, SSE and a CLI runner.
Resterm
An API-as-code workbench for the terminal.
resterm.app · docs
Resterm is an API client that uses .http/.rest files as source code. Almost all the features live in .http files, so they are easy to review in Git or any other version control. You can send requests, test API flows, record HTTP traffic and run local mock servers directly from the TUI or run the same definitions in scripts and CI with resterm run command.
Why Resterm
- Test complete API flows. Log in, capture a token, create a resource, and check the result. Add assertions, loops, conditions, retries, and scripts directly in your request files.
- Turn real traffic into local mocks. Record HTTP requests and responses, then save them as runnable requests or mock definitions. Keep mocks next to the requests that use them.
- Find out what changed. Compare responses across environments, diff against earlier results, inspect request timings, and profile repeated runs.
- Run the same checks locally and in CI. Use the terminal UI while developing, then run those files with
resterm run. Export JSON or JUnit reports. - Work across protocols. Send HTTP, GraphQL, and gRPC requests, and work with WebSocket and SSE streams.
Built-in SSH tunnels and Kubernetes port-forwards let you reach APIs behind a bastion or inside a cluster.
No account, no telemetry, no AI features.
Screenshots
Trace and timeline
Click to see more of the UI
Workflows
Profiler
Explain
RestermScript
Install
macOS and Linux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
With Go 1.25 or newer:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
Prebuilt binaries for macOS, Linux and Windows are on the releases page. The Linux binaries need glibc 2.32 or newer.
To update, run brew upgrade resterm if you installed with Homebrew. Otherwise run resterm --update. More in the install guide.
Quick start
mkdir my-api && cd my-api
resterm init
resterm
resterm init creates a requests.http file with a few sample requests and local mocks to answer them, so you don't need a real API to try it. Press g Shift+M to start the mock server, move the cursor to a request and press Ctrl+Enter to send it. Press ? for help at any time.
You don't need init either. Run resterm, type a URL or paste a curl command, and press Ctrl+Enter.
The same file also runs without the UI. Start the mocks in one terminal and run a request in another:
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
Request files
Resterm reads the standard .http format and adds # @ directives on top for settings and automation:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.mode == "development"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
A @setting before the first request applies to the whole file. ### starts a new request. Directives above a request can repeat it, skip it or check the response.
There are more examples in _examples/, and every directive is listed in the request file reference.
Documentation
The full docs are at resterm.app/docs. Good places to start are workflows, mock servers, recording, the CLI and RestermScript.
Inside the TUI, :help <topic> opens the built-in manual and :docs <topic> opens the same page on the website.
To run request files from your own Go code, see the headless package.
Sponsor
Resterm is and always will be free and open source. If you like my work, you can sponsor it on GitHub.