Skip to content

CLI reference

All commands are available via rp (or repster). Cloud commands walk you through login/registration inline if you haven't authenticated yet; you never need to run rp login before your first rp deploy.

Local commands

Command Description
rp dev Start the local scheduler; fires cron-scheduled flows according to their @rp.flow(schedule=...) expressions
rp run <flow> Run a flow now (local execution)
rp list List all discovered flows with their schedule and next run time
rp status [<flow>] [--profile] Show last N runs and next scheduled run; merges local and cloud runs when a profile is configured
rp logs [--flow <name>] [--run <id>] [--profile] View captured log output for a run
rp retry [--flow <name>] [--run <id>] [--profile] Re-run a flow, linked to the run it retries

Schedules are declared in @rp.flow(schedule=...) in code, not set via the CLI.

Cloud commands

Command Description
rp login [FLAGS] Authenticate with Repster Cloud; interactive email-first flow: logs in if you have an account, offers to register if it doesn't recognize the address. Writes a profile to ~/.repster/config.toml. See Non-interactive login for driving it from CI or an agent.
rp deploy [--profile NAME] Package the project and push to the control plane; immutable and content-addressed; deploying the same code twice is a no-op
rp run --cloud <flow> [--profile NAME] Trigger a cloud run of the latest deployment; fails with a helpful message if no deployment exists
rp cancel <run-id> [--yes] [--profile NAME] Cancel (kill) an in-flight cloud run; admin only; --yes skips confirmation
rp usage [--profile NAME] Show this org's run count, compute, and estimated spend for the current month (vs the monthly cost cap)
rp secrets push [--profile NAME] Read .env and store its values in the cloud secrets vault
rp secrets list [--profile NAME] List secret key names stored in the vault for this project (values are never returned)
rp secrets delete KEY [--yes] [--profile NAME] Delete a secret from the vault for this project; prompts for confirmation unless --yes

Org management

Command Description
rp org create <slug> --name NAME [--profile] Create a new org (you become its admin). Prints its first API key once — it is also saved as a profile named <slug>, so rp org switch <slug> works straight away
rp org list [--profile] List all orgs you belong to (slug, name, role, joined date)
rp org switch <slug> Set the default profile to a different org
rp org invite <email> [--role member\|admin] [--profile] Add someone to this org. They must have registered already — see Manage your team
rp org members [--profile] List members (email, role, joined date)
rp org members promote <email> [--profile] Promote a member to admin
rp org members remove <email> [--yes] [--profile] Remove a member; --yes skips confirmation

Most users never need these: when terms are outstanding, any cloud command prompts to accept them inline before it does any work. These commands cover the cases that flow can't — checking what was accepted, and accepting from a machine with no terminal.

Command Description
rp terms show [--profile] Show which terms version is in force, whether this org has accepted it, and links to both documents
rp terms accept [--yes] [--profile] Accept the current terms on behalf of this org; admin only. Requires typing accept unless --yes is passed (for automation)

Key management

Command Description
rp keys list [--profile] List API keys for this org (prefix, name, status, last-used, created)
rp keys create [--name NAME] [--profile] Create a new API key; raw key is printed once
rp keys revoke <key-id-or-prefix> [--yes] [--profile] Revoke a key; --yes skips confirmation

Non-interactive login

rp login prompts only for what you did not pass, and only when there is a terminal to prompt on. With no terminal it exits naming the flag it needed, rather than hanging on a prompt nobody can answer.

Flag Description
--email ADDRESS Account email
--password SECRET Account password, at least 12 characters when registering. Prefer REPSTER_PASSWORD — it keeps the secret out of the command line and your shell history
--register Create the account rather than logging in; fails if the address is already registered
--org-slug SLUG The org to create when registering, or to select when you belong to several
--org-name NAME Display name for a new org (defaults to the slug)
--accept-terms Accept the terms in force on behalf of the org
--token rpk_... Authenticate with an existing API key instead; no password involved
--service-url URL Point at a specific Repster Cloud host (persisted into the profile)

Register an account and its org in one non-interactive command:

REPSTER_PASSWORD=... rp login \
  --email [email protected] --register \
  --org-slug acme --org-name "Acme" --accept-terms

Register an account with no org — for someone who will be added to an existing one. Omitting --org-slug is what selects this:

REPSTER_PASSWORD=... rp login --email [email protected] --register

The account can do nothing until an admin runs rp org invite [email protected], or until you create an org of your own. Then rp login again.

If you already have a key, rp login --token rpk_... is the shortest path and needs no password. See Manage API keys.

Global flags

All commands that talk to the cloud accept:

Flag Description
--profile NAME Use a named profile from ~/.repster/config.toml

Environment variables REPSTER_CLOUD_URL and REPSTER_API_TOKEN are also accepted and override the profile.

rp login never prompts for the service URL: it resolves --service-url, then REPSTER_CLOUD_URL, then a [defaults] entry, then the profile, and finally the hosted service. See Configuration for the full resolution chain.