Skip to content

CLI Reference

The Framedash CLI provides terminal access to telemetry data, analytics, and project management. It integrates into CI/CD pipelines for automated map uploads and content syncing.

Terminal window
npm install -g @framedash/cli

Set the API key via an environment variable:

Terminal window
export FRAMEDASH_API_KEY=fd_your_api_key_here

Or pass it explicitly with --api-key:

Terminal window
framedash status --api-key fd_your_api_key_here

Verify your key is valid:

Terminal window
framedash auth

Most commands accept these options:

OptionDescription
--api-key <key>API key (or FRAMEDASH_API_KEY env)
--project-id <uuid>Project ID (or FRAMEDASH_PROJECT_ID env)
--base-url <url>API host URL (default: https://app.framedash.dev)
--format <fmt>Output format: json, table, csv (default: json)
-h, --helpShow help

Verify your API key and show the bound project.

Terminal window
framedash auth

Options: --api-key, --base-url, --format

Show project health status.

Terminal window
framedash status

Show dashboard KPIs (DAU, MAU, sessions, events).

Terminal window
framedash dashboard --days 30
OptionValuesDefault
--days7, 14, 30, 9030

Show player retention cohorts (D1, D7, D30).

Terminal window
framedash retention --days 14
OptionValuesDefault
--days7, 14, 30, 9030

Analyze event funnels to measure player conversion between steps.

Terminal window
framedash funnel --steps "player.spawn,player.death,player.respawn"
OptionDescriptionDefault
--stepsComma-separated event names (required, 2-8 steps)
--windowTime window in seconds (3600, 21600, 86400, 604800)86400
--daysTime period (7, 14, 30, 90)30

Execute a SQL query against telemetry data.

Terminal window
# Inline SQL
framedash query "SELECT event_name, count() FROM events GROUP BY event_name"
# From a file
framedash query --file ./queries/daily-active.sql
OptionDescription
--file <path>Read SQL from a file instead of inline argument
--limit <n>Maximum rows to return

Manage performance alert rules.

Terminal window
# List all alert rules
framedash alerts list
# Create a new alert rule
framedash alerts create --name "FPS Alert" --map-id <uuid> \
--threshold-profile-id <uuid> --metric fps
# Update an alert rule
framedash alerts update <alert-id> --name "Updated Alert"
# Deactivate an alert rule
framedash alerts delete <alert-id>

Manage game maps.

Terminal window
# List maps
framedash maps list
# Delete a map by map identifier
framedash maps delete <map-id>

Upload captured map images. This command has its own option parser and does not use the shared global options.

Terminal window
# Preview what would be uploaded (dry run)
framedash map-capture --input-dir ./captures --upload --dry-run
# Upload map captures
framedash map-capture --input-dir ./captures --upload \
--api-key fd_xxx --project-id <uuid>
OptionDescription
--input-dir <path>Directory containing captured map images (required)
--uploadActually upload the captures (required to perform upload)
--api-key <key>API key for upload
--project-id <uuid>Target project
--base-url <url>API base URL
--dry-runPreview upload without sending

Manage the content registry (items, weapons, event types, etc.).

Terminal window
# List content entries
framedash content list
# Import content from a JSON file
framedash content import ./game-content.json
# Delete by UUID
framedash content delete <uuid>
# Delete by type and content ID
framedash content delete --type weapon --content-id ak47

GitHub Actions example:

- name: Upload maps and import content
env:
FRAMEDASH_API_KEY: ${{ secrets.FRAMEDASH_API_KEY }}
FRAMEDASH_PROJECT_ID: ${{ vars.PROJECT_ID }}
run: |
framedash map-capture --input-dir ./map-captures --upload
framedash content import ./game-content.json

For Jenkins and TeamCity examples, see the CI/CD Integration Guide.