HeavenDocs

CLI, SSH and MCP

Run the same commands from a terminal, signed in or with your SSH key, and SSH straight to a Computer.

Overview

Every endpoint's command also runs from a terminal, with the same name, and with its fields as flags. heaven domain add my-site example.com is the domain add request, with the same permission check as the API. It prints what ssh heaven.dev COMMAND prints, and --json prints the endpoint's JSON. heaven help lists the commands, and heaven help COMMAND explains one.

Terminal
curl -fsSL https://heaven.dev/install | sh
heaven login
heaven create my-site --pool web

Sign in

heaven login prints a code and opens a link in your browser to approve it. The program then keeps the sign-in key it gets, for the key's 30 days, in a file only you can read: ~/.config/heaven/sign-in/heaven.dev.json. Its commands go to the API with that key, so you don't need an SSH key. The sign-in also offers the program's own SSH key for heaven ssh, so keep its box ticked when you approve. heaven logout revokes the key and forgets it.

Commands

When you're signed in, each of these goes to its endpoint over HTTPS. Without a sign-in, it runs as the last column shows.

RunDoesWithout a sign-in
heaven COMMAND …Any endpoint's command, such as view, pool view or restart my-sitessh heaven.dev COMMAND …
heaven ssh NAMEOpens a shell, as the browser terminal does. Signed in, it uses the program's own key.ssh NAME@heaven.dev
heaven exec NAME CMDRuns CMD, with standard input and exit status (exec)ssh NAME@heaven.dev CMD
heaven exec NAME --download PATHWrites the Computer's file to standard output (download)SFTP to NAME@heaven.dev
heaven exec NAME --upload PATHReplaces the file with standard input, once all of it has arrived. --mode MODE sets its permissions (upload)SFTP to NAME@heaven.dev
heaven export NAMEWrites the Computer's whole disk to standard output, as in > disk.img.zst (export)ssh export+NAME@heaven.dev
heaven mcpServes the commands to a local agent, which starts it (MCP)SSH
heaven mcp installAdds heaven mcp to Claude Code, Codex, Gemini CLI, Claude Desktop, Cursor and VS Code on this computer (MCP)
heaven logoutRevokes the sign-in and the program's own SSH key, and forgets both

SSH

ssh NAME@heaven.dev reaches a Computer, and scp, SFTP, port forwarding and editors use the same address. You need ownership or root access on the Computer. You have it if you own the Computer, if you're an admin of the team or organization that owns it, or if a share or a team gives you root or admin. The web role reaches only the website.