CLI Reference
Every rl command and subcommand, with flags, arguments, and examples.
The rl CLI is how you drive Ringleader. Everything you do, from signing in to
booting a cloud VM, is a command on this page.
If you installed the macOS native app, the rl binary
is already on your PATH (symlinked to /usr/local/bin/rl). The
Windows installer adds it to the machine PATH.
Note
rl. The longer ringleader name remains available as a
permanent alias on every platform, so existing scripts keep working unchanged.
The two are interchangeable; this documentation uses rl throughout.Command groups
Every resource kind gets a command group of the same name, and the grammar is
rl <kind> <verb> (e.g. rl workstation get, rl secret create). The generic
verbs and the cross-cutting apply mirror kubectl. Commands fall into a few
families:
- Authentication:
auth login,auth logout,auth status,auth token. - Service accounts:
serviceaccount create/trust, the non-human identities CI signs in as. - Resource verbs:
apply,diff, and the per-kindget,describe,create,edit,copy,delete,wait. - Imperative create: the rich generators
namespace create,secret create,workstation create,configmap createandsshkey create. - Workstation lifecycle & access:
workstation start/stop/restart/cordon/uncordon/release-finalizer/get-resolved-configuration/egress,shell,code,tmux,logs,troubleshoot. - Workstation pools:
workstationpool create/lease/usageandworkstationpoollease renew/release, workstations built from one template and leased out one at a time. - File transfer:
file cp, moving files to and from a workstation. - Sharing & access:
workstation share/unshare/access,secret share/unshare/access,workstationpool share/unshare/access, andshare show/enable/disable. - Local bindings:
binding show,enable,disable,switch,browser-opens. - SSH keys:
sshkey create/enable/disable, forwarding a local key into workstations. - Reusable content:
configmap create/get/edit, the text a config’sscripts/filescan reference. - Organizations:
org get/describe/create/edit, the company your namespaces belong to. - Daemon:
daemon start,stop,restart,statusandlog-level. The page also coversrl status, which reports the workstation providers this machine can use. - Images:
image listandimage delete, the OS images cached on this computer. - Local runtime:
local-runtime create/status/delete, the local container runtime yourdockercommand talks to. Itsdefault-socketform is in The app’s pages. - Docs bundle:
docs, the embedded, offline documentation bundle. - TUI:
tui, a full-screen dashboard over your resources (full walkthrough in the Terminal UI section).
A few commands stand apart from the groups:
rl versionprints the CLI version and the version of the in-VM agent it expects on a workstation.rl --versionandrl -vprint the same.rl version --checkfirst asks the control plane you are signed in to whether a newer client is available. It exits1if it cannot ask, and it reports that there is nothing to check when you are not signed in.rl licensesprints the license notices for the third-party software built intorl. The notices ship inside the binary, so it works offline.rl completion <shell>generates a shell completion script.
While you are signed in, a running daemon asks the same question when it starts and then
once an hour. When the answer is yes, rl version and rl auth status add a line such as
a newer client is available: 0.48.0 (you have 0.47.1).
Common flags
Most commands accept these flags:
| Flag | Description |
|---|---|
--home <dir> | Data directory (default $RINGLEADER_HOME, else ~/.ringleader). |
-n, --namespace <ns> | Target namespace. Defaults to the namespace pinned on this device, else your primary origin’s default namespace, else local. |
-A, --all-namespaces | Operate across every namespace you can see. |
-o, --output <format> | Output format: table (default for get), yaml, json, or jsonpath='{.path}'. |
--as <subject> | Impersonate a subject (e.g. user:alice, sa:builder). Requires the right to do so. |
Exit codes
| Code | Meaning |
|---|---|
0 | Success. |
1 | Command error (the operation failed). |
2 | Usage or flag error. |
3 | daemon status only: no daemon is running (scriptable, like systemctl). |
Namespaces and resolution
Your namespace is created the first time you sign in, not before, and the control
plane decides which one you land in. Working locally without signing in, you get
the reserved local namespace, which also holds the local container runtime.
When you omit -n, the CLI resolves the namespace in this order, highest first:
- an explicit
-n/--namespaceon the command; - the namespace pinned on this device with
rl namespace use; - your primary origin’s
spec.defaultNamespace, assigned at login; - the reserved built-in
local.
rl namespace use [namespace]
Pin the namespace that bare commands target on this device, so you stop typing
-n on every command. With no name, it reports the answer and which rung of the
ladder produced it.
rl namespace use team-a # pin it
rl namespace use # what do bare commands target, and why?
rl namespace use --unset # drop the pin, follow the origin's default again$ rl namespace use team-a
namespace pinned to "team-a"
$ rl namespace use
team-a (pinned on this device)
$ rl namespace use --unset
namespace pin cleared; commands now target "platform" (from origin "cp1")The part in parentheses matters. local (the built-in default) and
local (pinned on this device) are the same namespace for different reasons, and
only the first tells you that no login ever assigned you one.
| Flag | Description |
|---|---|
--unset | Clear the pin and follow the origin’s default again. |
--home <dir> | Data directory. |
Notes:
- The pin is device-local. It never federates, and it survives
rl auth loginandrl auth logout, so a login cannot re-target a user who has chosen otherwise. - It sits below
-n, so a per-invocation override still wins. - It works in standalone mode, where there is no origin at all.
- Only the shape of the name is checked. You can pin a namespace you cannot yet read; the next command reports an ordinary not-found that names it.
- Set and show are one verb, like
git config.rl ns useis the same command.
- AuthenticationSign in to a control plane, check your session, and create API tokens.
- Resource verbsThe verbs every resource kind carries: get, describe, create, edit, copy, delete, and wait, plus the cross-cutting apply.
- Imperative createkubectl-style generators that build a canonical object from flags and apply it.
- Workstation accessStart, stop, connect to, and diagnose a workstation from the command line.
- Sharing & accessShare a workstation, a secret or a workstation pool with a teammate, revoke access, and report effective access.
- Local bindingsInspect and manage device-local forwards from a workstation to your machine.
- DaemonRun and control the local control plane: the control loop that boots workstations and forwards sockets.
- ImagesList and delete the OS images Ringleader keeps cached on this computer.
- Docs bundlePrint Ringleader's documentation to stdout, offline, ready to pipe into an AI assistant.
- Terminal UIA full-screen dashboard for watching and managing your resources from the terminal.