Lakehouse Observability Platform
Project description
Lakefront
A terminal-based lakehouse observability platform for exploring and managing data sources from your command line.
About
Working with lakehouse data — Parquet files on local disk or S3, DuckDB queries, materialized views — usually means jumping between tools, writing throwaway scripts, or wrestling with heavyweight UIs. Lakefront puts it all in one place: a fast TUI and CLI for data engineers who live in the terminal.
Problems it solves:
- No single tool for lakehouse exploration — Lakefront combines DuckDB-powered SQL querying, S3 source management, and dataset browsing in one cohesive interface.
- Configuration sprawl — profiles let you switch between environments (local dev, staging, production S3) with a single command, keeping credentials out of your scripts.
- Context switching — instead of firing up a Jupyter notebook or a GUI just to peek at a Parquet file, you stay in the terminal.
Examples
Initialise Lakefront
Bootstrap the ~/.lakefront directory structure and create a default profile:
uv run lakefront init
Config Management
# List all profiles
uv run lakefront config list
# Show config directories and paths
uv run lakefront config info
# Create a new profile
uv run lakefront config create --profile staging
# Inspect a profile's current settings
uv run lakefront config inspect --profile staging
# See which profile is active
uv run lakefront config get-active
# Switch to a different profile
uv run lakefront config set-active --profile staging
Secrets (S3 access keys etc.) can be written to the TOML profile or set via environment variables instead:
export LAKEFRONT_S3__ACCESS_KEY=...
export LAKEFRONT_S3__SECRET_KEY=...
Project Management
Projects are the top-level organisational unit in Lakefront. Each project lives in its own directory under ~/.lakefront/projects/ and can be pinned to a config profile.
~/.lakefront/projects/
└── my-project/
├── project.toml ← metadata + pinned profile
└── results/ ← analysis outputs
# List all projects
uv run lakefront projects list
# Create a new project
uv run lakefront projects create my-project -d "EDA on S3 parquet" -p staging
# Inspect a project
uv run lakefront projects inspect my-project
# Delete a project (prompts for confirmation)
uv run lakefront projects delete my-project
uv run lakefront projects delete my-project --yes
Source Management
Data sources are attached to a project and point to a local path or S3 prefix.
# Add a source
uv run lakefront projects source add -p my-project -n raw -k s3 --path s3://bucket/raw/
uv run lakefront projects source add -p my-project -n local -k local --path /data/parquet/
# Remove a source
uv run lakefront projects source remove -p my-project -n raw
Project Structure
src/
├── core/ # config models, settings, project & source service
├── cli/ # Typer entrypoint and sub-commands
└── tui/ # Textual TUI app (in progress)
Changelog
v0.5.0 (2026-04-24)
Feat
- tui: add explore action to result pane
v0.4.0 (2026-04-22)
Feat
- data profile is presented on source selection
- enable ai powered data source exploration
- cli: add configuration profile delete and demo commands
- add anthropic section to configuration model
Fix
- analyzer mishandles bool types
- typo on app title
Refactor
- move data profiling and llm code to analyzer module
- move data profiling code from tui to core.analyzer
- split core.main responsibilities across submodules
- core
v0.3.4 (2026-04-20)
Fix
- tui: rebuild source list after attach and detach
v0.3.3 (2026-04-19)
Feat
- add commitizen for automated changelog and versioning
Fix
- Add a timeout for S3 source path existence check
- Project init ignores sources if unable to reach them or their existence check fails
v0.3.0 (2026-04-19)
Feat
- Add support for attaching S3 sources to a project
v0.2.2 (2026-04-18)
Feat
- Local sources can be attached to and detached from a project during runtime (#4)
- tui: basic source navigation and query execution
- core: can attach and query csv, parquet and parquet datasets (#3)
- tui: preliminary layout
- core: project context registers sources for querying (#2)
- wip: project lifecycle management (#1)
Refactor
- core,cli: moving around and renaming things
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 lakefront-0.5.0.tar.gz.
File metadata
- Download URL: lakefront-0.5.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 |
06a949e9662b41929fa17d147d40ddbd4951d2dc09c44d855f81d98c3a4a126b
|
|
| MD5 |
883483b0da621a1b91301d5555c2360b
|
|
| BLAKE2b-256 |
123388d95d171f6b67fc9402d0da013b3a0efadee8a53d20b184ddbd94a600dc
|
File details
Details for the file lakefront-0.5.0-py3-none-any.whl.
File metadata
- Download URL: lakefront-0.5.0-py3-none-any.whl
- Upload date:
- Size: 33.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 |
6275893fcf5eff03593d55c1ef718ea69b40720e6de70a49532f9f36e0b351c3
|
|
| MD5 |
9cf79e6afa3e8e03964025dca138d613
|
|
| BLAKE2b-256 |
4db12fd5b05fd1b57026b568d58681b15d3703222857d3f64d03f9e1b928ee29
|