
hulak v0.3.33
Un client API CLI léger basé sur des fichiers, avec des secrets chiffrés par age, une prise en charge GraphQL native et un serveur MCP intégré pour les workflows d'agents IA.
Hulak
Votre messager dans le terminal.
Démarrage rapide • Explorateur GraphQL • Structure du projet • Documentation
Exécutez une requête, un répertoire entier, ou restez en interactif
hulak run ./requests/
Hulak exécute les fichiers de requête directement depuis votre projet. Il prend en charge l'exécution concurrente de répertoires. Il bascule vers un sélecteur interactif lorsque vous lancez simplement hulak.
Explorateur GraphQL dédié
Parcourez les schémas de plusieurs endpoints. Recherchez des opérations. Construisez des requêtes de manière interactive. Exécutez en ligne. Enregistrez les fichiers générés depuis le terminal.
Démarrage rapide
Installation
Hulak est distribué via xaaha/tap. Homebrew 6.0+ exige une confiance explicite pour les taps tiers ; sans cela, brew upgrade ignore silencieusement hulak. Étape unique par machine :
brew trust xaaha/tap
brew install --cask xaaha/tap/hulak
Autres options d'installation :
go install github.com/xaaha/hulak@latest- Compiler depuis les sources avec
go build -o hulak
Complétion shell (go install / compilations depuis les sources)
Homebrew installe la complétion automatiquement. Si vous avez installé via go install
ou compilé depuis les sources, activez-la une fois :
# zsh
hulak completion zsh > "${fpath[1]}/_hulak" # puis redémarrez votre shell
# bash (macOS, Homebrew bash-completion)
hulak completion bash > $(brew --prefix)/etc/bash_completion.d/hulak
# bash (Linux)
hulak completion bash | sudo tee /etc/bash_completion.d/hulak >/dev/null
Zsh nécessite autoload -Uz compinit && compinit dans votre .zshrc.
Voie A. Client API avec secrets chiffrés (par défaut)
mkdir my-apis && cd my-apis
hulak init # creates .hulak/store.age + identity
Générez une requête de démarrage ; pour vérifier rapidement à quoi ressemble un fichier de requête, exécutez :
hulak example api # writes example-api.hk.yaml you can run
[!Note] Pour d'autres types, exécutez :
hulak example. La sous-commandeexamplevous offre un moyen rapide d'écrire un fichier de requête que vous pouvez modifier. Pour plus d'informations, exécutezhulak example -h
Pour configurer un secret, vous pouvez exécuter :
hulak secrets keys set placeholder https://jsonplaceholder.typicode.com/posts -env prod
Maintenant, dans votre fichier example-api.hk.yaml, vous pouvez référencer ce secret :
method: POST
url: "{{.placeholder}}"
# rest of the body of the file remains same
Exécutez la requête :
hulak run example-api.hk.yaml --env prod
Vous préférez les fichiers env/*.env en clair plutôt que les secrets chiffrés ?
hulak init classic
Le mode en clair est entièrement pris en charge. Consultez docs/environment.md pour plus d'informations
Coffre de secrets chiffrés ou fichiers .env en clair
Hulak fonctionne selon deux modes. Choisissez-en un lors de hulak init. Vous pouvez migrer plus tard.
- Coffre (par défaut) : les secrets résident dans
.hulak/store.age, chiffrés avec une paire de clés age ou SSH. Sûr à committer. Les équipes partagent via un fichier de destinataires. Consultez docs/store.md. - En clair : les secrets résident dans des fichiers
env/*.enven clair. Plus simple, sans chiffrement. Ajoutezenv/à.gitignore. Consultez docs/environment.md.
Vous utilisez le mode classic et souhaitez basculer ? Consultez docs/migrating-to-vault.md.
Utilisation depuis un agent IA (MCP)
Hulak embarque un serveur MCP intégré, afin que des agents comme Claude Code, Cursor et Zed puissent piloter votre collection d'API en langage naturel — « liste les requêtes », « dry-run login contre staging », « appelle getUser et affiche la réponse ».
Pour Claude Code, ajoutez-le avec une seule commande :
claude mcp add hulak -s user -- hulak mcp --project api=~/work/api-tests
Cursor, Zed, Codex, opencode et Pi utilisent plutôt un petit fichier de configuration. Consultez docs/mcp.md pour chacun.
Les secrets ne quittent jamais votre machine : l'agent travaille avec les noms de requêtes et d'environnements, jamais avec les valeurs déchiffrées. Les lectures et dry-runs sont en lecture seule ; les écritures sont validées par schéma ; les fichiers de réponse ne sont pas enregistrés sauf demande explicite.
Configuration complète, référence des outils et modèle de sécurité : docs/mcp.md.
Commandes
| Commande | Objectif | En savoir plus |
|---|---|---|
run | Exécuter un ou des fichiers de requête ou un répertoire | body.md, actions.md |
gql | TUI de l'explorateur GraphQL | graphql-explorer.md |
secrets | CRUD du coffre chiffré | store.md |
init | Initialiser un projet hulak | store.md |
migrate | Conversion Postman vers hulak | migrating-to-vault.md |
example | Générer des fichiers de requête d'exemple | — |
doctor | Vérifier la santé du projet | — |
mcp | Servir les requêtes aux agents IA via MCP | mcp.md |
version | Afficher la version | — |
Exécutez hulak <command> --help pour les options et des exemples par commande.
Comportement du sélecteur
Omettre --env ouvre un sélecteur interactif.
hulak runethulak gqlne demandent une saisie que lorsque des fichiers référencent{{.key}}.- Les sous-commandes
hulak secretsdemandent une saisie à chaque fois (saufsecrets list). - Les shells non interactifs nécessitent
--env <name>.