hzdb
August 21, 2026 · View on GitHub
Horizon Debug Bridge - CLI for Meta Quest device development
Usage:
hzdb [OPTIONS] [COMMAND]
Options:
| Option | Description |
|---|---|
-d, --device <DEVICE> | Target device ID (also reads HZDB_DEVICE env var) |
--format <FORMAT> | Output format (table, json, plain) (default: table) |
--json | Output in JSON format (shorthand for --format json) |
--markdown-help | Print help in markdown format |
-v, --verbose | Increase logging verbosity |
-q, --quiet | Decrease logging verbosity |
Subcommands:
| Command | Description |
|---|---|
init | Set up hzdb — install AI agent skills and configure MCP servers |
adb | Low-level ADB-compatible commands (devices, shell, logcat, etc.) |
app | Manage applications on the device (install, uninstall, launch, etc.) |
asset | Search Meta's 3D asset library for models |
audio | Device audio volume and mute control |
capture | Capture screenshots and screen recordings from the device |
config | Manage hzdb configuration settings |
device | Manage connected Meta Quest devices (list, info, connect, battery, etc.) |
docs | Search and fetch Meta Quest developer documentation |
files | Manage files on the device (ls, push, pull, rm, mkdir) |
log | View device logs (shortcut for adb logcat) |
mcp | MCP server for AI assistant integration |
perf | Performance analysis and Perfetto trace tools |
shell | Run a shell command on the device (shortcut for adb shell) |
init
Set up hzdb — install AI agent skills and configure MCP servers
Usage:
init [OPTIONS]
Options:
| Option | Description |
|---|---|
-y, --no-prompt | Skip interactive prompts (install to all detected agents) |
--claude-code | Install skill for Claude Code |
--cursor | Install skill for Cursor |
--gemini | Install skill for Gemini CLI |
--copilot | Install skill for GitHub Copilot |
--codex | Install skill for OpenAI Codex |
--opencode | Install skill for OpenCode |
--guided | Run in guided interactive mode (legacy flag, now the default) |
adb
Low-level ADB-compatible commands (devices, shell, logcat, etc.)
Usage:
adb <COMMAND>
Subcommands:
| Command | Description |
|---|---|
devices | List connected devices |
connect | Connect to a device over WiFi |
disconnect | Disconnect from a device |
shell | Run a shell command on the device |
pull | Pull a file from the device |
push | Push a file to the device |
install | Install an APK on the device |
uninstall | Uninstall a package from the device |
reboot | Reboot the device |
logcat | View device logs (logcat) |
forward | Forward port connections (host -> device) |
reverse | Reverse port connections (device -> host) |
root | Restart adbd with root permissions |
getprop | Get a device property |
setprop | Set a device property |
tcpip | Switch device to TCP/IP mode on the given port |
usb | Switch device back to USB mode |
version | Print version information |
devices
List connected devices
Usage:
devices [OPTIONS]
Options:
| Option | Description |
|---|---|
-l, --long | Show extended device info (model, device, transport_id) |
connect
Connect to a device over WiFi
Usage:
connect <ADDRESS>
Arguments:
| Argument | Description |
|---|---|
<address> (required) | Device address (ip:port) |
disconnect
Disconnect from a device
Usage:
disconnect [ADDRESS]
Arguments:
| Argument | Description |
|---|---|
<address> | Device address to disconnect (disconnects all if omitted) |
shell
Run a shell command on the device
Usage:
shell [COMMANDS]...
Arguments:
| Argument | Description |
|---|---|
<commands> | Command and arguments to run (interactive shell if omitted) |
pull
Pull a file from the device
Usage:
pull <SOURCE> [DESTINATION]
Arguments:
| Argument | Description |
|---|---|
<source> (required) | Path on the device |
<destination> | Local destination path (defaults to current directory) |
push
Push a file to the device
Usage:
push <LOCAL> <REMOTE>
Arguments:
| Argument | Description |
|---|---|
<local> (required) | Local file path |
<remote> (required) | Path on the device |
install
Install an APK on the device
Usage:
install [OPTIONS] <PATH>
Arguments:
| Argument | Description |
|---|---|
<path> (required) | Path to the APK file |
Options:
| Option | Description |
|---|---|
-r, --replace | Replace existing application (keep data) |
-g, --grant-permissions | Grant all runtime permissions on install |
--downgrade | Allow version downgrade (no short form — -d is reserved for the top-level --device selector) |
uninstall
Uninstall a package from the device
Usage:
uninstall <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name to uninstall |
reboot
Reboot the device
Usage:
reboot [MODE]
Arguments:
| Argument | Description |
|---|---|
<mode> | Reboot mode: system (default), bootloader, recovery, sideload, fastboot |
logcat
View device logs (logcat)
Usage:
logcat [OPTIONS]
Options:
| Option | Description |
|---|---|
-n, --lines <LINES> | Number of recent lines to show (use 0 for all available) (default: 100) |
-t, --tag <TAG> | Filter by tag (simple filter, use 'filter' for complex expressions) |
-l, --level <LEVEL> | Minimum log level: V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal) |
-F, --filter <FILTER> | Filter expressions in tag:priority format (e.g., "Unity:W ActivityManager:I *:S") |
--out-format <OUT_FORMAT> | Output format: brief, long, process, raw, tag, thread, threadtime (default), time |
-b, --buffer <BUFFER> | Log buffer: main, system, crash, radio, events, all, default |
--pid <PID> | Filter by process ID |
-e, --regex <REGEX> | Regex pattern to filter log messages |
-C, --clear | Clear the log buffer before reading |
-f, --follow | Follow log output continuously (stream mode) |
forward
Forward port connections (host -> device)
Usage:
forward <LOCAL> <REMOTE>
Arguments:
| Argument | Description |
|---|---|
<local> (required) | Local port spec (e.g., tcp:8080) |
<remote> (required) | Remote port spec (e.g., tcp:8080) |
reverse
Reverse port connections (device -> host)
Usage:
reverse <REMOTE> <LOCAL>
Arguments:
| Argument | Description |
|---|---|
<remote> (required) | Remote port spec (e.g., tcp:8080) |
<local> (required) | Local port spec (e.g., tcp:8080) |
root
Restart adbd with root permissions
Usage:
root
getprop
Get a device property
Usage:
getprop <PROPERTY>
Arguments:
| Argument | Description |
|---|---|
<property> (required) | Property name (e.g., ro.product.model) |
setprop
Set a device property
Usage:
setprop <PROPERTY> <VALUE>
Arguments:
| Argument | Description |
|---|---|
<property> (required) | Property name |
<value> (required) | Property value |
tcpip
Switch device to TCP/IP mode on the given port
Usage:
tcpip [PORT]
Arguments:
| Argument | Description |
|---|---|
<port> | Port number (default: 5555) |
usb
Switch device back to USB mode
Usage:
usb
version
Print version information
Usage:
version
app
Manage applications on the device (install, uninstall, launch, etc.)
Usage:
app <COMMAND>
Subcommands:
| Command | Description |
|---|---|
install | Install an APK to the device |
uninstall | Uninstall an app from the device |
list | List installed apps |
launch | Launch an app |
stop | Force stop an app |
clear | Clear app data |
info | Show app info |
path | Get the path to an installed APK |
foreground | Detect the current foreground app |
install
Install an APK to the device
Usage:
install [OPTIONS] <APK>
Arguments:
| Argument | Description |
|---|---|
<apk> (required) | Path to the APK file |
Options:
| Option | Description |
|---|---|
-t, --allow-test | Allow installation of test-only APKs |
-g, --grant-permissions | Grant all runtime permissions on install |
-r, --replace | Replace existing application (keep data) |
--downgrade | Allow version downgrade |
uninstall
Uninstall an app from the device
Usage:
uninstall [OPTIONS] <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name (e.g., com.oculus.myapp) |
Options:
| Option | Description |
|---|---|
-k, --keep-data | Keep app data and cache |
list
List installed apps
Usage:
list [OPTIONS]
Options:
| Option | Description |
|---|---|
-3, --third-party | Show only third-party apps (default) (default: true) |
-s, --system | Show system apps |
-a, --all | Show all apps (system and third-party) |
-f, --filter <FILTER> | Filter by package name substring |
launch
Launch an app
Usage:
launch [OPTIONS] <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name (e.g., com.oculus.myapp) |
Options:
| Option | Description |
|---|---|
-a, --activity <ACTIVITY> | Activity to launch (optional, uses default launcher activity) |
--cold-start | Force-stop the app before launching, so the launch is from a fresh process (cold start) rather than a warm resume |
--wait-for-idle | After launching, poll until the app appears as the focused window. Returns once the app is on screen and idle, or fails after --wait-timeout seconds. Useful for scripting and tests that need the app to be ready before continuing |
--wait-timeout <WAIT_TIMEOUT> | Maximum time to wait for the app to become focused, in seconds. Only used with --wait-for-idle. Default: 15 (default: 15) |
--measure-launch-time | Print the wall-clock launch time in milliseconds. Measured from the moment the launch intent is sent to either (a) the AppLaunchTool returning, if --wait-for-idle is off, or (b) the app appearing as the focused window, if --wait-for-idle is on |
--verify | After launching, scan recent logcat for FATAL EXCEPTION, ANR, or native crash signatures attributable to this package. Exits with status 1 if a crash signal is found. Implies a short post-launch settle window of --verify-window seconds before scanning |
--verify-window <VERIFY_WINDOW> | Settle window (seconds) to wait after launch before scanning logcat for crash signals. Only used with --verify. Default: 3 (default: 3) |
stop
Force stop an app
Usage:
stop <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name (e.g., com.oculus.myapp) |
clear
Clear app data
Usage:
clear <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name (e.g., com.oculus.myapp) |
info
Show app info
Usage:
info <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name (e.g., com.oculus.myapp) |
path
Get the path to an installed APK
Usage:
path <PACKAGE>
Arguments:
| Argument | Description |
|---|---|
<package> (required) | Package name (e.g., com.oculus.myapp) |
foreground
Detect the current foreground app
Usage:
foreground
asset
Search Meta's 3D asset library for models
Usage:
asset <COMMAND>
Subcommands:
| Command | Description |
|---|---|
search | Search for 3D models in Meta's asset library |
search
Search for 3D models in Meta's asset library
Usage:
search [OPTIONS] <QUERY>
Arguments:
| Argument | Description |
|---|---|
<query> (required) | Text description of the 3D model to search for (e.g., "red car", "fantasy sword", "office chair") |
Options:
| Option | Description |
|---|---|
-c, --count <COUNT> | Number of models to return (default: 5, max: 10) (default: 5) |
audio
Device audio volume and mute control
Usage:
audio <COMMAND>
Subcommands:
| Command | Description |
|---|---|
status | Get current volume level |
set | Set volume level (0-15) |
mute | Mute audio (saves current volume for unmute) |
unmute | Unmute audio (restores volume from before mute) |
status
Get current volume level
Usage:
status
set
Set volume level (0-15)
Usage:
set <LEVEL>
Arguments:
| Argument | Description |
|---|---|
<level> (required) | Volume level to set (0-15) |
mute
Mute audio (saves current volume for unmute)
Usage:
mute
unmute
Unmute audio (restores volume from before mute)
Usage:
unmute
capture
Capture screenshots and screen recordings from the device
Usage:
capture <COMMAND>
Subcommands:
| Command | Description |
|---|---|
screenshot | Take a screenshot from the device |
screenshot
Take a screenshot from the device
Usage:
screenshot [OPTIONS]
Options:
| Option | Description |
|---|---|
-o, --output <OUTPUT> | Output file path (defaults to screenshot_ |
--width <WIDTH> | Screenshot width in pixels (default: 1024) |
--height <HEIGHT> | Screenshot height in pixels (default: 1024) |
--method <METHOD> | Capture method: 'metacam' (default) or 'screencap' (default: metacam) |
config
Manage hzdb configuration settings
Usage:
config <COMMAND>
Subcommands:
| Command | Description |
|---|---|
get | Get a configuration value |
set | Set a configuration value |
reset | Reset a configuration value to its default |
list | List all configuration settings |
get
Get a configuration value
Usage:
get <KEY>
Arguments:
| Argument | Description |
|---|---|
<key> (required) | The configuration key to get |
set
Set a configuration value
Usage:
set <KEY> <VALUE>
Arguments:
| Argument | Description |
|---|---|
<key> (required) | The configuration key to set |
<value> (required) | The value to set |
reset
Reset a configuration value to its default
Usage:
reset <KEY>
Arguments:
| Argument | Description |
|---|---|
<key> (required) | The configuration key to reset |
list
List all configuration settings
Usage:
list
device
Manage connected Meta Quest devices (list, info, connect, battery, etc.)
Usage:
device <COMMAND>
Subcommands:
| Command | Description |
|---|---|
list | List connected devices |
info | Show detailed device information |
connect | Connect to a device over WiFi |
disconnect | Disconnect from a device |
reboot | Reboot the device |
wake | Wake the device from sleep |
wait | Wait for the device to reach an ADB state (default: device) |
battery | Get battery information |
controllers | Show connected controller information |
configure-testing | Configure device for testing (disable animations, stay awake) or restore defaults |
health-check | Run pre-test device health validation (connectivity, battery, storage, UI) |
proximity | Enable or disable the proximity sensor |
setup | Set up a Quest device for development over BLE (scan, connect, dev-mode) |
list
List connected devices
Usage:
list
info
Show detailed device information
Usage:
info <DEVICE_ID>
Arguments:
| Argument | Description |
|---|---|
<device_id> (required) | Device ID to get info for |
connect
Connect to a device over WiFi
Usage:
connect <ADDRESS>
Arguments:
| Argument | Description |
|---|---|
<address> (required) | IP address and optional port (e.g., 192.168.1.100:5555) |
disconnect
Disconnect from a device
Usage:
disconnect [ADDRESS]
Arguments:
| Argument | Description |
|---|---|
<address> | Device address to disconnect (disconnects all if not specified) |
reboot
Reboot the device
Usage:
reboot
wake
Wake the device from sleep
Usage:
wake
wait
Wait for the device to reach an ADB state (default: device)
Usage:
wait [OPTIONS]
Options:
| Option | Description |
|---|---|
--state <STATE> | State to wait for: device, recovery, sideload, or bootloader (default: device) |
--timeout-secs <TIMEOUT_SECS> | Maximum time to wait, in seconds (default: 60) |
battery
Get battery information
Usage:
battery
controllers
Show connected controller information
Usage:
controllers
configure-testing
Configure device for testing (disable animations, stay awake) or restore defaults
Usage:
configure-testing <COMMAND>
Subcommands:
| Command | Description |
|---|---|
setup | Configure device for testing (disable animations, stay awake, etc.) |
restore | Restore device to default settings after testing |
setup
Configure device for testing (disable animations, stay awake, etc.)
Usage:
setup
restore
Restore device to default settings after testing
Usage:
restore
health-check
Run pre-test device health validation (connectivity, battery, storage, UI)
Usage:
health-check
proximity
Enable or disable the proximity sensor
Usage:
proximity [OPTIONS]
Options:
| Option | Description |
|---|---|
-e, --enable | Enable the proximity sensor (restores normal behavior) |
--disable | Disable the proximity sensor (keeps headset awake regardless of wear) |
-s, --status | Show the current proximity sensor status |
--duration-ms <DURATION_MS> | Duration in milliseconds to keep sensor disabled (auto-reenables after) |
setup
Set up a Quest device for development over BLE (scan, connect, dev-mode)
Usage:
setup <COMMAND>
Subcommands:
| Command | Description |
|---|---|
scan | Scan for nearby Quest devices over BLE |
connect | Connect to a Quest device and perform HELLO handshake |
dev-mode | Set developer mode on a Quest device via BLE |
interactive | Full interactive setup flow (scan → connect → Wi-Fi → dev mode → USB instructions) |
scan
Scan for nearby Quest devices over BLE
Usage:
scan [OPTIONS]
Options:
| Option | Description |
|---|---|
-t, --timeout <TIMEOUT> | Scan duration in seconds (default: 10) |
connect
Connect to a Quest device and perform HELLO handshake
Usage:
connect <DEVICE_ID>
Arguments:
| Argument | Description |
|---|---|
<device_id> (required) | Device identifier (from scan results) |
dev-mode
Set developer mode on a Quest device via BLE
Usage:
dev-mode [OPTIONS] <DEVICE_ID>
Arguments:
| Argument | Description |
|---|---|
<device_id> (required) | Device identifier (from scan results) |
Options:
| Option | Description |
|---|---|
--disable | Disable developer mode instead of enabling it |
interactive
Full interactive setup flow (scan → connect → Wi-Fi → dev mode → USB instructions)
Usage:
interactive
Options:
| Option | Description |
|---|---|
--bridge-mode | Hidden plumbing flag: switch stdout to NDJSON event stream and stdin to NDJSON command stream so an embedded host (e.g. MQDH) can drive the flow programmatically. See setup_bridge.rs for the protocol. Without this flag, the command runs the existing human-driven TTY wizard |
docs
Search and fetch Meta Quest developer documentation
Usage:
docs <COMMAND>
Subcommands:
| Command | Description |
|---|---|
search | Search Meta Quest developer documentation |
fetch | Fetch a documentation page from developers.meta.com/horizon |
api-search | Search API references using BM25 ranking |
api-details | Get full details for an API entry |
api-stats | Show statistics about loaded API reference indexes |
search
Search Meta Quest developer documentation
Usage:
search [OPTIONS] <QUERY>
Arguments:
| Argument | Description |
|---|---|
<query> (required) | Natural language query describing what you want to learn or build |
Options:
| Option | Description |
|---|---|
-c, --category <CATEGORY> | Document category filter (ALL, UNITY, UNREAL, SPATIAL_SDK, ANDROID, NATIVE, WEB, RESOURCES, DESIGN, POLICY) (default: ALL) |
fetch
Fetch a documentation page from developers.meta.com/horizon
Usage:
fetch <URL>
Arguments:
| Argument | Description |
|---|---|
<url> (required) | Documentation path or URL. Accepts: - Full URL: https://developers.meta.com/horizon/documentation/unity/ts-adb - Short path: documentation/unity/ts-adb.md |
api-search
Search API references using BM25 ranking
Usage:
api-search [OPTIONS] <QUERY>
Arguments:
| Argument | Description |
|---|---|
<query> (required) | Search query |
Options:
| Option | Description |
|---|---|
-p, --platform <PLATFORM> | Platform to search (unity, unreal_ue4, unreal_ue5) (default: unity) |
-n, --max-results <MAX_RESULTS> | Maximum number of results (default: 20) |
api-details
Get full details for an API entry
Usage:
api-details [OPTIONS] <NAME>
Arguments:
| Argument | Description |
|---|---|
<name> (required) | Name of the API entry (e.g., "OVRInput", "OVRSpatialAnchor") |
Options:
| Option | Description |
|---|---|
-p, --platform <PLATFORM> | Platform to search (unity, unreal_ue4, unreal_ue5) (default: unity) |
api-stats
Show statistics about loaded API reference indexes
Usage:
api-stats
files
Manage files on the device (ls, push, pull, rm, mkdir)
Usage:
files <COMMAND>
Subcommands:
| Command | Description |
|---|---|
ls | List files and directories on the device |
pull | Download a file from the device |
push | Upload a file to the device |
rm | Delete a file or directory on the device |
mkdir | Create a directory on the device |
ls
List files and directories on the device
Usage:
ls [OPTIONS] [PATH]
Arguments:
| Argument | Description |
|---|---|
<path> | Path on the device to list (default: /sdcard/) |
Options:
| Option | Description |
|---|---|
-a, --all | Show hidden files (starting with .) |
pull
Download a file from the device
Usage:
pull <REMOTE_PATH> [LOCAL_PATH]
Arguments:
| Argument | Description |
|---|---|
<remote_path> (required) | Path to the file on the device |
<local_path> | Local path to save the file (default: current directory) |
push
Upload a file to the device
Usage:
push <LOCAL_PATH> <REMOTE_PATH>
Arguments:
| Argument | Description |
|---|---|
<local_path> (required) | Path to the local file to upload |
<remote_path> (required) | Path on the device to save the file |
rm
Delete a file or directory on the device
Usage:
rm [OPTIONS] <PATH>
Arguments:
| Argument | Description |
|---|---|
<path> (required) | Path to the file or directory on the device |
Options:
| Option | Description |
|---|---|
-r, --recursive | Recursively delete directories |
mkdir
Create a directory on the device
Usage:
mkdir [OPTIONS] <PATH>
Arguments:
| Argument | Description |
|---|---|
<path> (required) | Path of the directory to create |
Options:
| Option | Description |
|---|---|
-p, --parents | Create parent directories as needed (default: true) (default: true) |
log
View device logs (shortcut for adb logcat)
Usage:
log [OPTIONS]
Options:
| Option | Description |
|---|---|
-n, --lines <LINES> | Number of recent lines to show (default: 100) |
-t, --tag <TAG> | Filter by tag |
-l, --level <LEVEL> | Minimum log level (V, D, I, W, E, F) |
-c, --clear | Clear the log buffer before reading |
mcp
MCP server for AI assistant integration
Usage:
mcp <COMMAND>
Subcommands:
| Command | Description |
|---|---|
server | Start the MCP server for AI assistant integration |
install | Install MCP server configuration into an AI tool |
server
Start the MCP server for AI assistant integration
Usage:
server [OPTIONS]
Options:
| Option | Description |
|---|---|
--transport <TRANSPORT> | Transport type (stdio, sse, streamable-http) (default: stdio) |
--log-level <LOG_LEVEL> | Logging level (DEBUG, INFO, WARNING, ERROR). Can also be set via HZDB_LOG_LEVEL env var |
--log-output <LOG_OUTPUT> | Where to send logs (stderr, file, none). Defaults to 'file' if ODH is installed, otherwise 'stderr' |
--log-file <LOG_FILE> | Path to log file. Can also be set via HZDB_LOG_PATH env var |
--debug | Enable debug mode |
--meta-wand-token <META_WAND_TOKEN> | Meta Wand API token for 3D model search |
--no-telemetry | Disable telemetry |
--enable-full-docs | Enable full documentation tools |
--disable-perf-tools | Disable performance profiling tools |
--update | Check for updates before starting the server (self-update builds only) |
install
Install MCP server configuration into an AI tool
Usage:
install <COMMAND>
Subcommands:
| Command | Description |
|---|---|
android-studio | Install into Android Studio (Gemini MCP servers) |
cursor | Install into Cursor AI editor |
claude-desktop | Install into Claude Desktop |
claude-code | Show command to install into Claude Code CLI |
vscode | Install into VS Code (uses deep link by default, or --file for mcp.json) |
vscode-insiders | Install into VS Code Insiders (uses deep link by default) |
codex | Install into OpenAI Codex CLI (TOML config) |
zed | Install into Zed editor |
windsurf | Install into Windsurf (Codeium) |
antigravity | Install into Google Antigravity |
gemini-cli | Install into Gemini CLI |
open-code | Install into OpenCode |
lm-studio | Install into LM Studio (uses deep link) |
project | Install into a project directory (creates mcp.json or .mcp.json) |
android-studio
Install into Android Studio (Gemini MCP servers)
Usage:
android-studio [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
cursor
Install into Cursor AI editor
Usage:
cursor [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
--workspace <WORKSPACE> | Install to workspace directory (creates .cursor/mcp.json in the specified directory) |
claude-desktop
Install into Claude Desktop
Usage:
claude-desktop [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
claude-code
Show command to install into Claude Code CLI
Usage:
claude-code [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
--execute | Execute the installation command directly |
vscode
Install into VS Code (uses deep link by default, or --file for mcp.json)
Usage:
vscode [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
--workspace <WORKSPACE> | Install to workspace directory (creates .vscode/mcp.json in the specified directory) Uses file-based installation by default |
--devmate | Install to DevMate configuration (~/.devmate/mcp.json) instead of using deep link |
--file | Use file-based installation instead of deep link (writes to ~/.devmate/mcp.json) This is the default for --workspace installs |
vscode-insiders
Install into VS Code Insiders (uses deep link by default)
Usage:
vscode-insiders [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
--workspace <WORKSPACE> | Install to workspace directory (creates .vscode/mcp.json in the specified directory) Uses file-based installation by default |
--file | Use file-based installation instead of deep link |
codex
Install into OpenAI Codex CLI (TOML config)
Usage:
codex [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
zed
Install into Zed editor
Usage:
zed [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
windsurf
Install into Windsurf (Codeium)
Usage:
windsurf [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
antigravity
Install into Google Antigravity
Usage:
antigravity [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
gemini-cli
Install into Gemini CLI
Usage:
gemini-cli [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
--workspace <WORKSPACE> | Install to project directory (creates .gemini/settings.json) |
open-code
Install into OpenCode
Usage:
open-code [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
--workspace <WORKSPACE> | Install to project directory (creates opencode.json) |
lm-studio
Install into LM Studio (uses deep link)
Usage:
lm-studio [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
project
Install into a project directory (creates mcp.json or .mcp.json)
Usage:
project [OPTIONS]
Options:
| Option | Description |
|---|---|
--dry-run | Perform dry run without writing changes |
--name <NAME> | Custom server name (default: "hzdb") (default: hzdb) |
--force | Force overwrite existing configuration |
--executable <EXECUTABLE> | Path to hzdb executable (auto-detected if not specified) |
-y, --confirm | Skip confirmation prompt (automatically accept changes) |
-p, --project <PROJECT> | Project directory (defaults to current working directory) |
--dotfile <DOTFILE> | Use dotfile format (.mcp.json instead of mcp.json) If not specified, auto-detects based on existing files in the project |
--command-type <COMMAND_TYPE> | Command type to use in configuration If not specified, will prompt interactively (or auto-detect based on how hzdb was invoked) |
perf
Performance analysis and Perfetto trace tools
Usage:
perf <COMMAND>
Subcommands:
| Command | Description |
|---|---|
capture | Capture a timed Perfetto trace from a connected device |
context | Get performance analysis context/prompt |
gpu-counters | Get GPU counter metrics for frame ranges |
analyze-trace | Perform a complete performance analysis on a Perfetto trace |
hex-to-datetime | Convert a hexadecimal timestamp to datetime |
load | Load a Perfetto trace for analysis |
open | Open a Perfetto trace in the Perfetto UI (ui.perfetto.dev) |
query | Run a SQL query on a loaded trace |
start | Start a background Perfetto capture (manual start/stop) |
stop | Stop a background Perfetto capture and pull the trace |
thread-state | Get thread state information from a trace |
compare | Compare two Perfetto traces and produce a delta report |
traces | List available Perfetto traces |
capture
Capture a timed Perfetto trace from a connected device
Usage:
capture [OPTIONS]
Options:
| Option | Description |
|---|---|
-m, --mode <MODE> | Capture mode preset: standard (default), gpu, cpu, lightweight, full, vr, custom (default: standard) |
--duration <DURATION> | Duration of capture in milliseconds (default: 5000) |
--app <APP> | App package name to trace (auto-detects if not specified) |
-o, --output <OUTPUT> | Output filename (without extension) |
--gpu-render-stage | Enable GPU render stage tracing (only with --mode custom) |
--gpu-metrics | Enable GPU metrics tracing (only with --mode custom) (default: true) |
--cpu-scheduling | Enable CPU scheduling tracing (only with --mode custom) (default: true) |
--xr-runtime | Enable XR runtime metrics (only with --mode custom) |
--vulkan-layer | Enable Vulkan OS layer tracing (only with --mode custom) |
--extended-scheduling | Enable extended scheduling events (only with --mode custom) |
context
Get performance analysis context/prompt
Usage:
context [SESSION_ID]
Arguments:
| Argument | Description |
|---|---|
<session_id> | Optional session ID for trace-specific context |
gpu-counters
Get GPU counter metrics for frame ranges
Usage:
gpu-counters [OPTIONS] <SESSION_ID>
Arguments:
| Argument | Description |
|---|---|
<session_id> (required) | Session ID (trace file name) |
Options:
| Option | Description |
|---|---|
--start-ts <START_TS> | Start timestamps in nanoseconds (comma-separated) |
--end-ts <END_TS> | End timestamps in nanoseconds (comma-separated) |
analyze-trace
Perform a complete performance analysis on a Perfetto trace
Usage:
analyze-trace [OPTIONS] [SESSION_ID]
Arguments:
| Argument | Description |
|---|---|
<session_id> | Session ID (trace file name). If omitted, uses the most recently captured trace |
Options:
| Option | Description |
|---|---|
--focus <FOCUS> | Analysis focus area: overview (default), gpu, cpu, frames, threads (default: overview) |
hex-to-datetime
Convert a hexadecimal timestamp to datetime
Usage:
hex-to-datetime <HEX_STR>
Arguments:
| Argument | Description |
|---|---|
<hex_str> (required) | Hexadecimal string representing Unix timestamp |
load
Load a Perfetto trace for analysis
Usage:
load <SESSION_ID>
Arguments:
| Argument | Description |
|---|---|
<session_id> (required) | Session ID (trace file name) |
open
Open a Perfetto trace in the Perfetto UI (ui.perfetto.dev)
Usage:
open <SESSION_ID>
Arguments:
| Argument | Description |
|---|---|
<session_id> (required) | Session ID (trace file name) |
query
Run a SQL query on a loaded trace
Usage:
query <SESSION_ID> <QUERY>
Arguments:
| Argument | Description |
|---|---|
<session_id> (required) | Session ID (trace file name) |
<query> (required) | SQL query to execute |
start
Start a background Perfetto capture (manual start/stop)
Usage:
start [OPTIONS]
Options:
| Option | Description |
|---|---|
-m, --mode <MODE> | Capture mode preset: standard (default), gpu, cpu, lightweight, full, vr, custom (default: standard) |
--app <APP> | App package name to trace (auto-detects if not specified) |
-o, --output <OUTPUT> | Output filename (without extension) |
--gpu-render-stage | Enable GPU render stage tracing (only with --mode custom) |
--gpu-metrics | Enable GPU metrics tracing (only with --mode custom) (default: true) |
--cpu-scheduling | Enable CPU scheduling tracing (only with --mode custom) (default: true) |
--xr-runtime | Enable XR runtime metrics (only with --mode custom) |
--vulkan-layer | Enable Vulkan OS layer tracing (only with --mode custom) |
--extended-scheduling | Enable extended scheduling events (only with --mode custom) |
stop
Stop a background Perfetto capture and pull the trace
Usage:
stop <PID> <OUTPUT_NAME>
Arguments:
| Argument | Description |
|---|---|
<pid> (required) | PID of the background perfetto process (from 'hzdb perf start' output) |
<output_name> (required) | Output name (from 'hzdb perf start' output) |
thread-state
Get thread state information from a trace
Usage:
thread-state [OPTIONS] <SESSION_ID> <UTID>
Arguments:
| Argument | Description |
|---|---|
<session_id> (required) | Session ID (trace file name) |
<utid> (required) | Unique thread identifier (utid) |
Options:
| Option | Description |
|---|---|
--start-ts <START_TS> | Start time in nanoseconds (default: 0) |
--end-ts <END_TS> | End time in nanoseconds (default: 1000000000000000000) |
compare
Compare two Perfetto traces and produce a delta report
Usage:
compare <BASELINE_ID> <COMPARISON_ID>
Arguments:
| Argument | Description |
|---|---|
<baseline_id> (required) | Session ID of the baseline trace (before optimization) |
<comparison_id> (required) | Session ID of the comparison trace (after optimization) |
traces
List available Perfetto traces
Usage:
traces [OPTIONS]
Options:
| Option | Description |
|---|---|
-l, --limit <LIMIT> | Maximum number of traces to list (default: 10) |
shell
Run a shell command on the device (shortcut for adb shell)
Usage:
shell [COMMANDS]...
Arguments:
| Argument | Description |
|---|---|
<commands> | Command and arguments to run (interactive shell if omitted) |