SSH Connections

Save Your SSH Connections,
Run AI Agents on the Remote Box

AgentsRoom is an SSH connection manager and a built-in SSH terminal in one. Save your remote servers once, connect with an SSH key or a password, then run Claude Code, Codex or Antigravity CLI straight on the remote machine.

Stop juggling a separate SSH client and a code editor. Keep your connection profiles, your terminal and your AI coding agents in the same app, pointed at the same remote server.

Remote SSH
Encrypted SSH tunnel
AgentsRoom
prod-vps.acme.dev
staging.acme.dev
gpu-01.lab
SSH key:22
Remote server
deploy@prod-vps.acme.dev
Production VPS
Agent running
Save once, connect in one clickCredentials stay on your machine

How AgentsRoom connects to a saved SSH server and runs an AI coding agent straight on the remote machine.

Most AI coding agents assume your code lives on the same machine you are sitting at. But plenty of work happens on a remote server : a VPS, a staging box, a beefy build machine, a shared dev server the whole team uses. AgentsRoom treats that case as a first-class one. Save an SSH connection, open the built-in terminal over SSH, and you are working on the remote host as if it were local.

The SSH connection manager keeps a profile for every server you touch : host, port, user, and whether you authenticate with an SSH key or a password. No more digging through scattered config files or retyping the same long command. Pick a saved connection, hit connect, and the terminal lands you on the box in one step.

The payoff is running AI coding agents where the code actually is. Connect to your remote server over SSH, then launch Claude Code, Codex, Antigravity CLI or another agent on that machine. The agent reads and edits the files on the remote host, runs the test suite against the remote environment, and you drive the whole thing from AgentsRoom without a second SSH client open on the side.

An SSH Client Built for Running AI Agents

Connection management, a real terminal, and remote agent execution in one place.

Saved SSH Connections

Store a reusable profile for each remote server : host, port, user and auth method. Your VPS, your staging box and your team dev server all live in one list. Pick a connection and you are in, no command to retype.

Key or Password Auth

Authenticate with an SSH key or a password, whichever the server expects. Point a profile at your private key file or store a password, and AgentsRoom handles the handshake when you connect.

Built-in Terminal Over SSH

Every connection opens a real terminal on the remote host inside AgentsRoom. Full colored output, command history and copy-paste, served by the same terminal you already use for local projects. No separate SSH client to keep open.

Run Agents on the Remote Server

Launch Claude Code, Codex, Antigravity CLI or another agent directly on the remote machine over SSH. The agent works on the files that live on the server and runs commands in the remote environment, not on your laptop.

Attach SSH to a Project

Flag a project as remote and bind it to a saved SSH connection. From then on the project opens its terminals and agents on that server, so a remote codebase behaves like a normal AgentsRoom project.

Credentials Stay Out of the Repo

Your SSH keys stay on your machine and passwords stay encrypted in its keychain, unless you turn on synced passwords, which carry them end-to-end encrypted. Nothing is ever written into the project repo, so nothing about your servers leaks into a folder a teammate might clone.

Import Your ~/.ssh/config

The servers you already reach from a terminal come in as they are. AgentsRoom reads the host blocks in ~/.ssh/config, keeps the identity file each one declares, and preserves a ProxyJump through a bastion : it connects through the alias and lets OpenSSH resolve the block, exactly as your shell would.

AWS SSM Sessions

Reach an instance that has no public address and no inbound SSH port, through aws ssm start-session. The session is authorized by the AWS profile already configured on your machine, so there is no password and no key to store in the app.

WinRM and PowerShell Remoting

Reach a Windows host that has no OpenSSH but speaks WinRM, with NTLM for a workgroup machine or Kerberos for a domain member, including the PowerShell endpoint of an on-prem Exchange. CredSSP covers the second hop, when the session must in turn reach Active Directory or a file server: HTTPS with a checked certificate, and the form warns you that the password is handed to that server. From a workstation outside the domain you name the domain controller and the server IP yourself, and AgentsRoom handles the lookups without touching your hosts file. Agents run PowerShell through it read-only by default; writes wait for your confirmation, every one of them, only the risky ones, or none, as you choose per connection.

Your Passwords Stay Encrypted, on Your Machine by Default

An SSH connection manager is only useful if you can trust it with credentials. The name, host, port and user of a connection follow your account, so a server saved on one computer appears on the others without being retyped. Your SSH keys stay on the machine, and passwords and key passphrases stay encrypted in the keychain of the machine where you typed them. Turn on synced passwords in Settings > Account (off by default) and they follow too, end-to-end encrypted with a key only your computers hold: AgentsRoom stores them without being able to read them. Nothing is ever written into the project you are working on: connecting to a remote server never adds a config file to the repo and never commits a host or a secret by accident.

Authentication runs over standard SSH. Key-based login uses your existing private key, exactly as your shell would. Password login is sent over the encrypted SSH channel like any other SSH client. AgentsRoom is the client, your server stays the source of truth for what it accepts.

When you run an AI agent on the remote box, the code stays on the remote box. The agent reads and edits files on the server you connected to. Nothing about the remote project is copied to your laptop unless you ask for it, and your connection profiles are never shared with anyone else.

From Zero to Agent on a Remote Server

Save a connection once, run agents on it forever.

01

Save the SSH connection

In a project, click Servers in the dev command bar, then Add a connection, or Import from ~/.ssh/config to bring in the hosts you already have. A profile holds the host, port, user, and either your SSH key file or a password. Give it a name like prod-vps or staging and it is saved for next time.

02

Connect and open the terminal

Pick the saved connection and hit connect. AgentsRoom opens a built-in terminal over SSH on the remote host. You are now on the server, with full colored output and command history.

03

Run an AI agent on the box

Launch Claude Code, Codex or Antigravity CLI in that remote terminal. The agent works on the files on the server and runs against the remote environment, and you drive it from AgentsRoom like any other project.

When You Need Agents on a Remote Server

Not every codebase lives on your laptop.

Code on a VPS

Your app runs on a VPS and you want to fix it where it lives. Open the saved SSH connection, run a Claude Code agent on the box, and patch the bug against the real environment, dependencies and all.

Work on a staging box

A staging server reproduces a bug your laptop never will. SSH in, point a Codex agent at the staging codebase, and let it reproduce and fix the issue on the machine that actually shows it.

Shared dev server

The team works on one shared dev server. Everyone saves the same SSH connection, opens their own terminal, and runs their own agent on the host without setting up a local clone each.

No local setup needed

A heavy toolchain you do not want on your laptop lives on a build machine. Connect over SSH, run a Antigravity CLI agent there, and keep your own machine clean while the work happens remotely.

AI agents + SSH

How can my AI agents access my SSH connections?

ssh_listssh_connectssh_connection_new

Through AgentsRoom MCP. Your saved connections are exposed to every agent as five MCP tools : ssh_list returns the servers usable in the current project (SSH, AWS SSM and WinRM alike), ssh_exec runs one command on a server and hands back its output (a PowerShell line on a WinRM host, read-only unless you allow writes, which you confirm one by one, only when risky, or never, as you choose), ssh_transfer moves one file to or from a server, ssh_connect opens one as a real terminal tab, and ssh_connection_new proposes a server you have not saved yet. So when you tell an agent "connect to prod and read the logs" or "list the Exchange send connectors", it does not have to guess a hostname or write a command by hand : it reads your connection list and works on the right machine.

Agent SSH access is deliberately credential-free. ssh_list only ever returns metadata: name, host, port, user, auth type and scope. Passwords and key passphrases stay encrypted in your OS keychain, private keys stay on your disk, and the desktop app injects the secret into the terminal itself. The agent names a connection, it never handles it.

A session an agent opens with ssh_connect is a visible terminal tab you can read, type into and close at any moment, and a command it runs with ssh_exec comes back in its conversation with its exit code, so you always see what was run and what the machine answered. Files travel the same way : with ssh_transfer an agent pulls a dump or a log off a server, or pushes a file to it, through the same credential-free channel, and gets back a path on your machine rather than the file pasted into its conversation. A connection can be saved for a single project or globally, so an agent only ever sees the servers that make sense for what you are working on. Network appliances whose command line only works inside an open session, such as a WatchGuard firewall or many switches and routers, are covered too: ssh_exec opens the session, waits for the device prompt and types the commands one after the other.

While an agent works on a server, you watch it live. Every command it runs with ssh_exec scrolls in the Activity tab of the right panel, output included, in one journal per server; the agent's avatar shows on the Servers button and, with an Agent at work badge, in your Servers list. A command sent encoded is shown decoded. You can also follow it from your phone, in the agent's card of the mobile app. It only travels between your computer and your phone, end-to-end encrypted with secrets masked: nothing of what runs on your machines is stored on a server.

Creating can also be entirely the agent's job. ssh_connection_new keeps the reviewed path: it opens the creation form pre-filled with what the agent found in a compose file, a deploy script or your documentation, and you are the one who reviews it, types the credential and saves. Unless you turn off "Agents can manage connections" (Settings, on by default), ssh_connection_save writes the connection outright, and even then the credential never travels through the conversation: the agent names a secret from your vault and the desktop copies it. The off switch is written into the setting rather than asked for in a prompt, because a connection an agent could register unseen would be a backdoor.

Discover AgentsRoom MCP

Filmed in the app : an agent is asked to check free disk space on a staging server, run a health check script and tail the nginx log. The three calls appear one by one in the Activity tab with their output, their exit code and their duration, then the journal of that server opens in full and leads back to the Servers list. Nothing of what runs there leaves the computer.

Watch on YouTube

Can I save multiple SSH connections?
Yes. AgentsRoom works as an SSH connection manager : save a profile per remote server with its host, port, user and auth method, name them, and pick the one you need. Your VPS, staging box and shared dev server all live in the same list.
Does it support SSH key and password authentication?
Both. A connection can authenticate with an SSH key by pointing at your private key file, or with a password. AgentsRoom acts as a standard SSH client, so whichever method your server accepts is what you use.
Can I run Claude Code or Codex on a remote server through SSH?
Yes. That is the point of the feature. Open a saved SSH connection, then launch Claude Code, Codex, Antigravity CLI or another agent in the remote terminal. The agent runs on the remote machine and works on the files that live there, not on your laptop.
Where are my SSH credentials stored?
The name, host, port and user of each connection are saved to your account, so they appear on all your computers. Your SSH keys stay on the machine, and passwords and key passphrases stay encrypted in the keychain of the machine where you typed them. With synced passwords on (Settings > Account, off by default), passwords and passphrases follow your account too, end-to-end encrypted with a key only your computers hold: AgentsRoom stores them without being able to read them, and you can still keep any password on one machine only. Nothing is ever written into the project repo, so connecting to a server does not add config files or secrets to anything a teammate might clone.
Do I still need a separate SSH client?
No. AgentsRoom includes a built-in terminal over SSH, so your connection manager, your terminal and your AI agents are in one app. You can keep your usual SSH tools if you like, but you do not need a second client open just to reach the server.
Can my AI agents access my SSH connections?
Yes, through AgentsRoom MCP. Agents call ssh_list to see the servers saved for the current project (plus your global ones), then ssh_connect to open one as a terminal tab. It is the supported way for an AI agent to get SSH access: no hand-written ssh command, no credential pasted into a prompt.
Do my agents see my SSH password?
Never. The MCP tools only expose connection metadata (name, host, port, user, auth type). The password or key passphrase stays encrypted in your machine keychain and is injected into the terminal by AgentsRoom itself, after the agent has asked for the connection by its id.
Can I import my existing ~/.ssh/config?
Yes. AgentsRoom reads the host blocks in ~/.ssh/config and turns them into saved connections, keeping the identity file each block declares. Anything OpenSSH resolves on its own keeps working, a ProxyJump through a bastion included, because AgentsRoom connects through the alias and lets OpenSSH apply the block rather than trying to reimplement it.
Can I reach a server with no public address and no open SSH port?
Yes, with an AWS SSM connection. AgentsRoom opens the session with aws ssm start-session, authorized by the AWS profile already configured on your machine. There is no password and no key to store in the app, and the instance can stay closed to inbound SSH.
Can an agent create a new SSH connection?
Yes, and by default it can even save it on its own. ssh_connection_save writes the connection outright, with no form, and the credential never appears in a conversation: the agent names a secret from your vault and AgentsRoom copies it. Prefer ssh_connection_new when you would rather review first: it opens the creation form pre-filled with the host, port and user the agent found in your deploy script or your documentation, and nothing is stored until you review it, type the credential and save. Turn off "Agents can manage connections" in Settings and only the reviewed path remains, because a connection an agent could register without you seeing it would be a backdoor. When the host already exists in your ~/.ssh/config, importing it is the better route : it keeps the alias, so your bastions and your keys keep working.
Can I connect to a Windows server and get PowerShell?
Yes, two ways. Windows Server has shipped OpenSSH since 2019, so a Windows machine is saved like any other SSH connection, and a remote shell option on the connection makes the terminal land on a PowerShell prompt (Windows PowerShell or PowerShell 7) instead of cmd.exe. For a host that only speaks WinRM, or for the PowerShell endpoint of an on-prem Exchange server, save a WinRM connection instead: NTLM or Kerberos, or CredSSP when the session must reach a second server, with the domain controller and the server IP entered by hand when your workstation is not joined to the domain. Both work whether you run AgentsRoom on macOS, Windows or Linux; the WinRM path installs one small Python package once, in a private folder AgentsRoom owns.
Can I open a project that only exists on a remote server, without cloning it here?
Yes. The New project dialog asks where the project lives: This computer, or Remote server (SSH). Pick a saved connection and the path of the repository on the host, and the project opens from there: its agents start on the server, in that directory, on the files that live there, and nothing is copied to your laptop. The card of every saved connection also carries an Open a project on this server button that opens the same dialog with the connection preselected, and a project of your account that has no folder on this machine can be opened on a server the same way. Role, persona, system prompt, permission mode, skills, status tracking and the account chosen for the agent travel with the agent: a Codex account is copied to the host before the launch, a Claude account goes there through the server token you create once per account in Settings > Multiple accounts, both behind a per-connection setting you can turn off, and switching accounts at a quota limit works on the server as it does locally; the AgentsRoom MCP tools (backlog, project memory, skills, dev commands, agent mail) travel too, installed on the host before each launch and wired back to this computer through a reverse SSH tunnel, a per-connection setting on by default that needs Node on the host; a missing CLI on the host is installed on the host, over SSH, from the banner of the agent terminal; and a team run works on a project opened on a server. A ticket marked Code in a separate worktree gets its worktree on the server too, under .worktrees/ of the remote checkout: the agent starts in it; the only thing that still asks for a local checkout is the Own checkout option of a team step. The embedded browser follows the agent as well when the agent has browser access. Environment variables of the agent, the project and the client folder travel as well, secrets included, in a file only your user can read that is deleted from the host as soon as the agent starts; the Antigravity, Grok and Cursor account profiles stay wired to this computer, and the agent form says so while the project is on a server. One requirement: the host must answer with a Linux or macOS shell. A Windows server reached over SSH gives you the terminal and PowerShell, but not a remote project yet; set WSL as the default shell of its OpenSSH service and it behaves like a Linux host.
Do agents running on a server stop when I close AgentsRoom?
Not if you ask them to keep going. In the settings of an SSH connection, turn on Keep agents running on this host when AgentsRoom closes: agents launched there run inside a tmux session on the server (tmux 3.0 or later), so quitting the app, putting the laptop to sleep or losing the network no longer stops them, and the next launch of that agent, from this computer, another one of your account or the phone, attaches to it. The agents use the CLIs installed on the server, including those in your user folders, so nothing has to be installed on your laptop; if a CLI is missing there, the terminal offers to install it on the server.
Where do I add an SSH connection in AgentsRoom?
Open a project and click Servers in the dev command bar, the row of buttons next to your command tabs. The panel that opens has Add a connection and Import from ~/.ssh/config. Servers is part of the Full interface mode, the one a new install starts in. If you picked Simple or Balanced when you set up the app, the button is folded away, not removed: switch to Full in Settings > Interface mode, or bring back just this button in Settings > Interface elements, under Dev command bar. You can also ask an agent to prepare the connection: ssh_connection_new opens the same form, pre-filled, for you to review and save. In every interface mode, the New project dialog also gets you there: pick Remote server (SSH), and while no connection is saved, Add a connection and Import from ~/.ssh/config appear right under it.
Can the built-in browser open a dev server running on the remote server?
Yes. In a project whose agents run on an SSH host, localhost, 127.0.0.1 and [::1] open that host in the built-in browser, for you, for your agents and for the QA Bot, with no port to forward by hand. The URL stays the same, so cookies, OAuth callbacks and hot reload keep working. Public addresses still leave from your computer. A chip next to the address bar shows via and the name of the host: click it to go back to your computer's localhost for this project. The SSH tunnel opens with the first local page and closes when no tab needs it. It needs a plain SSH connection (AWS SSM and WinRM have no tunnel) and port forwarding allowed on the host (AllowTcpForwarding).
Can I make an agent ask me before it uses a server?
Yes, connection by connection. Tick Agents need my approval in the connection's settings, for an SSH, AWS SSM or WinRM connection alike. From then on, before an agent opens a terminal on that machine, runs a command there or transfers a file, a card appears in its pane, and on your phone, showing exactly what it wants to do and where: the command, or the file and where it goes, next to the connection's user@host, or user@host alone for a terminal. The same card stops an agent that reaches the server indirectly: a query to a database whose SSH tunnel goes through it, or a connection that jumps through it to another host. You allow or decline each request, and an approval covers that one call only. Declined, or left without an answer for 2 minutes 15 seconds, nothing runs and the agent is told not to retry or work around it. On a WinRM host, a write still asks for its own confirmation afterwards. An agent can turn the option on for a connection, never off; it cannot change the host, port or user of a protected connection, nor route a new connection through it. Your own clicks are not affected.

Screenshots

Real captures of the app, added as this feature evolves.

  • Approval card for an agent command on a server, shown in a detached project window
    Approve or decline an agent's server command from any project window, even a detached one.
  • Approval card asking to allow an agent command on a server, showing the user and host
    Before an agent runs a command on a protected server, the card shows exactly which server it targets.
  • New SSH connection form with the Agents need my approval option checked
    Make agents ask for your approval before they connect to a server, run a command or transfer a file.
1 / 3

You may also like

RDS through AWS SSM

Reach an Amazon RDS instance that has no public endpoint, from your own machine, through aws ssm start-session and the AWS-StartPortForwardingSessionToRemoteHost document. No bastion to maintain, no VPN, no inbound SSH rule. AgentsRoom opens the session on a loopback port and connects its database client through it. MySQL, PostgreSQL, SQL Server and MongoDB, so RDS MySQL, RDS PostgreSQL, RDS for SQL Server, Aurora and DocumentDB.

Database Connections

Save your MySQL, PostgreSQL, SQL Server, MongoDB, SQLite and Google BigQuery connections, reach a database in a private subnet through an SSH tunnel or an AWS SSM session, and let your AI agents query it over MCP. Read-only by default, one statement per call, capped result sets, and the password never reaches the agent. Export, import and database-to-database copy for MySQL, PostgreSQL and MongoDB.

Secret Manager

Store API keys, tokens and passwords in your OS keychain, reference them as {{secret:NAME}} in dev commands and agent environments, and let AgentsRoom resolve them at launch. Agents see the names, never the values, and nothing is ever synced to a server.

Repository import

Connect GitHub or GitLab, browse the repositories you actually have access to, and clone several at once. Each one becomes a project with its own AI coding agents. Self-hosted GitLab instances supported.

Dev Terminals

Per-project terminal manager and process launcher. Start backend, frontend and workers in one click, locally or on a remote server over SSH.

Remote Agent Control

Pilot your AI coding agents from your phone. Drive terminals, projects and prompts on your computer or remote server from iOS and Android.

Localhost Tunnel (Live Preview)

Built-in secure tunnel that exposes a local or remote dev server as a public HTTPS URL. Preview your work in progress from anywhere.

Multi-Project, Multi-Agent

Run many projects and many AI agents in parallel, local and remote, from a single visual command center.

DevOps EngineerWriterFrontend DeveloperSales RepresentativeBackend DeveloperCoach & TrainerSoftware ArchitectLegal CounselQA EngineerFinance & AdminFull-Stack DeveloperCreative DesignerMobile DeveloperResearcherSecurity EngineerHR & Recruiting
Project ManagerTranslatorGit ExpertData AnalystSEO SpecialistAccountantLocalization SpecialistCommunications & PRBrainstormerOperations & LogisticsMarketing SpecialistCustomer SupportProject assistantProcurement BuyerCommunity ManagerPersonal Assistant

Bring Your AI Agents to the Remote Server

Download AgentsRoom, save your SSH connections, and run Claude Code, Codex or Antigravity CLI on any VPS or remote server through a built-in terminal.

DownloadFree

Companion app: monitor your agents on the go

Bring your own: Claude, Codex, Antigravity CLI, or other AI provider.

Get the extension
Chrome Web Store

Push bugs and requests straight to your public backlog.

Agents you read like a conversation

Each agent has a role, a face, and a thread you read like a messaging app.

Conversation view

AgentsRoom conversation view: an AI coding agent's work shown as a chat thread
Multiple projects
Multi-provider
Multiple agents
Live status
File diff & commit
Mobile companion
Live preview
Agent teams
Browser automation
Backlog-driven dev
Prompt Library
Skills Library
View all features