lazydbx

module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2026 License: MIT

README

lazydbx

CI Release coverage Go Reference Latest release GitHub last commit License GitHub stars

buymeacoffee

A lazier way to Databricks. A fast, colorful, keyboard-driven terminal UI — inspired by k9s — for browsing Unity Catalog, running SQL, triaging jobs and pipelines, and managing your workspaces without leaving the terminal.

Status: early development. The interface and features described below are landing phase by phase — see docs/PLAN.md.

Why

The Databricks web UI is powerful but slow to click through, and the CLI has a hundred subcommands to remember. lazydbx gives you the k9s experience instead:

  • : command mode:catalogs, :jobs, :tables main.silver — teleport anywhere, with autocomplete and aliases
  • Enter/Esc drill-down — catalog → schema → table → data preview; job → runs → task logs — one gesture for everything
  • / instant filter on any view, no API round-trip
  • Self-documenting — the header always shows the keys valid right now; ? for full help
  • Fast — local caching, background polling, stale-while-revalidate rendering
  • Safe — read-only by default early on, confirm dialogs for anything destructive, --readonly flag, per-profile accent colors (make prod red!)

Install

brew install jongracecox/tap/lazydbx   # once first release is tagged
# or
go install github.com/jongracecox/lazydbx/cmd/lazydbx@latest
Shell completion (optional)

lazydbx ships completion for bash, zsh, and fish. It completes resource names, flag values (--tab, --profile, --log-level), and — once a profile resolves — scope args and item names straight from your workspace (served from the local cache, so it never blocks on the network).

Print the script for your shell with lazydbx completion <shell> and load it however your shell expects:

# bash — add to ~/.bashrc (needs bash-completion installed)
source <(lazydbx completion bash)

# zsh — write to a dir on your $fpath, e.g. with oh-my-zsh:
lazydbx completion zsh > "${fpath[1]}/_lazydbx"

# fish
lazydbx completion fish > ~/.config/fish/completions/lazydbx.fish

Run lazydbx completion <shell> --help for the per-shell details.

Usage

lazydbx uses your existing Databricks config profiles (~/.databrickscfg) — including OAuth sessions created with databricks auth login.

lazydbx                    # opens the profile picker
lazydbx --profile mydev    # jump straight into a profile
lazydbx --readonly         # disable all mutating actions

Optional positional args launch straight into a resource view, using the same syntax as the in-app : command bar. esc from a launched view returns to the profile picker.

lazydbx -p mydev jobs                 # open in the jobs list
lazydbx -p mydev schemas prod         # schemas in the 'prod' catalog
lazydbx -p mydev tables main.silver   # drill straight to a schema's tables
lazydbx -p mydev runs 123             # runs for job 123
lazydbx -p mydev jobs /etl            # jobs list pre-filtered to 'etl'
lazydbx -p mydev apps                 # open in the apps list
lazydbx -p mydev apps my-app          # land directly on 'my-app'

Development

make tools   # install golangci-lint + lefthook, register git hooks
make test
make run

See CLAUDE.md for architecture and contribution conventions.

License

Apache-2.0

Directories

Path Synopsis
cmd
lazydbx command
Command lazydbx is a k9s-style terminal UI for Databricks.
Command lazydbx is a k9s-style terminal UI for Databricks.
internal
app
Package app hosts the root Bubble Tea model: the view stack, global keys, overlays (command bar), and message routing.
Package app hosts the root Bubble Tea model: the view stack, global keys, overlays (command bar), and message routing.
config
Package config loads lazydbx settings with precedence: defaults < $XDG_CONFIG_HOME/lazydbx/config.yaml < env (LAZYDBX_*) < flags.
Package config loads lazydbx settings with precedence: defaults < $XDG_CONFIG_HOME/lazydbx/config.yaml < env (LAZYDBX_*) < flags.
dbx
Package dbx is the only package that imports the Databricks SDK.
Package dbx is the only package that imports the Databricks SDK.
engine
Package engine keeps resource data fresh, k9s-style: one poll goroutine per watched (profile, resource, scope) key feeding an in-memory cache, with results pushed to the UI through a sink (the app wires p.Send).
Package engine keeps resource data fresh, k9s-style: one poll goroutine per watched (profile, resource, scope) key feeding an in-memory cache, with results pushed to the UI through a sink (the app wires p.Send).
favorites
Package favorites persists per-profile row stars.
Package favorites persists per-profile row stars.
logging
Package logging routes all logs (ours and the Databricks SDK's) to a file.
Package logging routes all logs (ours and the Databricks SDK's) to a file.
openurl
Package openurl launches the system web browser for a URL.
Package openurl launches the system web browser for a URL.
resource
Package resource defines the core abstraction every browsable Databricks resource implements.
Package resource defines the core abstraction every browsable Databricks resource implements.
resources
Package resources holds the concrete resource definitions — the only code that calls DAOs.
Package resources holds the concrete resource definitions — the only code that calls DAOs.
theme
Package theme defines the lipgloss styles used across the UI.
Package theme defines the lipgloss styles used across the UI.
ui/component
Package component holds the dumb, reusable widgets composed by the app shell and views.
Package component holds the dumb, reusable widgets composed by the app shell and views.
ui/view
Package view defines the View interface every body view implements, the shared UI messages, and the concrete views (browser, describe, picker, help).
Package view defines the View interface every body view implements, the shared UI messages, and the concrete views (browser, describe, picker, help).
version
Package version holds build metadata injected at release time via ldflags.
Package version holds build metadata injected at release time via ldflags.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL