repost binary. Use the navigation below to jump to a specific section.
Global flags
These flags apply to everyrepost command.
auth
The auth commands manage how the CLI authenticates to your Repost account.
repost auth login
repost auth login
repost auth logout first when you need to switch accounts.repost auth token [TOKEN]
repost auth token [TOKEN]
TOKEN is omitted, the CLI reads from stdin. Tokens must start with rp_ and be exactly 43 characters long.repost auth status
repost auth status
- Token name
- Token type (personal or organization)
- Token prefix
- Scopes
- Creation time
- Last-used time
- Expiration date
- Auth method (stored token or
REPOST_TOKENenvironment variable)
repost auth logout
repost auth logout
bucket
repost bucket list
Lists every bucket the authenticated account can access.
repost bl
Output columns:
forwarder
The forwarder commands let you list, pause, resume, and disable forwarders across your buckets.
repost forwarder list
Lists forwarders across every accessible bucket. Pass --bucket <bucket-slug> to scope the output to one bucket. Bucket ID is accepted for compatibility.
repost fl
Output columns:
Pause, resume, and disable
Run any of the following commands without flags to open an interactive selector, or pass--bucket and --forwarder for scripted use.
repost forwarder resume also reactivates a forwarder that has been disabled, not just one that is paused.forward
repost forward connects selected internal forwarders to your local machine and opens the terminal UI.
TUI keyboard shortcuts
These shortcuts are available during an activerepost forward session.
schema
The schema commands define, validate, version, and generate code for your webhook events. They delegate to a bundled schema engine that release builds embed, so no separate install is needed — your arguments pass through verbatim and the engine’s output and exit code are preserved. These are human-facing commands: they do not emit the agent JSON envelope, and the --json / --output flags do not apply. See Schema for the end-to-end workflow.
repost schema init
repost schema init
repost/schema.repost (a generator block plus a small working example), a .env placeholder, and a .gitignore that covers .env and the generated output. Refuses if repost/ already exists. Interactive on a terminal; pass the flags to run headless.repost schema validate
repost schema validate
.repost files without writing output. The exit code reflects the diagnostics, so it is CI-friendly.repost schema generate
repost schema generate
typescript, go, python, java, or kotlin) and the JSON Schema into the path its generator block points at. No migration is written. It refuses (hard error) when the migration lineage has a fork or a hand-edited snapshot, and warns on stderr — but still generates — when the schema has unmigrated changes.A Java or Kotlin generator also needs packageName, clientName, and a resourceOutput root (for the client.json registry) alongside output. JVM projects usually generate through the Maven (repost:generate / repost:check) or Gradle (repostGenerate / repostGenerateCheck) plugin rather than the CLI — see the Java and Kotlin guides.repost schema migrate dev
repost schema migrate dev
repost/migrations/<timestamp>_<name>/ snapshot (the directory is prefixed with a UTC YYYYMMDDHHMMSS timestamp), bump the affected event versions, and regenerate. No change is a no-op. Each migration records its parent (or parents for a reconciliation) and a checksum of its snapshot.--name is optional: when a migration is written and it is omitted, the command prompts for a name on a terminal (an empty answer gives a timestamp-only directory) and errors when stdin is not a terminal.When the migration would remove event types, it lists them and requires an explicit y on a terminal (default No), or --accept-removals to proceed non-interactively. This is the one command that reconciles a fork: it diffs the merged schema against every head, prints a per-parent summary, and records parents: [...].repost schema migrate dev once to write a reconciling migration; in CI, use repost schema migrate status (below) as the gate.repost schema migrate status
repost schema migrate status
0 with a one-line summary when the lineage is clean; non-zero with a line-per-finding report when a merge left a fork, when the schema has unmigrated changes (the emission differs from the last snapshot, so migrate dev is not a no-op), or when a snapshot’s checksum no longer matches (a hand-edited or corrupted artifact).repost schema migrate deploy
repost schema migrate deploy
schemas.json; the server materializes the event-type registry. Requires a clean local status — a fork, unmigrated changes, or a checksum mismatch is a hard error. Re-deploying the same head is a no-op. A server head that is not in your lineage refuses the deploy with a machine-readable reason: behind (your checkout is stale — git pull the latest migrations and redeploy) or diverged (the histories have split — reconcile by git-merging the deployed migrations and running migrate dev, or replace the deployed history with --force).Auth: REPOST_TOKEN (an environment-scoped token with the schema:deploy scope) and optionally REPOST_API_URL, read from repost/.env before the process environment.--force replaces a diverged (or rolled-back) deployed history: the CLI fetches the deployed head, shows what will be replaced, and asks for confirmation, then echoes that head back as an optimistic lease — if the head moves between the look and the deploy, the force is refused. Forcing to an older, previously deployed checksum rewinds the registry (the rollback path).repost schema push
repost schema push
db push, for dev and staging loops. Refused on environments that already have migration history, so a push can never fork a production lineage. The payload is checksummed from the emission itself, so repeat pushes of an unchanged schema are no-ops. Same auth as migrate deploy.repost schema import svix FILE
repost schema import svix FILE
repost/ workspace.repost schema fmt [PATH]
repost schema fmt [PATH]
.repost files in place. Idempotent.Maintenance
repost version
repost update
--force to redownload the latest release regardless of the current version.Shell completion and help
repost completion [bash|zsh|fish|powershell] prints a shell-completion script, and repost help [COMMAND] (or repost with no arguments) prints usage. These are standard Cobra built-ins — interactive conveniences with no JSON envelope and no stable contract, so they are out of scope for agent automation. For machine-readable command discovery, use capabilities and docs schema instead.
Agentic commands
These commands are built for non-interactive use — scoped tokens, machine-readable output, and stable exit codes. This section is the flag-level reference. For the operating model, runbooks, and the JSON contract, see the Agents section and Output & errors.Output format
Every command below honors the global output flags.expect, tail, capabilities, and docs schema always emit JSON regardless of these flags. docs search and docs agent emit Markdown. capabilities exposes each command’s output_mode so agents can distinguish envelopes, top-level JSON, JSONL, raw-body exceptions, Markdown, and interactive streams.
Command, schema, and scope map
bucket list, forwarder list, and forwarder pause/resume/disable are documented under bucket and forwarder above; pass --json for the schemas listed here.
Identity and discovery
repost whoami
repost whoami
repost.whoami/v1. No command-specific flags.repost capabilities
repost capabilities
version field.repost docs schema [COMMAND]
repost docs schema [COMMAND]
data_shape when one is documented. Schema repost.command_schema/v1.repost docs search · docs agent
repost docs search · docs agent
docs search prints the query cheatsheet. docs agent prints the operating manual. Output is Markdown.Investigate
repost events search [QUERY]
repost events search [QUERY]
repost.events.search/v1. Returns next_cursor/has_more for forward paging.repost events get EVENT_ID
repost events get EVENT_ID
repost.events.get/v1. Body truncates to 4096 bytes unless --full.repost events diff LEFT_EVENT_ID RIGHT_EVENT_ID
repost events diff LEFT_EVENT_ID RIGHT_EVENT_ID
repost.events.diff/v1.repost events schema [EVENT_ID]
repost events schema [EVENT_ID]
repost.events.schema/v1.repost forwards search [QUERY]
repost forwards search [QUERY]
repost.forwards.search/v1.repost forwards chain EVENT_ID
repost forwards chain EVENT_ID
repost.forwards.chain/v1.repost dlq list
repost dlq list
repost.dlq.list/v1.repost health
repost health
repost.health/v1.Wait for events
repost expect
repost expect
0; exits 7 on timeout.repost tail
repost tail
Mutate
repost init
repost init
repost.init/v1.repost promote setup
repost promote setup
repost.promote.setup/v1. The command first emits status: "requires_user_action", then either status: "completed" after the CLI receives the browser callback or status: "failed" before exiting non-zero.repost bucket create NAME · bucket get SLUG
repost bucket create NAME · bucket get SLUG
create provisions a bucket (schema repost.bucket.create/v1); get returns a bucket plus its forwarders (schema repost.bucket.get/v1).repost forwarder create NAME
repost forwarder create NAME
repost.forwarder.create/v1. --target is required for EXTERNAL forwarders.repost replay [EVENT_ID...]
repost replay [EVENT_ID...]
repost.replay.create/v1. A single explicit event ID needs no --yes; a --query or --dlq selection, or multiple IDs, require --yes unless --dry-run.repost replay status · list · wait · pause · resume · cancel
repost replay status · list · wait · pause · resume · cancel
status/wait → repost.replay.status/v1; list → repost.replay.list/v1; replay pause / replay resume / replay cancel → repost.replay.action/v1.Environment variables
REPOST_BASE_URL=example.com is set, the CLI automatically derives the following service URLs:
REPOST_API_URL, REPOST_WEB_URL, or REPOST_WS_URL individually only when a single endpoint needs a different value than what REPOST_BASE_URL would derive.
Related pages
Authentication
Local Forwarding
Schema
repost schema.