CLI for Honeycomb, modeled after the GitHub CLI (gh).
go install github.com/bendrucker/honeycomb-cli/cmd/honeycomb@latest
honeycomb auth login
In interactive mode, the login command prompts for key type and credentials. Non-interactively, pass --key-type and --key-secret (and --key-id for management keys) as flags.
Check the status of stored credentials:
honeycomb auth status
| Type | Header | Used For |
|---|---|---|
config |
X-Honeycomb-Team |
Configuration API (boards, SLOs, triggers, columns, queries) |
ingest |
X-Honeycomb-Team |
Sending events |
management |
Authorization: Bearer |
Management API (environments, API keys) |
API keys are stored in your operating system's keyring (macOS Keychain, GNOME Keyring, Windows Credential Manager) via zalando/go-keyring. Keys are never written to disk or stored in environment variables. The keyring service name is honeycomb-cli, and each key is stored under {profile}:{type} (e.g. default:config).
All keyring operations have a 3-second timeout to prevent the CLI from hanging if the keyring is locked or unavailable.
Commands follow a honeycomb <resource> <action> pattern:
honeycomb dataset list
honeycomb board get --slug my-board
honeycomb query run --dataset my-dataset --query-json '{"calculations": [{"op": "COUNT"}]}'
honeycomb trigger create --dataset my-dataset --name "Error rate" --threshold 100
Run honeycomb help or honeycomb <resource> --help for full details.
api, auth, board, column, dataset, environment, key, marker, mcp, query, recipient, slo, trigger
| Flag | Description |
|---|---|
--profile |
Configuration profile (default: default) |
--format |
Output format: json or table |
--no-interactive |
Disable interactive prompts |
--api-url |
Override the Honeycomb API URL |
The --format flag supports json and table. Default is table in a TTY, json otherwise. List commands always default to table for compact, scannable output — even in non-TTY or agent contexts.
When running inside an AI coding agent (Claude Code, Cursor, Codex, GitHub Copilot, Windsurf, Cline), the CLI automatically disables interactive prompts.
go build -o /dev/null ./cmd/honeycomb
go test ./...
go vet ./...
golangci-lint run ./...
The API client is generated from api.json (Honeycomb's OpenAPI spec) using oapi-codegen:
go generate ./internal/api/...