From rhombus-partner
Rhombus CLI reference for MSP and reseller partners managing multiple client organizations. Use this skill when the user asks about the Rhombus CLI, wants to run rhombus commands across client orgs, needs help with partner org management, multi-org operations, client device audits, cross-org alerts, or mentions: partner org, client org, MSP, reseller, managed service provider, multi-tenant, --partner-org, rhombus cli, rhombus command, rhombus terminal, camera alerts, live stream, rhombus mind, voice assistant, device management cli, access control cli, brew install rhombus, batch operations across clients.
npx claudepluginhub rhombussystems/claude-code-plugins --plugin rhombus-partnerThis 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.
Partner accounts can manage any client org by appending --partner-org to any command. This is the primary way to operate across your managed organizations.
# List cameras for a specific client
rhombus camera get-minimal-camera-state-list --partner-org "acme corp"
# Check alerts for a client
rhombus alert recent --partner-org "acme corp" --max 10
# List all your client orgs
rhombus partner get-partner-clients-v2
# 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
The --partner-org flag is the core of partner workflows. Append it to any command to operate on a client org.
# By name (fuzzy matched, case-insensitive)
rhombus camera get-minimal-camera-state-list --partner-org "acme corp"
# By UUID
rhombus camera get-minimal-camera-state-list --partner-org "abc123..."
rhombus partner get-partner-clients-v2
# Loop through all clients
for org in "client-a" "client-b" "client-c"; do
echo "=== $org ==="
rhombus camera get-minimal-camera-state-list --partner-org "$org"
done
# Check for offline cameras across all clients
rhombus partner get-partner-clients-v2 | jq -r '.partnerClients[].orgName' | while IFS= read -r org; do
offline=$(rhombus camera get-minimal-camera-state-list --partner-org "$org" | jq '[.cameraStates[] | select(.connectionState != "connected")] | length')
if [ "$offline" -gt 0 ]; then
echo "$org: $offline offline cameras"
fi
done
# Check recent alerts across all clients
rhombus partner get-partner-clients-v2 | jq -r '.partnerClients[].orgName' | while IFS= read -r org; do
count=$(rhombus alert recent --partner-org "$org" --max 100 2>/dev/null | jq '.alerts | length')
if [ "$count" -gt 0 ]; then
echo "$org: $count alerts in last hour"
fi
done
Use profiles to switch between your own org and frequently-accessed clients:
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 |
--partner-org | Client org name or UUID (partner accounts) |
--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 analyzeExtract and analyze frames from alert clips or camera footage over a time window.
# Analyze an alert
rhombus analyze alert "ALERT_UUID" --partner-org "acme corp"
# Analyze footage from a client's camera
rhombus analyze footage "front lobby" --partner-org "acme corp" --period "yesterday between 8am and 9am"
# Analyze all cameras at a client location
rhombus analyze footage --location "Main Office" --partner-org "acme corp" --start 1700000000000 --end 1700003600000
# Include fill frames, or use --raw for external analysis
rhombus analyze footage "parking lot" --partner-org "acme corp" --period "today between 6am and 7am" --fill
rhombus analyze alert "ALERT_UUID" --partner-org "acme corp" --raw --output /tmp/frames
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.
# Stitch events from a client's cameras
rhombus stitch --camera "front lobby,parking lot" --partner-org "acme corp" --period "yesterday between 6am and 7am"
# Stitch all events at a client location
rhombus stitch --location "Main Office" --partner-org "acme corp" --period "last night between 10pm and 6am"
# Custom buffer and output file
rhombus stitch --camera "entrance" --partner-org "acme corp" --start 1700000000000 --end 1700003600000 --buffer 10 --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:
# List your client orgs
rhombus partner get-partner-clients-v2
# List cameras for a client
rhombus camera get-minimal-camera-state-list --partner-org "acme"
# Check alerts for a client
rhombus alert recent --partner-org "acme" --camera "parking lot" --max 5
# Get door states for a client
rhombus door get-minimal-door-state-list --partner-org "acme"
# Watch a client's live stream
rhombus footage "main entrance"
# Your own org (no --partner-org flag)
rhombus camera get-minimal-camera-state-list
# Ask MIND about your system
rhombus chat
> "Show me all motion alerts from the last 30 minutes"
| 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 |
| Partner 403 | Verify --partner-org name matches exactly |
| 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.