Skip to main content
Write your charts and alerts once as YAML files. A short script then creates them in every project you list, and keeps the charts up to date when you change the files. You need:

Set up

1

Create two API keys

Charts and alerts use different keys. Go to Settings > Workspace > API Keys and create one key on each tab:
  • Data Plane tab, for charts. Grant project.chart.list, .post, and .put. Save it as HH_DATA_PLANE_API_KEY.
  • Control Plane tab, for alerts. Grant project.alert.list and .post. Save it as HH_CONTROL_PLANE_API_KEY.
Keys created at the workspace reach every project in it, including new ones. See API Keys for other options.
2

List your projects

Create .honeyhive/projects.yaml with one or more project IDs. You find each ID in the project’s settings, on the Data Plane tab. The name is only a label for you.
.honeyhive/projects.yaml
3

Define a chart

Each file under .honeyhive/charts/ is one chart. This one shows the median model latency per day:
.honeyhive/charts/model-latency.yaml
To see every field, run honeyhive charts create --show-file-schema.
4

Define an alert

Each file under .honeyhive/alerts/ is one alert. This one emails project members when average model latency goes above 5 seconds:
.honeyhive/alerts/high-model-latency.yaml
To see every field, run honeyhive alerts create --show-file-schema.
5

Add the sync script

Save this script as sync-dashboards.sh at the root of your repo. It needs no changes.
sync-dashboards.sh
6

Run it

The script prints one line per chart and alert, for each project. Run it again whenever you change a file.

How updates work

The script matches charts and alerts by name, so keep names unique within a project.
  • Charts: if a chart with the same name exists, the script updates it. Otherwise it creates it.
  • Alerts: the script only creates alerts that don’t exist yet. It can’t change an existing alert, because the CLI has no alert update. To change one, edit it in the UI, or delete it there and run the script again.
If a chart or alert fails, the script keeps going and exits with status 1 at the end.

Run from CI

To apply changes on every merge, add a workflow with both keys saved as repository secrets:
.github/workflows/honeyhive-dashboards.yml

Set it up with a coding agent

Paste this prompt into Claude Code, Cursor, or another coding agent in your repository:

Limits

  • Chart names can only use letters, numbers, spaces, and _ - ' &. Other characters, such as parentheses, return a 400.
  • New projects: creating an alert returns 400: No schema data found until the project has logged matching events. Run the script again after events arrive.
  • Many alerts: the script reads the 100 newest alerts per project. With more, add --page to the alerts list call, or it can create duplicates.
  • Self-hosted and dedicated deployments: also set HH_DATA_PLANE_URL and HH_CONTROL_PLANE_URL, in your shell and in the workflow’s env.