$39
exe.dev is a subscription VM service. SSH is the CLI — there is no binary to install. VMs get persistent disks, instant HTTPS, and built-in auth. Also has an HTTPS API for programmatic access.
Upstream docs for the latest information:
Detailed reference files in references/:
api-tokens.md — HTTPS API endpoint, exe0/exe1 token generation, VM-scoped tokensshelley-details.md — Full Shelley capabilities, BYOK, subagents, skills, browser profilingidea-templates.md — Template gallery, available templates, custom imagesThe reference below covers the full platform. If something seems outdated, fetch the upstream docs.
exeuntu)exedev (not root) — home directory is /home/exedev/~ or $HOME in paths, never hardcode /root/ or /home/exedev/This is the most important concept. There are two distinct SSH targets:
ssh exe.dev <command> — the lobby. A management interface for VM lifecycle, sharing, and configuration. Does not support scp, sftp, or arbitrary shell commands.ssh <vmname>.exe.xyz — a direct VM connection. Full SSH: shell, scp, sftp, port forwarding, everything.Never mix these up. scp and sftp only work against <vmname>.exe.xyz, not exe.dev.
All commands use the pattern ssh exe.dev <command> [args]. Append --json to ls and new for machine-readable output.
ssh exe.dev new # create VM (default image)
ssh exe.dev new --image=<image> # create VM with custom image
ssh exe.dev ls # list VMs
ssh exe.dev ls --json # list VMs (JSON)
ssh exe.dev rm <vmname> # delete VM
ssh exe.dev restart <vmname> # restart VM
ssh exe.dev rename <old> <new> # rename VM
ssh exe.dev cp <source> <dest> # clone VM (copy-on-write, near-instant)
ssh exe.dev tag <vmname> <tag> # tag a VM
ssh exe.dev whoami # show account info
ssh exe.dev ssh-key # manage SSH keys (add/list)
ssh exe.dev shelley install <vmname> # upgrade Shelley agent
ssh exe.dev browser <vmname> # open VM in browser
ssh exe.dev help # show help
ssh exe.dev doc # show docs
Target <vmname>.exe.xyz for shell access and file transfer. You connect as the exedev user (home: /home/exedev/).
ssh <vmname>.exe.xyz # SSH into VM (as exedev)
scp <localfile> <vmname>.exe.xyz:~/ # copy file to VM home
scp <vmname>.exe.xyz:~/file <local> # copy file from VM
Coding agents and sandboxed environments hit common SSH pitfalls:
-o StrictHostKeyChecking=accept-new on first connection to a new VM.<vmname>.exe.xyz, not exe.dev. The lobby does not support file transfer.--json with ls and new for machine-parseable output instead of scraping text.Every VM gets https://<vmname>.exe.xyz/ with automatic TLS.
ssh exe.dev share port <vmname> <port>https://<vmname>.exe.xyz:<port>/Proxied requests include:
X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-For (standard)X-ExeDev-UserID — stable unique user ID (authenticated requests only)X-ExeDev-Email — user email (authenticated requests only)https://<vmname>.exe.xyz/__exe.dev/login?redirect={path}POST https://<vmname>.exe.xyz/__exe.dev/logoutDefault: private (login required). Manage with ssh exe.dev share subcommands:
ssh exe.dev share set-public <vmname> # anyone can access
ssh exe.dev share set-private <vmname> # require login (default)
ssh exe.dev share add <vmname> <email> # invite by email
ssh exe.dev share add-link <vmname> # generate share link
ssh exe.dev share remove-link <vmname> # revoke share link
ssh exe.dev share remove <vmname> <email> # revoke user access
ssh exe.dev share show <vmname> # view current sharing status
ssh exe.dev share port <vmname> <port> # change proxy port
Subdomains: CNAME app.example.com → vmname.exe.xyz
Apex domains: ALIAS example.com → exe.xyz + CNAME www.example.com → vmname.exe.xyz
TLS certificates provisioned automatically.
Built-in proxy to LLM providers at http://169.254.169.254/gateway/llm/<provider>. No API keys required. Subscription includes monthly token allocation; additional tokens available as pay-as-you-go credits.
Providers: anthropic, openai, fireworks
Example (Anthropic):
curl -s http://169.254.169.254/gateway/llm/anthropic/v1/messages \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"claude-sonnet-4-5-20250929","max_tokens":256,"messages":[{"role":"user","content":"Hello!"}]}'
Enable: ssh exe.dev share receive-email <vmname> on
Disable: ssh exe.dev share receive-email <vmname> off
Mail delivers to ~/Maildir/new/ in Maildir format. Use the Delivered-To: header (not To: or CC:) for the recipient address. Max 1MB per message, no spam filtering. Auto-disables if 1,000+ unprocessed files accumulate.
Send to your registered email via the internal gateway:
curl -X POST http://169.254.169.254/gateway/email/send \
-H "Content-Type: application/json" \
-d '{"to": "[email protected]", "subject": "...", "body": "..."}'
All three fields (to, subject, body) are required. to must match your registered email. Returns {"success": true} or {"error": "message"}.
Web-based, multi-modal coding agent on all default exeuntu VMs. Open source (github.com/boldsoftware/shelley). Runs on port 9999 at https://<vmname>.shelley.exe.xyz/.
Key capabilities: natural language task execution, browser tool with profiling, subagents with context continuation, skills system, conversation distillation (LLM-powered context optimization), diff viewer, HTML iframe output (Vega-Lite, etc.), shell commands in chat (!bash, !git show HEAD), multi-language support, self-upgrade from UI, BYOK (Anthropic, OpenAI, Gemini, z.ai) or LLM Gateway by default.
Guidance files (priority order): ~/.config/shelley/AGENTS.md → AGENTS.md → CLAUDE.md → DEAR_LLM.md
Upgrade: ssh exe.dev shelley install <vmname> or from Shelley's UI.
See references/shelley-details.md for full feature documentation.
Programmatic VM management via POST https://exe.dev/exec with bearer token auth. The args array mirrors the SSH CLI:
curl -X POST https://exe.dev/exec \
-H "Authorization: Bearer exe0...." \
-H "Content-Type: application/json" \
-d '{"args": ["ls", "--json"]}'
Tokens (exe0 format) are generated locally by signing permissions JSON with your SSH key — no web UI needed. Supports expiration, command restrictions, and custom context. VM-scoped tokens work with Bearer and Basic auth (git-compatible).
See references/api-tokens.md for token generation, permissions, and VM-scoped tokens.
Pre-configured VM templates at exe.dev/idea (also exe.new/<template>). Templates include a container image and a Shelley prompt that auto-configures the app with auth.
Available: Gitea, VS Code, Ghost, Minecraft, Grafana, Outline, OpenClaw, Marimo, and more. Check exe.dev/idea for the current list.
See references/idea-templates.md for details.
Connect VS Code directly to a VM: