
resterm v1.1.1
Терминальный API-клиент для HTTP, GraphQL и gRPC. Обычные .http-файлы, которые можно сравнивать и версионировать, с поддержкой workflows, моков, профилирования, трассировки, импорта OpenAPI, SSH-туннелей, проброса портов Kubernetes, WebSocket, SSE и CLI-раннера.
Resterm
Рабочая среда API-as-code для терминала.
resterm.app · документация
Resterm — это API-клиент, ориентированный на код и построенный вокруг обычных файлов .http/.rest. Запрос — это несколько строк текста, которые можно прочитать, сравнить через diff и хранить в git; то же самое относится к рабочим процессам и локальным мокам. Вы отправляете их из терминального интерфейса во время работы, а resterm run запускает те же файлы в CI. Если ваш API находится за SSH-бастионом или внутри кластера Kubernetes, Resterm откроет для вас туннель или port-forward.
Возможности
- HTTP, GraphQL, gRPC (с рефлексией и стримингом), WebSocket и SSE
- файлы окружений, сгруппированные окружения, dotenv-файлы и переменные ОС
- bearer-токены, OAuth 2.0 (client credentials, password и authorization code с PKCE), а также токены из CLI, которые вы уже используете, например
gh auth token - TLS-клиентские сертификаты, пользовательские корневые CA, прокси, HTTP/2 и хранилище cookie для каждого окружения
- захват и проверки с помощью
@captureи@assert, а также@pollи@retry - рабочие процессы, объединяющие запросы в шаги, с
@ifи@for-each - RestermScript для логики и блоки
@rts test - редактор с движениями Vim, подсветкой синтаксиса, автодополнением директив, заголовков, путей к файлам и встроенной диагностикой
@compareдля отправки одного запроса в несколько окружений и сравнения результатов- трассировка временной шкалы с бюджетами по фазам и экспорт в OpenTelemetry
@profileсо статистикой задержек, гистограммой, P95 и P99- SSH-туннели и Kubernetes port-forward, которые Resterm открывает для запроса
- локальные мок-серверы из ваших файлов
.httpи записывающий прокси, превращающий реальный трафик в запросы или моки resterm runдля CI с выводом в текстовом формате, JSON или JUnit и кодами выхода, которые отличают неудачную проверку от ошибки TLS или туннеля- headless Go API для запуска тех же файлов из вашего собственного кода на Go
- импорт из curl и OpenAPI, а также обмен коллекциями в виде бандлов или zip-файлов
- пользовательские привязки клавиш и темы
- открытие файла в
$EDITORили тела ответа в приложении по умолчанию
Без аккаунта и без телеметрии.
[!NOTE] В Resterm нет MCP-сервера или встроенных функций ИИ. Если вы хотите, чтобы ваша LLM понимала Resterm, укажите ей на Markdown-документацию в
docs/или на resterm.app/docs.
Скриншоты
Трассировка и временная шкала
Нажмите, чтобы увидеть больше интерфейса
Рабочие процессы
Профайлер
Объяснение
RestermScript
Установка
macOS и Linux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
С Go 1.25 или новее:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
Готовые бинарные файлы для macOS, Linux и Windows доступны на странице релизов. Бинарным файлам для macOS требуется macOS 13 Ventura или новее, а бинарным файлам для Linux требуется glibc 2.32 или новее.
Чтобы обновить установку через Homebrew, выполните brew upgrade resterm. Для релизных бинарных файлов или установок, выполненных с помощью скриптов, выполните resterm --update. Если вы устанавливали через Go, повторно выполните команду go install, указанную выше. Подробнее в руководстве по установке.
Быстрый старт
mkdir my-api && cd my-api
resterm init
resterm
resterm init создаёт файл requests.http с несколькими примерами запросов и локальными моками для ответа на них, так что вам не нужен настоящий API, чтобы попробовать. Нажмите g Shift+M, чтобы запустить mock-сервер, переместите курсор на запрос и нажмите Ctrl+Enter, чтобы отправить его. Нажмите ? для получения справки в любой момент.
init тоже не обязателен. Запустите resterm, введите URL или вставьте команду curl и нажмите Ctrl+Enter.
Тот же файл также работает без UI. Запустите моки в одном терминале и выполните запрос в другом:
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
Файлы запросов
Resterm читает стандартный формат .http и добавляет поверх него директивы # @ для настроек и автоматизации:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.meta.name == "dev"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
Директива @setting перед первым запросом применяется ко всему файлу. ### начинает новый запрос. Директивы над запросом могут повторить его, пропустить или проверить ответ.
Больше примеров в _examples/, а все директивы перечислены в справочнике по файлам запросов.
Документация
Полная документация доступна на resterm.app/docs. Хорошие точки для начала — workflows, mock servers, recording, CLI и RestermScript.
Внутри TUI команда :help <topic> открывает встроенное руководство, а :docs <topic> открывает ту же страницу на сайте.
Чтобы запускать файлы запросов из собственного кода на Go, см. пакет headless.
Спонсор
Resterm был и всегда будет бесплатным и открытым. Если вам нравится моя работа, вы можете поддержать её на GitHub.