Slumber — HTTP-клиент в терминале с YAML-конфигом

Еще один 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-пакет для интеграции в собственные инструменты.