Commands run in the tab in front of you, with your environment, your SSH session and your shell history — so the model is working in the same place you are rather than in a sandbox you then have to reconcile. Pair programming mode ships on by default, which puts a confirmation dialog between the model and execution; there is a health endpoint and a plain HTTP test path if you want to poke at a tool before connecting a client.
A plugin for the Tabby terminal that exposes your live terminal sessions over MCP. Tabby stays the terminal you use; an MCP-capable client connects to it over an SSE endpoint and works in the same tabs you can see.
- The available Tabby terminal sessions, local and SSH-backed, listed for the client — `get_ssh_session_list`
- A shell command run in a chosen tab, with exit-code parsing from a marker protocol — `exec_command`
- Terminal buffer content read back over a line range, visible screen or history — `get_terminal_buffer`
- Long command output retrieved in full or by page, by `outputId` — `get_command_output`
- Pair programming mode: a confirmation dialog before execution, optional terminal auto-focus, command rejection with feedback, and a result dialog with history
Tabby Terminal installed and running, with the plugin loaded and at least one terminal tab open — the client cannot connect before that. An MCP client with SSE support such as Claude Code, Cursor, Windsurf or Codex, pointed at `http://localhost:3001/sse`. Install from the Tabby Plugin Store, or build locally, which needs Docker and follows a macOS install-script path. The npm package is `tabby-mcp` at 1.0.3. The default configuration starts the server on boot on port 3001 with pair programming mode and its confirmation dialog switched on, all editable under Settings → Plugins → MCP.
One command — npx -y tabby-mcp
