termcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@termcpssh into my staging server and run htop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Let AI into your terminals
Lightweight AI-native secure terminal: visual multi-surface, MCP + SKILLS + API
Human and agent, equal — both write to the same terminal, and you see every screenful as it happens; take over, switch, collaborate.
Fine-grained session control — file management, port forwarding, multi-terminal multiplexing, terminal read/write access.
Dependency-free install — a single ~10 MB file, multi-platform, with npx integration.
Related MCP server: mcp-interactive-terminal
Install
1 · One command per agent
Agent | Command |
Claude Code |
|
Codex |
|
Gemini CLI |
|
Crush | add to |
2 · Or this config file
{
"mcpServers": {
"termcp": {
"command": "npx",
"args": ["-y", "@open-mcp-ai/termcp", "daemon", "stdio"]
}
}
}That command is the whole server: it starts the background instance on first use, relays MCP over stdin/stdout, and the instance exits on its own once idle. Ready to go as-is.
Command | |
npm |
|
Go |
|
Docker |
|
Binary | Prebuilt releases — |
The npm wrapper downloads the matching prebuilt binary (override with TERMCP_VERSION, TERMCP_MIRROR,
TERMCP_BIN, TERMCP_SKIP_DOWNLOAD). Flags: docs/cli.md. Docker recipes, Compose and a
token-free loopback setup: docs/deploy.md.
HTTP transport, when an instance is already answering somewhere (npx -y @open-mcp-ai/termcp):
{
"mcpServers": {
"termcp": {
"type": "http",
"url": "http://localhost:18765/stream"
}
}
}Reachable from a client in Docker as http://host.docker.internal:18765/stream (macOS/Windows) or the host's
LAN IP; from another container on the same network as http://termcp:18765/stream. Legacy SSE uses
http://localhost:18765/sse — only /sse, JSON-RPC goes to /message by itself. With
--auth-token, add a bearer header: "headers": {"Authorization": "Bearer <token>"}.
Preview
Open http://127.0.0.1:18765 — every agent session appears here.
A shell's timeline marks each line by its source — green shell output, yellow your input, pink the agent's.
At sudo, a password, MFA or [Y/n], the agent calls notify_user to hand the prompt back to you; you type
the secret in the browser, where it stays out of the model's context.
Capabilities
Sessions | Many long-lived SSH connections at once — to this host ( |
Terminals | Full |
Output | Byte-cursor reads (tail / offset / live reader), paged from disk and replayable after a restart; per-line timeline of who wrote what. |
Files | SFTP browse, read, write, rename, delete, mkdir, permissions, links — plus HTTP URLs with Range resume. |
Forwarding |
|
Notifications |
|
SSH profiles | A central TOML store with batch import/export, in-memory temporary hosts, connection testing, and edit/copy/rename. |
Review mode | Per-session approval gate: every agent write waits for a human decision. |
Discovery |
|
Agent Skill | Instances serve |
Security Model
Credentials stay server-side. Passwords, private keys and passphrases written through
ssh_configare stored on the host only and never read back; the MCP read interface returns profile names. Profile write tools stay off unless--mcp-manage-ssh-configsis set, and--no-internalnarrows agents to remote hosts.One token protects every surface.
--auth-token, or a salted--auth-hashso the server holds no plaintext — Web UI, REST, both MCP transports and the WebSocket. A non-loopback bind requires it.Basic auth is Base64. Terminate TLS in a reverse proxy when serving beyond your own machine; the token is never logged and never placed in a URL.
🚨 Do not put an agent on a production host unattended. If you must, turn review mode on. Every write it makes over MCP then waits for a human decision. Review mode is a real gate, not a guarantee: a careless reviewer can still wave a destructive command through.
What needs a live connection. On a closed (DEAD) session, file and forward tools return
session_not_running; output reading keeps working, and the session's port forwards close with it.
Docs
Every flag and subcommand, capability gates, authentication. | |
All entrances end to end: MCP transports, the stdio bridge, Skill install, REST examples. | |
Docker, multi-stage builds, Compose, pure-API build. | |
All 31 MCP tools: parameters, return shapes, error codes. | |
REST endpoints, WebSocket frames, locator resolution. | |
Session kernel, entrances, storage. | |
Design records: Web UI, resource model, session storage, font stack, mobile terminal. | |
Release notes. |
Star History
License
Released under the MIT License. You are free to use, modify, and distribute it, provided the copyright notice and permission notice are retained. Thanks to the linux.do community for the discussions and support.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
Run commands and read/write files on your servers over Termalin's keyless tunnels (hosted MCP).
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for managing interactive processes, enabling AI agents to start, interact with, and terminate long-running programs like SSH sessions, REPLs, and installers via read/write operations.88MIT
- AlicenseAqualityCmaintenanceMCP server that gives AI agents real interactive terminal sessions for running REPLs, SSH, database clients, and any interactive CLI with clean text output and smart completion detection.789 npm18MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that enables AI agents to run fully interactive SSH sessions (via tmux) and execute commands like a human operator, with persistent sessions and multiple concurrent connections.6MIT
- AlicenseNot gradedqualityDmaintenanceProvides persistent interactive shell sessions via pseudo-terminals for MCP agents, enabling bidirectional communication, incremental reads, and stateful command execution across steps.13 npmMIT