Open-source API development ecosystem for sending REST, GraphQL, WebSocket, SSE, Socket.IO and MQTT requests, offered as web, desktop and CLI apps.
- Stars
- 1,990
- Forks
- 59
- Open issues
- 0
- Last commit
- 2 days ago
What is it?
Resterm is a code-first API client that runs in the terminal. Requests, workflows and local mock definitions are written as plain .http or .rest files, so they can be read, diffed and kept under version control. You send requests from its terminal UI, and the resterm run command executes the same files in CI with text, JSON or JUnit output.
Beyond sending requests, it adds captures and assertions with @capture and @assert, polling and retries, chained workflows, and a RestermScript language for logic and tests. It can compare one request across several environments, trace request timing, and profile latency with percentiles. Authentication covers bearer tokens, OAuth 2.0 flows including PKCE, and tokens pulled from local CLIs.
For services behind an SSH bastion or inside a Kubernetes cluster, Resterm opens the tunnel or port-forward itself before sending the request. It can also run local mock servers from the same files and record proxied traffic into requests or mocks. Installation is available through Homebrew, install scripts, prebuilt binaries, or go install.
Key features
- 01Supports HTTP, GraphQL, gRPC with reflection, WebSocket and SSE requests
- 02Captures and assertions with @capture and @assert, plus @poll and @retry
- 03Chained workflows with conditional and loop steps
- 04OAuth 2.0 flows, client certificates, and per-environment cookie jars
- 05Local mock servers generated from .http files and a recording proxy
- 06resterm run for CI with JSON or JUnit output
Use cases
- Keeping API request collections in the same git repository as the code
- Running API smoke and contract checks in a CI pipeline
- Reaching internal APIs through an SSH bastion or Kubernetes port-forward
- Mocking upstream services locally while frontend or backend work is in progress
Quick start
- 1
Install with Homebrew (macOS and Linux)
brew install resterm - 2
Create a project folder and initialize sample requests
mkdir my-api && cd my-api resterm init - 3
Launch the terminal UI
resterm
Things to know
- Linux binaries require glibc 2.32 or newer.
- Resterm has no built-in AI features or MCP server.
Topics
FAQ
- What is resterm?
- Terminal API client that stores HTTP, GraphQL, gRPC, WebSocket and SSE requests as plain .http files you can version in git. Resterm is a code-first API client that runs in the terminal. Requests, workflows and local mock definitions are written as plain .http or .rest files, so they can be read, diffed and kept under version control. You send requests from its terminal UI, and the resterm run command executes the same files in CI with text, JSON or JUnit output.
- Is resterm free to use? What license does it have?
- resterm is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is resterm still maintained?
- Actively maintained. The last commit to resterm was on Oct 18, 2026.
- What can I use resterm for?
- Keeping API request collections in the same git repository as the code Running API smoke and contract checks in a CI pipeline Reaching internal APIs through an SSH bastion or Kubernetes port-forward Mocking upstream services locally while frontend or backend work is in progress
- How do I install resterm?
- Install with Homebrew (macOS and Linux): brew install resterm Create a project folder and initialize sample requests: mkdir my-api && cd my-api resterm init Launch the terminal UI: resterm
- Where can I get resterm?
- The source code and installation instructions are on GitHub: https://github.com/unkn0wn-root/resterm
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A local-first desktop API client for HTTP, gRPC, GraphQL and WebSocket, built with Wails 3 and Vue 3.
Open-source API client that stores collections as plain-text files on your filesystem, an offline alternative to Postman and Insomnia.
A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.
A keyboard-driven terminal UI for connecting to and querying many SQL databases, inspired by lazygit.
A terminal TUI for browsing, connecting to, and managing SSH hosts defined in your ~/.ssh/config file.