
hulak v0.3.33
Легкий файловый CLI-клиент API с age-шифрованием секретов, полноценной поддержкой GraphQL и встроенным MCP-сервером для рабочих процессов ИИ-агентов.
Hulak
Ваш мессенджер в терминале.
Быстрый старт • GraphQL Explorer • Структура проекта • Документация
Запустите один запрос, целый каталог или оставайтесь в интерактивном режиме
hulak run ./requests/
Hulak запускает файлы запросов напрямую из вашего проекта. Он поддерживает параллельное выполнение по каталогу. Если вы просто запустите hulak, откроется интерактивный выбор.
Отдельный GraphQL Explorer
Просматривайте схемы с нескольких эндпоинтов. Ищите операции. Создавайте запросы интерактивно. Выполняйте их прямо на месте. Сохраняйте сгенерированные файлы из терминала.
Быстрый старт
Установка
Hulak распространяется через xaaha/tap. Homebrew 6.0+ требует явного доверия для сторонних tap-репозиториев; без него brew upgrade молча пропускает hulak. Это разовый шаг для каждой машины:
brew trust xaaha/tap
brew install --cask xaaha/tap/hulak
Другие варианты установки:
go install github.com/xaaha/hulak@latest- Сборка из исходников с помощью
go build -o hulak
Автодополнение оболочки (go install / сборка из исходников)
Homebrew устанавливает автодополнение автоматически. Если вы установили через go install
или собрали из исходников, включите его один раз:
# zsh
hulak completion zsh > "${fpath[1]}/_hulak" # затем перезапустите оболочку
# 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 требуется autoload -Uz compinit && compinit в вашем .zshrc.
Путь A. API-клиент с зашифрованными секретами (по умолчанию)
mkdir my-apis && cd my-apis
hulak init # creates .hulak/store.age + identity
Создайте стартовый запрос; чтобы быстро посмотреть, как выглядит файл запроса, выполните:
hulak example api # writes example-api.hk.yaml you can run
[!Note] Для других типов выполните:
hulak example. Подкомандаexampleдаёт быстрый способ создать файл запроса, который вы можете изменить. Для получения дополнительной информации выполнитеhulak example -h
Чтобы настроить секрет, выполните:
hulak secrets keys set placeholder https://jsonplaceholder.typicode.com/posts -env prod
Теперь в вашем файле example-api.hk.yaml вы можете ссылаться на этот секрет:
method: POST
url: "{{.placeholder}}"
# rest of the body of the file remains same
Запустите запрос:
hulak run example-api.hk.yaml --env prod
Предпочитаете обычные текстовые файлы env/*.env вместо зашифрованных секретов?
hulak init classic
Режим с открытым текстом полностью поддерживается. Подробнее см. docs/environment.md
Хранилище зашифрованных секретов или текстовые файлы .env
Hulak работает в двух режимах. Выберите один при hulak init. Позже можно мигрировать.
- Хранилище (по умолчанию): секреты хранятся в
.hulak/store.age, зашифрованные с помощью age или пары ключей SSH. Безопасно коммитить. Команды делятся ими через файл получателей. См. docs/store.md. - Открытый текст: секреты хранятся в текстовых файлах
env/*.env. Проще, без шифрования. Добавьтеenv/в.gitignore. См. docs/environment.md.
Работаете в classic-режиме и хотите переключиться? См. docs/migrating-to-vault.md.
Использование из AI-агента (MCP)
Hulak включает встроенный сервер MCP, поэтому такие агенты, как Claude Code, Cursor и Zed, могут управлять вашей коллекцией API на естественном языке — «покажи список запросов», «сделай dry-run login против staging», «вызови getUser и покажи ответ».
Для Claude Code добавьте его одной командой:
claude mcp add hulak -s user -- hulak mcp --project api=~/work/api-tests
Cursor, Zed, Codex, opencode и Pi используют вместо этого небольшой файл конфигурации. См. docs/mcp.md для каждого из них.
Секреты никогда не покидают вашу машину: агент работает с именами запросов и окружений, но никогда с расшифрованными значениями. Чтение и dry-run доступны только для чтения; запись проверяется по схеме; файлы ответов не сохраняются, если об этом не попросили.
Полная настройка, справочник по инструментам и модель безопасности: docs/mcp.md.
Команды
| Команда | Назначение | Подробнее |
|---|---|---|
run | Выполнить файл(ы) запросов или каталог | body.md, actions.md |
gql | TUI-проводник GraphQL | graphql-explorer.md |
secrets | CRUD для зашифрованного хранилища | store.md |
init | Инициализировать проект hulak | store.md |
migrate | Конвертация Postman в hulak | migrating-to-vault.md |
example | Создать образцы файлов запросов | — |
doctor | Проверить состояние проекта | — |
mcp | Обслуживать запросы для AI-агентов через MCP | mcp.md |
version | Показать версию | — |
Выполните hulak <command> --help, чтобы узнать о флагах и примерах для каждой команды.
Поведение выбора
Если опустить --env, откроется интерактивный выбор.
hulak runиhulak gqlзапрашивают только когда файлы ссылаются на{{.key}}.- Подкоманды
hulak secretsзапрашивают каждый раз (кромеsecrets list). - Неинтерактивные оболочки требуют
--env <name>.