From rhombus-user
Rhombus CLI reference and usage guide for the `rhombus` command-line tool. Use this skill when the user asks about the Rhombus CLI, wants to run rhombus commands, needs help with rhombus login/configure/alert/chat/live/voice, wants to interact with Rhombus cameras/sensors/doors/devices from the terminal, asks about rhombus CLI installation, authentication, profiles, or configuration, or mentions: rhombus cli, rhombus command, rhombus terminal, camera alerts, live stream, rhombus mind, voice assistant, rhombus api from command line, device management cli, access control cli, brew install rhombus.
npx claudepluginhub rhombussystems/claude-code-plugins --plugin rhombus-userThis skill is limited to using the following tools:
The `rhombus` CLI wraps the entire Rhombus REST API into a single binary. It includes 6 hand-written commands and ~60 auto-generated service groups covering 846+ API endpoints.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
Share bugs, ideas, or general feedback.
The rhombus CLI wraps the entire Rhombus REST API into a single binary. It includes 6 hand-written commands and ~60 auto-generated service groups covering 846+ API endpoints.
# Homebrew (macOS)
brew install RhombusSystems/tap/rhombus
# Shell script (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/RhombusSystems/rhombus-cli/main/install.sh | sh
# PowerShell (Windows)
irm https://raw.githubusercontent.com/RhombusSystems/rhombus-cli/main/install.ps1 | iex
Source: https://github.com/RhombusSystems/rhombus-cli
Two methods — browser-based (recommended) or manual:
# Browser-based OAuth2 login (creates permanent API key automatically)
rhombus login
# Manual configuration
rhombus configure
# Prompts for: API Key, Output format, Endpoint URL
Multiple named profiles are supported (like AWS CLI):
rhombus configure --profile staging
rhombus alert recent --profile staging
Override any config setting:
| Variable | Purpose |
|---|---|
RHOMBUS_API_KEY | API key |
RHOMBUS_PROFILE | Active profile name |
RHOMBUS_OUTPUT | Output format (json/table/text) |
RHOMBUS_ENDPOINT_URL | API base URL |
Stored in ~/.rhombus/ as INI format:
~/.rhombus/config — settings (output format, endpoint)~/.rhombus/credentials — API keys (file mode 0600)~/.rhombus/certs/<profile>/ — client certs for mTLS authEvery command accepts these:
| Flag | Description |
|---|---|
--profile | Config profile (default: "default") |
--output | Output format: json, table, text |
--api-key | Override API key for this call |
--endpoint-url | Override API base URL |
--version | Show CLI version |
rhombus loginBrowser-based OAuth2 PKCE authentication. Opens browser, receives callback on localhost:11434, creates a permanent API key. Supports partner accounts. 5-minute timeout.
rhombus configureInteractive setup: API key, output format, endpoint URL. Use --profile for multi-profile configs.
rhombus alert| Subcommand | Description | Key Flags |
|---|---|---|
alert recent | List policy alerts from last hour | --camera (name/UUID), --after ("1h ago", "5m ago", epoch ms), --max (default 20) |
alert thumb [uuid] | Download alert thumbnail JPEG | --output (file path) |
alert download [uuid] | Download alert video clip | --output (file path) |
alert play [uuid] | Play alert clip in browser | — |
Camera names are fuzzy-matched (case-insensitive substring).
rhombus footage [camera]Opens a Rhombus camera player in the browser. Defaults to live view. Use --start to jump to a specific time in the past.
rhombus footage "front lobby"
rhombus footage "front lobby" --start "5m ago"
rhombus footage "front lobby" --token-duration 7200 # 2-hour session
rhombus contextGenerate and query deployment context for LLM-assisted analysis. Creates a snapshot of all locations, cameras, and stills.
# Generate full deployment context (stills + index)
rhombus context generate
rhombus context generate --lan # Use LAN for faster still downloads
rhombus context generate --concurrency 8 # Parallel downloads
# Query cached context
rhombus context location "Main Office" # Show location details + camera list
rhombus context camera "Front Door" # Fresh still + camera details + recent activity
Output files (stored in ~/.rhombus/context/<profile>/):
index.md — Compact deployment reference for Claude context windows. Lists all locations, cameras, hardware, and links to stills.manifest.json — Full machine-readable manifest with all metadata.stills/<camera>.jpeg — One still per camera showing what it sees.Usage with Claude: Read ~/.rhombus/context/<profile>/index.md for deployment overview. Read individual still images to understand what each camera is looking at. Use rhombus context camera "name" for fresh stills and activity summaries.
rhombus analyzeExtract and analyze frames from alert clips or camera footage over a time window.
# Analyze an alert — extracts frames and describes what happened
rhombus analyze alert "ALERT_UUID"
# Analyze footage from a camera over a time window
rhombus analyze footage "front lobby" --period "yesterday between 8am and 9am"
# Analyze footage from all cameras at a location
rhombus analyze footage --location "Main Office" --start 1700000000000 --end 1700003600000
# LAN mode — download frames directly from cameras (faster on local network)
rhombus analyze footage --location "Office" --period "last hour" --lan
# Include motion seekpoints (default: only human/vehicle/object activity)
rhombus analyze footage "parking lot" --period "today" --include-motion
# Include evenly-spaced fill frames (not just activity frames)
rhombus analyze footage "parking lot" --period "today between 6am and 7am" --fill
# Raw mode — output frames + manifest for external analysis (skip visual analysis)
rhombus analyze alert "ALERT_UUID" --raw --output /tmp/frames
rhombus analyze footage "lobby" --period "last hour" --raw
rhombus stitchDownload video clips for detected events and stitch them into a single chronological video. Concurrent events from multiple cameras are shown in a grid layout with timestamp overlays. Uses LAN streaming when available for faster downloads.
# Stitch events from specific cameras over a time period
rhombus stitch --camera "front lobby,parking lot" --period "yesterday between 6am and 7am"
# Stitch all events at a location
rhombus stitch --location "Main Office" --period "last night between 10pm and 6am"
# Stitch with start/end times and custom buffer
rhombus stitch --camera "entrance" --start 1700000000000 --end 1700003600000 --buffer 10
# Include motion seekpoints (default: only human/vehicle/object activity)
rhombus stitch --location "Office" --period "today" --include-motion
# Save to a specific file
rhombus stitch --location "Warehouse" --period "today between 8am and noon" --output incident-review.mp4
rhombus chatInteractive AI chat with Rhombus MIND (backed by Claude). MIND can execute CLI commands locally via tool use — it has full access to the rhombus CLI.
rhombus chat
# Then type natural language queries about your system
rhombus voiceVoice-powered chat with Rhombus MIND. Records audio via sox, transcribes with whisper-cpp.
rhombus voice
rhombus voice --model medium # Options: tiny, base, small (default), medium, large
Dependencies: sox (recording), whisper-cpp (transcription). Models auto-download to ~/.rhombus/models/.
~60 service groups, each with multiple subcommands mapping to Rhombus API endpoints. Every generated command follows the same pattern:
rhombus <service-group> <operation> [flags]
# Examples
rhombus camera get-minimal-camera-state-list
rhombus door get-minimal-door-state-list
rhombus user get-users-in-org
rhombus event get-policy-alerts-v2 --after-timestamp-ms 1700000000000
Discover available operations:
rhombus camera --help
rhombus access-control --help
Generate a JSON skeleton with all parameters:
rhombus camera get-camera-config --generate-cli-skeleton
# Prints JSON template with all available fields and example values
Pass parameters as JSON:
# Inline JSON
rhombus camera get-camera-config --cli-input-json '{"cameraUuid":"cam_123"}'
# From file
rhombus camera get-camera-config --cli-input-json file://params.json
Flags override JSON input: If both --cli-input-json and individual flags are set, flags take precedence.
Flag naming: All flags use kebab-case (e.g., --camera-uuid, --after-timestamp-ms). These map to camelCase API parameters automatically.
All API calls are POST. The entire Rhombus API uses POST, even for reads.
See references/commands.md for the complete list of all 60+ service groups with descriptions. The major categories:
See references/workflows.md for detailed recipes. Quick examples:
# Check recent alerts for a specific camera
rhombus alert recent --camera "parking lot" --max 5
# List all cameras
rhombus camera get-minimal-camera-state-list
# Get door states
rhombus door get-minimal-door-state-list
# Watch a live stream
rhombus footage "main entrance"
# Ask MIND about your system
rhombus chat
> "Show me all motion alerts from the last 30 minutes"
# Generate API call skeleton
rhombus report get-count-report --generate-cli-skeleton
| Issue | Fix |
|---|---|
command not found: rhombus | Run install again or check PATH includes /usr/local/bin |
| Auth errors | Run rhombus login or check ~/.rhombus/credentials |
| Wrong org data | Check --profile flag or RHOMBUS_PROFILE env var |
| Voice deps missing | Install sox (brew install sox) and whisper-cpp |
| Login timeout | Ensure browser can reach console.rhombussystems.com and callback port 11434 is free |
Default: https://api2.rhombussystems.com
Override per-command with --endpoint-url or globally via rhombus configure.
This skill covers the CLI tool. For direct API integration (HTTP calls, SDK generation, OpenAPI spec, webhooks), install the rhombus-developer plugin. The CLI wraps the same API — every auto-generated CLI command maps 1:1 to an API endpoint.