Новый инспектор с API для ИИ-агентов
Инспектор — страница на http://127.0.0.1:4040, где видно всё, что пришло в туннель. В tuna-cli 0.40 мы переписали его целиком и добавили то, чего не хватало: запросы, которые раньше терялись, сессии баз данных и API для ИИ-агентов.
- Видны отклонённые запросы. Запрос, который отбили
--basic-auth,--cidr-allowили политика трафика, теперь попадает в инспектор вместе с причиной. - Базы данных. Сессии PostgreSQL, MySQL и Redis с длительностью, результатом, ошибками и транзакциями. Туннель MySQL — новый.
- ИИ-агенты.
llms.txtи HTTP API: агент сам найдёт упавший запрос, повторит его и дождётся вебхука. - Порт инспектора задаётся флагом
--inspect-port. В Docker инспектор теперь выключен по умолчанию. - Всё остальное — в документации.
HTTP: всё на одном экране
Список и детали запроса занимают всю высоту окна. На широком мониторе запрос и ответ стоят в две колонки, на ноутбуке между ними переключатель, на телефоне список и детали открываются отдельными экранами. Появились тёмная тема и английский интерфейс.
Поиск понимает фильтры-токены: method:POST, status:500, заголовок, IP, правило политики. Клик по статусу или пути в деталях добавляет фильтр, клик с Alt — исключающий фильтр.
Из заголовка Authorization токен открывается в разборщике JWT в один клик, временная метка — в конвертере времени. Мы переписали эти инструменты на Go и покрыли тестами: они больше не округляют большие числа, не ломают кириллицу в Base64 и не сдвигают часовой пояс.
Отклонённые запросы
Раньше запрос, который отбил --basic-auth, --key-auth, --cidr-*, политика трафика или проверка подписи вебхука, в инспектор не попадал. Клиент получал 401 или 403, а инспектор оставался пустым, и было непонятно, дошёл ли запрос вообще.
Теперь такие запросы видны в списке с меткой «Политика». В деталях видно, кто ответил вместо приложения и какие правила сработали.
Изменить и повторить
«Изменить» открывает редактор прямо на месте запроса: метод, путь, заголовки таблицей и тело, рядом — исходный ответ. Обычный повтор отправляет тело байт в байт, поэтому подпись вебхука сходится и событие Stripe можно ещё раз прогнать через обработчик.
Базы данных
У tuna postgres, tuna redis и нового tuna mysql инспектор показывает сессии и их запросы: длительность, результат, ошибки с кодом и ссылкой на описание. Транзакции отмечены полосой, откат — красной. Вкладки «Ошибки» и «Медленные» фильтруют лог.
У Postgres видны командные теги (UPDATE 1) и параметры prepared statements. У Redis — номер базы в имени сессии, бинарные значения в кавычках, как в redis-cli, и MULTI/EXEC. Через туннель работают RESP3 и redis-cli --pipe.
У MySQL видны запросы, транзакции и PREPARE/EXECUTE, но не результаты и ошибки: ответы сервера инспектор не разбирает.
То же видно и в терминале:
ИИ-агенты
Claude Code, Cursor и другие агенты читают инспектор через HTTP API. Дайте агенту ссылку http://127.0.0.1:4040/llms.txt — там инструкция с живыми адресами и готовыми командами curl.
I=http://127.0.0.1:4040
curl -s "$I/v1/events?status=5xx&since=15m" # что упало за 15 минут
curl -s "$I/v1/events?path=~hook&wait=60s" # дождаться следующего вебхука
curl -s -X POST "$I/v1/events/<id>/replay" # повторить через туннель
wait закрывает частую просьбу «дождись вебхука»: запрос висит, пока не придёт подходящее событие. Кнопка «Скопировать для ИИ» в деталях запроса копирует ссылку на событие: человек по ней увидит экран инспектора, агент получит Markdown.
Инспектор ничего не маскирует: токены, cookie и тела запросов попадут в контекст агента и к провайдеру модели. При копировании он об этом предупреждает, а llms.txt просит агента не повторять секреты. С боевыми данными будьте осторожны.
Что изменилось при обновлении
- Порт. Первый туннель занимает 4040, следующие — 4041, 4042 и дальше. Фиксированный порт —
--inspect-portилиTUNA_INSPECT_PORT. Если он занят, туннель не запустится и назовёт, кто его занял. inspectAddrвtuna.ymlбольше не читается. Адрес задаётся переменнойTUNA_INSPECT_ADDR, порт в ней устарел.- Docker. В образе
yuccastream/tunaинспекторtuna http,tuna 1cиtuna kubernetesвыключен. Если вы задавали толькоTUNA_INSPECT_ADDR, добавьтеTUNA_INSPECT=true. - Доступ из сети. При
TUNA_INSPECT_ADDR=0.0.0.0CLI предупреждает в логе, а инспектор показывает баннер, что открыт без авторизации.
Как обновить CLI — в инструкции. Подробности — на странице инспектора. Нашли ошибку или не хватает функции — напишите в поддержку.
Оставьте отзыв
Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем-либо, то пожалуйста оставьте отзыв.
Новости
Анонсы новых функций и статей публикуем в Telegram-канале. Подписывайтесь, чтобы ничего не пропустить.
Помощь
Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов: