termmirror
termmirror
MCP-сервер, который даёт AI-агентам настоящие интерактивные терминальные сессии — и живой веб-просмотр, где человек может наблюдать за этими сессиями и печатать в них.
Большинство инструментов для агентов умеют запускать только команды, которые завершаются сами. Всё, что запрашивает ввод, перерисовывает экран или ждёт нажатия клавиши, недоступно: установщики, ssh с запросом пароля, pdb, vim, экран настройки пакетного менеджера — и CLI другого агента. termmirror держит настоящие PTY-сессии открытыми, чтобы агент мог работать с ними так же, как человек, — по одному нажатию клавиши за раз, а человек может заглядывать через плечо и вмешиваться, когда нужно.

Один агент ведёт сессию Claude Code через termmirror — он принял запрос на доверие, задал вопрос и прочитал ответ с экрана. Вид в браузере живой, и ввод на странице идёт напрямую в тот же терминал.

Полноэкранный TUI под теми же инструментами: агент открыл vim, перешёл в конец файла, вошёл в режим вставки и набрал строку.
Возможности
Настоящие PTY-сессии. Работают на
node-ptyс фоновым терминальным эмулятором, который хранит состояние экрана. Никакогоtmuxили других внешних зависимостей.Создан для TUI. Определение альтернативного экрана, кодирование управляющих и навигационных клавиш, прокрутка истории, которая разворачивает перенесённые строки.
Надёжное ожидание.
waitвозвращается, когда программа ответила и успокоилась, поэтому экран, который вы читаете, отражает ваш ввод, а не состояние до него.Живой веб-просмотр. За любой сессией можно наблюдать в браузере в процессе работы. Ввод на странице идёт напрямую в PTY, так что человек может перехватить управление и вернуть его обратно.
Агент-к-агенту. Спроектирован так, чтобы один агент мог управлять CLI другого агента через многоходовой диалог.
Related MCP server: spectatty
Требования
Node.js 20 или новее
macOS или Linux
Установка
git clone https://github.com/Ar9av/termmirror.git
cd termmirror
npm install && npm run buildЗарегистрируйте сервер в Claude Code:
claude mcp add termmirror -- node /absolute/path/to/termmirror/dist/src/index.jsПодойдёт любой MCP-клиент; сервер общается по stdio.
Использование
Три инструмента, используемые в таком порядке:
send_input → wait → read_screenread_screen возвращает экран в том виде, какой он сейчас, — снимок, а не журнал всего выведенного. wait — то, что делает чтение осмысленным: он блокируется, пока программа не ответит и не замолчит, поэтому вы видите состояние после вашего нажатия.
Инструменты
Tool | Description |
| Запускает сессию (по умолчанию |
| Вводит текст в сессию, опционально отправляя его нажатием Enter. |
| Отправляет |
| Возвращает видимый экран как обычный текст; |
| Ждёт, пока сессия ответит и успокоится ( |
| Перечисляет все сессии — живые или завершённые — с URL для просмотра. |
| Изменяет размеры терминала. |
| Завершает сессию. |
Ожидание
idle используется по умолчанию и в большинстве случаев является правильным выбором. Интерактивные программы непрерывно перерисовывают экран, пока работают, и замолкают, когда наступает ваш ход, поэтому тишина — надёжный сигнал завершения, в том числе для спиннеров и TUI, которые не показывают приглашение, с которым можно было бы сопоставлять. Увеличьте timeout для медленных операций.
Результат no_output означает, что после вашего ввода ничего не вернулось: программа либо занята и молчит, либо ввод не был зарегистрирован.
Используйте pattern, когда ожидаемый текст известен. Он сопоставляется со всем экраном, включая ваш собственный введённый текст, поэтому ждите чего-то, что печатает программа, а не маркера, который вы только что набрали.
Наблюдение за сессией
Первая сессия запускает локальный веб-сервер на порту 7878. Откройте URL, возвращённый create_session, чтобы видеть сессию вживую. Ввод на странице пишет напрямую в PTY, что позволяет человеку ввести пароль или ответить на запрос, который агенту обрабатывать не следует, а затем вернуть управление — никакого протокола передачи, просто тот же терминал с другой стороны.
Variable | Effect |
| Порт для веб-просмотра (по умолчанию |
| Установите |
Пример
node examples/drive-claude.mjs "what is 2+2? reply with just the number"Один агент запускает claude, принимает его запрос на доверие, задаёт вопрос и читает ответ с экрана — те же инструменты, которые предоставляет MCP-интерфейс, расписанные вручную.
Разработка
npm run build # compile TypeScript to dist/
npm test # build, then run the test suiteНабор тестов покрывает семантику ожидания, на которую опирается остальная часть сервера, кодирование клавиш, прокрутку истории, живой поток веб-просмотра и ввод при перехвате управления, а также сквозной прогон по реальному MCP-протоколу.
О названии
Пакет называется termmirror, с двумя m. alias/termirror/ — это пакет-заглушка, который зависит от него, чтобы написание с одной m вело в правильное место.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Give your AI hands on every computer you own. Remote control of your Windows, Mac and Linux machines from one ChatGPT, Claude or Cursor chat — even from your phone. Ask it to find out why the office server is crawling, update every PC in the house, sort out your mom's laptop from another city, or ship the site from your work machine while you're on a train. It runs commands, reads files and takes a screenshot when it needs to see the screen. You decide what each computer allows, and you can cut any of them off in a second.
Remote shell and detached long-running jobs on your own machines — no SSH, open ports or VPN.
Cloud desktops for AI agents: create a Linux computer, see its screen, click, type and run tasks.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to spawn and interact with real terminal sessions, capturing screenshots of rendered TUI output and sharing live sessions for debugging.2 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to securely execute terminal commands with persistent sessions, async jobs, and mission control, while providing a live dashboard for human oversight.4Apache 2.0
- AlicenseAqualityAmaintenanceGive AI agents a persistent, interactive terminal with support for SSH, REPLs, database CLIs, TUI apps, and long-running processes.941 PyPI12MIT