
Client API en terminal pour HTTP, GraphQL, gRPC, WebSocket et SSE. Fichiers .http simples que vous pouvez comparer et versionner, avec tests scriptés, workflows, mocks, enregistreur et un exécuteur CLI.
Un atelier API-as-code pour le terminal.
resterm.app · docs
Resterm est un client API code-first construit autour de simples fichiers .http/.rest. Une requête, ce sont quelques lignes de texte que vous pouvez lire, comparer avec un diff et conserver dans git, et il en va de même pour les workflows et les mocks locaux. Vous les envoyez depuis l'interface du terminal pendant que vous travaillez, et resterm run exécute les mêmes fichiers en CI. Si votre API se trouve derrière un bastion SSH ou à l'intérieur d'un cluster Kubernetes, Resterm ouvre le tunnel ou le port-forward pour vous.
gh auth token@capture et @assert, ainsi que @poll et @retry@if et @for-each@rts test@compare pour envoyer une même requête à plusieurs environnements et comparer les résultats@profile avec statistiques de latence, histogramme, P95 et P99.http, et un proxy d'enregistrement qui transforme le trafic réel en requêtes ou en mocksresterm run pour la CI, avec sortie texte, JSON ou JUnit et des codes de sortie qui distinguent une vérification échouée d'une erreur TLS ou de tunnel$EDITOR, ou un corps de réponse dans votre application par défautAucun compte et aucune télémétrie.
[!NOTE] Resterm n'a pas de serveur MCP ni de fonctionnalités d'IA intégrées. Pour aider votre LLM à utiliser Resterm, installez la skill avec
resterm skill --agent claudeouresterm skill --agent codex. Consultez la documentation de la skill pour les autres agents. Vous pouvez également pointer votre agent versdocs/ou resterm.app/docs.
Trace et chronologie
Workflows
Profileur
Explain
RestermScript
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
Avec Go 1.25 ou une version plus récente :
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
Des binaires précompilés pour macOS, Linux et Windows sont disponibles sur la page des releases. Les binaires macOS nécessitent macOS 13 Ventura ou une version ultérieure, et les binaires Linux nécessitent glibc 2.32 ou une version ultérieure.
Pour mettre à jour une installation Homebrew, exécutez brew upgrade resterm. Pour les binaires de release ou les installations effectuées avec les scripts, exécutez resterm --update. Si vous avez installé avec Go, relancez la commande go install ci-dessus. Plus d'informations dans le guide d'installation.
mkdir my-api && cd my-api
resterm init
resterm
resterm init crée un fichier requests.http avec quelques requêtes d'exemple et des mocks locaux pour y répondre, afin que vous n'ayez pas besoin d'une véritable API pour l'essayer. Appuyez sur g Shift+M pour démarrer le serveur mock, déplacez le curseur sur une requête et appuyez sur Ctrl+Enter pour l'envoyer. Appuyez sur ? pour obtenir de l'aide à tout moment.
Vous n'avez pas non plus besoin de init. Lancez resterm, saisissez une URL ou collez une commande curl, puis appuyez sur Ctrl+Enter.
Le même fichier fonctionne également sans l'interface. Démarrez les mocks dans un terminal et exécutez une requête dans un autre :
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
Resterm lit le format standard .http et ajoute des directives # @ par-dessus pour les paramètres 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.meta.name == "dev"
# @assert response.statusCode == 201
# @rts test "user has an id"
> if response.json().id == null {
> t.error("no id for", name)
> }
POST users
Content-Type: application/json
{"name":"{{= name }}"}
Un @setting placé avant la première requête s'applique à l'ensemble du fichier. ### démarre une nouvelle requête. Les directives situées au-dessus d'une requête peuvent la répéter, l'ignorer ou vérifier la réponse, soit avec @assert, soit avec un bloc @rts test de code RestermScript.