Run databricks operations across multiple workspaces from a single terse CLI.
Project description
sleepybricks
sleepybricks is a succinct Typer-based CLI that wraps the databricks SDK to run operations across multiple workspaces at once.
It authenticates by reading profiles from ~/.databrickscfg (the same file the databricks CLI uses) and gives a graceful error when that file or a requested profile is missing.
Authentication
Every command takes a comma-separated profile_list (e.g. dev,stg,us) naming profiles defined in ~/.databrickscfg. Create that file with the databricks CLI if you don't have one:
databricks configure --token # repeat once per workspace/profile
Install
Install the CLI globally with uv:
uv tool install sleepybricks
Commands
| Command | Description |
|---|---|
dash-links <dashboard_name> <profiles> |
Print the published link for a dashboard in each workspace. |
sql -s "<sql>" <profiles> / sql -f <file.sql> <profiles> |
Execute raw sql or a file on the serverless warehouse set in sleepyconfig. |
write-secret <scope> <key> <value> <profiles> |
Write a secret into an existing scope in each workspace. |
write-secret <scope>.<key> <value> <profiles> |
Same, using the dotted shorthand. |
create-scope <scope_name> <profiles> |
Create a secret scope in each workspace (skips existing). |
pull-repo <repo_name> <profiles> |
Pull the latest commit for a git repo in each workspace. |
create-workspace-folder <folder_name> <profiles> |
Create a workspace folder in each workspace (skips existing). |
sleepybricks dash-links "Scheduled Triage Device Metrics" "dev,eu"
sleepybricks sql -s "select * from my_tbl" "dev,stg,us"
sleepybricks sql -f "./query.sql" "dev,stg"
sleepybricks write-secret my_scope.api_key "s3cret" "dev,stg"
sleepybricks pull-repo databricks_templates "dev,stg,us"
sleepybricks create-workspace-folder databricks_templates "dev,stg,us"
sleepybricks --help
Dashboard names are matched case-sensitively and are not unique in databricks; the first match per workspace is used and a warning is shown when duplicates exist. The sql command needs a serverless SQL warehouse in each workspace — see Configuration below.
Configuration
sleepybricks is a sleepy util and reads its settings from the shared ~/sleepyconfig/params.yml. Each sleepy util owns only its own <tool>_<name> keys; sleepybricks uses the bricks_ prefix. If the file is absent, sleepybricks writes only its own section below and prints a note. If a value it needs is missing, it prints this snippet and asks you to verify your config. Keys:
bricks_table_style— tabulate table style used for all output (e.g.simple,rounded_grid,github).bricks_serverless_warehouse_name— name of the serverless SQL warehouse used for compute. The<env>token is replaced with the active profile name, so the default<env>_serverless_warehouseresolves todev_serverless_warehousefor thedevprofile. Use a static value (no token) if your warehouse name is the same everywhere.bricks_env_emojis— per-profile emoji used to decorate output labels.bricks_display_names— per-profile friendly name used in output labels.
# sleepybricks
bricks_table_style: simple
bricks_serverless_warehouse_name: <env>_serverless_warehouse
bricks_env_emojis:
dev: "👩💻"
stg: "🔧"
us: "🇺🇸"
bricks_display_names:
dev: "Development"
stg: "Staging"
us: "United States"
Development
Create the environment and install in editable mode with uv:
uv venv
uv pip install -e ".[dev]"
Then run uv run pytest, or ./tools/test.sh. Tests use fakes for the databricks client and never touch a real workspace. Tear down with rm -rf .venv.
Documentation
- Specification — what the tool does
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 sleepybricks-1.1.0.tar.gz.
File metadata
- Download URL: sleepybricks-1.1.0.tar.gz
- Upload date:
- Size: 37.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed2fa25ad5e3580208ba4a229ff36abac5beab7dbdb636b56c660891d327ea8a
|
|
| MD5 |
ea484391be74352c404e4b4658b1e839
|
|
| BLAKE2b-256 |
6ffdf49b3020fe22f3931f3e696c6e1af06fa19e68bb18de04ddccac2816cafa
|
File details
Details for the file sleepybricks-1.1.0-py3-none-any.whl.
File metadata
- Download URL: sleepybricks-1.1.0-py3-none-any.whl
- Upload date:
- Size: 44.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d898f3f0762f6a79ab21977e74f364ed6ab2b57bd32114a8e7cd370e38e763a8
|
|
| MD5 |
f7cb70da1caaee0a82bba7baa4890495
|
|
| BLAKE2b-256 |
f6782f88502b0f753fd73713c0e627efeb529212b1e4ebf7f794fbc12633947e
|