Command-line interface for the Rhombus physical security platform API. Provides direct terminal access to cameras, access control, alerts, sensors, and 60+ API resource categories — plus higher-level commands for video stitching, frame analysis, real-time monitoring, and AI-powered chat.
brew install RhombusSystems/tap/rhombuscurl -fsSL https://raw.githubusercontent.com/RhombusSystems/rhombus-cli/main/install.sh | shOn Linux, this automatically uses .deb or .rpm packages when a compatible package manager is detected.
irm https://raw.githubusercontent.com/RhombusSystems/rhombus-cli/main/install.ps1 | iexRequires Go 1.26+.
git clone https://github.com/RhombusSystems/rhombus-cli.git
cd rhombus-cli
make installrhombus loginOpens your browser for OAuth2 authentication, then creates and stores an API key locally. Supports both certificate-based (mTLS) and token-based auth.
For partner accounts, add --partner:
rhombus login --partnerIf you omit the flag, the CLI mints an org-level key first and automatically falls back to a partner-level key when the org attempt is denied — so --partner is only needed to skip that fallback.
rhombus configurePrompts for an API key, output format, and endpoint URL. Useful when you already have an API key.
| Variable | Description |
|---|---|
RHOMBUS_API_KEY |
API key (overrides credentials file) |
RHOMBUS_PROFILE |
Profile name (default: default) |
RHOMBUS_OUTPUT |
Output format: json (table/text currently fall back to JSON) |
RHOMBUS_ENDPOINT_URL |
API endpoint override |
Manage multiple accounts or environments with named profiles:
rhombus login --profile staging
rhombus camera get-minimal-camera-state-list --profile stagingCredentials are stored in ~/.rhombus/credentials (file permissions 600) and config in ~/.rhombus/config.
rhombus <command> [subcommand] [flags]
--profile string Configuration profile (default: "default")
--output string Output format: json (default; table/text fall back to JSON)
--api-key string Override API key
--endpoint-url string Override API endpoint
--partner-org string Client org name or UUID (partner accounts)
--verbose Print full HTTP request and response details
62 resource commands are auto-generated from the Rhombus OpenAPI spec, covering the full API surface. Examples:
# List all cameras
rhombus camera get-minimal-camera-state-list
# Get camera details
rhombus camera get-full-camera-state --camera-uuid <uuid>
# List recent alerts
rhombus event get-policy-alerts-v2
# Get alert details with bounding boxes
rhombus event get-policy-alert-details --alert-uuid <uuid>
# Manage locations
rhombus location get-locations
# Door access control
rhombus door-controller grant-access --door-uuid <uuid>Every generated command supports:
--generate-cli-skeleton— prints a JSON template of all accepted parameters--cli-input-json '<json>'or--cli-input-json file://params.json— pass complex request bodies as JSON
Resource categories: access-control, alert-monitoring, audio-gateway, badge-reader, camera, climate, door, door-controller, doorbell-camera, elevator, event, event-search, export, face-recognition-event, face-recognition-person, feature, integrations, location, lockdown-plan, logistics, oauth, occupancy, org, partner, permission, policy, report, rules, scene-query, schedule, search, sensor, user, vehicle, video, webhook-integrations, and more.
# Recent alerts (optionally filtered by camera)
rhombus alert recent --camera "Front Lobby" --max 10
# Download alert thumbnail
rhombus alert thumb <alert-uuid> --output thumb.jpg
# Download alert video clip
rhombus alert download <alert-uuid> --output clip.mp4
# Open alert clip in browser
rhombus alert play <alert-uuid># Open live view for a camera
rhombus footage "Front Lobby"
# Jump to a specific time
rhombus footage "Front Lobby" --start "5m ago"
rhombus footage "Front Lobby" --start 1711900800000Starts a local HTTP server with an authenticated player and opens your browser.
# Stream policy alerts as they fire
rhombus monitor
# Include all event types
rhombus monitor --all-events
# JSON output for piping
rhombus monitor --jsonConnects via WebSocket (STOMP protocol) with automatic reconnection.
Requires ffmpeg.
# Stitch events across cameras at a location
rhombus stitch --location "HQ" --start "2h ago" --end "1h ago"
# Specific cameras with buffer
rhombus stitch --camera "Entrance" --camera "Lobby" --start "30m ago" --buffer 5Creates a grid-layout MP4 with timestamp overlays from events across multiple cameras.
# Analyze alert frames
rhombus analyze alert <alert-uuid>
# Analyze footage across cameras at a location
rhombus analyze footage --location "HQ" --start "1h ago" --end "30m ago"
# Include motion metadata, output raw frames
rhombus analyze footage "Lobby Cam" --start "2h ago" --include-motion --rawExtracts intelligently-sampled frames with activity detection metadata. Outputs a manifest suitable for external ML pipelines.
# Generate full snapshot of all locations and cameras with stills
rhombus context generate
# Details for a specific location or camera
rhombus context location "HQ"
rhombus context camera "Front Lobby"Produces a structured manifest of your deployment — locations, cameras, hardware info, coordinates, and current stills.
# Interactive chat
rhombus chat
# Voice-powered chat (requires sox and whisper-cpp)
rhombus voice --model baseNatural language interface to your Rhombus deployment. The chat agent can execute CLI commands on your behalf.
Rhombus publishes a Claude Code plugin marketplace at RhombusSystems/claude-code-plugins with three plugins — rhombus-developer, rhombus-user, and rhombus-partner — that add Rhombus-aware commands, agents, and skills to Claude Code.
When the CLI runs inside Claude Code, it emits a one-line install hint so Claude Code can offer to set up the matching plugin (the partner plugin when you're in a --partner-org/partner context, otherwise the user plugin). The hint is written only when the CLAUDECODE environment variable is set, goes to stderr on its own line, and is stripped by Claude Code before it reaches the model — so it never appears for users running the CLI directly and never affects command output or pipelines.
To add the marketplace and enable a plugin yourself:
# In Claude Code:
/plugin marketplace add RhombusSystems/claude-code-plugins
/plugin enable rhombus-user # or rhombus-developer / rhombus-partnerFor partner/multi-tenant organizations, pass --partner-org to operate on a client org:
rhombus camera get-minimal-camera-state-list --partner-org "Acme Corp"
rhombus camera get-minimal-camera-state-list --partner-org <org-uuid>Name matching is case-insensitive and substring-based. If multiple orgs match, you'll be prompted to select one.
Note: --partner-org selects which client org a command operates on; to authenticate the CLI as a partner account in the first place, log in with rhombus login --partner.
| Path | Purpose |
|---|---|
~/.rhombus/config |
Default output format, endpoint URL (INI) |
~/.rhombus/credentials |
API keys and cert paths per profile (INI, 600 perms) |
~/.rhombus/certs/<profile>/ |
Client certificates and private keys |
- CLI flags
- Environment variables
- Profile config files
- Defaults
| OS | Architectures |
|---|---|
| macOS | amd64, arm64 |
| Linux | amd64, arm64 |
| Windows | amd64, arm64 |
MIT