Еще один HTTP-клиент для работы в терминале
Проверять API через curl неудобно и утомительно: запросы получаются длинными, их трудно быстро читать, а хранить их обычно приходится в заметках или отдельных скриптах. Postman и Insomnia снимают часть этих проблем, но вместе с этим приносят тяжелый GUI, учетные записи и облачную синхронизацию.
Slumber — полноценный HTTP-клиент с терминальным интерфейсом, в котором вся конфигурация хранится в YAML-файле рядом с проектом.
Что умеет Slumber
У Slumber есть два режима работы. TUI — это интерактивный терминальный интерфейс, где можно выбирать запросы, отправлять их и смотреть ответы. CLI — вариант для быстрых разовых вызовов и использования в скриптах. Оба режима используют одну и ту же конфигурацию, которая называется request collection.
Конфигурация хранится в файле slumber.yml. Благодаря этому ее можно коммитить в репозиторий и делиться ею между разработчиками. Не нужно экспортировать коллекции, пересылать JSON-файлы или полагаться на облачную синхронизацию.
Проект написан на Rust, распространяется по лицензии MIT и останется бесплатным. На GitHub у него примерно 870 звезд.
Как начать
Установка через Homebrew:
brew install LucasPickering/tap/slumberИли через Cargo:
cargo install slumber --lockedДля быстрого старта достаточно сгенерировать шаблон коллекции:
slumber newПосле этого TUI запускается одной командой:
slumberПример коллекции
Предположим, мы работаем с API в двух окружениях — локальном и продакшен. Файл slumber.yml будет выглядеть так:
profiles:
local:
data:
host: http://localhost:5000
production:
data:
host: https://myfishes.fish
requests:
create_fish:
method: POST
url: "{{ host }}/fishes"
body:
type: json
data: { "kind": "barracuda", "name": "Jimmy" }
list_fish:
method: GET
url: "{{ host }}/fishes"
query:
big: trueПеременная {{ host }} подставляется из текущего профиля. Переключаться между local и production можно прямо в TUI, без изменения файла.
Что еще умеет
Slumber поддерживает шаблоны (templates), которые позволяют собирать запросы динамически — на основе результатов других запросов, файлов или вывода shell-команд. Ответы можно фильтровать через JSONPath прямо в интерфейсе. Если вы переходите с Insomnia, в Slumber есть встроенный импорт коллекций. Кроме того, его можно использовать как Python-пакет для интеграции в собственные инструменты.