
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.
Démarrage rapide • Explorateur GraphQL • Structure du projet • Documentation
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.
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.
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@latestgo build -o hulakHomebrew 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.
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
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
.env en clairHulak fonctionne selon deux modes. Choisissez-en un lors de hulak init. Vous pouvez migrer plus tard.
.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.env/*.env en clair. Plus simple, sans chiffrement. Ajoutez env/ à .gitignore. Consultez docs/environment.md.Vous utilisez le mode classic et souhaitez basculer ? Consultez docs/migrating-to-vault.md.
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.
| 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.
Omettre --env ouvre un sélecteur interactif.
hulak run et hulak gql ne demandent une saisie que lorsque des fichiers référencent {{.key}}.hulak secrets demandent une saisie à chaque fois (sauf secrets list).--env <name>.