Skip to content

Duckalog Dashboard (starhtml/starui)

The dashboard is a lightweight, local-only web UI for exploring a Duckalog catalog. It is built entirely in Python using starhtml and starui—no frontend build tools or external CDNs are required.

from duckalog.dashboard import run_dashboard

run_dashboard("catalog.yaml", host="127.0.0.1", port=8787, row_limit=500)

Pass a Config object instead of a path if you already loaded one.

Optional: Launch from the CLI (if enabled)

Some installations may expose a duckalog ui command that wraps the same dashboard implementation:

duckalog ui catalog.yaml --host 127.0.0.1 --port 8787 --row-limit 500
  • Binds to loopback by default; only expose other hosts if you understand the risk.
  • --row-limit caps ad-hoc query results (defaults to 500 rows).
  • The CLI prints the dashboard URL after startup.
  • This command may not be available in all builds; if it is missing, use the Python API example above instead.

What you can do

  • Home: See config path, DuckDB database, counts (views/attachments/semantic models), and last build status. Trigger a build.
  • Views: Browse views with source type and location/attachment info; search by name.
  • View detail: Inspect the view definition (SQL or source fields) and any semantic-layer dimensions/measures.
  • Query: Run ad-hoc SQL against the catalog with row-limit enforcement and clear error display.
  • Build: Kick off a catalog build with the same semantics as duckalog build; status is shown on the home page.

Scope and limitations

  • Single-user, local-first; no authentication is provided.
  • No external assets or CDNs; everything is served from the duckalog installation.
  • Focused on tables and text—charts/advanced visuals are out of scope for this version.