SSH-only sessions
An AxonOS session can run in headless SSH mode: no X desktop, no browser viewer, just a GPU shell you connect to over standard SSH. This is useful for scripted workloads, CI pipelines, remote development, and AI agents that don't need a graphical desktop.
Connecting
After a session is started in SSH mode you receive a host, port, and username. Connect with:
ssh -p <assigned-port> aXonian@axonconsole.io
The port is assigned per-session from the gate's SSH port pool (42000+). Each session
gets its own port for the duration it is running.
Add -o StrictHostKeyChecking=accept-new on the first connection to accept the session's
ephemeral host key without a prompt.
How it differs from a desktop session
| Desktop session | SSH-only session | |
|---|---|---|
| Interface | Browser noVNC viewer | Terminal over SSH |
| X11 / XFCE | Running | Disabled |
| GPU access | Yes (via VirtualGL) | Yes (nvidia-smi, CUDA, etc.) |
| Science templates | Auto-launched | Not applicable |
| Authentication | Wallet sign + credits | Wallet sign + credits or x402 |
| Best for | Interactive GPU desktop | Scripts, pipelines, AI agents |
The container still has all the same GPU hardware, drivers, and scientific software — only the graphical stack is inactive.
GPU workloads over SSH
Once connected, the GPU is accessible via CUDA directly:
nvidia-smi -L # list attached GPUs
python3 -c "import torch; print(torch.cuda.is_available())"
gmx -version # GROMACS available
nextflow -version # Nextflow available
Run any compute job as you would on a local machine. Billing is identical to a desktop session — wall-clock minutes × GPU count — and billing stops when you release the session.
Starting an SSH session as a human user
SSH mode can be requested from the launch page (if the operator has exposed the option) or via the
API. When the gate returns ssh_host, ssh_port, and ssh_user, connect with the command above
and the keypair you provided when claiming the session.
Starting an SSH session as an agent (x402)
AI agents can claim SSH sessions without a browser wallet by using the x402 payment rail. See Agentic access via x402 for the full flow — the agent:
- GETs the discovery endpoint to find the payment requirements.
- Pays with USDC via the official x402 SDK (no gas, no EOA interaction by the agent operator).
- POSTs to
/api/x402/sessionwith the agent's SSH public key. - Receives
ssh_host,ssh_port,ssh_userand connects.
# After the agent receives the session credentials:
ssh -i ./agent_key -p <PORT> -o StrictHostKeyChecking=accept-new aXonian@axonconsole.io \
'nvidia-smi -L && python3 -c "print(\"agent workload complete\")"'
Releasing a session
Release the session when done so GPUs are freed and billing stops:
# Via the gate API (auth_token received at session claim time):
curl -X POST https://desktop.axonos.io/api/release \
-H "Content-Type: application/json" \
-d '{"auth_token": "<YOUR_AUTH_TOKEN>"}'
Closing the SSH connection alone does not stop billing — the container keeps running until explicitly released. Always release when your workload is done.