Terminal and SSH
Found this helpful? Share it:
Found this helpful? Share it:
Open a real shell on any of your computers straight from the browser, or from your own terminal, without setting up SSH keys or opening a port ⌨️
Click the Terminal tab on any online computer to get an interactive shell in the browser. It behaves like a normal terminal: type commands, read output, and use full-screen programs. The session runs on the remote machine through the daemon.
Turn on Persistent session before you connect when you want the shell to keep running after you close the tab. You, the CLI, and agents can return to the same session with its command history, working directory, and running processes intact.
The idapt CLI opens the same shell in your local terminal:
idapt computer shell my-serverThere is no host sshd, no key exchange, and no open
inbound port. The daemon allocates a real pseudo-terminal and streams
it back over the idapt tunnel, so you get an SSH-like shell with none
of the SSH setup. Address a computer by its name or id.
This lives in the idapt CLI, not idapt-computer. Opening a shell on a machine asks whether
you may do that, so it needs your sign-in and the computer's
terminal capability. The idapt-computer daemon only ever acts as the machine it runs on.
idapt computer shell is the interactive terminal. idapt computer terminal is a different command: it manages
named, persistent sessions for scripts and agents.
Add --tmux to attach the shared session an agent uses on
that machine, so you can watch or take over a long-running task.
By default the shell opens as the computer's default user. To run as
another allowed Unix user, put it before the computer name with an @, or pass --run-as:
idapt computer shell deploy@my-serverYou can only open a shell as a user the computer allows, the same run-as rule that governs commands. See Computer commands and files.
The interactive terminal is a separate capability from running commands, because it opens an open-ended shell. On a computer you own, it stays closed until you enable it on the host:
idapt-computer service policy enable remote-terminalTo give idapt full access to this computer in one step, enable every local capability:
idapt-computer service policy enable allall also enables remote commands, file access, computer
use, containers, port forwarding, and local inference. Enable
only remote-terminal when you want the interactive
terminal without the other capabilities.
To let a workspace's members open a terminal on your computer, expose the terminal capability to that workspace. Cloud computers have it available already.
Exposing a port for a web app is a different feature and does not open a shell. See Ports and port forwarding.
A user-mode daemon cannot open a root shell, even when you installed it while signed in as root. Move the existing pairing to a deliberate root system service:
sudo idapt-computer service elevateElevation keeps the same paired computer and starts the daemon at boot. It allows idapt to run as root or another Unix user only when a request explicitly selects that user.
Root terminal access also requires the remote-terminal local capability. Use the focused command above or enable all.
The computer can show as online before its secure terminal connection finishes reconnecting after a daemon restart or brief network change. Wait a few seconds, then click Try again.
If the message keeps returning, check the daemon and its logs:
idapt-computer service status
idapt-computer service logsConfirm that remote-terminal is enabled. Restart the
service once after changing its install mode or local capabilities.
Related articles
Computers
Pair your own machine or launch a cloud one, then let your AI run commands and work with files on it.
Computer commands and files
Run commands through the daemon and browse remote files with the built-in file manager.
Ports and port forwarding
Forward a port on one of your computers to an authenticated public URL through a tunnel, then close it again.
Daemon troubleshooting
What to do when a paired computer goes offline, fails an update, blocks a capability, or won't reconnect.
Was this helpful?