Skip to content

CLI

Overslash ships as a single overslash binary with seven subcommands:

CommandPurpose
serveREST API only — cloud mode, dashboard hosted separately.
webREST API plus the embedded dashboard, served same-origin — self-hosted mode.
mcpMCP stdio server, and the mcp login helper for editors without Streamable-HTTP support.
watchPoll a pending approval until it resolves, then exit.
servicesList service instances and call actions.
callShortcut for services call.
adminOperator utilities (runbook-driven), such as secret re-encryption.

Pre-release

Flags and subcommands may change before the first tagged release.

overslash serve

Start the REST API only (cloud mode — dashboard hosted separately).

FlagEnvDefaultDescription
--hostHOST0.0.0.0Address to bind on.
--portPORT8080Port to bind on.

overslash web

Start the REST API and serve the embedded dashboard same-origin (self-hosted mode).

FlagEnvDefaultDescription
--hostHOST0.0.0.0Address to bind on.
--port7171Port to bind on. See precedence below.

The bind port is resolved with the precedence --port > OVERSLASH_WEB_PORT > PORT > 7171: an explicit --port flag always wins; otherwise OVERSLASH_WEB_PORT (typically written into .env.local for worktree isolation) is tried, then the legacy PORT, then the 7171 default.

overslash mcp

Run the MCP stdio server. With no subcommand, overslash mcp speaks the Model Context Protocol over stdio — this is the form editors launch as a local MCP server.

--profile and --config are global config-resolution flags accepted here.

overslash mcp login

Authenticate against an Overslash deployment via OAuth 2.1 and persist the resulting token in ~/.config/overslash/mcp.json.

FlagDefaultDescription
--serverpromptedServer URL (e.g. https://acme.overslash.dev). Prompted interactively if omitted.
--re-authfalseForce a fresh client registration and consent even if a token is already configured.

overslash watch <approval_id>

Watch a pending approval until it resolves (or times out), then exit. Polls GET /v1/approvals/{id} and writes the final approval JSON to stdout.

Exit codes: 0 = allowed, 1 = denied / expired / timeout, 2 = error. This makes watch convenient to gate a script on a human decision.

Argument / FlagDefaultDescription
approval_id(positional, required) Approval UUID to watch.
--timeout15mMaximum time to wait, e.g. 15m, 1h, 900s.
--poll3sPoll interval, e.g. 3s, 10s.
--profileConfig-resolution flag.
--configConfig-resolution flag.

overslash services

List and call services. --profile and --config are accepted as config-resolution flags.

overslash services list

List all service instances visible to this identity. Takes no additional flags.

overslash services call

Call a service action. Accepts the shared call fields below.

overslash call

Shortcut for overslash services call — accepts the same call fields, plus --profile and --config.

Call fields

A call resolves in one of two modes:

  • Mode A — raw HTTP: supply --url (and optionally --method, --header, --body). The call goes through the synthetic http pseudo-service. See Service registry → Raw HTTP passthrough.
  • Mode C — service + action: supply --service and --action, with --param for each argument.
FlagValueDescription
--servicestringService instance name or UUID (Mode C).
--actionstringAction key (Mode C).
--paramKEY=VALUEAction parameter (repeatable; value is JSON or a plain string).
--urlstringRaw URL to call (Mode A).
--methodstringHTTP method for the raw call (Mode A, default GET).
--headerKEY:VALUEExtra request header (repeatable, Mode A).
--bodystringRaw request body string (Mode A).
--filterstringjq expression to filter the response body.

overslash admin

Operator commands (runbook-driven, not for day-to-day use).

overslash admin reencrypt

Re-encrypt every ciphertext at rest under the active master key.

This refuses to run unless SECRETS_ENCRYPTION_KEY_PREVIOUS is set, so the only legitimate context is the middle step of a master-key rotation: the previous deploy added the new key as active and kept the old key as previous; this command rotates the ciphertext; the next deploy drops the previous key. See Self-hosting → Keys & Rotation.

FlagDefaultDescription
--dry-runfalseDecrypt and re-encrypt in memory but never write back. Surfaces rows that would fail (e.g. tagged with a third, unknown key) without mutating state.
--batch500Rows fetched per batch.

Global flags

These flags are accepted by the client-side commands (watch, mcp, services, call) and select which stored credential profile a command uses.

FlagEnvDescription
--profileProfile name. Reads ~/.config/overslash/mcp.<profile>.json (and mcp login writes it).
--configOVERSLASH_MCP_CONFIGOverride the config path entirely.

With neither set, commands use the default ~/.config/overslash/mcp.json. OVERSLASH_MCP_CONFIG is the environment equivalent of --config.

Pre-release software — subject to change without notice.