Deploy and manage your Runsite services from the terminal — web services, deployments, logs and environment variables, scriptable from any CI.
runsite.app · Documentation · CLI Docs · API Reference
runsite is a single static binary that talks to the Runsite
public API. It lets you trigger deployments, tail logs, manage environment variables
and switch between projects without leaving your shell — interactively on your
machine, or non-interactively in a CI pipeline with an API token.
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/runsite-platform/runsite-cli/main/install/install.sh | shWindows (PowerShell):
irm https://raw.githubusercontent.com/runsite-platform/runsite-cli/main/install/install.ps1 | iexThe scripts detect your OS and architecture, download the matching binary from
GitHub Releases, verify its SHA-256 checksum, and install it
(~/.local/bin/runsite on Unix, %LOCALAPPDATA%\runsite\bin\runsite.exe on Windows).
| Variable | Purpose |
|---|---|
RUNSITE_VERSION |
Pin a release, e.g. v0.1.0 (default: latest) |
RUNSITE_INSTALL_DIR |
Override the install directory |
RUNSITE_REPO |
Override the source repository |
Prebuilt targets: x86_64/aarch64 Linux (musl, static), x86_64/aarch64 macOS,
x86_64 Windows.
runsite login # email + password, mints an API key
runsite login --token ak_live_... # use a key created in the dashboard--token is the path for accounts that sign in with Google or GitHub and have no
password. In CI, skip login entirely and set RUNSITE_API_TOKEN=ak_live_....
| Group | Commands |
|---|---|
| Auth | login [--token] · logout · whoami |
| Services | service list · service status · service start|stop|restart |
| Deploys | deploy [service] — trigger a deployment |
| Logs | logs [service] [--tail 100] — recent container logs |
| Env vars | env list · env set KEY=VALUE ... · env delete KEY |
| Projects | project list · project use [name|id] |
| Context | context show · context set-url https://api.runsite.app |
| Shell | completions bash|zsh|fish |
runsite service list
runsite deploy api --output json
runsite env set api DATABASE_URL=postgres://... LOG_LEVEL=debug
runsite logs api --tail 200Every data command accepts --output json for scripting. The service argument is
optional: with a single service (or a single service in the selected project) the
CLI resolves it automatically.
runsite shell, runsite run and runsite deploy --watch need a live WebSocket,
which the public API does not expose to API keys yet. The commands exist and point
you to the dashboard instead.
Config lives at ~/.config/runsite/config.toml (%APPDATA%\runsite on Windows) and
holds one entry per profile:
current_profile = "default"
[profiles.default]
api_url = "https://api.runsite.app"
api_key = "ak_live_..."
current_project_id = "..."Select a profile with --profile staging or RUNSITE_PROFILE=staging.
RUNSITE_API_TOKEN overrides the stored key.
.
├── src/
│ ├── main.rs # entry point
│ ├── cli.rs # clap command definitions
│ ├── commands/ # one module per command group
│ ├── api/ # public API client + response types
│ ├── config/ # profile config file handling
│ ├── output/ # table / JSON formatting
│ └── ws/ # WebSocket transports (logs, shell)
├── install/ # install.sh and install.ps1
└── .github/workflows/ # CI and multi-target release builds
Requirements: Rust 1.75+ — install via rustup.rs
cargo build # dev build
cargo build --release # optimized (~4.5 MB binary)
# binary: target/release/runsiteInstall cross (requires Docker):
cargo install cross --git https://github.com/cross-rs/cross
cross build --release --target x86_64-unknown-linux-musl
cross build --release --target aarch64-unknown-linux-muslTag the repository; the Release workflow builds all five targets, generates
SHA256SUMS.txt and publishes a GitHub Release:
cargo set-version 0.2.0 # or edit Cargo.toml
git tag v0.2.0 && git push origin v0.2.0- CLI guide: docs.runsite.app/cli/overview
- Public API: docs.runsite.app/api-reference/public-api
- All docs: docs.runsite.app
- Dashboard: runsite.app
MIT — see LICENSE.