Skip to content

Repository files navigation

Reoclo CLI

Command-line interface for Reoclo — manage servers, applications, deployments, logs, domains, and tunnels from your terminal.

$ reoclo --help
Usage: reoclo [options] [command]
Reoclo CLI
Options:
-V, --version output the version number
-o, --output <fmt> output format: text|json|yaml (default: "text")
--no-color disable ANSI colors
--quiet suppress non-error output
--verbose log HTTP requests (tokens redacted)
-h, --help display help for command
Commands:
login sign in with your Reoclo account
whoami show the current identity
servers manage servers
apps manage applications
deployments deployment history
logs tail or query application logs
env application environment variables
domains manage domains
exec run a command on a server
shell open an interactive shell on a server
tunnel forward / reverse TCP and UDP tunnels
profile manage named profiles
keyring OS keyring management
upgrade self-update the CLI
mcp run as a Model Context Protocol server
completion generate shell completion scripts

Install

One-liner (macOS / Linux):

curl -sSL https://get.reoclo.com/cli | bash

The installer detects your platform, downloads the latest release from GitHub, verifies the SHA256 checksum, and installs to /usr/local/bin/reoclo (or ~/.local/bin/reoclo if the system dir isn't writable). It also creates rc as a short alias for reoclo.

Equivalent direct URL (handy in environments where the redirect isn't followed):

curl -sSL https://github.com/reoclo/cli/releases/latest/download/install.sh | bash

Manual install

If you'd rather download the binary yourself, every release attaches a binary per platform plus a SHA256SUMS file. Pick the right one from the latest release:

# macOS (Apple Silicon)
curl -L -o reoclo https://github.com/reoclo/cli/releases/latest/download/reoclo-darwin-arm64
chmod +x reoclo && sudo mv reoclo /usr/local/bin/
# macOS (Intel)
curl -L -o reoclo https://github.com/reoclo/cli/releases/latest/download/reoclo-darwin-x64
chmod +x reoclo && sudo mv reoclo /usr/local/bin/
# Linux (x86_64, glibc)
curl -L -o reoclo https://github.com/reoclo/cli/releases/latest/download/reoclo-linux-x64
chmod +x reoclo && sudo mv reoclo /usr/local/bin/
# Linux (x86_64, musl / Alpine)
curl -L -o reoclo https://github.com/reoclo/cli/releases/latest/download/reoclo-linux-x64-musl
chmod +x reoclo && sudo mv reoclo /usr/local/bin/
# Linux (arm64)
curl -L -o reoclo https://github.com/reoclo/cli/releases/latest/download/reoclo-linux-arm64
chmod +x reoclo && sudo mv reoclo /usr/local/bin/

Windows (x86_64): download reoclo-windows-x64.exe, rename to reoclo.exe, and add its directory to your PATH.

Verify against SHA256SUMS:

curl -L -o SHA256SUMS https://github.com/reoclo/cli/releases/latest/download/SHA256SUMS
shasum -a 256 -c SHA256SUMS --ignore-missing

Self-update

reoclo upgrade # in-place update to the latest stable
reoclo upgrade --check # report current + latest without changing anything

Quick start

# Sign in (opens your browser via OAuth device flow)
reoclo login
# Confirm
reoclo whoami
# List your servers
reoclo servers ls
# Tail logs for an application
reoclo logs tail my-app
# Open a forward tunnel: localhost:5432 → 127.0.0.1:5432 on the runner
reoclo tunnel my-server -L 5432:5432
# Open a reverse tunnel: server's localhost:8080 → localhost:3000 on your machine
reoclo tunnel my-server -R 8080:3000

Tunnels

The tunnel command opens authenticated TCP and UDP tunnels through a server's runner. No SSH keys, no inbound firewall rules — the tunnel rides the runner's existing outbound WebSocket connection.

# Forward TCP (default)
reoclo tunnel <server> -L 5432:5432
reoclo tunnel <server> -L 8080:internal-db:5432 # remote host other than localhost
reoclo tunnel <server> -L 0.0.0.0:8080:internal:80 # bind explicitly# Forward UDP
reoclo tunnel <server> -L 53:53 --udp
# Reverse TCP
reoclo tunnel <server> -R 8080:3000
# Multiple forwards in one session
reoclo tunnel <server> -L 5432:5432 -L 6379:6379
# Session management (live + history)
reoclo tunnel ls --server <server> --active
reoclo tunnel describe <tunnel-id>
reoclo tunnel close <tunnel-id>

Tunnels survive transient runner reconnects: if the runner disconnects briefly, the CLI parks the session and resumes once the runner is back.

Output formats

Most commands honour -o text|json|yaml. Pipe json into jq for scripting, or yaml for human-readable nested output.

Two things to know when scripting:

  • List commands emit one JSON object per line (NDJSON), not a JSON array. Filter each line directly — jq -r '.field' — not jq '.[]', which yields nothing.
  • secrets get always prints the bare secret value with no formatting (so it composes with $(...) and pipes); it does not honour -o.
reoclo servers ls -o json | jq -r 'select(.status == "active") | .name'
reoclo apps ls -o yaml
VALUE=$(reoclo secrets get DB_PASSWORD --project prod)# the raw value, not JSON

Profiles

The CLI supports multiple named profiles — useful if you work across organizations or environments:

reoclo profile ls
reoclo --profile staging login
reoclo --profile staging servers ls

Profile data is stored under the OS-appropriate config dir (e.g. ~/.config/reoclo/ on Linux, ~/Library/Application Support/reoclo/ on macOS). Tokens are kept in the OS keyring when available; run reoclo keyring status to inspect.

Documentation

Full command reference and guides: https://docs.reoclo.com/cli

Building from source

Requires Bun 1.3+.

git clone https://github.com/reoclo/cli.git
cd cli
bun install
bun run build # produces dist/reoclo-{platform}

Run tests and typecheck:

bun test tests/unit/
bun run typecheck

Reporting issues

Issues and feature requests: https://github.com/reoclo/cli/issues

License

MIT — see LICENSE.

About

The Reoclo CLI — manage servers, apps, deploys, logs, tunnels, and env from your terminal. Also powers Reoclo's GitHub, Gitea, and Woodpecker CI integrations.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages