ATAC - Cliente de API de Terminal
ATAC (Arguably a Terminal API Client) é um cliente de API estilo Postman/Insomnia que vive inteiramente em seu terminal. Sua filosofia é gratuita, sem conta e offline — coleções de requisições são armazenadas como arquivos JSON/YAML simples que você pode commitar no Git, não há nuvem ou login, e funciona como um único binário Rust. Suporta os métodos HTTP usuais, esquemas de autenticação, ambientes/variáveis, scripts pré-/pós-requisição, e pode importar coleções existentes de Postman e Insomnia.
Instalação
| Plataforma | Comando |
|---|
| Cargo (todas as plataformas) | cargo install atac |
| macOS (Homebrew) | brew install atac |
| Arch Linux (AUR) | yay -S atac |
| Binário | faça download da página de Releases do GitHub |
| Verificar | atac --version |
Iniciando
| Comando | Descrição |
|---|
atac | Abra com o diretório padrão de coleções |
atac -d ~/api-collections | Use um diretório específico para coleções |
atac --help | Lista de opções completa |
| Importar Postman | aponte ATAC para uma exportação Postman; ele converte |
Layout e Navegação
| Tecla | Ação |
|---|
Tab / Shift+Tab | Mova entre painéis |
↑ / ↓ ou j / k | Mova dentro de uma lista |
Enter | Abra/selecione |
q | Saia |
? / h | Ajuda |
Ctrl+c | Cancele / saia |
Coleções e Requisições
| Ação | Como |
|---|
| Nova coleção | Crie no painel de coleções |
| Nova requisição | Adicione uma requisição sob uma coleção |
| Renomear/deletar | Gerenciar itens na árvore |
| Armazenamento | Tudo salvo como arquivos (JSON/YAML) → amigável com Git |
Construindo uma Requisição
| Campo | Notas |
|---|
| Método | GET, POST, PUT, PATCH, DELETE, … |
| URL | Suporta interpolação {{variable}} |
| Query params | Tabela de chave/valor editável |
| Headers | Tabela de chave/valor |
| Body | Raw, JSON, form, multipart |
| Auth | Basic, Bearer token e mais |
Enviando e Resposta
| Tecla | Ação |
|---|
| Enviar requisição | Execute a requisição atual (async) |
| Ver resposta | Status, tempo, tamanho, headers, body |
| Vista bonita | Formatação de JSON/resposta |
| Copiar | Copie body da resposta |
Ambientes e Variáveis
| Conceito | Uso |
|---|
| Arquivos de ambiente | Defina {{base_url}}, tokens, etc. |
| Interpolação de variável | {{var}} em URL, headers, body |
| Trocar ambientes | Dev/staging/prod sem editar requisições |
Scripting
| Hook | Propósito |
|---|
| Script pré-requisição | Configure variáveis/auth antes de enviar |
| Script pós-requisição | Extraia valores da resposta (ex: um token) |
Workflows Comuns
# Mantenha coleções de API em um repo e as abra no terminal
atac -d ./api-tests # edite requisições, elas salvam como arquivos que você pode commitar
# Importe uma coleção Postman existente, então execute sem conta
atac # importe a exportação Postman, envie requisições
# Requisições em cadeia: capture um token em um script pós-requisição, reutilize via {{token}}
ATAC vs Outros Clientes de API
| Aspecto | ATAC | Postman | Yaak | Bruno |
|---|
| Interface | Terminal TUI | Desktop GUI | Desktop GUI | Desktop GUI |
| Conta | Nenhuma | Opcional/nuvem | Nenhuma | Nenhuma |
| Armazenamento | Arquivos simples (Git) | Nuvem/local | Arquivos (Git) | Arquivos (Git) |
| Melhor para | Terminal-first, SSH, CI | Equipes, sincronização em nuvem | GUI + Git | GUI + Git |
Recursos