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: ddx-term-mcp
Требования
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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 gradedqualityBmaintenanceEnables AI agents to execute commands in a shared tmux session that is simultaneously visible to a human via a web-based terminal UI.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with interactive CLI processes via a real PTY, allowing them to send keystrokes, read screen output, and handle interactive prompts.61MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to spawn and interact with real terminal sessions, capturing screenshots of rendered TUI output and sharing live sessions for debugging.31MIT
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Turns any agent into a full agentic application — branded, interactive screens generated at runtime.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ar9av/termmirror'
If you have feedback or need assistance with the MCP directory API, please join our Discord server