bricktop
A Textual TUI system monitor for Databricks. Think btop or k9s, but for your Databricks workspace.
Features
- Dashboard with longest-running clusters, active runs, and a merged activity feed.
- Clusters tab: every all-purpose cluster with state, uptime, workers, and idle time.
- Jobs tab: your submitted runs with state, duration, and cluster.
- Activity tab: live merged feed of cluster events and run state transitions.
- Interactive refresh control. Press
+and-to tune the polling interval. - Reads
~/.databrickscfgtransparently if you already use the Databricks CLI.
Install
pipx install bricktop # recommended
uv tool install bricktop # alternative
Or run without installing:
uvx bricktop
Requires Python 3.11 or newer, a Databricks workspace, and a Personal Access Token. Linux and macOS only.
Quick start
bricktop
On first launch a modal asks for your workspace URL (e.g.
https://dbc-xxxxxxxx.cloud.databricks.com) and a Personal Access Token.
Both are saved to ~/.config/bricktop/config.toml with permission 600.
If you already have ~/.databrickscfg from the Databricks CLI, the modal
is skipped and the existing credentials are used.
To generate a Personal Access Token, open the Databricks UI and go to User Settings > Developer > Access tokens > Generate new token. Copy the token immediately; the UI will not show it again.
Keys
| Key | Action |
|---|---|
? |
Help overlay |
f |
Freeze / unfreeze polling |
+ / - |
Adjust refresh interval (2 to 60s) |
r |
Force refresh now |
t |
Cycle theme |
1 2 3 4 |
Jump to Dashboard, Clusters, Jobs, Activity |
q |
Quit |
Files
| Path | Purpose |
|---|---|
~/.config/bricktop/config.toml |
Workspace URL, PAT, and UI preferences. chmod 600. |
~/.local/state/bricktop/bricktop.log |
Rotating log file (2 MB, 3 backups). |
~/.databrickscfg |
Read transparently if present; never written. |
All three paths honour their XDG_*_HOME env vars if set.
Troubleshooting
When something looks wrong, run:
bricktop doctor
It prints the resolved paths, the credential source, and runs a
current-user me call to verify connectivity. Detailed traces of every
refresh tick land in ~/.local/state/bricktop/bricktop.log.
If the Python SDK cannot reach your workspace (e.g. corporate network
policy routes by binary identity), bricktop falls back to the
databricks CLI automatically. A one-time toast notifies you and the
active transport appears in the header subtitle. To force a specific
transport, pass --transport sdk or --transport cli.
The fallback requires the official Databricks CLI on PATH:
brew tap databricks/tap && brew install databricks # macOS
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh # Linux
See the Databricks CLI install guide for other methods.
CLI reference
bricktop # launches TUI (auto-fallback by default)
bricktop configure # opens the config modal in a one-shot run
bricktop doctor # prints resolved paths and connectivity
bricktop --debug # enables debug logging
bricktop --reset-config # deletes config.toml and relaunches
bricktop --config /path/to/cfg.toml # alternate bricktop config file
bricktop --databricks-cfg /path/to/cfg # alternate ~/.databrickscfg path
bricktop --profile staging # pick a non-DEFAULT profile
bricktop --transport sdk # force the Python SDK transport
bricktop --transport cli # force the databricks CLI transport
Development
git clone https://github.com/rattle99/bricktop.git
cd bricktop
uv sync --dev
uv run pytest
uv run bricktop
License
GPL-3.0-or-later. See LICENSE.
Metadata
Release files for bricktop 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bricktop-0.1.0.tar.gz | 36.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bricktop-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.6 kB
Release files / bricktop-0.1.0.tar.gz
| Download URL | bricktop-0.1.0.tar.gz |
|---|---|
| Size | 36.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5350760c6bc1240891acf3b11aed474c99cb0c6ceeea3b6d26eaa9a5f6a6403
|
|
BLAKE2b-256 checksum How to use checksums |
cccc4cdf5d39f5cdfed70a6bda94b4be96759df809f85b477e22da1c6cf930bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / bricktop-0.1.0-py3-none-any.whl
| Download URL | bricktop-0.1.0-py3-none-any.whl |
|---|---|
| Size | 44.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6914dce0f5fdf4c8dfca8a24836e5c736f0c91fa013ab39101918f97138c8cf2
|
|
BLAKE2b-256 checksum How to use checksums |
e18df188a89f6bd3b96f2f475a49f7d83cd60bba5745f1e88deff480627a2aeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|