
resterm v0.51.1
Client API da terminale per HTTP/GraphQL/gRPC con supporto per tunnel SSH, WebSockets, SSE, workflow, profilazione, OpenAPI, port-forwarding di Kubernetes e API headless.
Resterm
Un workbench API-as-code per il terminale.
resterm.app · docs
Resterm è un client API code-first costruito attorno a semplici file .http/.rest. Una richiesta è composta da poche righe di testo che puoi leggere, confrontare con un diff e conservare in git, e lo stesso vale per i workflow e i mock locali. Le invii dalla UI del terminale mentre lavori, e resterm run esegue gli stessi file in CI. Se la tua API si trova dietro un bastion SSH o all'interno di un cluster Kubernetes, Resterm apre il tunnel o il port-forward per te.
Funzionalità
- HTTP, GraphQL, gRPC (con reflection e streaming), WebSocket e SSE
- file di ambiente, ambienti raggruppati, file dotenv e variabili del sistema operativo
- bearer token, OAuth 2.0 (client credentials, password e authorization code con PKCE) e token da CLI che già usi, come
gh auth token - certificati client TLS, CA root personalizzate, proxy, HTTP/2 e un cookie jar per ambiente
- capture e check con
@capturee@assert, più@polle@retry - workflow che concatenano richieste in step, con
@ife@for-each - RestermScript per la logica e blocchi
@rts test - editor con movimenti Vim, evidenziazione della sintassi, completamento per direttive, header, percorsi di file e diagnostica inline
@compareper inviare una richiesta a più ambienti e confrontare i risultati- tracciamento della timeline con budget per fase ed esportazione verso OpenTelemetry
@profilecon statistiche di latenza, istogramma, P95 e P99- tunnel SSH e port-forward Kubernetes che Resterm apre per la richiesta
- server mock locali dai tuoi file
.http, e un proxy di registrazione che trasforma il traffico reale in richieste o mock resterm runper la CI, con output in testo, JSON o JUnit e codici di uscita che distinguono un check fallito da un errore TLS o di tunnel- API Go headless per eseguire gli stessi file dal tuo codice Go
- importazione da curl e OpenAPI, e condivisione delle collezioni come bundle o file zip
- key binding e temi personalizzati
- apertura di un file in
$EDITOR, o di un corpo di risposta nella tua app predefinita
Nessun account e nessuna telemetria.
[!NOTE] Resterm non ha un server MCP né funzionalità AI integrate. Se vuoi che il tuo LLM comprenda Resterm, indirizzalo alla documentazione Markdown in
docs/o su resterm.app/docs.
Screenshot
Trace e timeline
Clicca per vedere altro della UI
Workflow
Profiler
Explain
RestermScript
Installazione
macOS e 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
Con Go 1.25 o versioni successive:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
I binari precompilati per macOS, Linux e Windows sono disponibili nella pagina delle release. I binari per macOS richiedono macOS 13 Ventura o versioni successive, mentre i binari per Linux richiedono glibc 2.32 o versioni successive.
Per aggiornare un'installazione Homebrew, esegui brew upgrade resterm. Per i binari delle release o le installazioni effettuate con gli script, esegui resterm --update. Se hai installato con Go, riesegui il comando go install indicato sopra. Maggiori informazioni nella guida all'installazione.
Avvio rapido
mkdir my-api && cd my-api
resterm init
resterm
resterm init crea un file requests.http con alcune richieste di esempio e mock locali per rispondervi, così non serve una vera API per provarlo. Premi g Shift+M per avviare il server mock, sposta il cursore su una richiesta e premi Ctrl+Enter per inviarla. Premi ? per visualizzare la guida in qualsiasi momento.
Non hai bisogno nemmeno di init. Esegui resterm, digita un URL o incolla un comando curl e premi Ctrl+Enter.
Lo stesso file funziona anche senza l'interfaccia. Avvia i mock in un terminale ed esegui una richiesta in un altro:
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
File di richiesta
Resterm legge il formato standard .http e aggiunge direttive # @ per impostazioni e automazione:
# @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.meta.name == "dev"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
Un @setting prima della prima richiesta si applica all'intero file. ### avvia una nuova richiesta. Le direttive sopra una richiesta possono ripeterla, saltarla o controllare la risposta.
Ci sono altri esempi in _examples/, e ogni direttiva è elencata nel riferimento dei file di richiesta.
Documentazione
La documentazione completa è su resterm.app/docs. Buoni punti da cui iniziare sono workflows, mock servers, recording, la CLI e RestermScript.
All'interno della TUI, :help <topic> apre il manuale integrato e :docs <topic> apre la stessa pagina sul sito web.
Per eseguire i file di richiesta dal tuo codice Go, vedi il pacchetto headless.
Sponsor
Resterm è e sarà sempre gratuito e open source. Se ti piace il mio lavoro, puoi sponsorizzarlo su GitHub.