# 🖥️ tuna-cli 0.36 — интерфейс в терминале и большое обновление

September 30, 2026 · 6 min read

За последние два релиза консольный клиент **tuna-cli** изменился сильнее, чем за весь предыдущий год. Главное — у туннелей появился **полноэкранный интерфейс в терминале**: вместо бегущего текстового лога вы видите ленту запросов, метрики, сессии баз данных и SSH и можете разобрать любой запрос, не выходя из консоли.

Обновиться до **0.36.1** можно по [инструкции](https://tuna.am/en/docs/guides/update.md), а сам клиент теперь подскажет нужную команду — об этом ниже.

## Интерфейс в терминале

Интерфейс включается сам, когда вы запускаете `tuna http`, `tuna tcp`, `tuna ssh`, `tuna postgres`, `tuna redis` или `tuna kubernetes` в терминале. В шапке всегда видны аккаунт, адрес туннеля и локальный адрес, куда он ведёт, ссылка на [инспектор](https://tuna.am/en/docs/tunnels/http/inspect.md) и статус подключения. Если туннель запущен с ограничениями доступа или опциями, в шапке появляются строки **Access** и **Options** — например, `basic auth (1) · cidr deny 203.0.113.0/24` и `rate limit 20/s · cors`, так что видно, с какими настройками туннель работает прямо сейчас. Пароли и ключи не показываются, только их количество. Основная часть экрана зависит от типа туннеля.

### HTTP: лента запросов и метрики

Новые запросы появляются сверху, над лентой — счётчики: всего запросов, rpm, p50 и p90 времени ответа, число ответов 4xx и 5xx. По `Enter` открываются детали запроса с заголовками и отформатированным JSON-телом, `r` повторяет запрос, а `/` фильтрует ленту по методу, пути или статусу. Отлаживать вебхук или API стало заметно удобнее: не нужно переключаться в браузер, чтобы понять, что именно пришло.

### Postgres и Redis: сессии и запросы

Слева список сессий, справа — события выбранной: запросы с подсветкой, число строк в ответе, ошибки. `y` копирует запрос в буфер обмена. Видно, какие запросы шлёт ваше приложение или коллега, подключившийся к базе через туннель.

### SSH: живой просмотр и запись сессий

Для `tuna ssh` интерфейс показывает инструкцию для подключения и ленту сессий, включая отказы в доступе. `Enter` на активной сессии открывает её просмотр **в реальном времени**, на завершённой — воспроизведение записи.

### Горячие клавиши

| Клавиша            | Действие                                                 |
| ------------------ | -------------------------------------------------------- |
| `c`                | Скопировать адрес туннеля                                |
| `i`                | Открыть инспектор в браузере                             |
| `Q`                | Показать QR-код адреса — удобно открыть сайт на телефоне |
| `l`                | Показать или скрыть лог                                  |
| `↑` `↓`, `g` / `G` | Навигация по ленте                                       |
| `Ctrl+C`           | Остановить туннель и выйти                               |

Полный список клавиш для каждого типа туннеля — в [документации](https://tuna.am/en/docs/tunnels/tui.md).

### Если нужен старый добрый лог

Интерфейс не мешает автоматизации: он не включается, если вывод перенаправлен в файл или пайп, туннель запущен [как сервис](https://tuna.am/en/docs/tunnels/guides/service.md), задана переменная `CI` или `NONINTERACTIVE`, а также когда tuna запускает ИИ-агент — Claude Code, Cursor и другие. Вернуть текстовый лог вручную можно флагом `--log=stdout` или переменной `TUNA_TUI=0`:

```shell
tuna http 8080 --log=stdout

```

## Туннели

### Unix-сокеты

`tuna http` и `tuna tcp` умеют публиковать приложение, которое слушает не порт, а [unix-сокет](https://tuna.am/en/docs/tunnels/http.md#unix-socket) — например, gunicorn или php-fpm за прокси:

```shell
tuna http unix:///run/gunicorn.sock

```

Инспектор, повтор запросов и политики трафика работают так же, как с портом. Через [TCP-туннель](https://tuna.am/en/docs/tunnels/tcp.md#unix-socket) можно, например, временно открыть Docker API — только обязательно ограничьте доступ своим IP через `--cidr-allow`: доступ к `docker.sock` равносилен root-доступу к хосту.

### Политика трафика по ссылке и сжатие ответов

[Политику трафика](https://tuna.am/en/docs/traffic-policy.md) для `tuna http` теперь можно загрузить по https-ссылке — одна политика в репозитории на все машины команды:

```shell
tuna http 8080 --policy-url=https://gitlab.com/example/policies/-/raw/main/policy.yml

```

Новое действие [`compress_response`](https://tuna.am/en/docs/traffic-policy.md#compress_response) сжимает ответ приложения в `br`, `zstd`, `gzip` или `deflate`, если оно не сделало этого само. Ответ сжимается на лету, поэтому SSE и потоковые ответы продолжают работать.

Заодно политика стала строже: если файл из `--policy-file` не найден, политика не парсится или у аккаунта нет подписки Team, туннель **не запустится** — раньше клиент выводил предупреждение и продолжал работу. Подробнее — в разделе [Ошибки политики](https://tuna.am/en/docs/traffic-policy.md#policy-errors).

### Trigger получает данные события

[`tuna trigger`](https://tuna.am/en/docs/tunnels/trigger.md) раньше просто запускал команду на входящий вебхук или письмо. Теперь команда получает само событие: тело запроса или письмо приходит на stdin, а метод, путь, query и заголовки — в переменных окружения `TUNA_REQUEST_*` и `TUNA_MAIL_*`. Так можно, например, запускать деплой только по push в `main`:

deploy.sh

```shell
#!/bin/sh
set -e
[ "$TUNA_REQUEST_HEADER_X_GITLAB_EVENT" = "Push Hook" ] || exit 0
jq -e '.ref == "refs/heads/main"' > /dev/null || exit 0
/opt/app/deploy.sh

```

SMTP-триггер теперь срабатывает на каждое принятое письмо, а не один раз на соединение, а локальный адрес SMTP-сервера задаётся флагом `--listen-address`.

### Проверка подписи вебхуков GitHub и Sentry

`--verify-webhook=github` и `--verify-webhook=sentry` теперь проверяют HMAC-SHA256 от тела запроса так, как описано в документации провайдеров. Раньше настоящие доставки от GitHub и Sentry получали `401` — если вы из-за этого отключали проверку, самое время включить её обратно.

## Секреты в консоли

В tuna-cli 0.35 сильно вырос [CLI секретов](https://tuna.am/en/docs/secrets/cli.md): работа с отдельными секретами, управление проектами и окружениями, секреты файлом без записи на диск, офлайн-режим и отпечатки значений. Об этом — [отдельный пост](https://tuna.am/en/blog/secrets-cli.md).

## Мелочи, которые экономят время

* **Подсказка по обновлению.** Когда выходит новая версия, клиент показывает готовую команду обновления для вашего способа установки: brew, winget, apt, dnf, zypper, скрипт установки или Docker. `tuna version` показывает способ установки и проверяет наличие новой версии.
* **Подсветка справки.** В `--help` выделены команды, флаги и примеры.
* **Подтверждение удаления.** Перед удалением доменов, портов, туннелей, API-ключей, секретов и проектов клиент переспрашивает. Пропустить вопрос — флаг `--yes`.
* **`tuna whoami`** показывает, под каким аккаунтом авторизован клиент.

## Что проверить при обновлении

* **Удаление в скриптах требует `--yes`.** Если команду удаления, например `tuna domain clear` или `tuna secrets delete`, запускают без терминала — в CI или cron, — без флага `--yes` она сразу завершится ошибкой.
* **API-ключи выпускаются только в личном кабинете.** Команды `tuna api-key create` и `tuna session terminate` удалены: сервер больше не позволяет выпускать ключи и завершать веб-сессии по API-ключу. Ключи создаются в [личном кабинете](https://my.tuna.am/api_keys).
* **Новый репозиторий пакетов.** Пакеты для Linux переехали в реестр `code.tuna.am`, а пакет называется `tuna-cli`. На Debian и Ubuntu обычный `apt upgrade` сам переключит репозиторий, на RHEL, Fedora и openSUSE репозиторий нужно один раз сменить вручную — команды есть в [инструкции по обновлению](https://tuna.am/en/docs/guides/update.md).
* **Сроки поддержки старых версий.** Для пользователей без подписки версии **0.32.x** перестают работать 1 октября 2026 года, **0.33.x** — 1 ноября, **0.34.x** — 1 декабря, **0.35.x** — 1 января 2027 года. Полная таблица — в [политике обновления](https://tuna.am/en/docs/guides/update.md).

Полный список изменений по версиям — в [журнале изменений](https://tuna.am/en/changelog.md).

## Leave feedback

If you enjoy using Tuna, or on the contrary you are not happy with something, please [leave feedback](https://my.tuna.am/?show_feedback=1).

![](/blog/img/2024-08-22/feedback.gif)

## Help

We value our users and carefully review every request. If you have any problems with tuna, please contact us in one of the following ways:

* [Email](mailto:info@tuna.am)
* [Telegram community](https://telegram.me/+Kgbtt0_gJwI5ZmEy)

**Tags:**

* [release](https://tuna.am/en/blog/tags/release)
* [tuna](https://tuna.am/en/blog/tags/tuna)
* [cli](https://tuna.am/en/blog/tags/cli)
