Remote Terminal Runtime for AI Agents. Provides SSH session management, PTY control, SFTP file transfer, and remote daemon orchestration via MCP tools.
TermBridge demonstrates strong naming conventions (verb_noun pattern: list_hosts, open_session, send_input, read_output, etc.) and comprehensive parameter descriptions. All 21 tools have clear, actionable descriptions (avg ~150 chars). Input schemas are well-defined with type declarations and parameter constraints (enums for control_key, direction, etc.). However, output schemas are not explicitly documented in the source, responses are inferred from implementation rather than formally declared. Error handling is present but lacks recovery guidance (e.g., 'User not found. Try search_users()' pattern). Tool composition is excellent: single-responsibility design, proper chaining (session_id flows through all operations), and idempotent operations (reconnect_session). Security is well-considered (path policy enforcement, permission gates on destructive ops). Minor gaps: some parameters lack min/max bounds (timeout_secs max 60 is stated, but rows/cols lack ranges); output field naming not formally specified.
Attach to an existing persistent session on a remote daemon. Phase 3-B implementation.
Deploy SSH keys and bootstrap termbridge-agentd daemon on a remote host for the first time. ADR-0009 implementation.
Close a terminal session and terminate the remote shell.
Detach from a session without closing it. Remote session continues running. Phase 3-B implementation.
Detect remote environment information (OS, shell, PATH, etc.). Phase 5-B implementation.
Retrieve timeline events (input/output/control) for a session. Phase 4-A implementation.
Output schemas not formally documented. Tool responses are inferred from implementation rather than explicitly declared in tool definitions. LLMs cannot reliably predict return field names, types, or structure for downstream chaining.
Error handling lacks recovery guidance. Errors are present (errorReporting=true) but do not include actionable next steps (e.g., 'Session not found. Call list_remote_sessions() to see available sessions'). This forces LLMs to guess recovery strategies.
Numeric parameters lack explicit bounds. rows/cols in open_session and resize have no stated min/max (only timeout_secs specifies max 60). LLMs may pass invalid values (negative rows, 0 cols) without validation guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
List SSH hosts from ~/.ssh/config
List persistent sessions running on a remote daemon. Phase 3-B implementation.
Open a new SSH session to a host. Returns session_id for subsequent operations.
Read terminal output from a session. Supports blocking wait for regex/substring, tail mode, and incremental cursor-based reading.
Reconnect to a session after network interruption. Phase 6-A implementation, ADR-0010.
Adjust PTY dimensions (rows and columns) for a session.
Restart the remote termbridge-agentd daemon. Used for daemon upgrades. Supports agentd upgrade path.
Send control characters to a terminal session (Ctrl+C, Ctrl+D, Ctrl+Z, Tab, Enter, Escape).
Send text input to a terminal session. Append \n for Enter key.
Change permissions on a remote file or directory via SFTP. Phase 2 implementation.
List contents of a remote directory via SFTP. Phase 2 implementation.
Create a remote directory via SFTP. Phase 2 implementation.
Delete a remote file or directory via SFTP. Phase 2 implementation.
Upload or download a single file via SFTP. Phase 1 implementation.
Recursively upload or download a directory tree via SFTP. Phase 5-A implementation.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are not present in schema. Risk levels are documented in the spec (READ_ONLY, WRITE, DESTRUCTIVE) but not exposed as formal tool annotations for MCP clients to enforce.
Pagination not implemented for list tools. list_hosts, list_remote_sessions, and get_session_timeline lack offset/limit/cursor parameters. Large result sets could exhaust context windows.