Metricly CLI - Query metrics and manage dashboards from the terminal
Project description
Metricly CLI
Query metrics and manage dashboards from the terminal.
Installation
Using uv (Recommended)
# Install from local build
uv tool install ./backend
# Or install from GitHub (once published)
uv tool install git+https://github.com/metricly/metricly#subdirectory=backend
Using pip
pip install ./backend
Quick Start
# Login with Google OAuth
metricly login
# Check who you're logged in as
metricly whoami
# List available metrics
metricly metrics list
# Query metrics
metricly query -m total_revenue -g month --limit 5
# Get visualization suggestions
metricly query -m total_revenue -g month --suggest-viz
# Export to JSON
metricly query -m total_revenue --format json > data.json
Commands
Authentication
metricly login # Login via Google OAuth (opens browser)
metricly whoami # Show current user and organization
metricly logout # Clear stored credentials
metricly org list # List your organizations
metricly org switch ID # Switch to a different organization
Querying Metrics
# List available metrics
metricly metrics list
metricly metrics list --format json
# Get metric details
metricly metrics show total_revenue
# Query data
metricly query -m revenue -g month # Monthly revenue
metricly query -m revenue -d region --limit 10 # By region
metricly query -m revenue -m orders -g week # Multiple metrics
metricly query -m revenue --start 2024-01-01 --end 2024-12-31
# With visualization suggestion
metricly query -m revenue -g month --suggest-viz
# List dimensions
metricly dimensions list
Dashboard Management
# List dashboards
metricly dashboards list
# Show dashboard details
metricly dashboards show DASHBOARD_ID
# Create a new dashboard
metricly dashboards create "My Dashboard"
metricly dashboards create "Team Metrics" -v org # Visible to team
# Delete a dashboard
metricly dashboards delete DASHBOARD_ID
metricly dashboards delete DASHBOARD_ID --yes # Skip confirmation
Manifest Management (Admin Only)
# View manifest status
metricly manifest status
# Export manifest
metricly manifest export -o manifest.yaml
# Import manifest
metricly manifest upload manifest.yaml
metricly manifest upload manifest.yaml --force # Overwrite conflicts
# Semantic models
metricly models list
metricly models show orders
metricly models create model.yaml
metricly models update orders updated.yaml
metricly models delete orders
# Metrics
metricly metrics create metric.yaml
metricly metrics update total_revenue updated.yaml
metricly metrics delete total_revenue
metricly metrics preview metric.yaml # Test before saving
Output Formats
All commands support --format:
| Format | Description |
|---|---|
table |
Human-readable ASCII table (default) |
json |
JSON output for scripting |
yaml |
YAML output for config editing |
metricly metrics list --format json | jq '.[0]'
metricly dashboards show abc123 --format yaml > dashboard.yaml
Configuration
Credentials are stored in ~/.metricly/:
~/.metricly/
├── credentials.json # OAuth tokens (encrypted)
└── config.json # User preferences
Development
# Build the wheel
cd backend
uv build
# Install locally for testing
uv tool install dist/metricly_cli-*.whl --force
# Run tests
uv run pytest tests/ -v
Environment Variables
| Variable | Description |
|---|---|
FIRESTORE_EMULATOR_HOST |
Use Firestore emulator |
FIREBASE_AUTH_EMULATOR_HOST |
Use Auth emulator |
ENV |
Environment: production, development, test |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
metricly_cli-0.1.20.tar.gz
(379.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
metricly_cli-0.1.20-py3-none-any.whl
(121.5 kB
view details)
File details
Details for the file metricly_cli-0.1.20.tar.gz.
File metadata
- Download URL: metricly_cli-0.1.20.tar.gz
- Upload date:
- Size: 379.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
421085d3d6fbcfbdf12d66fc446d5aa216853bc582f3783b9a119f5af1a5859f
|
|
| MD5 |
1d8ccd0b71db4b69fb490542cc614222
|
|
| BLAKE2b-256 |
4d3264a0532f760927ebbde832568ab3a755db94f79c5f2811f0fa980a359517
|
File details
Details for the file metricly_cli-0.1.20-py3-none-any.whl.
File metadata
- Download URL: metricly_cli-0.1.20-py3-none-any.whl
- Upload date:
- Size: 121.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9c3eed56ff0e091beab361cb618e5c9d91e6ac9e3cd67d160bb4cc98c05c081
|
|
| MD5 |
7bb7ca050497ee0ea54ebbd744a88ec3
|
|
| BLAKE2b-256 |
8f6b407930831a8917ec765534b2fdf9dceec557b86f01379d19a7c6405ed5b6
|