Skip to main content
Glama
termmirror

termmirror

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: spectatty

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, f1–f12, 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

Related MCP Connectors

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
    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.
    2 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely execute terminal commands with persistent sessions, async jobs, and mission control, while providing a live dashboard for human oversight.
    4
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Give AI agents a persistent, interactive terminal with support for SSH, REPLs, database CLIs, TUI apps, and long-running processes.
    9
    41 PyPI
    12
    MIT