Skip to main content

CLI reference

Complete bex CLI command reference generated from the binary help tree, with Render compatibility grades.

Share
Last updated on September 23, 2026
On this page

This page documents every command the bex CLI prints in --help, captured from bex vdev (upstream pin v1.1.3-0.20260909214233-a764810a7682, selection source-build, verification source-build-not-a-release). Compatibility grades come from the bex checklist (blob 689310e3aa42).

Grade legend

MarkerMeaning
[x]Verified working against a live bex
[~]Works with a documented limitation
[ ]Not working / not verified here
[-]Deliberate bex non-goal
[bex]Native Bex command (not in the Render surface)

For install, login, and common workflows, see the CLI guide. For server-side limits, see compatibility. For per-operation REST grades, see the API reference.

Global flags

These flags apply across commands (shown once; individual command tables still list local flags).

FlagShortTypeDefaultDescription
--confirmSkip all confirmation prompts
--help-hShow help for this command
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--version-vversion for bex

blueprints

Manage Blueprints, which define your infrastructure as code

Compatibility: Works with a documented limitation ([~])

Limitation

manage Blueprints (infrastructure as code)

bash
bex blueprints <subcommand> [flags]

Manage Blueprint files (render.yaml) including validation.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Validate a blueprint file
  bex blueprints validate ./render.yaml

blueprints validate

Validate a YAML file for a Blueprint

Compatibility: Verified working ([x])

bash
bex blueprints validate [file] [flags]

Validate a Blueprint file for errors before committing.

Validates:

  • YAML syntax
  • Schema validation (Required fields, types)
  • Semantic validation (valid plans, regions, etc.)
  • Conflict checking against existing resources
FlagShortTypeDefaultDescription
--help-hShow help for this command
--workspace-wWORKSPACE_IDValidate against the specified workspace ID (defaults to current workspace)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Validate ./render.yaml
  bex blueprints validate
 
  # Validate a specific Blueprint file
  bex blueprints validate ./my-blueprint.yaml
 
  # Output validation results as JSON
  bex blueprints validate -o json

code

Manage the Bex coding-agent launchers (glm, muse, kimi, deepseek)

Compatibility: Native Bex command ([bex])

bash
bex code [subcommand] [flags]

bex glm, bex muse, bex kimi, bex deepseek each launch a Claude Code instance connected to that provider's Anthropic-compatible endpoint, in an isolated per-provider configuration directory under ~/.bex/code (override with BEX_CODE_HOME). A provider's API key is captured on its first launch — pasted hidden, verified live, stored owner-only in ~/.bex/code/keys.toml — and the environment always overrides the store.

bex code shows provider status; bex code keys manages the keys.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

code keys

Show which provider API keys are configured

Compatibility: Native Bex command ([bex])

bash
bex code keys [subcommand] [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

code keys set

Capture and verify a provider API key (hidden paste; or piped stdin)

Compatibility: Native Bex command ([bex])

bash
bex code keys set <provider> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

code keys unset

Remove a stored provider API key

Compatibility: Native Bex command ([bex])

bash
bex code keys unset <provider> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

deepseek

Usage: claude [options] [command] [prompt]

Compatibility: Native Bex command ([bex])

text
Claude Code - starts an interactive session by default, use -p/--print for
non-interactive output
Arguments:
prompt                                Your prompt
Options:
--add-dir <directories...>            Additional directories to allow tool
access to
--agent <agent>                       Agent for the current session. Overrides
the 'agent' setting.
--agents <json>                       JSON object defining custom agents (e.g.
'{"reviewer": {"description": "Reviews
code", "prompt": "You are a code
reviewer"}}')
--allow-dangerously-skip-permissions  Enable bypassing all permission checks
as an option, without it being enabled
by default. Recommended only for
sandboxes with no internet access.
--allowedTools, --allowed-tools <tools...>
Comma or space-separated list of tool names to allow (e.g. "Bash(git *)
Edit")
--append-system-prompt <prompt>       Append a system prompt to the default
system prompt
--ax-screen-reader                    Render screen-reader friendly output
(flat text, no decorative borders or
animations).
--bg, --background                    Start the session as a background agent
and return immediately (manage with
`claude agents`)
--bare                                Minimal mode: skip hooks, LSP, plugin
sync, attribution, auto-memory,
background prefetches, keychain reads,
and CLAUDE.md auto-discovery. Sets
CLAUDE_CODE_SIMPLE=1. Anthropic auth is
strictly ANTHROPIC_API_KEY or
apiKeyHelper via --settings (OAuth and
keychain are never read). 3P providers
(Bedrock/Vertex/Foundry) use their own
credentials. Skills still resolve via
/skill-name. Explicitly provide context
via: --system-prompt[-file],
--append-system-prompt[-file], --add-dir
(CLAUDE.md dirs), --mcp-config,
--settings, --agents, --plugin-dir.
--betas <betas...>                    Beta headers to include in API requests
(API key users only)
--brief                               Enable SendUserMessage tool for
agent-to-user communication
--chrome                              Enable Claude in Chrome integration
-c, --continue                        Continue the most recent conversation in
the current directory
--dangerously-skip-permissions        Bypass all permission checks.
Recommended only for sandboxes with no
internet access.
-d, --debug [filter]                  Enable debug mode with optional category
filtering (e.g., "api,hooks" or
"!1p,!file")
--debug-file <path>                   Write debug logs to a specific file path
(implicitly enables debug mode)
--disable-slash-commands              Disable all skills
--disallowedTools, --disallowed-tools <tools...>
Comma or space-separated list of tool names to deny (e.g. "Bash(git *)
Edit")
--effort <level>                      Effort level for the current session
(low, medium, high, xhigh, max)
--exclude-dynamic-system-prompt-sections
Move per-machine sections (cwd, env info, memory paths, git status) from
the system prompt into the first user message. Improves cross-user
prompt-cache reuse. Only applies with the default system prompt (ignored
with --system-prompt). (default: false)
--fallback-model <model>              Enable automatic fallback to specified
model(s) when the default model is
overloaded or not available. Accepts a
comma-separated list to try each in
order. Re-tries the primary at the start
of each user turn. (only works with
--print)
--file <specs...>                     File resources to download at startup.
Format: file_id:relative_path (e.g.,
--file file_abc:doc.txt
file_def:img.png)
--fork-session                        When resuming, create a new session ID
instead of reusing the original (use
with --resume or --continue)
--from-pr [value]                     Resume a session linked to a PR by PR
number/URL, or open interactive picker
with optional search term
-h, --help                            Display help for command
--ide                                 Automatically connect to IDE on startup
if exactly one valid IDE is available
--include-hook-events                 Include all hook lifecycle events in the
output stream (only works with
--output-format=stream-json)
--include-partial-messages            Include partial message chunks as they
arrive (only works with --print and
--output-format=stream-json)
--input-format <format>               Input format (only works with --print):
"text" (default), or "stream-json"
(realtime streaming input) (choices:
"text", "stream-json")
--json-schema <schema>                JSON Schema for structured output
validation. Example:
{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}
--max-budget-usd <amount>             Maximum dollar amount to spend on API
calls (only works with --print)
--mcp-config <configs...>             Load MCP servers from JSON files or
strings (space-separated)
--mcp-debug                           [DEPRECATED. Use --debug instead] Enable
MCP debug mode (shows MCP server errors)
--model <model>                       Model for the current session. Provide
an alias for the latest model (e.g.
'fable', 'opus', or 'sonnet') or a
model's full name (e.g.
'claude-fable-5').
-n, --name <name>                     Set a display name for this session
(shown in the prompt box, /resume
picker, and terminal title)
--no-chrome                           Disable Claude in Chrome integration
--no-session-persistence              Disable session persistence - sessions
will not be saved to disk and cannot be
resumed (only works with --print)
--output-format <format>              Output format (only works with --print):
"text" (default), "json" (single
result), or "stream-json" (realtime
streaming) (choices: "text", "json",
"stream-json")
--permission-mode <mode>              Permission mode to use for the session
(choices: "acceptEdits", "auto",
"bypassPermissions", "default",
"dontAsk", "plan")
--plugin-dir <path>                   Load a plugin from a directory or .zip
for this session only (repeatable:
--plugin-dir A --plugin-dir B.zip)
(default: [])
--plugin-url <url>                    Fetch a plugin .zip from a URL for this
session only (repeatable: --plugin-url A
--plugin-url B) (default: [])
-p, --print                           Print response and exit (useful for
pipes). Note: The workspace trust dialog
is skipped when Claude is run in
non-interactive mode (via -p, or when
stdout is not a TTY, e.g. piped or
redirected output). Only use this in
directories you trust. Settings files
that fail validation are silently
ignored in this mode (no error dialog is
shown).
--prompt-suggestions [value]          Enable prompt suggestions. In print/SDK
mode, emits a prompt_suggestion message
after each turn with a predicted next
user prompt (choices: "true", "false",
"1", "0", "yes", "no", "on", "off",
preset: "true")
--remote-control [name]               Start an interactive session with Remote
Control enabled (optionally named)
--remote-control-session-name-prefix <prefix>
Prefix for auto-generated Remote Control session names (default: hostname)
--replay-user-messages                Re-emit user messages from stdin back on
stdout for acknowledgment (only works
with --input-format=stream-json and
--output-format=stream-json)
-r, --resume [value]                  Resume a conversation by session ID, or
open interactive picker with optional
search term
--safe-mode                           Start with all customizations
(CLAUDE.md, skills, plugins, hooks, MCP
servers, custom commands and agents,
output styles, workflows, custom themes,
keybindings, and more) disabled — useful
for troubleshooting a broken
configuration. Admin-managed (policy)
settings still apply. Auth, model
selection, built-in tools, and
permissions work normally. Sets
CLAUDE_CODE_SAFE_MODE=1.
--session-id <uuid>                   Use a specific session ID for the
conversation (must be a valid UUID)
--setting-sources <sources>           Comma-separated list of setting sources
to load (user, project, local).
--settings <file-or-json>             Path to a settings JSON file or a JSON
string to load additional settings from
--strict-mcp-config                   Only use MCP servers from --mcp-config,
ignoring all other MCP configurations
--system-prompt <prompt>              System prompt to use for the session
--tmux                                Create a tmux session for the worktree
(requires --worktree). Uses iTerm2
native panes when available; use
--tmux=classic for traditional tmux.
--tools <tools...>                    Specify the list of available tools from
the built-in set. Use "" to disable all
tools, "default" to use all tools, or
specify tool names (e.g.
"Bash,Edit,Read").
--verbose                             Override verbose mode setting from
config
-v, --version                         Output the version number
-w, --worktree [name]                 Create a new git worktree for this
session (optionally specify a name)
Commands:
agents [options]                      Manage background agents
auth                                  Manage authentication
auto-mode                             Inspect auto mode classifier
configuration
doctor                                Check the health of your Claude Code
auto-updater. Note: The workspace trust
dialog is skipped and stdio servers from
.mcp.json are spawned for health checks.
Only use this command in directories you
trust.
install [options] [target]            Install Claude Code native build. Use
[target] to specify version (stable,
latest, or specific version)
mcp                                   Configure and manage MCP servers
plugin|plugins                        Manage Claude Code plugins
project                               Manage Claude Code project state
setup-token                           Set up a long-lived authentication token
(requires Claude subscription)
ultrareview [options] [target]        Run a cloud-hosted multi-agent code
review of the current branch (or a PR
number / base branch) and print the
findings
update|upgrade                        Check for updates and install if
available

deploys

List, create, and cancel deploys

Compatibility: Verified working ([x])

bash
bex deploys <subcommand> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List deploys for a service
  bex deploys list srv-abc123
 
  # Trigger a deploy for a service
  bex deploys create srv-abc123

deploys cancel

Cancel a running deploy

Compatibility: Verified working ([x])

bash
bex deploys cancel <serviceID> <deployID> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Cancel a running deploy
  bex deploys cancel srv-abc123 dep-xyz789

deploys create

Trigger a service deploy and stream logs in real time

Compatibility: Verified working ([x])

bash
bex deploys create [serviceID] [flags]
FlagShortTypeDefaultDescription
--clear-cacheClear build cache before deploying
--commitCOMMIT_IDDeploy the specified commit ID
--help-hShow help for this command
--imageIMAGE_URLDeploy the specified Docker image URL
--waitWait for deploy completion and exit non-zero if deploy fails
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Trigger a deploy for a service
  bex deploys create srv-abc123
 
  # Deploy a specific commit
  bex deploys create srv-abc123 --commit 0123abcd
 
  # Wait until deploy completes
  bex deploys create srv-abc123 --wait

deploys list

List deploys for a service

Compatibility: Verified working ([x])

bash
bex deploys list [serviceID] [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List deploys for a service
  bex deploys list srv-abc123
 
  # Browse deploys interactively
  bex deploys list

docs

Open the Bex docs in your browser

Compatibility: Verified working ([x])

bash
bex docs [flags]

Open the Bex CLI guide in your browser.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Open Bex documentation
  bex docs

ea

Use early access commands

Compatibility: Works with a documented limitation ([~])

Limitation

early-access surfaces; ea sandbox create/list/stop (w3/m32) and exec (w3/m33) all ship on the gVisor substrate, ea objects still out of the compatibility target

bash
bex ea [subcommand] [flags]

These commands are in early access and are subject to change.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List early access object storage resources
  bex ea objects list --region=oregon

ea objects

Manage object storage in early access

Compatibility: Works with a documented limitation ([~])

Limitation

early-access surfaces; ea sandbox create/list/stop (w3/m32) and exec (w3/m33) all ship on the gVisor substrate, ea objects still out of the compatibility target

bash
bex ea objects <subcommand> [flags]

Manage object storage for your Render services.

Object storage allows you to store and retrieve arbitrary data. Use these commands to list, upload, download, and delete objects.

The --region flag specifies which region to use. Alternatively, set the RENDER_REGION environment variable. The --region flag takes precedence if both are provided.

When using the --local flag, objects are stored in the .render/objects/ directory instead of cloud storage.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--localUse local storage (.render/objects/) instead of cloud storage
--regionREGIONSet target region (or set the RENDER_REGION env var)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List objects in object storage
  bex ea objects list --region=oregon
 
  # Upload an object
  bex ea objects put backups/2026-04-15/users.ndjson --file=./exports/users.ndjson --region=oregon
 
  # Download an object
  bex ea objects get backups/2026-04-15/users.ndjson --file=./downloads/users.ndjson --region=oregon
 
  # Delete an object
  bex ea objects delete uploads/test/avatar.png --region=oregon --yes

ea objects delete

Delete one or more objects from storage

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

404 (--local works client-side)

bash
bex ea objects delete <key> [additionalKeys...] [flags]

This operation is irreversible.

Delete one or more objects from storage.

By default, you will be prompted for confirmation unless you specify the --yes flag.

In local development mode (--local flag or RENDER_USE_LOCAL_DEV=true), files are deleted from the .render/objects/ directory.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--yes-ySkip confirmation prompt
--confirmSkip all confirmation prompts
--localUse local storage (.render/objects/) instead of cloud storage
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--regionREGIONSet target region (or set the RENDER_REGION env var)
bash
# Delete a single object
  bex ea objects delete assets/images/old-logo.png --region=oregon
 
  # Delete multiple objects without confirmation
  bex ea objects delete tmp/import-001.json tmp/import-002.json --region=oregon --yes
 
  # Delete from local object storage
  bex ea objects delete local-dev/fixtures/sample.json --region=oregon --local --yes

ea objects get

Download a file from object storage

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

404 (--local works client-side)

bash
bex ea objects get <key> [--file=<path>] [flags]

Download a file from object storage.

If --file is not specified, the object content is written to stdout, which is useful for piping to other commands.

In local development mode (--local flag or RENDER_USE_LOCAL_DEV=true), files are read from the .render/objects/ directory.

FlagShortTypeDefaultDescription
--file-fstringstdoutOutput file path
--help-hShow help for this command
--confirmSkip all confirmation prompts
--localUse local storage (.render/objects/) instead of cloud storage
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--regionREGIONSet target region (or set the RENDER_REGION env var)
bash
# Download an object to a file
  bex ea objects get backups/2026-04-15/users.ndjson --file=./downloads/users.ndjson --region=oregon
 
  # Write object content to stdout
  bex ea objects get config/runtime/env.json --region=oregon
 
  # Read from local object storage
  bex ea objects get local-dev/fixtures/sample.json --file=./tmp/sample.json --region=oregon --local

ea objects list

List objects in storage

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

bex /v1/objects404 (--local works client-side)

bash
bex ea objects list [flags]

List objects in object storage for a specific region.

Displays object keys, content types, sizes, and last modified timestamps.

In local development mode (--local flag or RENDER_USE_LOCAL_DEV=true), lists files from the .render/objects/ directory.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--limitCOUNT100Limit the number of objects returned
--confirmSkip all confirmation prompts
--localUse local storage (.render/objects/) instead of cloud storage
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--regionREGIONSet target region (or set the RENDER_REGION env var)
bash
# List objects in cloud storage
  bex ea objects list --region=oregon
 
  # Limit number of objects returned
  bex ea objects list --region=oregon --limit=200
 
  # List objects from local storage
  bex ea objects list --region=oregon --local

ea objects put

Upload a file to object storage

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

404 (--local works client-side)

bash
bex ea objects put <key> --file=<path> [flags]

Upload a file to object storage.

The key is the path/name under which the object will be stored. Keys can include path-like structures (e.g., "uploads/images/photo.jpg").

In local development mode (--local flag or RENDER_USE_LOCAL_DEV=true), files are stored in the .render/objects/ directory.

FlagShortTypeDefaultDescription
--file-fPATHPath to the local file to upload (Required)
--help-hShow help for this command
--confirmSkip all confirmation prompts
--localUse local storage (.render/objects/) instead of cloud storage
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--regionREGIONSet target region (or set the RENDER_REGION env var)
bash
# Upload a local file
  bex ea objects put backups/2026-04-15/users.ndjson --file=./exports/users.ndjson --region=oregon
 
  # Upload with a relative file path
  bex ea objects put assets/images/logo.png --file=./public/logo.png --region=oregon
 
  # Upload to local object storage
  bex ea objects put local-dev/fixtures/sample.json --file=./fixtures/sample.json --region=oregon --local

ea sandbox-groups

Manage sandbox groups

Compatibility: Works with a documented limitation ([~])

Limitation

early-access surfaces; ea sandbox create/list/stop (w3/m32) and exec (w3/m33) all ship on the gVisor substrate, ea objects still out of the compatibility target

bash
bex ea sandbox-groups <subcommand> [flags]

Manage sandbox groups for your Render workspace.

Sandbox groups scope a workspace's sandboxes to a region and (optionally) an environment. Early Access guarantees at most one default group per workspace; Beta will add multi-group support.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex ea sandbox-groups list
  bex ea sandbox-groups list -o json

ea sandbox-groups list

List sandbox groups in the active workspace

Compatibility: Verified working ([x])

bash
bex ea sandbox-groups list [flags]

List sandbox groups in your workspace.

Early Access guarantees at most one default group per workspace, so this command typically prints a single row.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List sandbox groups in the active workspace
  bex ea sandbox-groups list
 
  # Output as JSON
  bex ea sandbox-groups list -o json

ea sandboxes

Manage sandboxes

Compatibility: Works with a documented limitation ([~])

Limitation

early-access surfaces; ea sandbox create/list/stop (w3/m32) and exec (w3/m33) all ship on the gVisor substrate, ea objects still out of the compatibility target

bash
bex ea sandboxes <subcommand> [flags]

Manage sandboxes for your Render workspace.

Sandboxes are ephemeral compute environments for running code, agents, and experiments.

Every sandbox belongs to a sandbox group, which scopes it to a region. Manage groups with "render ea sandbox-groups".

Snapshot a sandbox with "render ea sandboxes snapshots create" and restore new sandboxes from it with "render ea sandboxes create --snapshot-id".

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex ea sandboxes create
  bex ea sandboxes create --plan=standard --region=oregon
  bex ea sandboxes create --snapshot-id snp-abc123
  bex ea sandboxes copy ./main.py sbx-abc123:/app/main.py
  bex ea sandboxes exec sbx-abc123 -- echo hello
  bex ea sandboxes snapshots create sbx-abc123
  bex ea sandboxes snapshots list --group sbg-abc123
  bex ea sandboxes stop sbx-abc123 --confirm

ea sandboxes copy

Copy files to or from a sandbox

Compatibility: Works with a documented limitation ([~])

Limitation

early-access surfaces; ea sandbox create/list/stop (w3/m32) and exec (w3/m33) all ship on the gVisor substrate, ea objects still out of the compatibility target

bash
bex ea sandboxes copy <src> <dst> [flags]

Copy a file or directory between the local filesystem and a running sandbox.

Prefix the remote side with the sandbox ID and a colon, like scp. A relative sandbox path resolves inside the sandbox's home directory; an absolute path addresses the sandbox filesystem root. Directories are transferred as archives: uploading a local directory recreates it at the sandbox path, and downloading a sandbox directory recreates it under the local path. "cp" works as an alias.

Unlike cp, a directory destination is not nested into: copying ./src to sbx-abc123:/tmp/src puts src's contents at /tmp/src, not at /tmp/src/src. A single file copied to an existing local directory does land inside it.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex ea sandboxes copy ./main.py sbx-abc123:main.py
  bex ea sandboxes copy sbx-abc123:output.json ./output.json
  bex ea sandboxes copy ./src sbx-abc123:/tmp/src
  bex ea sandboxes cp sbx-abc123:. ./sandbox-home
  bex ea sandboxes copy sbx-abc123:output.json ./downloads/ --output json

ea sandboxes create

Create a new sandbox

Compatibility: Verified working ([x])

bash
bex ea sandboxes create [flags]

Create a new sandbox in the current workspace.

FlagShortTypeDefaultDescription
--env-filePATHPath to an env file to load. Repeat to load multiple files (later files override earlier ones). Every listed file must exist
--env-varKEY_VALUESet environment variables in KEY=VALUE format (can be specified multiple times). Inline values override values loaded from --env-file
--help-hShow help for this command
--network-policyNETWORK_POLICYOutbound network policy: allow-all, deny-all
--planstringCompute plan: starter, standard, pro
--regionstringRegion to run the sandbox in
--snapshot-idSNAPSHOT_IDStart from this snapshot instead of the base image. The snapshot must be available and in the same sandbox group. A runtime snapshot requires --plan to match its plan (Non-goal on Bex: Sandbox snapshot restore is a deliberate bex non-goal (checklist pin note for --snapshot-id); upstream help only)
--timeoutint0Maximum sandbox lifetime in seconds. 0 uses the default and maximum of 86400 (24 hours)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex ea sandboxes create
  bex ea sandboxes create --plan=standard --region=oregon
  bex ea sandboxes create --timeout=3600
  bex ea sandboxes create --network-policy=deny-all
  bex ea sandboxes create --env-var FOO=bar --env-var BAZ=qux
  bex ea sandboxes create --env-file .env.production --env-var LOG_LEVEL=debug
  bex ea sandboxes create --snapshot-id snp-abc123

ea sandboxes exec

Execute a command in a sandbox

Compatibility: Verified working ([x])

bash
bex ea sandboxes exec <sandboxId> -- <command> [flags]

Run a single command in a running sandbox. Streams stdout and stderr as the command runs, then exits with the remote command's exit code.

Pass the command after a "--" separator so its own flags aren't parsed by the CLI.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex ea sandboxes exec sbx-abc123 -- echo hello
  bex ea sandboxes exec sbx-abc123 -- python script.py

ea sandboxes list

List sandboxes

Compatibility: Verified working ([x])

bash
bex ea sandboxes list [flags]

List sandboxes in your workspace.

By default, terminated sandboxes are excluded. Use --all to include them, or --status to filter by specific statuses.

FlagShortTypeDefaultDescription
--allInclude terminated sandboxes
--help-hShow help for this command
--statusstringArrayFilter by status (repeatable: creating, running, errored, terminated)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex ea sandboxes list
  bex ea sandboxes list --all
  bex ea sandboxes list --status=running
  bex ea sandboxes list --status=running --status=creating
  bex ea sandboxes list -o json

ea sandboxes snapshots

Manage sandbox snapshots

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

Early-access sandbox snapshots are a deliberate bex non-goal (checklist pin note for CreateSandboxSnapshot*/ListSandboxSnapshots/RetrieveSandboxSnapshot).

bash
bex ea sandboxes snapshots <subcommand> [flags]

Manage snapshots of sandboxes in your Render workspace.

A snapshot captures a running sandbox so a new sandbox can be restored from it with "render ea sandboxes create --snapshot-id". A filesystem snapshot captures the writable filesystem and restores onto any plan. A runtime snapshot also captures memory and CPU state and restores only onto the plan of the source sandbox.

Snapshots belong to the sandbox group of their source sandbox. Getting or listing snapshots uses the active workspace's default group unless --group is provided.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Snapshot a running sandbox
  bex ea sandboxes snapshots create sbx-abc123
 
  # List the snapshots in the default sandbox group
  bex ea sandboxes snapshots list
 
  # List the snapshots in a specific sandbox group
  bex ea sandboxes snapshots list --group sbg-abc123
 
  # Get one snapshot
  bex ea sandboxes snapshots get snp-abc123

ea sandboxes snapshots create

Snapshot a running sandbox

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

Early-access sandbox snapshots are a deliberate bex non-goal (checklist pin note for CreateSandboxSnapshot*/ListSandboxSnapshots/RetrieveSandboxSnapshot).

bash
bex ea sandboxes snapshots create <sandboxId> [flags]

Capture a snapshot of a running sandbox.

The command returns as soon as the API accepts the request, while the snapshot status is still "creating". Poll with "render ea sandboxes snapshots get" until the status is "available" before starting a sandbox from it.

The sandbox keeps running after the capture.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--kindKINDSnapshot kind: filesystem (default), runtime
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Snapshot the filesystem (default)
  bex ea sandboxes snapshots create sbx-abc123
 
  # Also capture memory and CPU state
  bex ea sandboxes snapshots create sbx-abc123 --kind runtime
 
  # JSON output
  bex ea sandboxes snapshots create sbx-abc123 --output json

ea sandboxes snapshots get

Get a sandbox snapshot

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

Early-access sandbox snapshots are a deliberate bex non-goal (checklist pin note for CreateSandboxSnapshot*/ListSandboxSnapshots/RetrieveSandboxSnapshot).

bash
bex ea sandboxes snapshots get <snapshotId> [flags]

Get one sandbox snapshot by ID.

Uses the active workspace's default sandbox group unless --group is provided. An expired snapshot is reported as not found.

FlagShortTypeDefaultDescription
--groupSANDBOX_GROUP_IDSandbox group the snapshot belongs to (defaults to the active workspace's default group)
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Get a snapshot
  bex ea sandboxes snapshots get snp-abc123
 
  # Get a snapshot in a specific group
  bex ea sandboxes snapshots get snp-abc123 --group sbg-abc123
 
  # JSON output
  bex ea sandboxes snapshots get snp-abc123 --output json

ea sandboxes snapshots list

List sandbox snapshots

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

Early-access sandbox snapshots are a deliberate bex non-goal (checklist pin note for CreateSandboxSnapshot*/ListSandboxSnapshots/RetrieveSandboxSnapshot).

bash
bex ea sandboxes snapshots list [flags]

List the snapshots in a sandbox group, newest first.

Uses the active workspace's default sandbox group unless --group is provided. Deleted and expired snapshots are not listed.

FlagShortTypeDefaultDescription
--groupSANDBOX_GROUP_IDSandbox group to list (defaults to the active workspace's default group)
--help-hShow help for this command
--statusSTATUSFilter by status (repeatable: creating, available, failed)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List every snapshot in the default sandbox group
  bex ea sandboxes snapshots list
 
  # List snapshots in a specific group
  bex ea sandboxes snapshots list --group sbg-abc123
 
  # Only snapshots that are ready to start a sandbox from
  bex ea sandboxes snapshots list --status available
 
  # JSON output
  bex ea sandboxes snapshots list --output json

ea sandboxes stop

Terminate a sandbox

Compatibility: Verified working ([x])

bash
bex ea sandboxes stop <sandboxId> [flags]

Terminate a running sandbox. This action is irreversible.

Without --confirm, this command previews what would be terminated and makes no changes. Pass --confirm to actually terminate the sandbox.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Preview termination (no changes made)
  bex ea sandboxes stop sbx-abc123
 
  # Terminate the sandbox
  bex ea sandboxes stop sbx-abc123 --confirm
 
  # JSON output
  bex ea sandboxes stop sbx-abc123 --confirm --output json

environments

List project environments by project ID

Compatibility: Verified working ([x])

bash
bex environments <projectID> [flags]

List environments for a specified project in the active workspace. In interactive mode you can view each environment's individual services.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List environments for a project
  bex environments prj-abc123

glm

Usage: claude [options] [command] [prompt]

Compatibility: Native Bex command ([bex])

text
Claude Code - starts an interactive session by default, use -p/--print for
non-interactive output
Arguments:
prompt                                Your prompt
Options:
--add-dir <directories...>            Additional directories to allow tool
access to
--agent <agent>                       Agent for the current session. Overrides
the 'agent' setting.
--agents <json>                       JSON object defining custom agents (e.g.
'{"reviewer": {"description": "Reviews
code", "prompt": "You are a code
reviewer"}}')
--allow-dangerously-skip-permissions  Enable bypassing all permission checks
as an option, without it being enabled
by default. Recommended only for
sandboxes with no internet access.
--allowedTools, --allowed-tools <tools...>
Comma or space-separated list of tool names to allow (e.g. "Bash(git *)
Edit")
--append-system-prompt <prompt>       Append a system prompt to the default
system prompt
--ax-screen-reader                    Render screen-reader friendly output
(flat text, no decorative borders or
animations).
--bg, --background                    Start the session as a background agent
and return immediately (manage with
`claude agents`)
--bare                                Minimal mode: skip hooks, LSP, plugin
sync, attribution, auto-memory,
background prefetches, keychain reads,
and CLAUDE.md auto-discovery. Sets
CLAUDE_CODE_SIMPLE=1. Anthropic auth is
strictly ANTHROPIC_API_KEY or
apiKeyHelper via --settings (OAuth and
keychain are never read). 3P providers
(Bedrock/Vertex/Foundry) use their own
credentials. Skills still resolve via
/skill-name. Explicitly provide context
via: --system-prompt[-file],
--append-system-prompt[-file], --add-dir
(CLAUDE.md dirs), --mcp-config,
--settings, --agents, --plugin-dir.
--betas <betas...>                    Beta headers to include in API requests
(API key users only)
--brief                               Enable SendUserMessage tool for
agent-to-user communication
--chrome                              Enable Claude in Chrome integration
-c, --continue                        Continue the most recent conversation in
the current directory
--dangerously-skip-permissions        Bypass all permission checks.
Recommended only for sandboxes with no
internet access.
-d, --debug [filter]                  Enable debug mode with optional category
filtering (e.g., "api,hooks" or
"!1p,!file")
--debug-file <path>                   Write debug logs to a specific file path
(implicitly enables debug mode)
--disable-slash-commands              Disable all skills
--disallowedTools, --disallowed-tools <tools...>
Comma or space-separated list of tool names to deny (e.g. "Bash(git *)
Edit")
--effort <level>                      Effort level for the current session
(low, medium, high, xhigh, max)
--exclude-dynamic-system-prompt-sections
Move per-machine sections (cwd, env info, memory paths, git status) from
the system prompt into the first user message. Improves cross-user
prompt-cache reuse. Only applies with the default system prompt (ignored
with --system-prompt). (default: false)
--fallback-model <model>              Enable automatic fallback to specified
model(s) when the default model is
overloaded or not available. Accepts a
comma-separated list to try each in
order. Re-tries the primary at the start
of each user turn. (only works with
--print)
--file <specs...>                     File resources to download at startup.
Format: file_id:relative_path (e.g.,
--file file_abc:doc.txt
file_def:img.png)
--fork-session                        When resuming, create a new session ID
instead of reusing the original (use
with --resume or --continue)
--from-pr [value]                     Resume a session linked to a PR by PR
number/URL, or open interactive picker
with optional search term
-h, --help                            Display help for command
--ide                                 Automatically connect to IDE on startup
if exactly one valid IDE is available
--include-hook-events                 Include all hook lifecycle events in the
output stream (only works with
--output-format=stream-json)
--include-partial-messages            Include partial message chunks as they
arrive (only works with --print and
--output-format=stream-json)
--input-format <format>               Input format (only works with --print):
"text" (default), or "stream-json"
(realtime streaming input) (choices:
"text", "stream-json")
--json-schema <schema>                JSON Schema for structured output
validation. Example:
{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}
--max-budget-usd <amount>             Maximum dollar amount to spend on API
calls (only works with --print)
--mcp-config <configs...>             Load MCP servers from JSON files or
strings (space-separated)
--mcp-debug                           [DEPRECATED. Use --debug instead] Enable
MCP debug mode (shows MCP server errors)
--model <model>                       Model for the current session. Provide
an alias for the latest model (e.g.
'fable', 'opus', or 'sonnet') or a
model's full name (e.g.
'claude-fable-5').
-n, --name <name>                     Set a display name for this session
(shown in the prompt box, /resume
picker, and terminal title)
--no-chrome                           Disable Claude in Chrome integration
--no-session-persistence              Disable session persistence - sessions
will not be saved to disk and cannot be
resumed (only works with --print)
--output-format <format>              Output format (only works with --print):
"text" (default), "json" (single
result), or "stream-json" (realtime
streaming) (choices: "text", "json",
"stream-json")
--permission-mode <mode>              Permission mode to use for the session
(choices: "acceptEdits", "auto",
"bypassPermissions", "default",
"dontAsk", "plan")
--plugin-dir <path>                   Load a plugin from a directory or .zip
for this session only (repeatable:
--plugin-dir A --plugin-dir B.zip)
(default: [])
--plugin-url <url>                    Fetch a plugin .zip from a URL for this
session only (repeatable: --plugin-url A
--plugin-url B) (default: [])
-p, --print                           Print response and exit (useful for
pipes). Note: The workspace trust dialog
is skipped when Claude is run in
non-interactive mode (via -p, or when
stdout is not a TTY, e.g. piped or
redirected output). Only use this in
directories you trust. Settings files
that fail validation are silently
ignored in this mode (no error dialog is
shown).
--prompt-suggestions [value]          Enable prompt suggestions. In print/SDK
mode, emits a prompt_suggestion message
after each turn with a predicted next
user prompt (choices: "true", "false",
"1", "0", "yes", "no", "on", "off",
preset: "true")
--remote-control [name]               Start an interactive session with Remote
Control enabled (optionally named)
--remote-control-session-name-prefix <prefix>
Prefix for auto-generated Remote Control session names (default: hostname)
--replay-user-messages                Re-emit user messages from stdin back on
stdout for acknowledgment (only works
with --input-format=stream-json and
--output-format=stream-json)
-r, --resume [value]                  Resume a conversation by session ID, or
open interactive picker with optional
search term
--safe-mode                           Start with all customizations
(CLAUDE.md, skills, plugins, hooks, MCP
servers, custom commands and agents,
output styles, workflows, custom themes,
keybindings, and more) disabled — useful
for troubleshooting a broken
configuration. Admin-managed (policy)
settings still apply. Auth, model
selection, built-in tools, and
permissions work normally. Sets
CLAUDE_CODE_SAFE_MODE=1.
--session-id <uuid>                   Use a specific session ID for the
conversation (must be a valid UUID)
--setting-sources <sources>           Comma-separated list of setting sources
to load (user, project, local).
--settings <file-or-json>             Path to a settings JSON file or a JSON
string to load additional settings from
--strict-mcp-config                   Only use MCP servers from --mcp-config,
ignoring all other MCP configurations
--system-prompt <prompt>              System prompt to use for the session
--tmux                                Create a tmux session for the worktree
(requires --worktree). Uses iTerm2
native panes when available; use
--tmux=classic for traditional tmux.
--tools <tools...>                    Specify the list of available tools from
the built-in set. Use "" to disable all
tools, "default" to use all tools, or
specify tool names (e.g.
"Bash,Edit,Read").
--verbose                             Override verbose mode setting from
config
-v, --version                         Output the version number
-w, --worktree [name]                 Create a new git worktree for this
session (optionally specify a name)
Commands:
agents [options]                      Manage background agents
auth                                  Manage authentication
auto-mode                             Inspect auto mode classifier
configuration
doctor                                Check the health of your Claude Code
auto-updater. Note: The workspace trust
dialog is skipped and stdio servers from
.mcp.json are spawned for health checks.
Only use this command in directories you
trust.
install [options] [target]            Install Claude Code native build. Use
[target] to specify version (stable,
latest, or specific version)
mcp                                   Configure and manage MCP servers
plugin|plugins                        Manage Claude Code plugins
project                               Manage Claude Code project state
setup-token                           Set up a long-lived authentication token
(requires Claude subscription)
ultrareview [options] [target]        Run a cloud-hosted multi-agent code
review of the current branch (or a PR
number / base branch) and print the
findings
update|upgrade                        Check for updates and install if
available

jobs

Create and manage one-off jobs

Compatibility: Verified working ([x])

bash
bex jobs <subcommand> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List jobs for a service
  bex jobs list srv-abc123
 
  # Create a job for a service
  bex jobs create srv-abc123 --start-command "bundle exec rake task"

jobs cancel

Cancel a running job

Compatibility: Verified working ([x])

bash
bex jobs cancel <serviceID> <jobID> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Cancel a running job
  bex jobs cancel srv-abc123 job-xyz789

jobs create

Create a new job for a service

Compatibility: Verified working ([x])

bash
bex jobs create [serviceID] [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--plan-idPLAN_IDSet the plan ID for the job (Optional)
--start-commandCOMMANDSet the job start command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Create a job for a service
  bex jobs create srv-abc123 --start-command "bundle exec rake task"
 
  # Create a job with a specific plan
  # See https://render.com/docs/one-off-jobs for available job plans
  bex jobs create srv-abc123 --start-command "npm run worker" --plan-id plan-srv-006

jobs list

List jobs for a service

Compatibility: Verified working ([x])

bash
bex jobs list [serviceID] [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List jobs for a service
  bex jobs list srv-abc123
 
  # Browse jobs interactively
  bex jobs list

keyvalues

Manage Bex Key Value instances (alias: kv)

Compatibility: Verified working ([x])

bash
bex keyvalues <subcommand> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

keyvalues create

Create a new Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex keyvalues create [flags]

Create a new Bex Key Value instance.

In interactive mode, a prompt guides you through each option one at a time. In non-interactive mode (--output text/json/yaml), flags use defaults if not supplied. Use --confirm to skip all prompts (including final confirmation) and create immediately. Output will be human-readable; use --output json/yaml/text for machine-readable output.

FlagShortTypeDefaultDescription
--environmentENVIRONMENTSet the environment to create the Key Value in (ID or name, optional). Example: Production or evm-abc123def456
--help-hShow help for this command
--ip-allow-listCIDR_DESCRIPTIONRestrict inbound traffic to specific IP ranges (format: cidr=<range>,description=<label>). Repeat the flag for multiple entries
--memory-policyMAXMEMORY_POLICYSet the eviction policy used when the instance runs out of memory.
--nameNAMESet the Key Value instance name (generated if not provided)
--persistence-modePERSISTENCE_MODESet the on-disk persistence mode: journal_snapshot | snapshot | off (off loses data on restart; omit to use the plan default)
--planPLANSet the plan to one of: free | 256mb | 1g | 5g | 10g | 20g | 40g. Custom enterprise plan names are also accepted
--projectPROJECTScope environment lookup to a project (ID or name, optional); if the project has exactly one environment it is used automatically
--regionREGIONSet the region: frankfurt | ohio | oregon | singapore | virginia
--workspaceWORKSPACESet the workspace to create the Key Value in (ID or name). Defaults to the active workspace (set via 'bex workspace set')
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Interactive wizard (guided prompts for each option)
  bex kv create
 
  # Specify all options; wizard still asks for confirmation before creating
  bex kv create --name my-cache --plan 256mb --region oregon
 
  # Skip all prompts and create immediately (no confirmation)
  bex kv create --name my-cache --plan free --confirm
 
  # Machine-readable output (non-interactive, no prompts)
  bex kv create --name my-cache --plan 256mb --output json
 
  # Use as a cache with no on-disk persistence
  bex kv create --name my-cache --plan 256mb --persistence-mode off
 
  # With IP allow-listing (repeat the flag for multiple entries)
  bex kv create --name my-cache \
    --ip-allow-list "cidr=203.0.113.5/32,description=office" \
    --ip-allow-list "cidr=10.0.0.0/8,description=internal"

keyvalues delete

Delete a Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex keyvalues delete <keyValueID|keyValueName> [flags]

Delete a Bex Key Value instance.

Without --confirm, this command previews what would be deleted and makes no changes. Pass --confirm to actually delete the instance.

The positional argument accepts either a Key Value ID (red-...) or a name. If the name matches more than one instance, narrow the search with --environment <id|name>, or pass the Key Value ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Preview deletion (no changes made)
  bex kv delete red-abc123def456ghi789jkl0
 
  # Delete by ID
  bex kv delete red-abc123def456ghi789jkl0 --confirm
 
  # Delete by name
  bex kv delete my-cache --confirm
 
  # Disambiguate a name that exists in multiple environments
  bex kv delete my-cache --environment production --confirm
 
  # JSON output
  bex kv delete red-abc123def456ghi789jkl0 --confirm --output json

keyvalues get

Get details of a Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex keyvalues get <keyValueID|keyValueName> [flags]

Get details and connection info for a Bex Key Value instance.

The positional argument accepts either a Key Value ID (red-...) or a name. If the name matches more than one instance, narrow the search with --project <id|name>, --environment <id|name>, or pass the Key Value ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments
--help-hShow help for this command
--include-sensitive-connection-infoInclude connection strings and credentials in the output
--projectPROJECTNarrow lookup to a project (ID or name, optional) within the active workspace
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Get by ID
  bex kv get red-abc123def456ghi789jkl0
 
  # Get by name
  bex kv get my-cache
 
  # Include connection strings (contains credentials)
  bex kv get my-cache --include-sensitive-connection-info
 
  # Disambiguate by project
  bex kv get my-cache --project my-project
 
  # Disambiguate a name that exists in multiple environments
  bex kv get my-cache --environment production
 
  # JSON output
  bex kv get red-abc123def456ghi789jkl0 --output json

keyvalues list

List Bex Key Value instances

Compatibility: Verified working ([x])

bash
bex keyvalues list [flags]

List Bex Key Value instances in the active workspace.

Use --project to narrow results to a single project, --environment to narrow to a single environment, or both — when both are supplied, the environment is resolved within that project.

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow results to a single environment (ID or name, optional)
--help-hShow help for this command
--projectPROJECTNarrow results to environments in a project (ID or name, optional)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List all Key Value instances in the active workspace
  bex kv list
 
  # List all Key Value instances in a project
  bex kv list --project my-project
 
  # Filter by environment name
  bex kv list --environment production
 
  # Disambiguate an environment name by project
  bex kv list --project my-project --environment production
 
  # JSON output
  bex kv list --output json

keyvalues resume

Resume a suspended Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex keyvalues resume <keyValueID|keyValueName> [flags]

Resume a suspended Bex Key Value instance.

The positional argument accepts either a Key Value ID (red-...) or a name. If the name matches more than one instance, narrow the search with --environment <id|name>, or pass the Key Value ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Resume by ID
  bex kv resume red-abc123def456ghi789jkl0
 
  # Resume by name
  bex kv resume my-cache
 
  # Disambiguate a name that exists in multiple environments
  bex kv resume my-cache --environment production
 
  # JSON output
  bex kv resume red-abc123def456ghi789jkl0 --output json

keyvalues suspend

Suspend a Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex keyvalues suspend <keyValueID|keyValueName> [flags]

Suspend a Bex Key Value instance.

Without --confirm, this command previews what would be suspended and makes no changes. Pass --confirm to actually suspend the instance.

The positional argument accepts either a Key Value ID (red-...) or a name. If the name matches more than one instance, narrow the search with --environment <id|name>, or pass the Key Value ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Preview suspension (no changes made)
  bex kv suspend red-abc123def456ghi789jkl0
 
  # Suspend by ID
  bex kv suspend red-abc123def456ghi789jkl0 --confirm
 
  # Suspend by name
  bex kv suspend my-cache --confirm
 
  # Disambiguate a name that exists in multiple environments
  bex kv suspend my-cache --environment production --confirm
 
  # JSON output
  bex kv suspend red-abc123def456ghi789jkl0 --confirm --output json

keyvalues update

Update a Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex keyvalues update <keyValueID|keyValueName> [flags]
text
Update an existing Bex Key Value instance.
 
The positional argument is the target Key Value (ID red-... or name). At least
one mutating flag must be supplied. Use --name to rename the instance; the
positional argument always identifies the target and is never the new name.
 
Environment, project, workspace, and region are immutable. A Key Value instance
cannot be moved between them; the --environment flag is for name disambiguation
only.
 
Name lookup is scoped to your active workspace. If a name isn't found, switch
workspaces with 'bex workspace set <name|ID>' and try again, or pass the
Key Value ID instead (which works across workspaces). If a name matches more
than one instance, narrow the search with --environment <id|name>.
 
The --ip-allow-list flag replaces the server-side list; pass it once per entry.
To remove all allow-list entries, pass --clear-ip-allow-list. The two flags are
mutually exclusive.
FlagShortTypeDefaultDescription
--clear-ip-allow-listRemove all IP allow-list entries. Mutually exclusive with --ip-allow-list
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments
--help-hShow help for this command
--ip-allow-listCIDR_DESCRIPTIONReplace the IP allow-list with the supplied entries (format: cidr=<range>,description=<label>). Repeat the flag for multiple entries
--memory-policyMAXMEMORY_POLICYSet the eviction policy used when the instance runs out of memory.
--nameNAMERename the Key Value instance
--persistence-modePERSISTENCE_MODESet the on-disk persistence mode: journal_snapshot | snapshot | off (off loses data on restart)
--planPLANSet the plan to one of: free | 256mb | 1g | 5g | 10g | 20g | 40g. Custom enterprise plan names are also accepted
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Rename
  bex kv update red-abc123def456ghi789jkl0 --name new-cache-name
 
  # Change plan
  bex kv update my-cache --plan 1g
 
  # Replace the IP allow-list (entire list, not append)
  bex kv update my-cache \
    --ip-allow-list "cidr=203.0.113.5/32,description=office" \
    --ip-allow-list "cidr=10.0.0.0/8,description=internal"
 
  # Clear the IP allow-list
  bex kv update my-cache --clear-ip-allow-list
 
  # Disambiguate a name that exists in multiple environments
  bex kv update my-cache --environment production --memory-policy queue
 
  # Turn off on-disk persistence
  bex kv update my-cache --persistence-mode off
 
  # JSON output
  bex kv update red-abc123def456ghi789jkl0 --plan 5g --output json

kimi

Usage: claude [options] [command] [prompt]

Compatibility: Native Bex command ([bex])

text
Claude Code - starts an interactive session by default, use -p/--print for
non-interactive output
Arguments:
prompt                                Your prompt
Options:
--add-dir <directories...>            Additional directories to allow tool
access to
--agent <agent>                       Agent for the current session. Overrides
the 'agent' setting.
--agents <json>                       JSON object defining custom agents (e.g.
'{"reviewer": {"description": "Reviews
code", "prompt": "You are a code
reviewer"}}')
--allow-dangerously-skip-permissions  Enable bypassing all permission checks
as an option, without it being enabled
by default. Recommended only for
sandboxes with no internet access.
--allowedTools, --allowed-tools <tools...>
Comma or space-separated list of tool names to allow (e.g. "Bash(git *)
Edit")
--append-system-prompt <prompt>       Append a system prompt to the default
system prompt
--ax-screen-reader                    Render screen-reader friendly output
(flat text, no decorative borders or
animations).
--bg, --background                    Start the session as a background agent
and return immediately (manage with
`claude agents`)
--bare                                Minimal mode: skip hooks, LSP, plugin
sync, attribution, auto-memory,
background prefetches, keychain reads,
and CLAUDE.md auto-discovery. Sets
CLAUDE_CODE_SIMPLE=1. Anthropic auth is
strictly ANTHROPIC_API_KEY or
apiKeyHelper via --settings (OAuth and
keychain are never read). 3P providers
(Bedrock/Vertex/Foundry) use their own
credentials. Skills still resolve via
/skill-name. Explicitly provide context
via: --system-prompt[-file],
--append-system-prompt[-file], --add-dir
(CLAUDE.md dirs), --mcp-config,
--settings, --agents, --plugin-dir.
--betas <betas...>                    Beta headers to include in API requests
(API key users only)
--brief                               Enable SendUserMessage tool for
agent-to-user communication
--chrome                              Enable Claude in Chrome integration
-c, --continue                        Continue the most recent conversation in
the current directory
--dangerously-skip-permissions        Bypass all permission checks.
Recommended only for sandboxes with no
internet access.
-d, --debug [filter]                  Enable debug mode with optional category
filtering (e.g., "api,hooks" or
"!1p,!file")
--debug-file <path>                   Write debug logs to a specific file path
(implicitly enables debug mode)
--disable-slash-commands              Disable all skills
--disallowedTools, --disallowed-tools <tools...>
Comma or space-separated list of tool names to deny (e.g. "Bash(git *)
Edit")
--effort <level>                      Effort level for the current session
(low, medium, high, xhigh, max)
--exclude-dynamic-system-prompt-sections
Move per-machine sections (cwd, env info, memory paths, git status) from
the system prompt into the first user message. Improves cross-user
prompt-cache reuse. Only applies with the default system prompt (ignored
with --system-prompt). (default: false)
--fallback-model <model>              Enable automatic fallback to specified
model(s) when the default model is
overloaded or not available. Accepts a
comma-separated list to try each in
order. Re-tries the primary at the start
of each user turn. (only works with
--print)
--file <specs...>                     File resources to download at startup.
Format: file_id:relative_path (e.g.,
--file file_abc:doc.txt
file_def:img.png)
--fork-session                        When resuming, create a new session ID
instead of reusing the original (use
with --resume or --continue)
--from-pr [value]                     Resume a session linked to a PR by PR
number/URL, or open interactive picker
with optional search term
-h, --help                            Display help for command
--ide                                 Automatically connect to IDE on startup
if exactly one valid IDE is available
--include-hook-events                 Include all hook lifecycle events in the
output stream (only works with
--output-format=stream-json)
--include-partial-messages            Include partial message chunks as they
arrive (only works with --print and
--output-format=stream-json)
--input-format <format>               Input format (only works with --print):
"text" (default), or "stream-json"
(realtime streaming input) (choices:
"text", "stream-json")
--json-schema <schema>                JSON Schema for structured output
validation. Example:
{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}
--max-budget-usd <amount>             Maximum dollar amount to spend on API
calls (only works with --print)
--mcp-config <configs...>             Load MCP servers from JSON files or
strings (space-separated)
--mcp-debug                           [DEPRECATED. Use --debug instead] Enable
MCP debug mode (shows MCP server errors)
--model <model>                       Model for the current session. Provide
an alias for the latest model (e.g.
'fable', 'opus', or 'sonnet') or a
model's full name (e.g.
'claude-fable-5').
-n, --name <name>                     Set a display name for this session
(shown in the prompt box, /resume
picker, and terminal title)
--no-chrome                           Disable Claude in Chrome integration
--no-session-persistence              Disable session persistence - sessions
will not be saved to disk and cannot be
resumed (only works with --print)
--output-format <format>              Output format (only works with --print):
"text" (default), "json" (single
result), or "stream-json" (realtime
streaming) (choices: "text", "json",
"stream-json")
--permission-mode <mode>              Permission mode to use for the session
(choices: "acceptEdits", "auto",
"bypassPermissions", "default",
"dontAsk", "plan")
--plugin-dir <path>                   Load a plugin from a directory or .zip
for this session only (repeatable:
--plugin-dir A --plugin-dir B.zip)
(default: [])
--plugin-url <url>                    Fetch a plugin .zip from a URL for this
session only (repeatable: --plugin-url A
--plugin-url B) (default: [])
-p, --print                           Print response and exit (useful for
pipes). Note: The workspace trust dialog
is skipped when Claude is run in
non-interactive mode (via -p, or when
stdout is not a TTY, e.g. piped or
redirected output). Only use this in
directories you trust. Settings files
that fail validation are silently
ignored in this mode (no error dialog is
shown).
--prompt-suggestions [value]          Enable prompt suggestions. In print/SDK
mode, emits a prompt_suggestion message
after each turn with a predicted next
user prompt (choices: "true", "false",
"1", "0", "yes", "no", "on", "off",
preset: "true")
--remote-control [name]               Start an interactive session with Remote
Control enabled (optionally named)
--remote-control-session-name-prefix <prefix>
Prefix for auto-generated Remote Control session names (default: hostname)
--replay-user-messages                Re-emit user messages from stdin back on
stdout for acknowledgment (only works
with --input-format=stream-json and
--output-format=stream-json)
-r, --resume [value]                  Resume a conversation by session ID, or
open interactive picker with optional
search term
--safe-mode                           Start with all customizations
(CLAUDE.md, skills, plugins, hooks, MCP
servers, custom commands and agents,
output styles, workflows, custom themes,
keybindings, and more) disabled — useful
for troubleshooting a broken
configuration. Admin-managed (policy)
settings still apply. Auth, model
selection, built-in tools, and
permissions work normally. Sets
CLAUDE_CODE_SAFE_MODE=1.
--session-id <uuid>                   Use a specific session ID for the
conversation (must be a valid UUID)
--setting-sources <sources>           Comma-separated list of setting sources
to load (user, project, local).
--settings <file-or-json>             Path to a settings JSON file or a JSON
string to load additional settings from
--strict-mcp-config                   Only use MCP servers from --mcp-config,
ignoring all other MCP configurations
--system-prompt <prompt>              System prompt to use for the session
--tmux                                Create a tmux session for the worktree
(requires --worktree). Uses iTerm2
native panes when available; use
--tmux=classic for traditional tmux.
--tools <tools...>                    Specify the list of available tools from
the built-in set. Use "" to disable all
tools, "default" to use all tools, or
specify tool names (e.g.
"Bash,Edit,Read").
--verbose                             Override verbose mode setting from
config
-v, --version                         Output the version number
-w, --worktree [name]                 Create a new git worktree for this
session (optionally specify a name)
Commands:
agents [options]                      Manage background agents
auth                                  Manage authentication
auto-mode                             Inspect auto mode classifier
configuration
doctor                                Check the health of your Claude Code
auto-updater. Note: The workspace trust
dialog is skipped and stdio servers from
.mcp.json are spawned for health checks.
Only use this command in directories you
trust.
install [options] [target]            Install Claude Code native build. Use
[target] to specify version (stable,
latest, or specific version)
mcp                                   Configure and manage MCP servers
plugin|plugins                        Manage Claude Code plugins
project                               Manage Claude Code project state
setup-token                           Set up a long-lived authentication token
(requires Claude subscription)
ultrareview [options] [target]        Run a cloud-hosted multi-agent code
review of the current branch (or a PR
number / base branch) and print the
findings
update|upgrade                        Check for updates and install if
available

kv-cli

Open a session for a Bex Key Value instance

Compatibility: Verified working ([x])

bash
bex kv-cli [keyValueID|keyValueName] [flags]

Open a redis-cli or valkey-cli session for a Bex Key Value instance. This command only supports interactive mode.

You can optionally pass the key value ID or name as an argument. To pass arguments to redis-cli or valkey-cli, use: bex kv-cli [keyValueID|keyValueName] -- [redis-cli args]

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Open an interactive kv-cli session
  bex kv-cli kv-abc123
 
  # Pass through redis-cli arguments
  bex kv-cli kv-abc123 -- --scan

login

Log in to Bex using the Bex dashboard

Compatibility: Verified working ([x])

bash
bex login [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Authenticate with Bex
  bex login

logout

Log out of Bex

Compatibility: Verified working ([x])

bash
bex logout [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

logs

View logs for services and datastores

Compatibility: Verified working ([x])

bash
bex logs [flags]

View logs for services and datastores.

Use flags to filter logs by resource, instance, time, text, level, type, host, status code, method, or path. Unlike in the Bex dashboard, you can view logs for multiple resources at once.

In interactive mode you can update the filters and view logs in real time, or set --tail=true to stream new logs.

FlagShortTypeDefaultDescription
--directionLOG_DIRECTIONSet log query direction (backward or forward)
--endTIMEFilter logs at or before the specified end time
--help-hShow help for this command
--hostHOSTSFilter logs by comma-separated host values
--instanceINSTANCE_IDSFilter logs by comma-separated instance IDs
--levelLOG_LEVELFilter logs by comma-separated log levels
--limitCOUNT100Limit the number of logs returned
--methodHTTP_METHODFilter logs by comma-separated HTTP methods
--pathPATHSFilter logs by comma-separated request paths
--resources-rRESOURCE_IDSFilter logs by comma-separated resource IDs (Required in non-interactive mode)
--startTIMEFilter logs at or after the specified start time
--status-codeSTATUS_CODESFilter logs by comma-separated status codes
--tailStream new logs
--task-idTASK_IDSFilter logs by comma-separated task IDs
--task-run-idTASK_RUN_IDSFilter logs by comma-separated task run IDs
--textQUERY_TEXTFilter logs by comma-separated text values
--typeLOG_TYPEFilter logs by comma-separated log types
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Tail logs for a service
  bex logs --resources srv-abc123 --tail
 
  # Query logs in a time range
  bex logs --resources srv-abc123 --start 2026-03-01T00:00:00Z --end 2026-03-01T01:00:00Z
 
  # Output logs as JSON in non-interactive mode
  bex logs --resources srv-abc123 --output json

muse

Usage: claude [options] [command] [prompt]

Compatibility: Native Bex command ([bex])

text
Claude Code - starts an interactive session by default, use -p/--print for
non-interactive output
Arguments:
prompt                                Your prompt
Options:
--add-dir <directories...>            Additional directories to allow tool
access to
--agent <agent>                       Agent for the current session. Overrides
the 'agent' setting.
--agents <json>                       JSON object defining custom agents (e.g.
'{"reviewer": {"description": "Reviews
code", "prompt": "You are a code
reviewer"}}')
--allow-dangerously-skip-permissions  Enable bypassing all permission checks
as an option, without it being enabled
by default. Recommended only for
sandboxes with no internet access.
--allowedTools, --allowed-tools <tools...>
Comma or space-separated list of tool names to allow (e.g. "Bash(git *)
Edit")
--append-system-prompt <prompt>       Append a system prompt to the default
system prompt
--ax-screen-reader                    Render screen-reader friendly output
(flat text, no decorative borders or
animations).
--bg, --background                    Start the session as a background agent
and return immediately (manage with
`claude agents`)
--bare                                Minimal mode: skip hooks, LSP, plugin
sync, attribution, auto-memory,
background prefetches, keychain reads,
and CLAUDE.md auto-discovery. Sets
CLAUDE_CODE_SIMPLE=1. Anthropic auth is
strictly ANTHROPIC_API_KEY or
apiKeyHelper via --settings (OAuth and
keychain are never read). 3P providers
(Bedrock/Vertex/Foundry) use their own
credentials. Skills still resolve via
/skill-name. Explicitly provide context
via: --system-prompt[-file],
--append-system-prompt[-file], --add-dir
(CLAUDE.md dirs), --mcp-config,
--settings, --agents, --plugin-dir.
--betas <betas...>                    Beta headers to include in API requests
(API key users only)
--brief                               Enable SendUserMessage tool for
agent-to-user communication
--chrome                              Enable Claude in Chrome integration
-c, --continue                        Continue the most recent conversation in
the current directory
--dangerously-skip-permissions        Bypass all permission checks.
Recommended only for sandboxes with no
internet access.
-d, --debug [filter]                  Enable debug mode with optional category
filtering (e.g., "api,hooks" or
"!1p,!file")
--debug-file <path>                   Write debug logs to a specific file path
(implicitly enables debug mode)
--disable-slash-commands              Disable all skills
--disallowedTools, --disallowed-tools <tools...>
Comma or space-separated list of tool names to deny (e.g. "Bash(git *)
Edit")
--effort <level>                      Effort level for the current session
(low, medium, high, xhigh, max)
--exclude-dynamic-system-prompt-sections
Move per-machine sections (cwd, env info, memory paths, git status) from
the system prompt into the first user message. Improves cross-user
prompt-cache reuse. Only applies with the default system prompt (ignored
with --system-prompt). (default: false)
--fallback-model <model>              Enable automatic fallback to specified
model(s) when the default model is
overloaded or not available. Accepts a
comma-separated list to try each in
order. Re-tries the primary at the start
of each user turn. (only works with
--print)
--file <specs...>                     File resources to download at startup.
Format: file_id:relative_path (e.g.,
--file file_abc:doc.txt
file_def:img.png)
--fork-session                        When resuming, create a new session ID
instead of reusing the original (use
with --resume or --continue)
--from-pr [value]                     Resume a session linked to a PR by PR
number/URL, or open interactive picker
with optional search term
-h, --help                            Display help for command
--ide                                 Automatically connect to IDE on startup
if exactly one valid IDE is available
--include-hook-events                 Include all hook lifecycle events in the
output stream (only works with
--output-format=stream-json)
--include-partial-messages            Include partial message chunks as they
arrive (only works with --print and
--output-format=stream-json)
--input-format <format>               Input format (only works with --print):
"text" (default), or "stream-json"
(realtime streaming input) (choices:
"text", "stream-json")
--json-schema <schema>                JSON Schema for structured output
validation. Example:
{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}
--max-budget-usd <amount>             Maximum dollar amount to spend on API
calls (only works with --print)
--mcp-config <configs...>             Load MCP servers from JSON files or
strings (space-separated)
--mcp-debug                           [DEPRECATED. Use --debug instead] Enable
MCP debug mode (shows MCP server errors)
--model <model>                       Model for the current session. Provide
an alias for the latest model (e.g.
'fable', 'opus', or 'sonnet') or a
model's full name (e.g.
'claude-fable-5').
-n, --name <name>                     Set a display name for this session
(shown in the prompt box, /resume
picker, and terminal title)
--no-chrome                           Disable Claude in Chrome integration
--no-session-persistence              Disable session persistence - sessions
will not be saved to disk and cannot be
resumed (only works with --print)
--output-format <format>              Output format (only works with --print):
"text" (default), "json" (single
result), or "stream-json" (realtime
streaming) (choices: "text", "json",
"stream-json")
--permission-mode <mode>              Permission mode to use for the session
(choices: "acceptEdits", "auto",
"bypassPermissions", "default",
"dontAsk", "plan")
--plugin-dir <path>                   Load a plugin from a directory or .zip
for this session only (repeatable:
--plugin-dir A --plugin-dir B.zip)
(default: [])
--plugin-url <url>                    Fetch a plugin .zip from a URL for this
session only (repeatable: --plugin-url A
--plugin-url B) (default: [])
-p, --print                           Print response and exit (useful for
pipes). Note: The workspace trust dialog
is skipped when Claude is run in
non-interactive mode (via -p, or when
stdout is not a TTY, e.g. piped or
redirected output). Only use this in
directories you trust. Settings files
that fail validation are silently
ignored in this mode (no error dialog is
shown).
--prompt-suggestions [value]          Enable prompt suggestions. In print/SDK
mode, emits a prompt_suggestion message
after each turn with a predicted next
user prompt (choices: "true", "false",
"1", "0", "yes", "no", "on", "off",
preset: "true")
--remote-control [name]               Start an interactive session with Remote
Control enabled (optionally named)
--remote-control-session-name-prefix <prefix>
Prefix for auto-generated Remote Control session names (default: hostname)
--replay-user-messages                Re-emit user messages from stdin back on
stdout for acknowledgment (only works
with --input-format=stream-json and
--output-format=stream-json)
-r, --resume [value]                  Resume a conversation by session ID, or
open interactive picker with optional
search term
--safe-mode                           Start with all customizations
(CLAUDE.md, skills, plugins, hooks, MCP
servers, custom commands and agents,
output styles, workflows, custom themes,
keybindings, and more) disabled — useful
for troubleshooting a broken
configuration. Admin-managed (policy)
settings still apply. Auth, model
selection, built-in tools, and
permissions work normally. Sets
CLAUDE_CODE_SAFE_MODE=1.
--session-id <uuid>                   Use a specific session ID for the
conversation (must be a valid UUID)
--setting-sources <sources>           Comma-separated list of setting sources
to load (user, project, local).
--settings <file-or-json>             Path to a settings JSON file or a JSON
string to load additional settings from
--strict-mcp-config                   Only use MCP servers from --mcp-config,
ignoring all other MCP configurations
--system-prompt <prompt>              System prompt to use for the session
--tmux                                Create a tmux session for the worktree
(requires --worktree). Uses iTerm2
native panes when available; use
--tmux=classic for traditional tmux.
--tools <tools...>                    Specify the list of available tools from
the built-in set. Use "" to disable all
tools, "default" to use all tools, or
specify tool names (e.g.
"Bash,Edit,Read").
--verbose                             Override verbose mode setting from
config
-v, --version                         Output the version number
-w, --worktree [name]                 Create a new git worktree for this
session (optionally specify a name)
Commands:
agents [options]                      Manage background agents
auth                                  Manage authentication
auto-mode                             Inspect auto mode classifier
configuration
doctor                                Check the health of your Claude Code
auto-updater. Note: The workspace trust
dialog is skipped and stdio servers from
.mcp.json are spawned for health checks.
Only use this command in directories you
trust.
install [options] [target]            Install Claude Code native build. Use
[target] to specify version (stable,
latest, or specific version)
mcp                                   Configure and manage MCP servers
plugin|plugins                        Manage Claude Code plugins
project                               Manage Claude Code project state
setup-token                           Set up a long-lived authentication token
(requires Claude subscription)
ultrareview [options] [target]        Run a cloud-hosted multi-agent code
review of the current branch (or a PR
number / base branch) and print the
findings
update|upgrade                        Check for updates and install if
available

pgcli

Open a pgcli session to a Bex Postgres database instance

Compatibility: Verified working ([x])

bash
bex pgcli [postgresID|postgresName] [flags]

Open a pgcli session to a Bex Postgres database instance. This command only supports interactive mode.

You can optionally pass a database ID or name as an argument. To pass arguments to pgcli, use: bex pgcli [postgresID|postgresName] -- [pgcli args]

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Open an interactive pgcli session
  bex pgcli pg-abc123
 
  # Pass through pgcli arguments
  bex pgcli pg-abc123 -- --csv -q

postgres

Manage Bex Postgres databases (alias: pg)

Compatibility: Verified working ([x])

bash
bex postgres <subcommand> [flags]

Manage Bex Postgres databases.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

postgres create

Create a new Bex Postgres database

Compatibility: Verified working ([x])

bash
bex postgres create [flags]

Create a new Bex Postgres database.

In interactive mode, a wizard guides you through the core choices for the database. The wizard owns those prompted values. Flag-only settings, such as --disk-size-gb, --database-name, --database-user, --ip-allow-list, and --read-replica, are still included in the create request.

Use --confirm to skip the wizard and create immediately from flags and defaults. When --confirm is used with the default interactive output mode, output is printed as text. Use --output json, yaml, or text for non-interactive output.

FlagShortTypeDefaultDescription
--connection-poolCONNECTION_POOLnoneSet connection pool to 'none' or 'pgbouncer'
--database-nameDATABASE_NAMESet the Postgres database name (server generates one if unset)
--database-userDATABASE_USERSet the Postgres database user (server generates one if unset)
--datadog-api-keyDATADOG_API_KEYSet the Datadog API key for monitoring
--datadog-siteDATADOG_SITESet the Datadog region/site (e.g. US1, US3, EU). Server default is US1
--disk-autoscalingEnable disk autoscaling
--disk-size-gbDISK_SIZE_GB0Set the disk size in GB. Must be 1 or a multiple of 5. Server picks a sensible default based on compute size if unset
--environmentENVIRONMENTSet the environment to create the database in (ID or name, optional). Example: Production or evm-abc123def456
--help-hShow help for this command
--high-availabilityEnable high availability (available for plans with at least 1 CPU)
--ip-allow-listCIDR_DESCRIPTIONRestrict inbound traffic to specific IP ranges (format: cidr=<range>,description=<label>). Repeat the flag for multiple entries
--nameNAMESet the database name (generated if not provided)
--planPLANSet the plan to one of: free | 0.1c-256mb | 0.5c-1g | 1c-2g | 1c-4g | 2c-4g | 2c-8g | 2c-16g | 4c-16g | 4c-32g | 8c-32g | 8c-64g | 16c-64g | 16c-128g | 32c-128g | 32c-256g | 48c-192g | 48c-384g | 64c-256g | 64c-512g | 96c-384g | 96c-768g | 128c-512g | 128c-1024g. Custom enterprise plan names are also accepted
--projectPROJECTScope environment lookup to a project (ID or name, optional); if the project has exactly one environment it is used automatically
--read-replicaNAMECreate a read replica with the given name alongside the primary. Repeat the flag for multiple replicas
--regionREGIONSet the region: frankfurt | ohio | oregon | singapore | virginia (server picks if unset)
--versionVERSION0Set the Postgres major version. Defaults to 18
--workspaceWORKSPACESet the workspace to create the database in (ID or name). Defaults to the active workspace (set via 'bex workspace set')
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Launch the interactive wizard
  bex pg create
 
  # Create immediately with defaults and text output
  bex pg create --confirm
 
  # Create immediately with explicit values
  bex pg create --confirm --name analytics --plan 2c-8g --version 17 --region ohio
 
  # Include flag-only settings while using the wizard for prompted values
  bex pg create \
    --ip-allow-list "cidr=203.0.113.5/32,description=office" \
    --ip-allow-list "cidr=10.0.0.0/8,description=internal"
 
  # Machine-readable output
  bex pg create --output json

postgres delete

Delete a Bex Postgres database

Compatibility: Verified working ([x])

bash
bex postgres delete <postgresID|postgresName> [flags]

Delete a Bex Postgres database.

Without --confirm, this command previews what would be deleted and makes no changes. Pass --confirm to actually delete the database.

The positional argument accepts either a Postgres ID (dpg-...) or a name. If the name matches more than one database, narrow the search with --project <id|name>, --environment <id|name>, or pass the Postgres ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments
--help-hShow help for this command
--projectPROJECTNarrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Preview deletion (no changes made)
  bex pg delete dpg-abc123def456ghi789jkl0
 
  # Delete by ID
  bex pg delete dpg-abc123def456ghi789jkl0 --confirm
 
  # Delete by name
  bex pg delete my-db --confirm
 
  # Disambiguate a name that exists in multiple environments
  bex pg delete my-db --environment production --confirm
 
  # Disambiguate a name that exists in multiple projects
  bex pg delete my-db --project analytics --confirm
 
  # JSON output
  bex pg delete dpg-abc123def456ghi789jkl0 --confirm --output json

postgres get

Get details of a Bex Postgres database

Compatibility: Verified working ([x])

bash
bex postgres get <postgresID|postgresName> [flags]

Get details and connection info for a Bex Postgres database.

The positional argument accepts either a Postgres ID (dpg-...) or a name. If the name matches more than one database, narrow the search with --project <id|name>, --environment <id|name>, or pass the Postgres ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments
--help-hShow help for this command
--include-sensitive-connection-infoInclude connection strings and credentials in the output
--projectPROJECTNarrow lookup to a project (ID or name, optional) within the active workspace
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Get by ID
  bex pg get dpg-abc123def456ghi789jkl0
 
  # Get by name
  bex pg get my-db
 
  # Include connection strings (contains credentials)
  bex pg get my-db --include-sensitive-connection-info
 
  # Disambiguate by project
  bex pg get my-db --project my-project
 
  # Disambiguate a name that exists in multiple environments
  bex pg get my-db --environment production
 
  # JSON output
  bex pg get dpg-abc123def456ghi789jkl0 --output json

postgres list

List Bex Postgres databases

Compatibility: Verified working ([x])

bash
bex postgres list [flags]

List Bex Postgres databases in the active workspace.

Use --project to narrow results to a single project, --environment to narrow to a single environment, or both — when both are supplied, the environment is resolved within that project.

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow results to a single environment (ID or name, optional)
--help-hShow help for this command
--projectPROJECTNarrow results to environments in a project (ID or name, optional)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List all Postgres databases in the active workspace
  bex pg list
 
  # List all Postgres databases in a project
  bex pg list --project my-project
 
  # Filter by environment name
  bex pg list --environment production
 
  # Disambiguate an environment name by project
  bex pg list --project my-project --environment production
 
  # JSON output
  bex pg list --output json

postgres resume

Resume a suspended Bex Postgres database

Compatibility: Verified working ([x])

bash
bex postgres resume <postgresID|postgresName> [flags]

Resume a suspended Bex Postgres database.

The positional argument accepts either a Postgres ID (dpg-...) or a name. If the name matches more than one database, narrow the search with --project <id|name>, --environment <id|name>, or pass the Postgres ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments
--help-hShow help for this command
--projectPROJECTNarrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Resume by ID
  bex pg resume dpg-abc123def456ghi789jkl0
 
  # Resume by name
  bex pg resume my-db
 
  # Disambiguate a name that exists in multiple environments
  bex pg resume my-db --environment production
 
  # Disambiguate a name that exists in multiple projects
  bex pg resume my-db --project analytics
 
  # JSON output
  bex pg resume dpg-abc123def456ghi789jkl0 --output json

postgres suspend

Suspend a Bex Postgres database

Compatibility: Verified working ([x])

bash
bex postgres suspend <postgresID|postgresName> [flags]

Suspend a Bex Postgres database.

Without --confirm, this command previews what would be suspended and makes no changes. Pass --confirm to actually suspend the database.

The positional argument accepts either a Postgres ID (dpg-...) or a name. If the name matches more than one database, narrow the search with --project <id|name>, --environment <id|name>, or pass the Postgres ID directly.

Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'bex workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).

FlagShortTypeDefaultDescription
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments
--help-hShow help for this command
--projectPROJECTNarrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Preview suspension (no changes made)
  bex pg suspend dpg-abc123def456ghi789jkl0
 
  # Suspend by ID
  bex pg suspend dpg-abc123def456ghi789jkl0 --confirm
 
  # Suspend by name
  bex pg suspend my-db --confirm
 
  # Disambiguate a name that exists in multiple environments
  bex pg suspend my-db --environment production --confirm
 
  # Disambiguate a name that exists in multiple projects
  bex pg suspend my-db --project analytics --confirm
 
  # JSON output
  bex pg suspend dpg-abc123def456ghi789jkl0 --confirm --output json

postgres update

Update a Bex Postgres database

Compatibility: Verified working ([x])

bash
bex postgres update <postgresID|postgresName> [flags]
text
Update an existing Bex Postgres database.
 
The positional argument is the target database (ID dpg-... or name). At least
one mutating flag must be supplied. Use --name to rename the database; the
positional argument always identifies the target and is never the new name.
 
Environment, project, workspace, and region are immutable. A database cannot be
moved between them; the --project and --environment flags are for name
disambiguation only.
 
Only the fields you pass are changed; everything else is left untouched.
 
Name lookup is scoped to your active workspace. If a name isn't found, switch
workspaces with 'bex workspace set <name|ID>' and try again, or pass the
Postgres ID instead (which works across workspaces). If a name matches more
than one database, narrow the search with --project <id|name> or
--environment <id|name>.
 
The --ip-allow-list flag replaces the server-side list; pass it once per entry.
To remove all allow-list entries, pass --clear-ip-allow-list. The two flags are
mutually exclusive.
FlagShortTypeDefaultDescription
--clear-ip-allow-listRemove all IP allow-list entries. Mutually exclusive with --ip-allow-list
--connection-poolCONNECTION_POOLnoneSet connection pool to 'none' or 'pgbouncer'
--datadog-api-keyDATADOG_API_KEYSet the Datadog API key for monitoring. Pass an empty string to remove
--datadog-siteDATADOG_SITESet the Datadog region/site (e.g. US1, US3, EU)
--disk-autoscalingEnable disk autoscaling. Pass --disk-autoscaling=false to disable
--disk-size-gbDISK_SIZE_GB0Set the disk size in GB. Must be 1 or a multiple of 5
--environmentENVIRONMENTNarrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments
--help-hShow help for this command
--high-availabilityEnable high availability (available for plans with at least 1 CPU). Pass --high-availability=false to disable
--ip-allow-listCIDR_DESCRIPTIONReplace the IP allow-list with the supplied entries (format: cidr=<range>,description=<label>). Repeat the flag for multiple entries
--nameNAMERename the database
--planPLANSet the plan to one of: free | 0.1c-256mb | 0.5c-1g | 1c-2g | 1c-4g | 2c-4g | 2c-8g | 2c-16g | 4c-16g | 4c-32g | 8c-32g | 8c-64g | 16c-64g | 16c-128g | 32c-128g | 32c-256g | 48c-192g | 48c-384g | 64c-256g | 64c-512g | 96c-384g | 96c-768g | 128c-512g | 128c-1024g. Custom enterprise plan names are also accepted
--projectPROJECTNarrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Rename
  bex pg update dpg-abc123def456ghi789jkl0 --name application_db
 
  # Change plan
  bex pg update my-db --plan 1c-4g
 
  # Grow the disk and enable autoscaling
  bex pg update my-db --disk-size-gb 50 --disk-autoscaling
 
  # Replace the IP allow-list (entire list, not append)
  bex pg update my-db \
    --ip-allow-list "cidr=203.0.113.5/32,description=office" \
    --ip-allow-list "cidr=10.0.0.0/8,description=internal"
 
  # Clear the IP allow-list
  bex pg update my-db --clear-ip-allow-list
 
  # Disambiguate a name that exists in multiple environments
  bex pg update my-db --environment production --plan 2c-8g
 
  # JSON output
  bex pg update dpg-abc123def456ghi789jkl0 --plan 1c-4g --output json

projects

List projects in the active workspace

Compatibility: Verified working ([x])

bash
bex projects [flags]

Browse projects in the active workspace. In interactive mode, select a project to view its environments.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List projects in JSON
  bex projects --output json

psql

Open a psql session to a Bex Postgres database

Compatibility: Verified working ([x])

bash
bex psql [postgresID|postgresName] [flags]

Open a psql session to a Bex Postgres database.

Optionally pass the database ID or name as an argument. To pass arguments to psql, use: bex psql [postgresID|postgresName] -- [psql args]

For non-interactive usage, use the --command flag: bex psql [postgresID|postgresName] -c "SELECT * FROM users;" -o text

Additional psql flags can be passed after --: bex psql [postgresID|postgresName] -c "SELECT 1;" -o json -- --csv -q

FlagShortTypeDefaultDescription
--command-cSQLExecute a SQL command in non-interactive mode
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Open an interactive psql session
  bex psql pg-abc123
 
  # Execute a SQL command in non-interactive mode
  bex psql pg-abc123 --command "SELECT * FROM users;" --output text
 
  # Pass through psql arguments
  bex psql pg-abc123 -- --csv -q

restart

Restart a service by resource ID

Compatibility: Verified working ([x])

bash
bex restart <resourceID> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Restart a service
  bex restart srv-abc123
 
  # Restart a service without confirmation prompts
  bex restart srv-abc123 --confirm

services

List services and datastores for the active workspace

Compatibility: Verified working ([x])

bash
bex services [subcommand] [flags]

Lists all services and datastores for the active workspace. In interactive mode, you can view logs, restart services, trigger deploys, SSH into instances, and connect to Bex Postgres databases and Bex Key Value instances.

FlagShortTypeDefaultDescription
--environment-ids-eENV_IDSFilter services by comma-separated environment IDs
--help-hShow help for this command
--include-previewsInclude preview environments
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List all services
  bex services
 
  # Output as JSON
  bex services --output json
 
  # Filter by environment
  bex services -e env-abc123
 
  # Include preview environments
  bex services --include-previews
 
  # Combine filters
  bex services -e env-abc123,env-def456 --include-previews --output json

services create

Create a new service or clone an existing one

Compatibility: Verified working ([x])

bash
bex services create [flags]

Create a new service on Bex. This command only runs in non-interactive modes. Provide configuration options with flags.

FlagShortTypeDefaultDescription
--auto-deploytrueEnable auto-deploy
--branchBRANCHSet the Git branch
--build-commandCOMMANDSet the build command
--build-filter-ignored-pathPATHSSet build filter ignored paths (can be specified multiple times)
--build-filter-pathPATHSSet build filter paths (can be specified multiple times)
--cron-commandCOMMANDSet the cron command
--cron-scheduleSCHEDULESet the cron schedule
--env-varKEY_VALUESet environment variables in KEY=VALUE format (can be specified multiple times)
--environment-idENVIRONMENT_IDSet the environment ID
--fromSERVICE_IDClone configuration from an existing service ID or name and override cloned values with other flags
--health-check-pathPATHSet the health check path
--help-hShow help for this command
--imageIMAGE_URLSet the Docker image URL
--ip-allow-listCIDR_DESCRIPTIONSet IP allow list entries in cidr=..., description=... format (can be specified multiple times)
--maintenance-modeEnable maintenance mode
--maintenance-mode-uriURISet the maintenance mode URI
--max-shutdown-delaySECONDS0Set max shutdown delay in seconds
--nameNAMESet the service name
--num-instancesCOUNT0Set the number of instances
--planPLANSet the service plan
--pre-deploy-commandCOMMANDSet the pre-deploy command
--previewsPREVIEWSSet preview generation mode
--publish-directoryPATHSet the publish directory
--regionREGIONSet the deployment region
--registry-credentialCREDENTIALSet the registry credential
--repoREPO_URLSet the Git repository URL
--root-directoryPATHSet the root directory
--runtimeRUNTIMESet the runtime environment
--secret-fileNAME_PATHSet secret files in NAME:LOCAL_PATH format (can be specified multiple times)
--start-commandCOMMANDSet the start command
--typeTYPESet the service type
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Create a service from repository configuration
  bex services create --name my-api --type web_service --repo https://github.com/org/repo --runtime node --build-command "npm install" --start-command "npm start" --output json
 
  # Clone configuration from an existing service
  bex services create --from srv-abc123 --name my-api-clone --output json

services delete

Delete a service

Compatibility: Verified working ([x])

bash
bex services delete <serviceID|serviceName> [flags]

Delete a service on Bex.

Without --confirm, this command previews what would be deleted and makes no changes. Pass --confirm to actually delete the service.

The positional argument accepts a service ID (including srv- or crn- IDs) or a name. Name lookup is scoped to your active workspace. If the name matches more than one service, pass the service ID directly.

This command only runs non-interactively. If --output interactive is requested, it falls back to text output.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Preview deletion (no changes made)
  bex services delete srv-abc123def456ghi789jkl0
 
  # Delete by ID
  bex services delete srv-abc123def456ghi789jkl0 --confirm
 
  # Delete by name
  bex services delete my-api --confirm
 
  # JSON output
  bex services delete srv-abc123def456ghi789jkl0 --confirm --output json

services instances

List instances for a service

Compatibility: Verified working ([x])

bash
bex services instances [serviceID] [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List instances for a service
  bex services instances srv-abc123
 
  # Browse instances interactively
  bex services instances

services update

Update configuration for an existing service

Compatibility: Verified working ([x])

bash
bex services update <service> [flags]

Update a service on Bex. This command only runs in non-interactive modes.

Provide configuration updates with flags.

FlagShortTypeDefaultDescription
--auto-deployEnable auto-deploy
--branchstringGit branch
--build-commandstringBuild command
--build-filter-ignored-pathstringArrayBuild filter ignored path (can be specified multiple times)
--build-filter-pathstringArrayBuild filter path (can be specified multiple times)
--cron-commandstringCron command
--cron-schedulestringCron schedule
--health-check-pathstringHealth check path
--help-hShow help for this command
--imagestringDocker image URL
--ip-allow-liststringArrayIP allow list entry in cidr=..., description=... format (can be specified multiple times)
--maintenance-modeEnable maintenance mode
--maintenance-mode-uristringMaintenance mode URI
--max-shutdown-delayint0Max shutdown delay in seconds
--namestringService name
--planstringService plan
--pre-deploy-commandstringPre-deploy command
--previewsenumPreview generation mode
--publish-directorystringPublish directory
--registry-credentialstringRegistry credential
--repostringGit repository URL
--root-directorystringRoot directory
--runtimeenumRuntime environment
--start-commandstringStart command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Rename a service
  bex services update my-service --name my-new-name --output json
 
  # Change a service plan
  bex services update srv-abc123 --plan 2c-4g --output json

skills

Manage Bex agent skills for AI coding tools

Compatibility: Works with a documented limitation ([~])

Limitation

manage Render agent skills for AI coding tools (client-side; no bex dependency)

bash
bex skills [subcommand] [flags]

Install and manage Bex agent skills for AI coding tools such as Claude Code, Codex, OpenCode, and Cursor. Skills add deployment, debugging, and monitoring capabilities to your AI coding assistant.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

skills install

Install Bex skills to AI coding tools

Compatibility: Verified working ([x])

bash
bex skills install [flags]
text
Install Bex agent skills from https://github.com/render-oss/skills to detected
AI coding tools.
 
Supported tools: Claude Code, Codex, OpenCode, Cursor.
 
Skills can be installed at two scopes:
  - user:    Install to ~/.{tool}/skills/ (default, current user only)
  - project: Install to ./.{tool}/skills/ (committed to Git, all collaborators)
 
By default an interactive prompt lets you pick scope, tools, and skills. Use
--scope, --tool, and --skill flags to skip the prompts (useful for CI).
FlagShortTypeDefaultDescription
--dry-runShow what would be installed without making changes
--help-hShow help for this command
--scopeSCOPESet installation scope to user or project (defaults to user)
--skillSKILLInstall specific skills only (use --skill multiple times)
--toolTOOLInstall skills to a specific tool only (claude, codex, opencode, or cursor)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Install skills interactively
  bex skills install
 
  # Install for a specific tool and scope
  bex skills install --tool cursor --scope project
 
  # Preview install changes
  bex skills install --dry-run

skills list

List installed Bex skills and detected tools

Compatibility: Not working / not verified ([ ])

Not working on Bex

upstream CLI panic (nil-pointer) in every non-TTY output mode

bash
bex skills list [flags]

List installed Bex skills and the AI tools they've been installed in. This reads from local state only, so the command doesn't require network access.

Use --scope to filter by installation scope (user or project).

FlagShortTypeDefaultDescription
--help-hShow help for this command
--scopeSCOPEFilter skills by installation scope (user or project)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List all installed skills
  bex skills list
 
  # List project-scoped skills only
  bex skills list --scope project

skills remove

Remove installed Bex skills from AI coding tools

Compatibility: Verified working ([x])

bash
bex skills remove [flags]

Remove previously installed Bex skills from detected AI coding tools.

By default an interactive prompt lets you pick which skills to remove. Use --skill and --all flags to skip the prompts.

Use --scope to remove from a specific scope (user or project).

FlagShortTypeDefaultDescription
--allRemove all installed Bex skills
--help-hShow help for this command
--scopeSCOPERemove skills from the specified scope (user or project)
--skillSKILLRemove specific skills only (use --skill multiple times)
--toolTOOLRemove skills from a specific tool only (claude, codex, opencode, or cursor)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Remove skills interactively
  bex skills remove
 
  # Remove specific skills
  bex skills remove --skill render-deploy --skill render-debug
 
  # Remove all project-scoped skills
  bex skills remove --all --scope project

skills update

Update previously installed Bex skills

Compatibility: Not working / not verified ([ ])

Not working on Bex

same upstream non-TTY panic; no --dry-run

bash
bex skills update [flags]

Reinstall Bex skills using the tool and skill selections saved by a previous "render skills install" run.

This fetches the latest version of each selected skill from the skills repository, compares with installed versions, and updates any that have changed.

Use --scope to update skills at a specific scope (user or project).

FlagShortTypeDefaultDescription
--forceReinstall all skills even if already up to date
--help-hShow help for this command
--scopeSCOPEUpdate skills at the specified scope (user or project)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Update installed skills
  bex skills update
 
  # Force reinstall all skills
  bex skills update --force
 
  # Update project-scoped skills
  bex skills update --scope project

ssh

SSH into a service instance

Compatibility: Verified working ([x])

bash
bex ssh [serviceID|serviceName|instanceID] [flags]

SSH into a service instance. This command only supports interactive mode.

You can specify the service ID, service name, or specific instance ID as an argument. To pass arguments to ssh, use: bex ssh [serviceID|serviceName|instanceID] -- [ssh args]

FlagShortTypeDefaultDescription
--ephemeral-eConnect to an ephemeral instance
--help-hShow help for this command
--planstringPlan name to use for the ephemeral instance (e.g. 0.5c-512mb, 1c-2g, 2c-4g). Only valid with --ephemeral
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Open an SSH session for a service
  bex ssh srv-abc123
 
  # Connect to an ephemeral instance
  bex ssh srv-abc123 --ephemeral
 
  # Connect to an ephemeral instance with a specific plan
  bex ssh srv-abc123 --ephemeral --plan 1c-2g
 
  # Pass through ssh arguments
  bex ssh srv-abc123 -- -L 5432:localhost:5432

upgrade

Update bex to the latest release

Compatibility: Native Bex command ([bex])

bash
bex upgrade [flags]

Downloads the newest bex-cli release, verifies its cosign signature and checksum, and replaces the running binary in place. Installs managed by a package manager (e.g. Homebrew) are left untouched with an upgrade hint.

FlagShortTypeDefaultDescription
--check-nreport whether an upgrade is available without installing it
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

whoami

Display information about the current user

Compatibility: Verified working ([x])

bash
bex whoami [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Show the currently authenticated user
  bex whoami

workflows

Manage Bex Workflows in your workspace

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

Render Workflows (deliberate bex non-goal; GET /v1/workflows is a 200 [] stub, everything else 404/405/TTY-blocked)

bash
bex workflows <subcommand> [flags]

Manage workflow services for the active workspace. List workflows, browse versions and tasks, start task runs, and trigger releases.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List workflows
  bex workflows list
 
  # Start local workflow development server
  bex workflows dev -- "python main.py"

workflows cancel

Cancel a workflow task run (shortcut for tasks runs cancel)

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

shortcuts; 404 / TTY-blocked

bash
bex workflows cancel <taskRunID> [flags]

Cancel an in-progress task run.

Use --local to cancel a task run in the local workflow development server.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--localRun against the local workflow development server
--portPORT8120Set the port of the local task server
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Cancel a remote task run
  bex workflows cancel trn-abc123
 
  # Cancel a task run in the local dev server
  bex workflows cancel --local trn-xyz789

workflows create

Create a new workflow service

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

405 Method Not Allowed

bash
bex workflows create [flags]

Create a new workflow service on Bex.

In interactive mode, a form guides you through the required fields. In non-interactive mode, provide all required config with flags.

Environment variables (non-interactive only for now): • Pass individual vars with --env-var KEY=VALUE (repeatable). • Load from one or more .env files with --env-file PATH (repeatable). Every listed file must exist. • Inline --env-var values override values from --env-file.

FlagShortTypeDefaultDescription
--auto-deploy-triggerenumAutodeploy behavior (commit, off, checksPass; default: commit)
--branchstringGit branch (Optional)
--build-commandstringBuild command. Required in non-interactive mode
--env-filePATHPath to an env file to load. Repeat to load multiple files (later files override earlier ones). Every listed file must exist
--env-varKEY_VALUESet environment variables in KEY=VALUE format (can be specified multiple times). Inline values override values loaded from --env-file
--help-hShow help for this command
--namestringWorkflow name. Required in non-interactive mode
--regionenumoregonDeployment region
--repostringGit repository URL, or a local directory path (e.g. '.') to resolve via the repo's origin remote. Required in non-interactive mode
--root-directorystringRoot directory in the repository (Optional)
--run-commandstringCommand to run the workflow. Required in non-interactive mode
--runtimeenumRuntime (node, python, go, ruby, elixir). Required in non-interactive mode
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
bex workflows create
  bex workflows create --name my-workflow --repo https://github.com/org/repo --build-command "npm install" --runtime node --run-command "npm start" --region oregon -o json
  bex workflows create --repo . --name my-workflow --build-command "npm install" --runtime node --run-command "npm start"
  bex workflows create --repo . --name my-workflow --build-command "pip install -r requirements.txt" --runtime python --run-command ".venv/bin/python main.py" --env-file .env.production --env-var LOG_LEVEL=debug

workflows dev

Start a workflow service in development mode

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

client-side dev server, no bex call

bash
bex workflows dev -- <command to start a workflow service> [flags]
text
Start a workflow service in development mode for local testing.
Required input: -- <command to start a workflow service>
 
This command runs your workflow service locally on port 8120, allowing you to
list and run tasks without deploying to Bex. Task runs and their logs are stored
in memory, so you can query them after tasks complete.
 
The command will spawn a new subprocess with your specified command whenever it
needs to run a task or list the defined tasks.
 
To interact with the local task server:
  • Use the --local flag with other task commands (e.g., 'render workflows tasks list --local')
  • Or set RENDER_USE_LOCAL_DEV=true when using the workflow client SDK
 
To use a different port:
  • Specify --port when starting the dev server
  • Then use --port with other task commands, or set RENDER_LOCAL_DEV_URL in the SDK
 
Environment variables:
  • A .env file in the current directory is loaded automatically if present
  • Use --env-file to load one or more specific files (later files override earlier ones)
  • Loaded values override variables inherited from the parent shell
FlagShortTypeDefaultDescription
--debugPrint detailed workflow task execution events
--env-filePATH[.env]Path to an env file to load into the workflow subprocess. Repeat to load multiple files (later files override earlier ones)
--help-hShow help for this command
--portPORT8120Set the port of the local task server
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Start local workflow development server
  bex workflows dev -- "python main.py"
 
  # Start local workflow development server on a custom port
  bex workflows dev --port 9000 -- "npm start"
 
  # Load environment variables from custom files
  bex workflows dev --env-file .env --env-file .env.local -- "python main.py"
 
  # List local tasks from another terminal
  bex workflows tasks list --local

workflows init

Scaffold a new Bex Workflows project

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

client-side scaffolding works, no bex call

bash
bex workflows init [flags]

Scaffold a new Bex Workflows project with example tasks.

Creates a working example project with task definitions, dependencies, and a README with instructions for local development and Client SDK integration.

In interactive mode you'll be prompted to select a language, template, output directory, and optional features. Use --confirm to skip all prompts and accept defaults, or pass individual flags to skip specific prompts.

With --confirm or non-interactive output (-o text/json/yaml), dependencies are installed and Git is initialized by default. Pass --install-deps=false or --git=false to opt out.

FlagShortTypeDefaultDescription
--dirstring./workflows-demoOutput directory
--gitInitialize a Git repository (default true with --confirm)
--help-hShow help for this command
--install-agent-skillInstall the Workflows agent skill for detected AI coding tools
--install-depsInstall dependencies after scaffolding (default true with --confirm)
--languagestringLanguage for the Bex Workflows project (python, node)
--templatestringTemplate to scaffold (defaults to the repo's default template)
--confirmSkip all confirmation prompts
bash
# Scaffold with default settings
  bex workflows init
 
  # Skip prompts and use Python
  bex workflows init --confirm --language python
 
  # Skip prompts and disable Git initialization
  bex workflows init --confirm --language python --git=false
 
  # Customize output directory and enable optional features
  bex workflows init --language python --dir my-project --install-deps --git
 
  # Use Node.js with a custom directory
  bex workflows init --language node --dir my-project

workflows list

List workflow services in your workspace

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

returns empty from the stub (exit 0)

bash
bex workflows list [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List workflows in the active workspace
  bex workflows list

workflows start

Start a workflow task run (shortcut for tasks runs start)

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

shortcuts; 404 / TTY-blocked

bash
bex workflows start [taskSlug] [flags]

Start a task with the provided input. In non-interactive mode, provide input with --input or --input-file.

You can specify the task by its workflow slug and task name (e.g., my-workflow/my-task), either as a positional argument or with --task.

Input Format: The input should be a JSON array where each element is an argument to the task. For example, if your task takes two arguments, provide: ["arg1", "arg2"]

You can provide input via: • --input with inline JSON • --input-file with a path to a JSON file

In interactive mode, you will be prompted to select the task and provide the input.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--inputJSONProvide task input as a JSON array
--input-filePATHRead task input from a JSON file path
--localRun against the local workflow development server
--portPORT8120Set the port of the local task server
--taskTASKID or slug of the task to run (alternative to the positional argument)
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Start a task run by task slug
  bex workflows start my-workflow/my-task --input='["arg1"]'
 
  # Start a task run with --task
  bex workflows start --task tsk-1234 --input='["arg1", "arg2"]'
 
  # Start a task run with input from a file
  bex workflows start my-task --input-file=input.json
 
  # Start against the local workflow development server
  bex workflows start my-task --local --input='["test"]'

workflows tasks

List tasks and manage their runs

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks <subcommand> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--localRun against the local workflow development server
--portPORT8120Set the port of the local task server
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List tasks in a workflow version
  bex workflows tasks list wfv-1234
 
  # Start a task run
  bex workflows tasks runs start --task my-task --input='["arg1"]'
 
  # List task runs for a task
  bex workflows tasks runs list --task my-task

workflows tasks list

List tasks in a workflow version

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks list [workflowVersionID] [flags]

List all tasks defined in a workflow version.

Tasks are user-defined functions registered with the Bex Workflows SDK. Each time you release a workflow service, Render creates a new workflow version and registers all tasks it finds in that version.

In interactive mode, you will be prompted to select a workflow if not provided.

Local Development: When using the --local flag, you don't need to provide a workflow version ID. Instead, the command connects to your local dev server (default port 8120) to list tasks from your running workflow service. Start the dev server first with: bex workflows dev -- "<your command>"

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--localRun against the local workflow development server
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--portPORT8120Set the port of the local task server
bash
# List tasks for a workflow version
  bex workflows tasks list wfv-1234
 
  # List tasks from local workflow development server
  bex workflows tasks list --local

workflows tasks runs

Start, list, and inspect task runs

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks runs <subcommand> [flags]

Manage runs of workflow tasks.

A task run represents a single execution of a task with specific input parameters. Use these commands to start new runs, view task run history, inspect details, and cancel in-progress runs.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--localRun against the local workflow development server
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--portPORT8120Set the port of the local task server
bash
# Start a task run
  bex workflows tasks runs start --task my-task --input='["arg1"]'
 
  # List task runs for a task
  bex workflows tasks runs list --task my-task
 
  # Show details for a task run
  bex workflows tasks runs show trn-1234
 
  # Cancel a task run
  bex workflows tasks runs cancel trn-1234

workflows tasks runs cancel

Cancel a running task run

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks runs cancel [taskRunID] [flags]

Cancel an in-progress task run.

Use --local to cancel a task run in the local workflow development server.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--localRun against the local workflow development server
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--portPORT8120Set the port of the local task server
bash
# Cancel a remote task run
  bex workflows tasks runs cancel trn-abc123
 
  # Use the top-level shortcut
  bex workflows cancel trn-abc123
 
  # Cancel a task run in the local dev server
  bex workflows tasks runs cancel --local trn-xyz789

workflows tasks runs list

List all execution runs for a specific task

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks runs list [taskID] [flags]

List all execution runs for a specific task.

A task run represents a single execution of a task with specific input parameters. This command shows the history of all runs for a given task.

You can specify the task by its workflow slug and task name (e.g., my-workflow/my-task), either as a positional argument or with --task.

In interactive mode, you will be prompted to select a task if not provided.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--taskTASKID or slug of the task whose runs to list (alternative to the positional argument)
--confirmSkip all confirmation prompts
--localRun against the local workflow development server
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--portPORT8120Set the port of the local task server
bash
# List task runs by task ID
  bex workflows tasks runs list --task tsk-1234
 
  # List task runs by task slug
  bex workflows tasks runs list --task my-workflow/my-task
 
  # List task runs by passing the task as a positional argument
  bex workflows tasks runs list my-workflow/my-task
 
  # List task runs from local workflow development server
  bex workflows tasks runs list --local --task my-task

workflows tasks runs show

Show detailed information about a task run

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks runs show [taskRunID] [flags]

Display detailed information about a specific task run execution.

This command shows comprehensive information about a task run, including: • Task run ID and status • Input parameters provided • Output or error result • Start and completion timestamps

The task run ID is returned when you execute a task with: bex workflows tasks runs start

In interactive mode, you will be prompted to select a task run if not provided.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--localRun against the local workflow development server
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--portPORT8120Set the port of the local task server
bash
# Show details for a task run
  bex workflows tasks runs show trn-1234
 
  # Show details from local workflow development server
  bex workflows tasks runs show --local trn-5678

workflows tasks runs start

Start a task run with the provided input

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

tasks list / tasks runs \{start,list,show,cancel\} all 404 / TTY-blocked

bash
bex workflows tasks runs start [taskSlug] [flags]

Start a task with the provided input. In non-interactive mode, provide input with --input or --input-file.

You can specify the task by its workflow slug and task name (e.g., my-workflow/my-task), either as a positional argument or with --task.

Input Format: The input should be a JSON array where each element is an argument to the task. For example, if your task takes two arguments, provide: ["arg1", "arg2"]

You can provide input via: • --input with inline JSON • --input-file with a path to a JSON file

In interactive mode, you will be prompted to select the task and provide the input.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--inputJSONProvide task input as a JSON array
--input-filePATHRead task input from a JSON file path
--taskTASKID or slug of the task to run (alternative to the positional argument)
--confirmSkip all confirmation prompts
--localRun against the local workflow development server
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
--portPORT8120Set the port of the local task server
bash
# Start a task run with inline JSON input
  bex workflows tasks runs start --task tsk-1234 --input='["arg1", "arg2"]'
 
  # Start a task run by passing the task as a positional argument
  bex workflows tasks runs start my-workflow/my-task --input='["arg1"]'
 
  # Start a task run with input from a file
  bex workflows tasks runs start --task my-task --input-file=input.json
 
  # Start a task run against local workflow development server
  bex workflows tasks runs start --task my-task --local --input='["test"]'

workflows versions

List and release workflow versions

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

versions list / versions release 404

bash
bex workflows versions <subcommand> [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List versions for a workflow
  bex workflows versions list wf-abc123
 
  # Release a new workflow version
  bex workflows versions release wf-abc123

workflows versions list

List versions of a workflow

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

versions list / versions release 404

bash
bex workflows versions list [workflowID] [flags]

List all versions of a workflow service.

Each time you release a workflow service, Render creates a new workflow version. A version represents a specific snapshot of your workflow service code and its registered tasks at the time of release.

This command displays all versions for a workflow, showing: • Version ID • Creation timestamp • Associated tasks

In interactive mode, you will be prompted to select a workflow if not provided.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List versions by workflow ID
  bex workflows versions list wf-1234
 
  # List versions by workflow slug
  bex workflows versions list my-workflow-slug

workflows versions release

Release a new workflow version

Compatibility: Deliberate non-goal on Bex ([-])

Non-goal on Bex

versions list / versions release 404

bash
bex workflows versions release [workflowID] [flags]

Release a new version of a workflow service.

This command triggers a new release of your workflow service on Bex. With a new release, Render:

  1. Pulls the latest code from your repository (or a specific commit)
  2. Builds your workflow service
  3. Registers all tasks it finds in the service
  4. Creates a new workflow version

You can optionally specify a commit ID to release a specific version of your code.

In interactive mode, you will be prompted to: • Select a workflow if not provided • Confirm the release

FlagShortTypeDefaultDescription
--commitCOMMIT_IDRelease the specified commit ID
--help-hShow help for this command
--waitWait for release completion and exit non-zero if release fails
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Release a new version
  bex workflows versions release wf-1234
 
  # Release from a specific commit
  bex workflows versions release wf-1234 --commit abc123
 
  # Wait for release completion
  bex workflows versions release wf-1234 --wait

workspace

Manage the CLI's active workspace

Compatibility: Verified working ([x])

bash
bex workspace <subcommand> [flags]

Manage the CLI's active workspace. All CLI commands run against the active workspace.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Show the active workspace
  bex workspace current
 
  # Set the active workspace
  bex workspace set ws-abc123

workspace current

Show the currently selected workspace

Compatibility: Verified working ([x])

bash
bex workspace current [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# Show the active workspace
  bex workspace current

workspace set

Set the CLI's active workspace

Compatibility: Verified working ([x])

bash
bex workspace set [workspaceName|workspaceID] [flags]

Set the CLI's active workspace. All CLI commands run against the active workspace.

The active workspace is saved in $HOME/.bex/cli.yaml by default. Set BEX_CLI_CONFIG_DIR to use cli.yaml in another directory, or BEX_CLI_CONFIG_PATH to use an exact file path (takes precedence over BEX_CLI_CONFIG_DIR). An explicit, non-empty RENDER_CLI_CONFIG_PATH overrides both Bex inputs and the default. Empty values are treated as unset.

FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY

workspaces

List workspaces available to your account

Compatibility: Verified working ([x])

bash
bex workspaces [flags]
FlagShortTypeDefaultDescription
--help-hShow help for this command
--confirmSkip all confirmation prompts
--output-oFORMATinteractiveSet output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY
bash
# List workspaces available to the current user
  bex workspaces

Was this page helpful?

Run this on infrastructure you own

bex is the open-source, AI-native Render alternative — push a git repo and get a running HTTPS service on your own machines.

Get started with bex