Textual TUI system monitor for Databricks
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bricktop-0.1.0.tar.gz.
File metadata
- Download URL: bricktop-0.1.0.tar.gz
- Upload date:
- Size: 36.5 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5350760c6bc1240891acf3b11aed474c99cb0c6ceeea3b6d26eaa9a5f6a6403
|
|
| MD5 |
19043742f2f857ee78edb8216b1fdc17
|
|
| BLAKE2b-256 |
cccc4cdf5d39f5cdfed70a6bda94b4be96759df809f85b477e22da1c6cf930bb
|
File details
Details for the file bricktop-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bricktop-0.1.0-py3-none-any.whl
- Upload date:
- Size: 44.0 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6914dce0f5fdf4c8dfca8a24836e5c736f0c91fa013ab39101918f97138c8cf2
|
|
| MD5 |
e0bc20796b1efd88e1ab47c56ad12b14
|
|
| BLAKE2b-256 |
e18df188a89f6bd3b96f2f475a49f7d83cd60bba5745f1e88deff480627a2aeb
|