ATAC - Client API Terminal
ATAC (Arguably a Terminal API Client) est un client API style Postman/Insomnia qui vit entièrement dans votre terminal. Sa philosophie est gratuite, sans compte, et hors ligne — les collections de requêtes sont stockées comme fichiers JSON/YAML plats que vous pouvez commit sur Git, il n’y a pas de cloud ou de connexion, et il s’exécute comme un seul binaire Rust. Il supporte les méthodes HTTP habituelles, les schémas d’authentification, les environnements/variables, et les scripts pré-/post-requête, et peut importer les collections Postman et Insomnia existantes.
Installation
| Plateforme | Commande |
|---|
| Cargo (toutes les plateformes) | cargo install atac |
| macOS (Homebrew) | brew install atac |
| Arch Linux (AUR) | yay -S atac |
| Binaire | télécharger depuis la page GitHub Releases |
| Vérifier | atac --version |
Lancer
| Commande | Description |
|---|
atac | Ouvrir avec le répertoire des collections par défaut |
atac -d ~/api-collections | Utiliser un répertoire spécifique pour les collections |
atac --help | Liste complète des options |
| Import Postman | pointer ATAC vers une exportation Postman ; il la convertit |
Layout et navigation
| Key | Action |
|---|
Tab / Shift+Tab | Passer entre les panneaux |
↑ / ↓ ou j / k | Passer dans une liste |
Enter | Ouvrir/sélectionner |
q | Quitter |
? / h | Aide |
Ctrl+c | Annuler / quitter |
Collections et requêtes
| Action | Comment |
|---|
| Nouvelle collection | Créer à partir du panneau des collections |
| Nouvelle requête | Ajouter une requête sous une collection |
| Renommer/supprimer | Gérer les éléments dans l’arbre |
| Storage | Tout sauvegardé comme fichiers (JSON/YAML) → compatible Git |
Construire une requête
| Champ | Remarques |
|---|
| Method | GET, POST, PUT, PATCH, DELETE, … |
| URL | Supporte l’interpolation {{variable}} |
| Query params | Tableau clé/valeur éditable |
| Headers | Tableau clé/valeur |
| Body | Brut, JSON, form, multipart |
| Auth | Basic, Bearer token, et plus |
Envoyer et réponse
| Key | Action |
|---|
| Envoyer la requête | Exécuter la requête actuelle (async) |
| Voir la réponse | Status, temps, taille, headers, body |
| Pretty view | Formatage JSON/réponse |
| Copy | Copier le body de réponse |
Environnements et variables
| Concept | Utilisation |
|---|
| Fichiers d’environnement | Définir {{base_url}}, tokens, etc. |
| Interpolation de variables | {{var}} dans URL, headers, body |
| Changer d’environnements | Dev/staging/prod sans éditer les requêtes |
Scripting
| Hook | Objectif |
|---|
| Pre-request script | Configurer les variables/auth avant d’envoyer |
| Post-request script | Extraire les valeurs de la réponse (ex. un token) |
Workflows courants
# Garder les collections API dans un repo et les ouvrir dans le terminal
atac -d ./api-tests # éditer les requêtes, elles se sauvegardent comme fichiers à commit
# Importer une collection Postman existante, puis l'exécuter sans compte
atac # importer l'exportation Postman, envoyer les requêtes
# Chaîner les requêtes : capturer un token dans un script post-requête, réutiliser via {{token}}
ATAC vs autres clients API
| Aspect | ATAC | Postman | Yaak | Bruno |
|---|
| Interface | Terminal TUI | Desktop GUI | Desktop GUI | Desktop GUI |
| Compte | Aucun | Optionnel/cloud | Aucun | Aucun |
| Storage | Fichiers plats (Git) | Cloud/local | Fichiers (Git) | Fichiers (Git) |
| Meilleur pour | Terminal-first, SSH, CI | Équipes, sync cloud | GUI + Git | GUI + Git |
Ressources