
Cliente de API CLI leve baseado em arquivos, com segredos criptografados com age, suporte de primeira classe para GraphQL e servidor MCP para fluxos de trabalho agênticos.
REST · GraphQL · OAuth
Início Rápido • Explorador GraphQL • Estrutura do Projeto • Documentação
hulak run ./requests/
O Hulak executa arquivos de requisição diretamente do seu projeto. Ele suporta execução concorrente de diretórios. Ele recorre a um seletor interativo quando você simplesmente executa hulak.
Navegue por esquemas de vários endpoints. Pesquise operações. Construa consultas interativamente. Execute inline. Salve os arquivos gerados a partir do terminal.
O Hulak é distribuído via xaaha/tap. O Homebrew 6.0+ exige confiança explícita para taps de terceiros; sem isso, o brew upgrade pula o hulak silenciosamente. Etapa única por máquina:
brew trust xaaha/tap
brew install --cask xaaha/tap/hulak
Outras opções de instalação:
go install github.com/xaaha/hulak@latestgo build -o hulakO Homebrew instala o auto-completar automaticamente. Se você instalou via go install ou compilou a partir do código-fonte, ative-o uma vez:
# zsh
hulak completion zsh > "${fpath[1]}/_hulak" # then restart your 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
O Zsh exige autoload -Uz compinit && compinit no seu .zshrc.
mkdir my-apis && cd my-apis
hulak init # creates .hulak/store.age + identity
Gere uma requisição inicial. Para verificar rapidamente a aparência de um arquivo de requisição, execute:
hulak example api # writes example-api.hk.yaml you can run
[!Note] Para outros tipos, execute:
hulak example. O subcomandoexamplefornece uma maneira rápida de escrever um arquivo de requisição que você pode modificar. Para mais informações, executehulak example -h
Para configurar um segredo, você pode executar:
hulak secrets keys set placeholder https://jsonplaceholder.typicode.com/posts -env prod
Agora, no seu arquivo example-api.hk.yaml, você pode referenciar este segredo:
method: POST
url: "{{.placeholder}}"
# rest of the body of the file remains same
Execute a requisição:
hulak run example-api.hk.yaml --env prod
env/*.env em texto puro em vez de segredos criptografados?hulak init classic
O modo texto puro é totalmente suportado. Consulte docs/environment.md para mais informações.
.env em Texto PuroO Hulak opera em dois modos. Escolha uma vez durante o hulak init. Você pode migrar posteriormente.
.hulak/store.age, criptografados com um par de chaves age ou SSH. Seguro para commit. Equipes compartilham via um arquivo de destinatários. Consulte docs/store.md.env/*.env em texto puro. Mais simples, sem criptografia. Adicione env/ ao .gitignore. Consulte docs/environment.md.Está no modo clássico e quer mudar? Consulte docs/migrating-to-vault.md.
O Hulak acompanha um servidor MCP integrado, permitindo que agentes como Claude Code, Cursor e Zed controlem sua coleção de APIs em linguagem natural — "liste as requisições", "faça um dry-run de login no staging", "chame getUser e mostre a resposta".
Para o Claude Code, adicione-o com um único comando:
claude mcp add hulak -s user -- hulak mcp --project api=~/work/api-tests
Cursor, Zed, Codex, opencode e Pi usam um pequeno arquivo de configuração. Consulte docs/mcp.md para cada um.
Os segredos nunca saem da sua máquina: o agente trabalha com nomes de requisição e de ambiente, nunca com valores descriptografados. Leituras e dry-runs são somente leitura; gravações são validadas por esquema; arquivos de resposta não são salvos a menos que solicitado.
Configuração completa, referência de ferramentas e modelo de segurança: docs/mcp.md.
Execute hulak <command> --help para ver as flags e exemplos por comando.
Omitir --env abre um seletor interativo.
hulak run e hulak gql só solicitam quando os arquivos referenciam {{.key}}.hulak secrets solicitam todas as vezes (exceto secrets list).--env <name>.~/.config/hulak/identity.txt. Essa é a sua chave privada. Modo 0600. Faça backup primeiro. Consulte docs/store.md#identity-backup.hulak init, -env cria arquivos de ambiente. É uma flag de configuração, não um seletor de execução. hulak init -env staging prod gera dois ambientes.env é um alias para secrets. hulak env list funciona igual a hulak secrets list.secrets edit. Use EDITOR="code -w" ou EDITOR="zed --wait". Sem ela, o editor retorna imediatamente e as alterações são perdidas.store.age precisam de uma receita. Consulte .my-project/
├── .hulak/
│ ├── store.age # encrypted secrets (safe to commit)
│ └── recipients.txt # public keys of recipients (safe to commit)
├── requests/
│ ├── create-user.hk.yaml
│ └── get-user.hk.yaml
└── (your project files)
~/.config/hulak/
└── identity.txt # YOUR private key. NEVER commit. Mode 0600.
Inicie o explorador com um arquivo ou um diretório:
hulak gql e2etests/gql_schemas/countries.yml
hulak gql .
hulak gql -env staging ./collections/graphql
Leia o guia completo em docs/graphql-explorer.md.
Comece aqui para a referência completa:
env/ para .hulak/.Para a lista completa de comandos, execute:
hulak help
hulak <command> --help
O esquema do Hulak está disponível no Schema Store, para que editores que suportam o Schema Store possam ativar automaticamente o autocompletar para arquivos .hk.yaml e .hk.yml.
Você também pode apontar seu servidor de linguagem YAML diretamente para:
https://raw.githubusercontent.com/xaaha/hulak/refs/heads/main/assets/schema.json
git clone https://github.com/xaaha/hulak.git
cd hulak
mise install
Consulte CONTRIBUTING.md para o fluxo de desenvolvimento completo.
Se o Hulak é útil para você, abra uma issue, sugira um recurso, envie um pull request ou patrocine o projeto.
| Comando | Finalidade | Leia mais |
|---|
run | Executa arquivo(s) de requisição ou um diretório | body.md, actions.md |
gql | Explorador GraphQL TUI | graphql-explorer.md |
secrets | CRUD do cofre criptografado | store.md |
init | Inicializa um projeto hulak | store.md |
migrate | Conversão de Postman para hulak | migrating-to-vault.md |
example | Gera arquivos de requisição de exemplo | — |
doctor | Verifica a saúde do projeto | — |
mcp | Atende requisições de agentes de IA via MCP | mcp.md |
version | Exibe a versão | — |