Voltar às atualizações
New releaseSep 5, 2026

resterm v1.5.6

Cliente de API de terminal para HTTP, GraphQL e gRPC. Arquivos .http simples que você pode fazer diff e versionar, com workflows, mocks, profiling, tracing, importação de OpenAPI, túneis SSH, port-forwards do Kubernetes, WebSocket, SSE e um runner de CLI.

Compartilhar

Resterm
Resterm

Um workbench de API-as-code para o terminal.

Screenshot of Resterm TUI base

Screenshot of Resterm with timeline
Visualização de trace e timeline

Resterm é um cliente de API que armazena requisições em arquivos .http e .rest simples, que podem ficar lado a lado no seu repositório como o resto do seu código. Você pode usar a interface de terminal, ou executar os mesmos arquivos em CI com resterm run.

Links rápidos: Screenshots, Instalação, Início rápido, Arquivos de requisição, Documentação.

Screenshots

Veja a interface em ação (clique para expandir)

Workflows

Screenshot of Resterm with Workflow

Profiler

Screenshot of Resterm profiler

Explain

Screenshot of Resterm Explain Tab

RestermScript

Screenshot of Resterm with RestermScript

Por que Resterm

  • Suporte a HTTP, GraphQL, gRPC, WebSocket e SSE.
  • Automação em arquivos de requisição: condições (@when, @if/@elif/@else, @for-each), workflows de múltiplos passos (@workflow / @step), capturas, variáveis e asserções (@capture, @var, @assert).
  • Túneis no arquivo de requisição: @ssh e @k8s roteiam uma requisição através de um bastion SSH ou de um port-forward do Kubernetes que o Resterm abre e fecha para você, com perfis por arquivo ou workspace.
  • Grave tráfego HTTP e exporte-o para arquivos .http do Resterm como requisições ou respostas mock.
  • RestermScript, uma pequena linguagem de expressão criada para o Resterm, com hooks JavaScript quando você quiser.
  • Controles estilo Vim com dicas de atalhos, ajuda offline pesquisável, Shift+k para ajuda sob o cursor, / para busca e comandos como :w, :q, :help e :docs.
  • Autenticação: OAuth 2.0 (client credentials, password, authorization code com PKCE) e @auth command para reutilizar tokens de CLIs que você já tem instaladas, como gh auth token.
  • Executor CLI: resterm run para execuções scriptadas e CI, com saída JSON e JUnit.
  • Servidores mock declarados ao lado das requisições que eles imitam, com regras de correspondência, sequências, verificação de chamadas e hot reload.
  • Rastreamento de timeline, profiling e comparação de execuções entre ambientes.
  • Transcrições de streaming e um console interativo para WebSocket e SSE.
  • Sem integração com IA

Instalação

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

A partir do código-fonte, com Go 1.25 ou mais recente:

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

[!IMPORTANT] Binários Linux pré-compilados dependem de glibc 2.32 ou mais recente. Em uma distribuição mais antiga, compile a partir do código-fonte com um toolchain glibc mais recente ou atualize o glibc antes de usar os arquivos de release.

Instalações via Homebrew são atualizadas com brew upgrade resterm. Binários da página de releases ou dos scripts de instalação usam resterm --check-update e resterm --update, que baixa, verifica e instala no local. No Windows, o binário antigo permanece ao lado do novo como resterm.exe.old e é removido na próxima atualização.

Instalação manual

Binários para macOS, Linux e Windows (amd64 e arm64) estão na página de releases. Os comandos abaixo fazem o mesmo que baixar manualmente da página de release. A versão Unix precisa de curl e 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"

Início rápido

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

resterm init cria um pequeno projeto que você pode começar a usar imediatamente. O requests.http gerado tem cenários mock locais e algumas requisições que se baseiam umas nas outras, cobrindo asserções, autenticação bearer, correspondência JSON, json-rules e @for-each. Pressione g Shift+m para iniciar o servidor mock, depois Ctrl+Enter para enviar a requisição sob o cursor.

Você também pode abrir o Resterm diretamente sem init. Execute resterm, digite uma URL e pressione Ctrl+Enter. Você também pode colar um comando curl - isso também funciona.

O mesmo arquivo é executado sem a TUI:

resterm run --request CreateUser requests.http

Arquivos de requisição

O Resterm suporta a sintaxe HTTP padrão, mas vai muito além disso com diretivas # @ para configuração e automação:

# @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 da primeira requisição aplica-se ao arquivo inteiro. ### inicia uma nova requisição, e as diretivas podem repetir, limitar ou verificar a requisição abaixo delas. Mais em _examples/ e na referência de diretivas.

Servidores mock

Respostas mock são definidas nos mesmos arquivos que as requisições (mas não precisam ser). Exemplo, dois cenários em uma rota:

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

Sirva um arquivo ou um diretório inteiro:

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

Correspondência em query, headers e body, sequências de resposta para testes de polling, verificação de chamadas e hot reload são abordados na referência do servidor mock. Exemplo funcional: _examples/mocks.http.

Gravando tráfego

Você pode rotear sua aplicação através do proxy do Resterm e ele captura o tráfego em um arquivo .http do Resterm, como requisições, mocks ou ambos.

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

Aponte a URL base da API da sua aplicação para http://127.0.0.1:9000, depois pare a gravação com Ctrl+C. A TUI faz a mesma coisa com :record start --upstream <origin>, além de :record as-request e :record as-mock para inserir capturas no arquivo aberto.

Mais na referência de gravação.

Mais

Teclas

Pressione ? para a ajuda geral do Resterm e Shift+k para ajuda sobre o que estiver sob o cursor. A tabela completa está no tour da UI. Para começar rapidamente, você só precisa de:

  • Ctrl+Enter envia a requisição
  • Tab / Shift+Tab alterna entre painéis
  • g p salta para a resposta

Documentação

Dentro da TUI, :help <topic> abre o manual embutido e :docs <topic> abre a cópia web para a release instalada.

Licença

Apache License 2.0.

Categorias