
resterm v1.1.1
Client API pour terminal pour HTTP, GraphQL et gRPC. De simples fichiers .http que vous pouvez diff et versionner, avec workflows, mocks, profilage, tracing, import OpenAPI, tunnels SSH, redirections de ports Kubernetes, WebSocket, SSE et un exécuteur CLI.
Resterm
Un atelier API-as-code pour le terminal.
Vue trace et chronologie
Resterm est un client API qui stocke les requêtes dans de simples fichiers .http et .rest pouvant cohabiter dans votre dépôt comme le reste de votre code. Vous pouvez utiliser l'interface terminal, ou exécuter les mêmes fichiers en CI avec resterm run.
Liens rapides : Captures d'écran, Installation, Démarrage rapide, Fichiers de requête, Documentation.
Captures d'écran
Voir l'interface en action (cliquez pour développer)
Workflows
Profileur
Explain
RestermScript
Pourquoi Resterm
- Prise en charge de HTTP, GraphQL, gRPC, WebSocket et SSE.
- Automatisation dans les fichiers de requête : conditions (
@when,@if/@elif/@else,@for-each), workflows multi-étapes (@workflow/@step), captures, variables et assertions (@capture,@var,@assert). - Tunnels dans le fichier de requête :
@sshet@k8sacheminent une requête via un bastion SSH ou un port-forward Kubernetes que Resterm ouvre et ferme pour vous, avec des profils par fichier ou par espace de travail. - Enregistrez le trafic HTTP et exportez-le vers des fichiers
.httpResterm sous forme de requêtes ou de réponses mock. - RestermScript, un petit langage d'expression conçu pour Resterm, avec des hooks JavaScript quand vous le souhaitez.
- Commandes de type Vim avec indices de raccourcis, aide hors ligne consultable,
Shift+kpour l'aide sous le curseur,/pour la recherche et des commandes comme:w,:q,:helpet:docs. - Authentification : OAuth 2.0 (client credentials, password, authorization code avec PKCE) et
@auth commandpour réutiliser les jetons de CLI que vous avez déjà installés, commegh auth token. - Exécuteur CLI :
resterm runpour les exécutions scriptées et la CI, avec sortie JSON et JUnit. - Serveurs mock déclarés à côté des requêtes qu'ils imitent, avec règles de correspondance, séquences, vérification des appels et rechargement à chaud.
- Traçage chronologique, profilage et comparaison d'exécutions entre environnements.
- Transcriptions en streaming et console interactive pour WebSocket et SSE.
- Aucune intégration IA
Installation
macOS et 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
Depuis les sources, avec Go 1.25 ou plus récent :
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
[!IMPORTANT] Les binaires Linux précompilés dépendent de glibc 2.32 ou plus récent. Sur une distribution plus ancienne, compilez depuis les sources avec une chaîne d'outils glibc plus récente ou mettez à jour glibc avant d'utiliser les archives de release.
Les installations Homebrew sont mises à jour avec brew upgrade resterm. Les binaires de la page des releases ou des scripts d'installation utilisent resterm --check-update et resterm --update, qui télécharge, vérifie et installe sur place. Sous Windows, l'ancien binaire reste à côté du nouveau sous le nom resterm.exe.old et est nettoyé lors de la prochaine mise à jour.
Installation manuelle
Les binaires pour macOS, Linux et Windows (amd64 et arm64) sont sur la page des releases. Les commandes ci-dessous font la même chose que télécharger manuellement depuis la page des releases. La version Unix nécessite curl et 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"
Démarrage rapide
mkdir my-api && cd my-api
resterm init
resterm
resterm init crée un petit projet que vous pouvez utiliser immédiatement. Le fichier requests.http généré contient des scénarios mock locaux et quelques requêtes qui s'enchaînent, couvrant les assertions, l'authentification bearer, le matching JSON, json-rules et @for-each. Appuyez sur g Shift+m pour démarrer le serveur mock, puis Ctrl+Enter pour envoyer la requête sous le curseur.
Vous pouvez aussi ouvrir Resterm directement sans init. Lancez resterm, saisissez une URL et appuyez sur Ctrl+Enter. Vous pouvez également coller une commande curl - cela fonctionne aussi.
Le même fichier s'exécute sans la TUI :
resterm run --request CreateUser requests.http
Fichiers de requête
Resterm prend en charge la syntaxe HTTP standard, mais va bien au-delà avec des directives # @ pour la configuration et l'automatisation :
# @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 }}"}