Skip to main content
Glama
Ar9av

termmirror

by Ar9av

termmirror

Un servidor MCP que ofrece a los agentes de IA sesiones de terminal realmente interactivas — y una vista web en vivo donde una persona puede observar esas sesiones y escribir en ellas.

La mayoría de las herramientas para agentes solo puede ejecutar comandos que terminan por sí solos. Cualquier cosa que solicite entrada, se redibuje o espere una pulsación de tecla está fuera de su alcance: instaladores, ssh con solicitud de contraseña, pdb, vim, la pantalla de configuración de un gestor de paquetes — y la CLI de otro agente. termmirror mantiene abiertas sesiones PTY reales para que un agente pueda manejarlas como lo haría una persona, pulsación a pulsación, mientras una persona puede mirar por encima de su hombro e intervenir cuando sea necesario.

Un agente conduciendo la CLI de otro agente, observado en vivo en el navegador

Un agente conduciendo una sesión de Claude Code a través de termmirror — aceptó el aviso de confianza, hizo una pregunta y leyó la respuesta de la pantalla. La vista del navegador está en vivo, y escribir en ella va directamente a la misma terminal.

Una sesión de vim manejada pulsación a pulsación

Una TUI a pantalla completa con las mismas herramientas: el agente abrió vim, se movió al final del archivo, entró en modo inserción y escribió una línea.

Características

  • Sesiones PTY reales. Respaldadas por node-pty con un emulador de terminal sin interfaz que mantiene el estado de la pantalla. Sin tmux ni otras dependencias externas.

  • Pensado para TUIs. Detección de la pantalla alternativa, codificación de teclas para las teclas de control y navegación, y scrollback que desenvuelve las líneas con ajuste suave.

  • Espera fiable. wait devuelve el control una vez que un programa ha respondido y se ha estabilizado, de modo que la pantalla que lees refleja tu entrada en lugar del estado anterior.

  • Vista web en vivo. Cualquier sesión puede verse en el navegador mientras se ejecuta. Escribir en la página va directamente al PTY, de modo que una persona puede tomar el control y devolverlo.

  • De agente a agente. Diseñado para que un agente pueda conducir la CLI de otro agente mediante una conversación de varios turnos.

Related MCP server: ddx-term-mcp

Requisitos

  • Node.js 20 o superior

  • macOS o Linux

Instalación

git clone https://github.com/Ar9av/termmirror.git
cd termmirror
npm install && npm run build

Registra el servidor con Claude Code:

claude mcp add termmirror -- node /absolute/path/to/termmirror/dist/src/index.js

Cualquier cliente MCP funciona; el servidor se comunica mediante stdio.

Uso

Tres herramientas, utilizadas en este orden:

send_input  →  wait  →  read_screen

read_screen devuelve la pantalla tal como se ve ahora — una captura de pantalla, no un registro de todo lo impreso. wait es lo que hace que valga la pena leer esa captura: se bloquea hasta que el programa ha respondido y ha quedado en silencio, de modo que ves el estado después de tu pulsación.

Herramientas

Herramienta

Descripción

create_session

Inicia una sesión ($SHELL por defecto, o cualquier comando) y devuelve su ID además de una URL para verla.

send_input

Escribe texto en una sesión, opcionalmente enviándolo con Enter.

send_keys

Envía ctrl+c, escape, tab, las teclas de flecha, f1f12, alt+X, y similares.

read_screen

Devuelve la pantalla visible como texto plano; scrollback llega hasta el historial.

wait

Espera a que la sesión responda y se estabilice (idle), o a que aparezca un texto (pattern).

list_sessions

Lista todas las sesiones, activas o finalizadas, con sus URLs de visualización.

resize

Cambia las dimensiones de la terminal.

kill_session

Termina una sesión.

Espera

idle es la opción predeterminada y la más adecuada en la mayoría de los casos. Los programas interactivos se redibujan continuamente mientras trabajan y guardan silencio cuando es tu turno, por lo que el silencio es una señal fiable de finalización, incluso para spinners y TUIs que no muestran ningún indicador con el que comparar. Aumenta timeout para operaciones lentas.

Un resultad no_output signific que no ha vuelto nada desde tu entrada: o el program está ocupad y en silencio, o la entrada nunca se registró.

Usa pattern cuando se conoce el texto esperad. Busca en toda la pantalla, incluida tu propia entrada con eco, así que espera algo que imprima el programa en lugar de una marca que acabas de escribir.

Ver una sesión

La primera sesión inicia un servidor web local en el puerto 7878. Abre la URL que devuelve create_session para ver la sesión en vivo. Escribir en la página va directamente al PTY, lo que permit a una persona introducir una contraseña o responder a una solicitud que el agente no debería gestionar, y luego devolver el control — sin protocolo de traspaso, solo la misma terminal desde el otro lado.

Variable

Efecto

TERMINAL_UI_PORT

Puert para la vista web (predeterminad 7878; 0 elig un puert libre).

TERMINAL_NO_UI

Definir como 1 para desactivar la vista web por completo.

Ejemplo

node examples/drive-claude.mjs "what is 2+2? reply with just the number"

Un agente inicia claude, acepta su solicitud de confianza, hace una pregunta y lee la respuesta de la pantalla — las mismas herramientas que expone la interfaz MCP, escritas sin abreviar.

Desarrollo

npm run build    # compile TypeScript to dist/
npm test         # build, then run the test suite

La suite cubre la semántica de espera de la que depende el resto del servidor, la codificación de teclas, el scrollback, la transmisión en vivo de la vista web y la escritura con toma de control, y una ejecución de extremo a extremo sobre el protocolo MCP real.

Una nota sobre el nombre

El paquete es termmirror, con dos emes. alias/termirror/ es un paquete auxiliar que depende de él para que la grafía con una sola m resuelva al lugar correcto.

Licencia

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to execute commands in a shared tmux session that is simultaneously visible to a human via a web-based terminal UI.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with interactive CLI processes via a real PTY, allowing them to send keystrokes, read screen output, and handle interactive prompts.
    6
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to spawn and interact with real terminal sessions, capturing screenshots of rendered TUI output and sharing live sessions for debugging.
    3
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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