██████╗ █████╗ ███████╗██╗ ██╗██████╗ ██████╗ █████╗ ██████╗ ██████╗ ██╔══██╗██╔══██╗██╔════╝██║ ██║██╔══██╗██╔═══██╗██╔══██╗██╔══██╗██╔══██╗ ██████╔╝███████║███████╗███████║██████╔╝██║ ██║███████║██████╔╝██║ ██║ ██╔══██╗██╔══██║╚════██║██╔══██║██╔══██╗██║ ██║██╔══██║██╔══██╗██║ ██║ ██████╔╝██║ ██║███████║██║ ██║██████╔╝╚██████╔╝██║ ██║██║ ██║██████╔╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝
analytics & error tracking for CLIs and TUIs
Understand how developers use your command-line tools.
Lightweight. Privacy-respecting. 5 lines to integrate.
import Bashboard from "bashboard";
const bb = new Bashboard({ apiKey: "bb_..." });
bb.track("command_executed", {
command: "deploy",
duration_ms: 1420,
});✦ ✦ ✦
▸ Features
Track commands, sessions, and user journeys. Understand how people actually use your tool.
Catch crashes before users report them. Automatic grouping, stack traces, trend detection.
Native SDKs for Node, Python, Go, Dart, and Rust. Async by default, zero startup cost.
No PII collection by default. You control exactly what gets tracked. Your users stay anonymous.
Initialize, track, done. No config files, no build steps, no complex setup.
Not a web analytics tool repurposed. Built from scratch for CLI and TUI applications.
▸ Setup
# 1. create a project
Sign up, create a project, grab your API key.
# 2. install the sdk
Add the SDK for your language — Node, Python, Go, Dart, or Rust.
# 3. track events
Call track() with an event name and properties. Done.
native sdks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Stop guessing how your tool is used. Start building with data.