termal.in

Agents · Claude Code

Give Claude Code SSH access — without handing it your keys.

"Claude Code SSH" splits two ways. Claude Desktop's SSH remote sessions run the Claude Code engine on the server over your own SSH connection — good for working on code that lives on one dev or build box (an admin turns it on with the sshHostAllowlist setting; it's off by default). Termalin's MCP server is the other way: Claude Code stays where it is and reaches many servers without ever holding a key, every command recorded.

Termalin is an SSH client with a built-in MCP server. Claude Code — or any MCP-capable agent — connects through it and works your servers for real: runs commands, reads and writes files, opens its own sessions or steps into yours. Its terminal could already run ssh prod from a key unlocked in ~/.ssh, logged nowhere; here the agent never holds your keys, and you watch every move.

Free tier · 14-day Pro trial · Windows, macOS, Linux & iOS · Español

Using claude.ai or the Claude app rather than Claude Code? Termalin is in the Claude connectors directory — connect it in one click, no install. claude.ai guide →

00  /  which "claude code ssh"?

Run Claude Code on the server, or reach the server from Claude Code?

"Claude Code SSH" comes up two ways, and they're different jobs:

  • ▸Run Claude Code on the remote — Claude Desktop now has SSH remote sessions: it connects to an SSH host with your OpenSSH client, puts the Claude Code engine in ~/.claude/remote/ on that box, and runs it there, so every file read, edit, shell command and git operation happens on the server while the session interface stays on your machine. Good for working on code that lives on a dev or build box without copying it down. An admin turns it on with the sshHostAllowlist setting — it's off by default, because enabling it sends your inference credential to the host. (You can also just SSH in and run the Claude Code CLI on the box yourself.)
  • ▸Reach your servers from Claude Code through MCP — Claude Code stays where it is and calls out to many servers through an MCP server, running commands and reading or writing files on a scoped, audited, keyless channel. That's what this page sets up.

Run it on the remote when the whole coding session should live on one server. Use the MCP route when you want Claude Code to operate servers — a fleet, production, a private box behind a Connector with no open port — without handing it a key or a standing shell, each host under its own command policy (full, an allowlist, or read-only), and every command recorded.

01  /  set up in 3 steps

Point Claude Code at your servers in three steps.

Termalin ships a real MCP server — a bundled termalin-mcp binary that gives an agent SSH and SFTP access to the hosts you choose, authenticated through the app's key agent. See the full list of MCP tools.

  • 1Pick the hosts. Install Termalin and choose what to expose in Settings → MCP — each host is written with agent-only auth, so no passwords land on disk.
  • 2Register the server with Claude Code — one command:
claude mcp add termalin -- <path>/termalin-mcp

Using Cursor or another MCP client? Point its MCP config at the same binary:

{
  "mcpServers": {
    "termalin": { "command": "<path>/termalin-mcp" }
  }
}
  • 3Ask for something real. The agent lists your hosts and gets to work — tail a log, restart a service, check disk, edit a config, deploy.

Want it spelled out? Follow the step-by-step Claude Code walkthrough.

02  /  its own sessions — or yours

The agent opens its own sessions, or steps into yours.

Most MCP servers wrap an API. Termalin's wraps your servers — the agent works them the way you do, with real sessions, files and tunnels:

  • ▸Its own sessions — the agent opens a session and runs there in the background, a glowing tab you can watch. Included in the Free tier.
  • ▸Or step into yours — the agent joins a session you already have open and runs alongside you, the border glowing while it acts. Consent-gated, its own toggle.
  • ▸The whole workflow — one-off commands, persistent SSH sessions it can reuse, SFTP reads and writes, and port forwards: a local tunnel to a service behind the server, or a SOCKS proxy.

03  /  key custody & consent

Keys stay with you. Nothing runs without consent.

The agent never sees a credential. Termalin's key custodian signs on its behalf — unlock once and sessions authenticate with no ssh-add, no key file for the agent to read, and no private key handed to the model. Agent access is off by default; letting an agent type into your live sessions is a separate toggle again; and only the hosts you export in Settings → MCP are reachable at all — each with its own access level, full, an allowlist of commands, or blocked.

04  /  oversight

Watch every move — live, recorded, and on the log.

The watch grid mirrors every open session side by side as a live tile, and sessions an agent is driving glow — so you see it work in real time, across a fleet if need be.

  • ▸Marked in the recording — each agent command gets its own green marker on the replay timeline, so "what did the agent do?" has a scrubbable answer. More on recording →
  • ▸Written to the audit log — every sign-in, host connection, file operation and agent command, with where (IP · country) and which device.

05  /  no app running

No desktop app? Connect Claude Code to the hosted connector.

The hosted connector reaches servers you've enrolled with a Connector — a one-line agent that dials out from the box. A host that only exists in the desktop app is not enrolled, so the hosted connector won't see it until the Connector runs on it. The hosted side needs an account on Pro or the 14-day trial.

  • 1Enroll a server. Sign in at termal.in/account, click Add Connector, and copy the one-line install command it gives you. Run that command on a box you manage — pick something low-stakes for the first run. From then on it's reachable keylessly, with no inbound port.
  • 2Add Termalin to Claude Code as a remote MCP server:
claude mcp add --transport http termalin https://termal.in/mcp
  • 3Sign in once. In Claude Code run /mcp, pick termalin and choose to authenticate — Termalin's sign-in page opens in your browser and you approve once. If a request answers "no enrolled servers", step 1 hasn't happened yet. The connection then shows under AI apps in your account, where you can limit it to an allowlist of commands or read-only, or disconnect it.

Using claude.ai or the Claude app instead? Termalin is in the Claude connectors directory — open the listing and click Connect (claude.ai guide).

For scripts and CI, where nobody is there to sign in, create an API key in the web cabinet and point it at https://termal.in/mcp with Authorization: Bearer tk_live_…. It runs commands and reads or writes files on your tunnelled servers — the ones running the one-line install agent (enroll via termal.in/account → Add Connector; desktop-app hosts don't count) — even when nothing is open on your machine, authenticating with a short-lived certificate so no key is handed out. Keys can be scoped to specific servers, set to a command policy (full, an allowlist, or read-only), given an expiry (30 / 90 / 365 days) and revoked any time; hosted runs are rate-limited and time-boxed. The two paths reach different hosts — the local server works the inventory you export from the app, the hosted endpoint your enrolled tunnel servers. New to the idea? Start with SSH for AI agents, or go straight to the full MCP reference.

Questions

How do I connect Claude Code to my servers?

Claude Code reaches servers through an MCP server — either a standalone SSH MCP that holds a key where it runs (e.g. tufantunc/ssh-mcp), or an SSH client's built-in one. With Termalin, two ways. For servers enrolled with a Connector, add the hosted server — claude mcp add --transport http termalin https://termal.in/mcp, then /mcp to sign in; no desktop app needed. For hosts in the desktop app, install Termalin, pick which hosts to expose in Settings → MCP, then register the bundled server with claude mcp add termalin -- <path>/termalin-mcp. Claude Code can then list those hosts, run commands, and read or write files over SSH and SFTP. Full reference →

Should I use Claude Desktop's SSH remote sessions or Termalin?

Claude Desktop's SSH remote sessions run the Claude Code engine on the server itself over your own SSH connection — handy for editing code that lives on one dev or build box without copying it down (an admin turns it on with the sshHostAllowlist setting, and it sends your inference credential to that host). Termalin keeps Claude Code where it is and reaches your servers through MCP: the agent never holds a key, each host has its own command policy — full, an allowlist, or read-only — a Connector covers private servers with no open port, and every command is recorded. Use remote sessions to code on a server; use Termalin to run commands across your fleet on a scoped, audited, keyless channel.

Does Claude Code get my SSH keys?

No. The agent authenticates through Termalin's key custodian — you unlock once and Termalin signs on the agent's behalf, so no private key is ever handed to the agent or the model. The hosted endpoint goes further and uses a short-lived certificate instead of a key. More on security →

Can I watch what the agent is doing?

Yes — every open session is mirrored live in the watch grid, sessions an agent is driving glow, each agent command is marked in the session recording, and everything is written to the audit log.

Does this only work with Claude Code?

No — Termalin speaks the standard Model Context Protocol, so any MCP-capable agent can use it. Point your client's MCP config at the termalin-mcp binary, or at the hosted server — https://termal.in/mcp with a sign-in, or https://termal.in/api/v1/mcp with an API key.

Is the MCP server free?

Yes — the Free tier is the whole desktop app, local-only with no host limits, and includes the MCP agent opening its own sessions. The agent can also step into a session you already have open. Pro ($8/mo billed yearly, $10 monthly) adds the encrypted cloud and the hosted MCP server. Every new account starts with a 14-day Pro trial — no card required. See pricing →

Give your agent a real terminal — free.

The Free tier is the full desktop app — no host limits, MCP server included. New accounts get Pro free for 14 days.

Free tier · 14-day Pro trial · MCP reference · SSH for AI agents