-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Dashbrew is a highly customizable terminal dashboard application that lets you create beautiful, interactive terminal dashboards from a single JSON file. Monitor systems, track tasks, visualize data, and trigger shell actions, all from your terminal.

Dashbrew is built with Go and uses the Charm libraries (Bubble Tea, Lip Gloss). It is designed to be:
- Modular: mix and match six component types
- Flexible: nested row/column containers with flex sizing
- Data-driven: connect to shell scripts, HTTP APIs, or local files
- Themed: seven shipping themes plus a role-based palette you can override at the dashboard or per-component level
- Interactive: declare keyboard bindings per pane, run shell actions, browse them all in a global palette
- Responsive: adjusts to terminal size, with mode-aware help line and modals
- Layout System: containers, flex sizing, gaps, focus dimming
- Components: the six component types, common properties, per-type data formats, internal keys
-
Styling Options: borders, the legacy
style.border/style.globalblocks, where everything composes -
Themes: named theme presets, role-based palette, custom theme files, the
-t / --themeCLI flag - Actions and Bindings: per-pane keyboard bindings, action types, the global palette, error modal
- Keyboard and UI: full global keymap and every modal overlay (palette, error, add-mode, action overlay)
A dashbrew dashboard consists of:
- Components: individual UI elements that display data (text, lists, charts, etc.)
- Containers: layout elements that organize components
- Data sources: where components get their information (scripts, APIs, files)
- Styling: theme, palette, per-component overrides, layout gap, focus mode
- Bindings: per-component keyboard shortcuts that run shell actions
Each of these is configured in your dashboard.json file, which defines the entire structure and behavior of your dashboard.
The repo ships four polished example dashboards under examples/:
-
minimal.json: smallest valid dashboard with a clean ASCII brand mark -
focus.json: cozy personal cockpit with a giant ASCII clock, 25/5 pomodoro chart, todo, and hourly progress histogram -
trading-desk.json: gruvbox-dark crypto cockpit with simulated tickers, live BTC chart, and a per-symbol market-cap histogram (fully offline, no API limits) -
devops-noc.json: production NOC board with coloured service tiles, p99 latency chart, status histogram, live log tail, andd/e/w/saction bindings
Each example demonstrates a different visual identity and a different combination of features. Run them from the repo root:
dashbrew -c examples/focus.jsonSee examples/README.md for screenshots and the bindings cheat sheet.
go install github.com/rasjonell/dashbrew/cmd/dashbrew@latestOr pin a release:
go install github.com/rasjonell/dashbrew/cmd/dashbrew@v1.1.0See the Releases page and the CHANGELOG for what shipped in each version.
If you have questions or issues not covered in the wiki: