Skip to main content
Glama
Ar9av

termmirror

by Ar9av

termmirror

Ein MCP-Server, der KI-Agenten echte interaktive Terminal-Sitzungen bietet – und eine Live-Webansicht, in der ein Mensch diese Sitzungen beobachten und hineinschreiben kann.

Die meisten Agent-Tools können nur Befehle ausführen, die von selbst enden. Alles, was Eingaben abfragt, neu zeichnet oder auf einen Tastendruck wartet, ist unerreichbar: Installationsprogramme, ssh mit Passwortabfrage, pdb, vim, der Konfigurationsbildschirm eines Paketmanagers – und die CLI eines anderen Agenten. termmirror hält echte PTY-Sitzungen offen, damit ein Agent sie so bedienen kann wie ein Mensch – Tastendruck für Tastendruck –, während ein Mensch über die Schulter schauen und bei Bedarf eingreifen kann.

Ein Agent, der die CLI eines anderen Agenten steuert, live im Browser beobachtet

Ein Agent, der eine Sitzung von Claude Code über termmirror steuert – er akzeptierte den Trust-Prompt, stellte eine Frage und las die Antwort vom Bildschirm ab. Die Browser-Ansicht ist live, und Eingaben darin gehen direkt in dasselbe Terminal.

Eine vim-Sitzung, Tastendruck für Tastendruck gesteuert

Eine Vollbild-TUI unter denselben Werkzeugen: Der Agent öffnete vim, bewegte sich zum Ende der Datei, wechselte in den Einfügemodus und tippte eine Zeile.

Features

  • Echte PTY-Sitzungen. Basiert auf node-pty mit einem Headless-Terminalemulator, der den Bildschirmzustand hält. Kein tmux oder eine andere externe Abhängigkeit.

  • Für TUIs gebaut. Erkennung des alternativen Bildschirms, Tastenkodierung für Steuer- und Navigationstasten sowie Scrollback, das weich umbrochene Zeilen wieder zusammenführt.

  • Zuverlässiges Warten. wait kehrt zurück, sobald ein Programm geantwortet und zur Ruhe gekommen ist, sodass der Bildschirm, den Sie lesen, Ihre Eingabe widerspiegelt und nicht den Zustand davor.

  • Live-Webansicht. Jede Sitzung kann im Browser live verfolgt werden, während sie läuft. Tippen auf der Seite geht direkt an die PTY, sodass ein Mensch übernehmen und die Kontrolle zurückgeben kann.

  • Agent-zu-Agent. Entwickelt, damit ein Agent die CLI eines anderen Agenten über eine Konversation mit mehreren Runden steuern kann.

Related MCP server: ddx-term-mcp

Voraussetzungen

  • Node.js 20 oder neuer

  • macOS oder Linux

Installation

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

Registrieren Sie den Server bei Claude Code:

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

Jeder MCP-Client funktioniert; der Server spricht stdio.

Verwendung

Drei Werkzeuge, die in dieser Reihenfolge verwendet werden:

send_input  →  wait  →  read_screen

read_screen gibt den Bildschirm so zurück, wie er gerade aussieht – eine Momentaufnahme, kein Protokoll aller Ausgaben. wait ist die Funktion, die das Lesen sinnvoll macht: Sie blockiert, bis das Programm geantwortet hat und still geworden ist, sodass Sie den Zustand nach Ihrem Tastendruck sehen.

Werkzeuge

Werkzeug

Beschreibung

create_session

Startet eine Sitzung (standardmäßig $SHELL oder einen beliebigen Befehl) und gibt ihre ID sowie eine URL zum Beobachten zurück.

send_input

Gibt Text in eine Sitzung ein und übermittelt ihn optional mit der Eingabetaste.

send_keys

Sendet ctrl+c, escape, tab, Pfeiltasten, f1f12, alt+X und Ähnliches.

read_screen

Gibt den sichtbaren Bildschirm als Klartext zurück; scrollback greift auf den Verlauf zu.

wait

Wartet, bis die Sitzung antwortet und zur Ruhe kommt (idle), oder bis Text erscheint (pattern).

list_sessions

Listet alle Sitzungen auf, ob aktiv oder beendet, mit URLs zum Beobachten.

resize

Ändert die Terminalgröße.

kill_session

Beendet eine Sitzung.

Warten

idle ist die Standardeinstellung und in den meisten Fällen die richtige Wahl. Interaktive Programme zeichnen während der Arbeit kontinuierlich neu und verstummen, wenn Sie an der Reihe sind. Stille ist also ein zuverlässiges Abschlusssignal – auch für Ladeanzeigen und TUIs, die keinen Prompt zum Abgleich bereitstellen. Erhöhen Sie timeout für langsame Vorgänge.

Ein no_output-Ergebnis bedeutet, dass seit Ihrer Eingabe nichts zurückgekommen ist: Das Programm ist entweder beschäftigt und still, oder die Eingabe wurde nie registriert.

Verwenden Sie pattern, wenn der erwartete Text bekannt ist. Der Abgleich erfolgt gegen den gesamten Bildschirm, einschließlich Ihrer eigenen zurückgespiegelten Eingabe. Warten Sie also auf etwas, das das Programm ausgibt, statt auf eine Markierung, die Sie gerade getippt haben.

Eine Sitzung beobachten

Die erste Sitzung startet einen lokalen Webserver auf Port 7878. Öffnen Sie die von create_session zurückgegebene URL, um die Sitzung live zu sehen. Eingaben auf der Seite werden direkt in die PTY geschrieben. So kann ein Mensch ein Passwort eingeben oder eine Eingabeaufforderung beantworten, die der Agent nicht übernehmen soll, und die Kontrolle anschließend zurückgeben – kein Übergabeprotokoll, nur dasselbe Terminal von der anderen Seite.

Variable

Wirkung

TERMINAL_UI_PORT

Port für die Webansicht (Standard 7878; 0 wählt einen freien Port).

TERMINAL_NO_UI

Auf 1 setzen, um die Webansicht vollständig zu deaktivieren.

Beispiel

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

Ein Agent startet claude, akzeptiert dessen Trust-Prompt, stellt eine Frage und liest die Antwort vom Bildschirm ab – dieselben Werkzeuge, die die MCP-Schnittstelle bereitstellt, in ausführlicher Form.

Entwicklung

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

Die Testsuite umfasst die Wartesemantik, von der der Rest des Servers abhängt, Tastenkodierung, Scrollback, den Live-Stream der Webansicht und die Texteingabe zur Übernahme sowie einen End-to-End-Lauf über das echte MCP-Protokoll.

Eine Anmerkung zum Namen

Das Paket heißt termmirror, mit zwei m. alias/termirror/ ist ein Stub-Paket, das davon abhängt, damit die Schreibweise mit einem m zum richtigen Ort auflöst.

Lizenz

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