Zurück zu den Updates
New releaseSep 5, 2026

resterm v1.5.6

Terminal-API-Client für HTTP, GraphQL und gRPC. Einfache .http-Dateien zum Diffen und Versionieren, mit Workflows, Mocks, Profiling, Tracing, OpenAPI-Import, SSH-Tunneln, Kubernetes-Port-Forwards, WebSocket, SSE und einem CLI-Runner.

Teilen

Resterm
Resterm

Eine API-as-Code-Workbench für das Terminal.

Screenshot der Resterm TUI Basis

Screenshot von Resterm mit Timeline
Trace- und Timeline-Ansicht

Resterm ist ein API-Client, der Requests in einfachen .http- und .rest-Dateien speichert, die wie der Rest deines Codes Seite an Seite in deinem Repo liegen können. Du kannst die Terminal-UI verwenden oder dieselben Dateien in CI mit resterm run ausführen.

Quick Links: Screenshots, Installation, Schnellstart, Request-Dateien, Dokumentation.

Screenshots

Die UI in Aktion sehen (zum Erweitern klicken)

Workflows

Screenshot von Resterm mit Workflow

Profiler

Screenshot des Resterm Profilers

Explain

Screenshot des Resterm Explain Tabs

RestermScript

Screenshot von Resterm mit RestermScript

Warum Resterm

  • HTTP-, GraphQL-, gRPC-, WebSocket- und SSE-Unterstützung.
  • Automatisierung in Request-Dateien: Bedingungen (@when, @if/@elif/@else, @for-each), mehrstufige Workflows (@workflow / @step), Captures, Variablen und Assertions (@capture, @var, @assert).
  • Tunnel in der Request-Datei: @ssh und @k8s leiten einen Request durch eine SSH-Bastion oder einen Kubernetes-Port-Forward, den Resterm für dich öffnet und schließt, mit Profilen pro Datei oder Workspace.
  • HTTP-Traffic aufzeichnen und als Requests oder Mock-Responses in Resterm-.http-Dateien exportieren.
  • RestermScript, eine kleine, für Resterm entwickelte Ausdruckssprache, mit JavaScript-Hooks, wenn du sie möchtest.
  • Vim-ähnliche Steuerung mit Shortcut-Hinweisen, durchsuchbarer Offline-Hilfe, Shift+k-Hilfe unter dem Cursor, /-Suche und Befehlen wie :w, :q, :help und :docs.
  • Auth: OAuth 2.0 (Client Credentials, Password, Authorization Code mit PKCE) und @auth command, um Tokens aus CLIs wiederzuverwenden, die du bereits installiert hast, wie gh auth token.
  • CLI-Runner: resterm run für skriptgesteuerte Läufe und CI, mit JSON- und JUnit-Ausgabe.
  • Mock-Server, die neben den Requests deklariert werden, die sie nachbilden, mit Matching-Regeln, Sequenzen, Call-Verification und Hot Reload.
  • Timeline-Tracing, Profiling und Vergleich von Läufen über Umgebungen hinweg.
  • Streaming-Transkripte und eine interaktive Konsole für WebSocket und SSE.
  • Keine KI-Integration

Installation

macOS und 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

Aus dem Quellcode, mit Go 1.25 oder neuer:

go install github.com/unkn0wn-root/resterm/cmd/resterm@latest

[!IMPORTANT] Vorgebaute Linux-Binärdateien setzen glibc 2.32 oder neuer voraus. Auf einer älteren Distribution baue aus dem Quellcode mit einer neueren glibc-Toolchain oder aktualisiere glibc, bevor du die Release-Archive verwendest.

Homebrew-Installationen werden mit brew upgrade resterm aktualisiert. Binärdateien von der Releases-Seite oder den Installationsskripten verwenden resterm --check-update und resterm --update, was herunterlädt, verifiziert und direkt installiert. Unter Windows bleibt die alte Binärdatei als resterm.exe.old neben der neuen liegen und wird beim nächsten Update bereinigt.

Manuelle Installation

Binärdateien für macOS, Linux und Windows (amd64 und arm64) findest du auf der Releases-Seite. Die folgenden Befehle machen dasselbe wie das manuelle Herunterladen von der Release-Seite. Die Unix-Version benötigt curl und jq.

# Find the latest release tag
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/unkn0wn-root/resterm/releases/latest | jq -r .tag_name)

# Download the matching binary (Darwin/Linux + amd64/arm64)
curl -fL -o resterm "https://github.com/unkn0wn-root/resterm/releases/download/${LATEST_TAG}/resterm_$(uname -s)_$(uname -m)"

# Install on PATH
chmod +x resterm
sudo install -m 0755 resterm /usr/local/bin/resterm
$latest = Invoke-RestMethod https://api.github.com/repos/unkn0wn-root/resterm/releases/latest
$asset  = $latest.assets | Where-Object { $_.name -like 'resterm_Windows_*' } | Select-Object -First 1
Invoke-WebRequest -Uri $asset.browser_download_url -OutFile resterm.exe
# Optionally move to a directory on PATH:
Move-Item resterm.exe "$env:USERPROFILE\bin\resterm.exe"

Schnellstart

mkdir my-api && cd my-api
resterm init
resterm

resterm init erstellt ein kleines Projekt, das du sofort verwenden kannst. Die generierte requests.http enthält lokale Mock-Szenarien und einige Requests, die aufeinander aufbauen und Assertions, Bearer-Auth, JSON-Matching, json-rules und @for-each abdecken. Drücke g Shift+m, um den Mock-Server zu starten, dann Ctrl+Enter, um den Request unter dem Cursor zu senden.

Du kannst Resterm auch direkt ohne init öffnen. Führe resterm aus, gib eine URL ein und drücke Ctrl+Enter. Du kannst auch einen curl-Befehl einfügen – das funktioniert ebenfalls.

Dieselbe Datei läuft auch ohne die TUI:

resterm run --request CreateUser requests.http

Request-Dateien

Resterm unterstützt die Standard-HTTP-Syntax, geht aber mit # @-Direktiven für Konfiguration und Automatisierung weit darüber hinaus:

# @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 }}"}

Ein @setting vor dem ersten Request gilt für die gesamte Datei. ### beginnt einen neuen Request, und Direktiven können den darunterstehenden Request wiederholen, einschränken oder prüfen. Mehr in _examples/ und der Direktiven-Referenz.

Mock-Server

Mock-Responses werden in denselben Dateien wie die Requests definiert (müssen es aber nicht). Beispiel, zwei Szenarien auf einer Route:

### Payment accepted
# @mock method=POST path=/payments name=accepted default=true latency=150ms
HTTP/1.1 202 Accepted
Content-Type: application/json

{"id":"pay_123","status":"pending"}

### Payment declined
# @mock method=POST path=/payments name=declined
# @match query={"mode":"decline"} headers={"X-Tenant":"demo"} json={"amount":0}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json

{"error":"amount must be positive"}

Eine Datei oder ein ganzes Verzeichnis bereitstellen:

resterm mock ./requests.http
resterm mock --recursive --addr 127.0.0.1:9090 ./requests

Matching auf Query, Header und Body, Response-Sequenzen für Polling-Tests, Call-Verification und Hot Reload werden in der Mock-Server-Referenz behandelt. Funktionierendes Beispiel: _examples/mocks.http.

Traffic aufzeichnen

Du kannst deine Anwendung durch den Resterm-Proxy leiten, und er zeichnet den Traffic in einer Resterm-.http-Datei auf, als Requests, Mocks oder beides.

resterm record --upstream https://api.example.com --out captured.http --mode both

Richte die API-Basis-URL deiner Anwendung auf http://127.0.0.1:9000 und beende die Aufzeichnung dann mit Ctrl+C. Die TUI macht dasselbe mit :record start --upstream <origin>, plus :record as-request und :record as-mock, um Aufzeichnungen in die geöffnete Datei einzufügen.

Mehr in der Recording-Referenz.

Mehr

Tasten

Drücke ? für die allgemeine Resterm-Hilfe und Shift+k für Hilfe zu dem, was sich unter dem Cursor befindet. Die vollständige Tabelle findest du in der UI-Tour. Für den Schnellstart brauchst du nur:

  • Ctrl+Enter sendet den Request
  • Tab / Shift+Tab wechselt zwischen den Bereichen
  • g p springt zur Response

Dokumentation

Innerhalb der TUI öffnet :help <topic> das eingebettete Handbuch und :docs <topic> die Web-Version für die installierte Release.

Lizenz

Apache License 2.0.

Kategorien