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 hosted session starts in SSH mode, its session card displays the complete command. Copy that exact command; it contains the port assigned to this session:
ssh -p <assigned-port> aXonian@axonconsole.io
axonconsole.io is the hosted service's public SSH hostname, not a website or dashboard. The
port is assigned per session and can change after release or relaunch, so do not assume a fixed port
will work.
Compare the fingerprint shown by AxonOS, then use
-o StrictHostKeyChecking=accept-new on first connection. Persistent host-key tracking
lets an unexpected change be surfaced on reconnect.
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.
After provisioning, the session card shows connection details and offers a secure browser terminal.
Direct SSH also supports SFTP and port forwarding. Self-hosting operators configure their own public
hostname and port range; axonconsole.io applies only to the hosted service.
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
Enable SSH in the hosted launch wizard and provide your SSH public key. When the gate returns
ssh_host, ssh_port, and ssh_user, use the exact generated command and the matching private key.
Self-hosted availability remains operator-configurable.
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://app.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.
The runtime cap is renewed while an authenticated SSH connection remains active. If an extension attempt fails, the UI reports the outcome explicitly; do not assume it succeeded. Use Relaunch to change between SSH and desktop modes—this ends the current container and starts the other mode against the same persistent home volume.