Skip to main content

Lakehouse Observability Platform

Project description

Lakefront

PyPI version Python License: MIT

A terminal-based lakehouse observability platform for exploring and managing data sources from your command line.

Project


Installation

pip install lakefront

Or with uv:

uv add lakefront
# or install as a standalone tool
uv tool install lakefront

Quickstart

The fastest way to see Lakefront in action is the built-in demo:

lakefront init
lakefront demo

This seeds a sample project with two CSV datasets and opens it straight in the TUI.

To set up your own project instead:

# 1. Initialise ~/.lakefront
lakefront init

# 2. Create a project
lakefront projects create my-project -d "My first project"

# 3. Attach a data source (local Parquet or CSV)
lakefront projects source add -p my-project -n orders --uri /data/orders.parquet

# 4. Open the TUI
lakefront ui --project my-project

Running lakefront ui without --project opens a navigation screen listing all your projects.


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:

lakefront init

Config Management

# List all profiles
lakefront config list

# Show config directories and paths
lakefront config info

# Create a new profile
lakefront config create --profile staging

# Inspect a profile's current settings
lakefront config inspect --profile staging

# See which profile is active
lakefront config get-active

# Switch to a different profile
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
lakefront projects list

# Create a new project
lakefront projects create my-project -d "EDA on S3 parquet" -p staging

# Inspect a project
lakefront projects inspect my-project

# Delete a project (prompts for confirmation)
lakefront projects delete my-project
lakefront projects delete my-project --yes

Source Management

Data sources are attached to a project and point to a local path or S3 prefix. The source type is inferred from the URI scheme — bare paths and file:// URIs resolve to local files, s3:// to S3, and other known schemes are passed through as-is.

# Add a source (scheme inferred from the URI)
lakefront projects source add -p my-project -n raw --uri s3://bucket/raw/
lakefront projects source add -p my-project -n local --uri /data/parquet/

# Remove a source
lakefront projects source remove -p my-project -n raw

TUI (Terminal User Interface)

The interactive TUI provides a rich, multi-pane interface for exploring and analyzing data without leaving the terminal.

Project Screen

The main project workspace with a three-pane layout:

Left Pane — Data Sources:

  • Browse all attached sources with expandable tree view
  • View column names and data types inline
  • Quickly navigate between sources
  • P: Load statistical profile for the selected source in the right pane

Center Pane — SQL Editor & Results:

  • Tabbed SQL editor for writing and managing multiple queries
  • Syntax-highlighted editor with DuckDB SQL support
  • Ctrl+R: Execute query
  • Ctrl+N: Run query in a new results tab
  • Ctrl+S: Save script to disk
  • Ctrl+T: Create new editor tab
  • Ctrl+W: Close current tab
  • Results pane displays query output in scrollable tables

Right Pane — Profiler:

  • Statistical summary for the selected source
  • Row counts, column types, null rates, and value distributions
  • Loaded on demand with P from the source pane

Explore Screen

Deep-dive analysis with statistical profiling and AI insights:

  • Statistical Profile: Automatic data profiling showing distribution, nulls, and cardinality
  • AI-Powered Insights: Ask questions about your dataset using LLM integration
  • Interactive Q&A: Type questions to get natural-language analysis and recommendations
  • Keyboard Shortcuts:
    • Ctrl+R or Enter: Submit question to AI
    • Q: Return to project screen

Navigation

  • Tab / Shift+Tab: Move focus between panes
  • Modal dialogs for source attachment and confirmations
  • Themed UI with multiple color schemes (configurable via profile settings)

Changelog

v0.11.0 (2026-06-26)

Feat

  • core: analyzer ai uses claude sonnet-4-6 by default
  • core: analyzer set to 0 (default) considers entire dataset

v0.10.0 (2026-06-01)

Feat

  • tui: enable configuration profile editing via tui

Fix

  • test: test env points to real home dir

v0.9.3 (2026-05-31)

Fix

  • context not available in tui workers

Refactor

  • core: simplify project loading

v0.9.2 (2026-05-31)

Refactor

  • cli: identify sources by URI scheme, replace --path with --uri
  • core: introduce Source protocol and URI-based data sources

v0.9.1 (2026-05-05)

Fix

  • core: validate source name and path in source_attach

v0.9.0 (2026-05-03)

Feat

  • core: introduce global settings.toml for app-level configuration

v0.8.2 (2026-05-03)

Fix

  • tui: show column types in expanded source items
  • tui: restore h/l source navigation when a source is expanded

v0.8.1 (2026-05-03)

Fix

  • move dependencies back inside [project] table

v0.8.0 (2026-05-03)

Feat

  • add navigation screen and demo project setup

Fix

  • tui: make profiler on-demand via 'p' keybind
  • core: skip configure_s3 for projects with no S3 sources
  • tui: move NavigationScreen I/O off the main thread
  • tui: use call_from_thread for notify calls inside thread workers

v0.7.1 (2026-04-27)

Fix

  • toml properties not being overriden by corresponding env vars

v0.7.0 (2026-04-26)

Feat

  • tui: support multiple tabs in editor and result panes

v0.6.0 (2026-04-26)

Feat

  • core: read analyzer row limit setting
  • tui: read theme setting from core section
  • core: add core config section

v0.5.1 (2026-04-26)

Refactor

  • tui: consolidate styles in app.tcss

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lakefront-0.11.0.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lakefront-0.11.0-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

File details

Details for the file lakefront-0.11.0.tar.gz.

File metadata

  • Download URL: lakefront-0.11.0.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","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

Hashes for lakefront-0.11.0.tar.gz
Algorithm Hash digest
SHA256 77e2f492759a9bd91cde70269baa3880fe54b370124fbb5d87801e65416494f8
MD5 e00fa69d8eaf5bcdb4db9c8af9f673a9
BLAKE2b-256 724ce64b15589928017fdbadf2fdd00557227c8adac77605700477647f307f17

See more details on using hashes here.

File details

Details for the file lakefront-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: lakefront-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 43.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","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

Hashes for lakefront-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e3bedbf3fdfe2d4fd8373e93824d388fd2cf0427d36faa6cb6f1810bbfab5c1
MD5 572399ed614c965558ea2953b7e9f16c
BLAKE2b-256 1c9a3a0c6eac7ce14682073ce6b7c79cfdf094a422667592e585e783b2743e61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page