Как запустить полноценный рабочий терминал с ИИ-агентами прямо в браузере
Иногда нужно быстро починить упавший сервис с планшета в дороге или проверить логи с ноутбука, на котором не настроены привычные SSH-ключи. Обычно в таких случаях приходится страдать с мобильными терминалами, спотыкаться о кривой ввод клавиш и заново поднимать упавшие при разрыве связи сессии.
Недавно наткнулся на проект Tabminal. Разработчик сделал веб-терминал, который решает сразу две задачи: держит постоянные сессии на сервере и объединяет привычный шелл с протоколом ACP для работы с автономными ИИ-агентами.
Что умеет Tabminal
По своей сути это полноценное рабочее пространство в браузере. Бэкенд крутится на вашей машине или сервере, а вы подключаетесь к нему через веб-интерфейс или PWA-приложение.
Главные возможности:
- Сессии не умирают при закрытии вкладки, обновлении страницы или переключении с Wi-Fi на мобильную сеть.
- Встроенный редактор файлов на базе Monaco (движок VS Code) с подсветкой синтаксиса и просмотром картинок.
- Нативная поддержка протокола ACP (Agent Client Protocol) для запуска автономных помощников вроде Claude Code, Gemini CLI или Codex.
- Управление кластером из нескольких серверов в одном окне с раздельными правами доступа.

Работа с ИИ-агентами через ACP
Интеграция с ИИ здесь сделана глубже, чем обычный чат сбоку от консоли. Проект поддерживает спецификацию ACP, поэтому агент работает в изолированном контексте и показывает свои действия прямо в интерфейсе:
- Вызовы инструментов и запуск команд отображаются в реальном времени.
- Изменения в коде выводятся в виде наглядных diff-блоков.
- Есть кнопка «Jump in», которая переносит вас прямо в работающий терминал агента, если нужно перехватить управление руками.
- Состояние диалогов, планы выполнения и транскрипты сохраняются между перезагрузками страницы.
Если на сервере установлены CLI-утилиты от Anthropic, Google или OpenAI, Tabminal автоматически находит их в путях системы.
Помимо сложных агентов, есть и простой встроенный помощник. Если написать команду с символом # в начале строки, сервер отправит запрос к OpenAI или OpenRouter с учетом недавней истории шелла. При падении команды с ошибкой система сама предложит вариант исправления.
Мультихост и мобильный интерфейс
Интересная деталь архитектуры: один запущенный инстанс Tabminal может выступать центральным узлом. В боковой панели вы добавляете другие серверы, где тоже поднят бэкенд проекта. Реестр хостов сохраняется на главном сервере, а авторизация работает индивидуально для каждого узла.
Отдельно стоит сказать про адаптивность. Обычно веб-терминалы на смартфонах превращаются в ад из-за наэкранной клавиатуры и отсутствия клавиш Ctrl, Alt или Esc. В Tabminal виртуальная панель вынесена прямо над клавиатурой, а интерфейс умеет сворачиваться в компактный вид с учетом безопасных зон экрана (Safe Area на iOS).

Архитектура и безопасность
Под капотом у проекта классический стек: Node.js версии не ниже 22, фреймворк Koa, эмулятор node-pty и WebSockets. Клиентская часть написана на чистом JavaScript без тяжелых фреймворков, а за отображение консоли отвечает библиотека xterm.js.
Важный момент: Tabminal дает прямой доступ к файловой системе и выполнению команд с правами того пользователя, от которого запущен процесс. Никогда не открывайте его порт наружу в публичный интернет без защиты. Для удаленного доступа автор прямо рекомендует изолированные оверлейные сети вроде Tailscale или туннелирование с авторизацией через Cloudflare Access. При запуске флаг --accept-terms обязателен, иначе процесс завершится с ошибкой.
Быстрый старт
Проще всего запустить утилиту через npx:
npx tabminal --accept-terms
Если планируете использовать встроенного ассистента, передайте ключ OpenAI или OpenRouter:
npx tabminal --openai-key "YOUR_API_KEY" --accept-terms
Для постоянного развертывания есть готовый Docker-образ:
docker run --rm -it -p 9846:9846 \
leask/tabminal \
--accept-terms
При старте без указания пароля сервер сгенерирует временный токен и напечатает его в консоль. Все настройки сохраняются локально в директории ~/.tabminal/.
Кому пригодится проект
Tabminal закрывает брешь между классическим SSH через терминал и тяжелыми облачными IDE. Если вы часто админите домашний сервер, работаете с нескольких разных устройств или хотите протестировать ИИ-агентов в изолированном окружении прямо через веб, проект определенно стоит погонять локально. Лицензия у репозитория открытая (MIT), так что допилить под свои нужды ничего не мешает.
