Terminal app

quacktui

A terminal UI for DuckLake datalakes.

bash
uv tool install quacktui
bash
brew install arksigma/tap/quacktui

Features

Eight catalog views from the keyboard

Schema Browser, Table Details, Snapshot Timeline, File Inventory, Partition Explorer, Schema Evolution, Health Dashboard, and Catalog Info. Drill from a high-level overview down to per-file detail without leaving the terminal.

Multi-tab SQL editor with autocomplete

Syntax highlighting for SQL and Python, schema-aware autocomplete for table and column names, query history persisted in SQLite, saved snippets, and result export to CSV, Parquet, JSON, or the clipboard.

Maintenance ops with explicit confirmation

Compaction, expire snapshots, delete orphaned files, refresh statistics, and optimize manifests. Destructive operations require Ctrl+Enter to confirm — no accidental writes.

Read-only by default

quacktui refuses every mutation until you pass --allow-writes. Without the flag, write paths and maintenance ops are disabled — safe to point at production catalogs.

Pluggable catalog backends

DuckDB (embedded), PostgreSQL, SQLite, and MySQL — every backend supported by the DuckLake extension. Configure per-connection in connections.toml.

Any S3-compatible storage

AWS S3, MinIO, Cloudflare R2, DigitalOcean Spaces, or any custom S3 endpoint. Storage credentials live alongside the connection definition.

Install quacktui

uv (recommended)

bash
uv tool install quacktui

pip

bash
pip install quacktui

Homebrew

bash
brew install arksigma/tap/quacktui
Requirements: Python ≥3.12. quacktui ships as a single CLI entrypoint (quacktui) and reads connections from ~/connections.toml.

Compatible backends

quacktui inherits DuckLake's backend support — pick whichever catalog and storage suit your deployment.

Catalog backends

  • DuckDB Embedded, no separate server. The default.
  • PostgreSQL Remote catalog for shared multi-user deployments.
  • SQLite File-based catalog for portable single-user setups.
  • MySQL Remote catalog where Postgres is not an option.

Storage backends

  • AWS S3 Standard S3 buckets, any region.
  • MinIO Local or self-hosted S3-compatible storage.
  • Cloudflare R2 Zero-egress S3-compatible object store.
  • DigitalOcean Spaces Managed S3-compatible storage.
  • Any S3-compatible endpoint Custom endpoint, bucket, and credentials.

Keyboard shortcuts

Drive the TUI without leaving the keyboard.

Key Action
Ctrl+P Command palette (search and run commands)
1 / 2 / 3 Switch between Catalog / Query / Maintenance
Ctrl+Enter Execute SQL query or confirm destructive operation
Ctrl+N Open new query tab
Ctrl+W Close current tab
Ctrl+R Recall query from history
Ctrl+T Theme switcher (dark/light)
F1 Help and keybindings
Tab Navigate between panes

About quacktui

quacktui is a Python TUI for browsing DuckLake catalogs, running SQL queries, and performing maintenance operations like compaction and snapshot expiry — all from the keyboard. Read-only by default; opt in to writes when you mean it.

Built on Textual for the UI, DuckDB for query execution, and the DuckLake extension for catalog and storage. Apache-2.0 licensed.