| name | bricks-cli |
| description | Manage BRICKS workspace via CLI. Use for device status, screenshots, control, monitoring, group operations, application management, module management, and project initialization and deployment. Triggers on: device management, digital signage control, BRICKS workspace tasks, app/module updates, project setup. |
BRICKS CLI
CLI for BRICKS Workspace API — manage devices, apps, modules, and media.
Installation (if not yet)
which bricks
npm i -g @fugood/bricks-cli
bun add -g @fugood/bricks-cli
Authentication
bricks auth login <passcode>
bricks auth status
bricks auth list
bricks auth use <profile>
Global --auth-profile Flag
Use -ap or --auth-profile to override the active profile for any command, without switching the stored profile:
bricks -ap staging device list
bricks --auth-profile production app list
bricks -ap staging auth login <passcode>
Priority: --auth-profile flag > BRICKS_PROFILE env > stored current profile.
Device Management
List & Info
bricks device list
bricks device list -j
bricks device list -k "lobby"
bricks device get <device-id>
bricks device get <device-id> -j
Control
bricks device refresh <device-id>
bricks device clear-cache <device-id>
bricks device control <device-id> <type>
bricks device control <device-id> <type> -p '{"key":"value"}'
Screenshot
bricks device screenshot <device-id>
bricks device screenshot <device-id> -o /tmp/screen.png
bricks device screenshot <device-id> --no-take
Monitor (Interactive-tty needed)
bricks device monitor
bricks device monitor -g <group-id>
bricks device monitor -i 30
Device Groups
bricks group list
bricks group get <group-id>
bricks group devices <group-id>
bricks group dispatch <group-id> <action>
bricks group refresh <group-id>
bricks group monitor <group-id>
Applications
bricks app new -n "My App"
bricks app new -n "My App" -d "Description" --layout-width 192 --layout-height 108
bricks app new -n "My App" --example <key>
bricks app new -n "My App" --init -y
bricks app new -n "My App" -j
bricks app list
bricks app get <app-id>
bricks app update <app-id>
bricks app check-config ./config.json
bricks app check-config ./config.json -j
bricks app bind <app-id>
bricks app short-edit <app-id>
bricks app project-pull <app-id>
bricks app project-init <app-id>
bricks app project-init <app-id> -o ./my-app
bricks app project-init <app-id> -y
bricks app project-init <app-id> --no-git
Modules
bricks module new -n "My Module"
bricks module new -n "My Module" --public --allow-modify
bricks module new -n "My Module" --init -y
bricks module new -n "My Module" -j
bricks module list
bricks module get <module-id>
bricks module update <module-id>
bricks module short-edit <module-id>
bricks module release <module-id>
bricks module project-init <module-id>
bricks module project-init <module-id> -o ./my-module -y
Project Init Options
Both app and module support these flags:
-o, --output <dir> — output directory
-y, --yes — skip prompts, use defaults
--no-git — skip git initialization
--no-install — skip bun install
--no-github-actions — skip GitHub Actions workflow
--no-agents — skip AGENTS.md
--no-claude — skip CLAUDE.md
--gemini — include GEMINI.md (off by default)
Media Flow
bricks media boxes
bricks media box <box-id>
bricks media files <box-id>
bricks media file <file-id>
bricks media upload <box-id> ./photo.jpg
bricks media upload <box-id> ./img1.jpg ./img2.png
bricks media upload <box-id> ./photos/*.jpg -j
bricks media upload <box-id> ./file.pdf -t docs -t report -d "Monthly report"
bricks media upload <box-id> ./banner.jpg --image-version 250x250:FILL --image-version 800x600:BOUNDED
bricks media upload <box-id> ./logo.png --image-version-type png
bricks media upload <box-id> ./photo.jpg --enable-ai-analysis
bricks media upload <box-id> ./photo.jpg --ai-instruction "Describe the scene"
bricks media upload <box-id> ./files/* --concurrency 5
Config
bricks config show
bricks config endpoint
bricks config endpoint beta
Interactive Mode (Interactive-tty needed)
bricks interactive
DevTools (LAN Discovery)
bricks devtools scan
bricks devtools scan -t 5000
bricks devtools scan -j
bricks devtools scan --verify
bricks devtools open <address>
bricks devtools open <address> -p 19853
bricks devtools open <address> --verify
Devices must have "Enable LAN Discovery" turned on in Advanced Settings (on by default).
MCP Server
bricks mcp start
Bridging Device MCP to Local CLI
Use mcporter to bridge a device's MCP endpoint as a local MCP server (STDIO), so tools like Claude Code can connect to it:
npx mcporter --url http://<device-ip>:19851/mcp --header "Authorization: Bearer <passcode>"
ACP Bridge (Desktop App)
Connect external ACP clients to the running BRICKS Project Desktop app (docs).
bricks desktop-acp-bridge
The bridge pipes ACP JSON-RPC over stdio ↔ the desktop app's Unix socket (~/.bricks-project-desktop/acp.sock). It shares the desktop app's settings, sessions, and MCP state.
See rule use-desktop-acp for full usage with acpx and OpenClaw.
Rules
connect-local-device — Deploy the current app to a local LAN device, then monitor status, debug, and run automations via MCP
use-desktop-acp — Connect to the BRICKS Project Desktop agent via ACP for headless prompting, session management, and multi-agent orchestration
Tips
- Use
-j or --json on most commands for JSON output
- Device IDs are UUIDs — use
device list to find them
- Get workspace token from: https://control.bricks.tools → Workspace Settings → API Token