Skip to content

Terminal & SSH access

Agents are meant to be driven through chat, tasks and schedules, so the agent page has no general-purpose terminal tab. Direct, interactive access to a container exists for three narrower purposes.

When an owner chooses Sign in with an account in Settings → Storage → Model sign-in, ExoHuman opens a terminal running the runtime’s official sign-in command inside that agent (for example claude auth login or codex login --device-auth). The provider stores the credential in the agent’s private directory. Abandoned prompts end after 15 minutes. See Runtimes.

Integrations can open an interactive session over a WebSocket:

wss://<instance>/api/agents/{name}/terminal?mode=bash
  • The first message must authenticate within 10 seconds: {"type": "auth", "token": "<JWT>"}.
  • mode selects what starts: bash, or a runtime CLI (claude, gemini, codex). Without a mode, the agent’s own runtime CLI starts.
  • Access is limited to the agent’s owner or an admin, as a person.

Administrators can grant time-limited, key-based SSH access to an agent’s container for debugging. It is off by default and must be enabled for the instance by an administrator in Settings → Agents → Quotas and access.

Terminal window
curl -X POST https://acme.exohuman.cc/api/agents/market-scout/ssh-access \
-H "Authorization: Bearer $EXOHUMAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ttl_hours": 4, "public_key": "ssh-ed25519 AAAA… you@laptop"}'
  • ttl_hours defaults to 4 (0.1–24). The key is injected into the container and expires automatically.
  • You bring your own public key; ExoHuman never generates or returns private keys, and password login is disabled.
  • The response contains the host, port and user (developer) to connect with.
  • MCP clients can use get_agent_ssh_access.

You land in /home/developer, the agent’s workspace. Guardrails apply to the agent’s own tool calls, not to your SSH session — treat this access like production server access. Every grant is audited.