A terminal dashboard for Honeybadger Insights, built with Rust. Visualize your application data—errors, performance, logs, custom events—right from your command line.
cargo install --path .brew install honeybadger-io/tap/hbtuicurl --proto '=https' --tlsv1.2 -LsSf https://github.com/honeybadger-io/hbtui/releases/latest/download/hbtui-installer.sh | shDownload from GitHub Releases.
# With command-line flags
hbtui -p <PROJECT_ID> --auth-token <TOKEN>
# With environment variables
export HONEYBADGER_PROJECT_ID=12345
export HONEYBADGER_PERSONAL_AUTH_TOKEN=your_token
hbtui
# Custom dashboard file or directory
hbtui -p 12345 -d ./my-dashboard.yml
hbtui -p 12345 -d ./dashboards/| Flag | Env Variable | Description |
|---|---|---|
-p, --project-id |
HONEYBADGER_PROJECT_ID |
Honeybadger project ID (required) |
--auth-token |
HONEYBADGER_PERSONAL_AUTH_TOKEN |
API auth token (required) |
-d, --dashboards |
HONEYBADGER_DASHBOARDS |
Dashboard file or directory |
--endpoint |
HONEYBADGER_ENDPOINT |
API endpoint (default: https://app.honeybadger.io) |
-h, --help |
Print help | |
-V, --version |
Print version |
For security, we recommend using the environment variable HONEYBADGER_PERSONAL_AUTH_TOKEN instead of the --auth-token flag. Command-line arguments may be visible in process listings.
If your Honeybadger account is in the EU region, use:
hbtui -p 12345 --endpoint https://eu-app.honeybadger.ioDashboards display the last 3 hours of data (PT3H).
If -d is not specified, hbtui looks for dashboards in order:
./.hbtui/dashboards/(project-local)~/.hbtui/dashboards/(user default)
| Key | Action |
|---|---|
q |
Quit |
r |
Refresh current dashboard |
[ / ] |
Previous / next dashboard |
1-9 |
Jump to dashboard by number |
| Arrow keys | Navigate widgets |
Enter |
Maximize selected widget |
Esc |
Exit maximized view |
Up/Down |
Filter by series (when maximized) |
Dashboards are YAML files that define widgets powered by Honeybadger Insights. See the Dashboards guide to learn how to export your dashboard YAML.
title: My Dashboard
widgets:
- id: requests
type: insights
grid: { x: 0, y: 0, w: 6, h: 2 }
presentation:
title: Requests per Hour
config:
query: |
SELECT count(*) as count, bin(ts, 1h) as time
FROM requests
GROUP BY time
ORDER BY time
vis:
view: line
chart_config:
xField: time
yField: count
- id: errors
type: insights
grid: { x: 6, y: 0, w: 6, h: 2 }
presentation:
title: Errors by Class
config:
query: |
SELECT count(*) as count, class
FROM errors
GROUP BY class
ORDER BY count DESC
LIMIT 10
vis:
view: tableWidgets are positioned on a 12-column grid:
x: Column position (0-11)y: Row position (0+)w: Width in columns (1-12)h: Height in rows
| Type | Description |
|---|---|
line |
Time-series line chart |
histogram |
Bar chart (supports stacked series) |
table |
Data table |
billboard |
Large single-value display |
chart_config:
xField: time # X-axis field
yField: count # Y-axis field
zField: status # Series grouping (optional)
yFieldUnit: milliseconds # Unit for Y-axis (optional)cargo build # Build
cargo run -- --help # Run with args
cargo test # Run tests
cargo clippy # Lint
cargo fmt # FormatReleases are automated via cargo-dist. To create a release:
git tag v0.1.0
git push origin main --tagsThis will:
- Build binaries for macOS (Intel + ARM), Linux, and Windows
- Create a GitHub Release with all artifacts
- Generate shell installer script
- Update the Homebrew tap
MIT
