Remote work that survives the network.

Run shells, jobs, and agent tasks through disconnects.

Auto-reconnect Resumable exec Local MCP SSH fallback
onyx
$ interactive shell over unreliable networks
$

Stable interactive sessions.

Reconnect fast. Pick up where you left off.

Reconnect fast Resume instantly
Remote session stays live SSH fallback when needed

Run commands that don’t die.

Start once. Detach. Check back later.

onyx exec
status starting gpu-box • job_84f31
$ onyx exec gpu-box --detach -- python train.py
[job] job_84f31 running detached
train epoch=01 loss=0.912 samples=4096
train epoch=02 loss=0.734 samples=8192
[net] connection lost...
[job] resumed seq=27
train epoch=03 loss=0.581 samples=12288
train epoch=04 checkpoint=best.pt
Run onyx exec prod -- ./deploy.sh

Run it live.

Detach onyx exec gpu-box --detach -- python train.py

Leave it running.

Logs onyx logs gpu-box job_xxx

Check progress later.

Full CLI and MCP reference → Docs

Local MCP for remote execution

Agents talk local. Live progress, reconnect, and resume.

Agent local client
Onyx MCP stdio server
Remote Host hetzner-dev
onyx_exec
onyx_jobs
onyx_logs
onyx_kill
target=hetzner-dev · stream=true

Install

Install
brew install shervin9/onyx/onyx --formula
Update
brew upgrade shervin9/onyx/onyx --formula
Connect
onyx user@host

Remote server is provisioned automatically.