
resterm v1.1.1
Cliente de API de terminal para HTTP, GraphQL y gRPC. Archivos .http simples que puedes comparar (diff) y versionar, con workflows, mocks, profiling, tracing, importación de OpenAPI, túneles SSH, port-forwards de Kubernetes, WebSocket, SSE y un ejecutor CLI.
Resterm
Un banco de trabajo de API como código para la terminal.
Vista de trazas y línea de tiempo
Resterm es un cliente de API que almacena las peticiones en archivos .http y .rest de texto plano que pueden convivir en tu repositorio como el resto de tu código. Puedes usar la interfaz de terminal, o ejecutar los mismos archivos en CI con resterm run.
Enlaces rápidos: Capturas de pantalla, Instalación, Inicio rápido, Archivos de peticiones, Documentación.
Capturas de pantalla
Ver la interfaz en acción (haz clic para expandir)
Flujos de trabajo
Profiler
Explain
RestermScript
Por qué Resterm
- Soporte para HTTP, GraphQL, gRPC, WebSocket y SSE.
- Automatización en los archivos de peticiones: condiciones (
@when,@if/@elif/@else,@for-each), flujos de trabajo multipaso (@workflow/@step), capturas, variables y aserciones (@capture,@var,@assert). - Túneles en el archivo de peticiones:
@sshy@k8senrutan una petición a través de un bastión SSH o un port-forward de Kubernetes que Resterm abre y cierra por ti, con perfiles por archivo o por espacio de trabajo. - Registra tráfico HTTP y expórtalo a archivos
.httpde Resterm como peticiones o respuestas simuladas. - RestermScript, un pequeño lenguaje de expresiones creado para Resterm, con hooks de JavaScript cuando los quieras.
- Controles tipo Vim con sugerencias de atajos, ayuda offline con búsqueda,
Shift+kpara la ayuda bajo el cursor,/para buscar y comandos como:w,:q,:helpy:docs. - Autenticación: OAuth 2.0 (client credentials, password, authorization code con PKCE) y
@auth commandpara reutilizar tokens de CLIs que ya tengas instaladas, comogh auth token. - Ejecutor de CLI:
resterm runpara ejecuciones por script y CI, con salida JSON y JUnit. - Servidores mock declarados junto a las peticiones que imitan, con reglas de coincidencia, secuencias, verificación de llamadas y recarga en caliente.
- Trazas de línea de tiempo, profiling y comparación de ejecuciones entre entornos.
- Transcripciones en streaming y una consola interactiva para WebSocket y SSE.
- Sin integración de IA
Instalación
macOS y 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
Desde el código fuente, con Go 1.25 o superior:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
[!IMPORTANT] Los binarios precompilados para Linux dependen de glibc 2.32 o superior. En una distribución más antigua, compila desde el código fuente con una cadena de herramientas glibc más reciente o actualiza glibc antes de usar los archivos de las releases.
Las instalaciones de Homebrew se actualizan con brew upgrade resterm. Los binarios de la página de releases o de los scripts de instalación usan resterm --check-update y resterm --update, que descarga, verifica e instala en el mismo lugar. En Windows el binario antiguo se conserva junto al nuevo como resterm.exe.old y se limpia en la siguiente actualización.
Instalación manual
Los binarios para macOS, Linux y Windows (amd64 y arm64) están en la página de releases. Los comandos de abajo hacen lo mismo que descargar manualmente desde la página de releases. La versión de Unix necesita curl y 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"
Inicio rápido
mkdir my-api && cd my-api
resterm init
resterm
resterm init crea un pequeño proyecto que puedes empezar a usar de inmediato. El requests.http generado tiene escenarios mock locales y algunas peticiones que se construyen unas sobre otras, cubriendo aserciones, autenticación bearer, coincidencia JSON, json-rules y @for-each. Pulsa g Shift+m para iniciar el servidor mock, luego Ctrl+Enter para enviar la petición bajo el cursor.
También puedes abrir Resterm directamente sin init. Ejecuta resterm, escribe una URL y pulsa Ctrl+Enter. También puedes pegar un comando curl, eso también funciona.
El mismo archivo se ejecuta sin la TUI:
resterm run --request CreateUser requests.http
Archivos de peticiones
Resterm admite la sintaxis HTTP estándar, pero va mucho más allá con directivas # @ para configuración y automatización:
# @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 }}"}
Colocar @setting antes de la primera petición se aplica a todo el archivo. ### inicia una nueva petición, y las directivas pueden repetir, limitar o comprobar la petición que tienen debajo. Más en _examples/ y la referencia de directivas.