BashTerm
vscode-terminal-mcp
MCP-Server, der Befehle in sichtbaren VSCode-Terminal-Tabs mit vollständiger Ausgabeerfassung ausführt. Anders als bei der Inline-Ausführung läuft jeder Befehl in einem echten Terminal, das du sehen, scrollen und mit dem du interagieren kannst.
Hauptfunktionen
Sichtbare Terminals: Befehle laufen in echten VSCode-Terminal-Tabs, nicht in versteckten Prozessen. Du siehst alles in Echtzeit.
Sitzungswiederverwendung: Das
run-Tool verwendet automatisch inaktive Sitzungen wieder und erstellt nur bei Bedarf neue Terminals.Unterstützung für langlaufende Prozesse: Fire-and-forget-Ausführung mit
waitForCompletion: false, dann inkrementelles Abrufen der Ausgabe mitread.Subagent-Isolation: Sitzungen mit
agentIdmarkieren, um parallele Agenten-Workloads getrennt zu halten.
Related MCP server: Terminal MCP
Voraussetzungen
VS Code 1.93+ (für Shell Integration API)
Node.js 20+
Erste Schritte
Claude Code
claude mcp add BashTerm -- npx vscode-terminal-mcp@latestVS Code / Copilot
Füge Folgendes zu deiner .vscode/mcp.json hinzu:
{
"servers": {
"BashTerm": {
"type": "stdio",
"command": "npx",
"args": ["vscode-terminal-mcp@latest"]
}
}
}Füge Folgendes zu deiner .cursor/mcp.json hinzu:
{
"mcpServers": {
"BashTerm": {
"command": "npx",
"args": ["-y", "vscode-terminal-mcp@latest"]
}
}
}Füge Folgendes zu deiner claude_desktop_config.json hinzu:
{
"mcpServers": {
"BashTerm": {
"command": "npx",
"args": ["-y", "vscode-terminal-mcp@latest"]
}
}
}Dein erster Prompt
Nach der Installation kannst du zum Beispiel Folgendes versuchen:
Führe
ls -laim Terminal aus
Du solltest sehen, wie sich ein neuer Terminal-Tab in VSCode öffnet, mit der Befehlsausgabe.
Screenshots
Ausführen eines Befehls mit run

Berechtigungsdialog für exec

Exec-Ergebnis mit sauberer Ausgabe

Tools
Schnelle Ausführung
Tool | Beschreibung |
| Erstellt (oder verwendet wieder) ein Terminal und führt einen Befehl in einem Schritt aus. Gibt saubere Ausgabe mit Exit-Code zurück. |
Sitzungsverwaltung
Tool | Beschreibung |
| Erstellt eine neue sichtbare Terminalsitzung. Gibt eine |
| Führt einen Befehl in einer bestehenden Sitzung aus und erfasst die Ausgabe. |
| Liest die Ausgabe einer Sitzung mit Paginierung. Unterstützt inkrementelles Lesen und Tail-Modus ( |
| Sendet Text an ein interaktives Terminal (Prompts, REPLs, Bestätigungen). |
| Listet aktive Sitzungen auf. Optional nach |
| Schließt eine Terminalsitzung und ihren VSCode-Tab. |
Verwendungsmuster
Einfacher Befehl
Das run-Tool übernimmt alles – erstellt bei Bedarf ein Terminal, führt aus und gibt saubere Ausgabe zurück:
> Run npm test$ npm test
PASS src/utils.test.ts (3 tests)
PASS src/index.test.ts (5 tests)
[exit: 0 | 1243ms | session-abc123]Langlaufender Prozess
Für Builds, Bereitstellungen oder jeden Befehl, der eine Weile dauert:
> Start `npm run build` without waiting, then check progressDer Agent wird:
runmitwaitForCompletion: falseaufrufen – gibt sofort zurückreadmitoffset: -10aufrufen, um die letzten 10 Zeilen zu prüfenWiederholen, bis der Prozess abgeschlossen ist
Interaktive Befehle
Für Befehle, die Benutzereingaben benötigen:
> Run npm init and answer the promptsDer Agent wird:
runmitnpm initaufrufenreadaufrufen, um den Prompt zu seheninputaufrufen, um die Antwort zu senden
Parallele Agenten
Subagenten können in isolierten Terminals mit agentId arbeiten:
> Have one agent run tests while another runs the linterJeder Subagent erhält sein eigenes Terminal, das mit seiner agentId markiert ist, sodass sich Ausgaben nicht vermischen.
Konfiguration
Die Erweiterung liest die Konfiguration aus den VSCode-Einstellungen unter terminalMcp.*:
Einstellung | Typ | Standardwert | Beschreibung |
| number | 10 | Maximale Anzahl gleichzeitiger Terminalsitzungen |
| number | 30000 | Standard-Befehlstimeout in ms |
| number | 5000 | Maximale Zeilen im Ausgabepuffer pro Sitzung |
| number | 1800000 | Inaktive Sitzungen nach dieser Zeit in ms schließen (0 = deaktiviert) |
| string[] |
| Befehle, die abgelehnt werden |
Empfohlen: Als bevorzugtes Tool festlegen
LLM-Agenten wie Claude Code haben ein integriertes Bash-Tool, das Befehle inline im Chat ausführt. Die Ausgabe ist in die Konversation eingebettet und schwer zu lesen, insbesondere bei Befehlen mit umfangreicher Ausgabe. Wir empfehlen, dem Agenten zu sagen, dass er dieses MCP seinem integrierten Bash-Tool vorziehen soll.
Füge Folgendes zu deiner CLAUDE.md (oder einer entsprechenden Anweisungsdatei) hinzu:
## Terminal Execution
Prefer the BashTerm MCP tools (`run`, `exec`, `read`, etc.) over the built-in Bash tool for executing commands.
BashTerm runs commands in visible VSCode terminal tabs where the user can see output in real time.
Only fall back to the built-in Bash tool for simple, non-interactive operations like reading environment variables.
For commands that may take longer than 30 seconds or produce large amounts of output (builds, test suites,
deployments, installs), use the pull mode pattern:
1. Call `run` with `waitForCompletion: false` to launch the command without blocking.
2. Call `read` with `offset: -10` to check the last 10 lines of output.
3. Repeat step 2 until you see the command has finished (look for exit messages, prompts, or "Done").
4. Report the final result to the user.
This prevents conversation timeouts and lets the user watch progress in the terminal in real time.Warum das wichtig ist:
Integriertes Bash | BashTerm MCP | |
Ausgabesichtbarkeit | In den Chat eingebettet, schwer zu scrollen | Sichtbar im VSCode-Terminal-Tab |
Echtzeit-Feedback | Benutzer sieht nichts, bis der Befehl fertig ist | Benutzer sieht die Ausgabe live |
Langlaufende Befehle | Blockiert die Konversation bis zum Timeout | Fire-and-forget + Polling |
Sitzungszustand | Jeder Befehl ist isoliert | Persistente Sitzungen mit Verlauf |
Interaktive Befehle | Nicht unterstützt | Eingabe an Prompts/REPLs senden |
Entwicklung: Aktualisieren der Erweiterung
VSCode cached Erweiterungen aggressiv im Speicher. Bei lokaler Entwicklung kann code --install-extension und sogar „Developer: Reload Window“ deine Änderungen möglicherweise nicht neu laden. Verwende diesen Workflow:
Schnelles Update (kein Neustart nötig)
Nach dem Ändern von Quelldateien erstelle und kopiere direkt in das installierte Erweiterungsverzeichnis:
cd /path/to/vscode-terminal-mcp
npm run build
cp dist/extension.js ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-<version>/dist/extension.jsFühre dann „Developer: Reload Window“ (Ctrl+Shift+P) aus.
Vollständige Neuinstallation (wenn das schnelle Update nicht funktioniert)
Wenn VSCode immer noch alten Code verwendet:
# 1. Uninstall and remove all copies
code --uninstall-extension sirlordt.vscode-terminal-mcp
rm -rf ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-*
# 2. Check for ghost entries with old publisher names
# Look in ~/.vscode/extensions/extensions.json for stale entries
# Remove any entries with old publisher IDs (e.g., "terminal-mcp.vscode-terminal-mcp")
# 3. Close VSCode completely (not just reload)
# 4. Rebuild and install
npm run build
npx vsce package --allow-missing-repository
code --install-extension vscode-terminal-mcp-<version>.vsix --force
# 5. Open VSCodeÜberprüfen, ob die richtige Version geladen ist
# Check which extension directories exist
ls ~/.vscode/extensions/ | grep terminal
# Verify your changes are in the installed extension
grep "YOUR_UNIQUE_STRING" ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-*/dist/extension.js
# Compare checksums
md5sum dist/extension.js ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-*/dist/extension.jsUmgang mit großen Ausgaben
Wenn read eine Ausgabe zurückgibt, die das Token-Limit des MCP-Clients überschreitet, speichert das System die vollständige Ausgabe automatisch in einer temporären JSON-Datei und gibt den Dateipfad in der Fehlermeldung zurück.
Um den relevanten Inhalt zu extrahieren:
# Get the last 50 lines (most relevant for status)
tail -50 /path/to/saved/file.txt
# Or parse the JSON to extract the text content
python3 -c "import json; data=json.load(open('/path/to/file.txt')); print(data[0]['text'][-2000:])"Das Dateiformat ist JSON: [{"type": "text", "text": "..."}]
Dies passiert häufig bei Befehlen mit umfangreicher TUI-Ausgabe (Fortschrittsbalken, ANSI-Escape-Codes). Verwende kleinere offset-Werte (z. B. offset: -20 statt offset: -100), um die erfasste Ausgabegröße zu reduzieren.
So funktioniert es
Die VSCode-Erweiterung wird aktiviert und startet einen IPC-Server auf einem Unix-Socket
Der MCP-Einstiegspunkt (
mcp-entry.js) wird vom MCP-Client gestartet und überbrückt JSON-RPC-stdio mit dem IPC-SocketBefehle werden in echten VSCode-Terminals über die Shell Integration API ausgeführt, für zuverlässige Ausgabeerfassung und Exit-Code-Erkennung
Die Ausgabe wird in zirkulären Puffern mit Paginierungsunterstützung für effizientes Lesen gespeichert
Neueste Änderungen (0.1.6)
Screenshots in README für den Marketplace
Sauberes Ausgabeformat für alle Tools – kein rohes JSON mehr
Fehler behoben:
waitForCompletion: falsefunktionierte nichtInaktiven Reaper deaktiviert – Benutzer schließt Sitzungen manuell
Eindeutiger IPC-Socket pro Workspace (Multi-Instanz-Unterstützung)
Benutzerdefinierte Terminal-Tab-Namen mit Datumsformat
Dokumentation zur Handhabung großer Ausgaben
Vollständige Historie in CHANGELOG.md.
Lizenz
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
- FlicenseNot gradedqualityDmaintenanceProvides stateful, interactive terminal access for LLMs to spawn and maintain persistent processes like SSH sessions, debuggers, and REPLs with continuous input/output interaction across commands.7
- AlicenseAqualityDmaintenanceEnables management of visible, interactive terminal sessions across platforms (macOS, Windows, Linux, WSL). Supports creating, executing commands, capturing output, and managing multiple terminal windows simultaneously.51MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to execute shell commands and manage long-running processes within persistent tmux sessions across isolated workspaces. It features a dual-window architecture to separate raw command execution from interactive terminal output.891MIT
- FlicenseNot gradedqualityDmaintenanceEnables interactive terminal sessions within Claude Code and Desktop, allowing users and AI to execute commands and manage multiple tabs.2
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Live browser debugging for AI assistants — DOM, console, network via MCP.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
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/sirlordt/vscode-terminal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server