
Un cliente CLI de API ligero basado en archivos con secretos cifrados con age, soporte GraphQL de primera clase y un servidor MCP integrado para flujos de trabajo de agentes de IA.
Inicio rápido • Explorador GraphQL • Estructura del proyecto • Documentación
hulak run ./requests/
Hulak ejecuta archivos de peticiones directamente desde tu proyecto. Admite la ejecución concurrente de directorios. Recurre a un selector interactivo cuando simplemente ejecutas hulak.
Explora esquemas desde múltiples endpoints. Busca operaciones. Construye consultas de forma interactiva. Ejecuta en línea. Guarda los archivos generados desde la terminal.
Hulak se distribuye a través de xaaha/tap. Homebrew 6.0+ requiere confianza explícita para taps de terceros; sin ella, brew upgrade omite hulak silenciosamente. Paso único por máquina:
brew trust xaaha/tap
brew install --cask xaaha/tap/hulak
Otras opciones de instalación:
go install github.com/xaaha/hulak@latestgo build -o hulakHomebrew instala el autocompletado automáticamente. Si instalaste mediante go install
o compilaste desde el código fuente, actívalo una 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
Zsh requiere autoload -Uz compinit && compinit en tu .zshrc.
mkdir my-apis && cd my-apis
hulak init # creates .hulak/store.age + identity
Genera una petición inicial; para comprobar rápidamente cómo es un archivo de petición, ejecuta:
hulak example api # writes example-api.hk.yaml you can run
[!Note] Para otros tipos, ejecuta:
hulak example. El subcomandoexamplete ofrece una forma rápida de escribir un archivo de petición que puedes modificar. Para más información, ejecutahulak example -h
Para configurar un secreto puedes ejecutar:
hulak secrets keys set placeholder https://jsonplaceholder.typicode.com/posts -env prod
Ahora, en tu archivo example-api.hk.yaml, puedes hacer referencia a este secreto:
method: POST
url: "{{.placeholder}}"
# rest of the body of the file remains same
Ejecuta la petición:
hulak run example-api.hk.yaml --env prod
env/*.env en texto plano en lugar de secretos cifrados?hulak init classic
El modo de texto plano es totalmente compatible. Consulta docs/environment.md para más información
.env en texto planoHulak funciona en dos modos. Elige uno durante hulak init. Puedes migrar más adelante.
.hulak/store.age, cifrados con un par de claves age o SSH. Seguro para hacer commit. Los equipos comparten mediante un archivo de destinatarios. Consulta docs/store.md.env/*.env en texto plano. Más sencillo, sin cifrado. Añade env/ a .gitignore. Consulta docs/environment.md.¿Usas el modo clásico y quieres cambiar? Consulta docs/migrating-to-vault.md.
Hulak incluye un servidor MCP integrado, para que agentes como Claude Code, Cursor y Zed puedan manejar tu colección de API en lenguaje natural — "lista las peticiones", "ejecuta en seco login contra staging", "llama a getUser y muestra la respuesta".
Para Claude Code, añádelo con un solo comando:
claude mcp add hulak -s user -- hulak mcp --project api=~/work/api-tests
Cursor, Zed, Codex, opencode y Pi usan un pequeño archivo de configuración en su lugar. Consulta docs/mcp.md para cada uno.
Los secretos nunca salen de tu máquina: el agente trabaja con nombres de peticiones y entornos, nunca con valores descifrados. Las lecturas y ejecuciones en seco son de solo lectura; las escrituras se validan contra el esquema; los archivos de respuesta no se guardan a menos que se soliciten.
Configuración completa, referencia de herramientas y modelo de seguridad: docs/mcp.md.
| Comando | Propósito | Leer más |
|---|---|---|
run | Ejecutar archivo(s) de petición o un directorio | body.md, actions.md |
gql | TUI del explorador GraphQL | graphql-explorer.md |
secrets | CRUD de la bóveda cifrada | store.md |
init | Inicializar un proyecto hulak | store.md |
migrate | Conversión de Postman a hulak | migrating-to-vault.md |
example | Generar archivos de petición de ejemplo | — |
doctor | Comprobar la salud del proyecto | — |
mcp | Servir peticiones a agentes de IA mediante MCP | mcp.md |
version | Mostrar la versión | — |
Ejecuta hulak <command> --help para ver las opciones y ejemplos de cada comando.
Omitir --env abre un selector interactivo.
hulak run y hulak gql solo preguntan cuando los archivos hacen referencia a {{.key}}.hulak secrets preguntan siempre (excepto secrets list).--env <name>.