Skip to main content

Unofficial TUI and client library for Microsoft Fabric OneLake

Project description

OneLake TUI (Unofficial)

A terminal UI for browsing Microsoft Fabric workspaces, lakehouses, and Delta tables — right from your terminal. No portal, no notebooks, no Spark cluster required.

pip install onelake-tui
az login
onelake-tui

onelake-tui is the published PyPI package and currently bundles both the terminal UI and the onelake_client library.

OneLake TUI — browsing a Fabric lakehouse

Delta table detail view

What is this?

OneLake TUI gives you a keyboard-driven file-manager experience for Microsoft Fabric's OneLake storage. Browse workspaces, inspect lakehouses and warehouses, preview files, and explore Delta table metadata — all without leaving the terminal.

Built with Textual and an async Python client for the Fabric REST and OneLake DFS APIs.

Features

  • Three-panel layout — workspace picker → item list → DFS file tree + detail/preview
  • Rich file preview — press Enter on any file:
    • Markdown, JSON (NDJSON), CSV, Parquet, Avro, syntax-highlighted code
    • All previews are selectable and copyable
  • Delta table inspector — tabbed detail view:
    • Schema, data preview (first 100 rows), transaction history, Change Data Feed
  • Schema-aware table detection — handles both Tables/schema/table (mirrored DBs) and Tables/table (lakehouses)
  • Live search — press / to filter workspaces
  • Multi-environment — PROD, MSIT, DXT, DAILY via --env flag
  • Human-readable pathsonelake://workspace/item/path everywhere, with one-key copy (y, Y, Ctrl+Y)
  • Zero config — uses az login, no service keys or config files required

Installation

Prerequisites: Python 3.11+, Azure CLI (az login)

pip install onelake-tui    # from PyPI
onelake-tui                # launch (PROD)
onelake-tui --env msit     # Microsoft internal testing ring

From source (for development):

cd TUI
uv sync
uv run onelake-tui

Quick Start

  1. Authenticateaz login (if you haven't already)
  2. Launchonelake-tui
  3. Select workspace — pick from the left panel
  4. Select item — choose a lakehouse, warehouse, or mirrored DB
  5. Browse files — expand folders in the tree
  6. Preview — press Enter on any file
  7. Explore tables — expand Tables/ for Delta metadata
  8. Search — press / to filter workspaces

Keybindings

Key Action
/ Navigate
/ Collapse/expand tree nodes
Enter Preview file / Expand folder
/ Search/filter workspaces
Escape Close search / go back
Tab / Shift+Tab Switch panels
y Copy onelake:// path to clipboard
Y (Shift) Copy abfss:// GUID path to clipboard
Ctrl+Y Copy https:// DFS URL to clipboard
r Refresh
? Show help
q Quit

Architecture

TUI/src/
├── onelake_client/            # Standalone async Python client library
│   ├── auth.py                #   Dual-scope token management
│   ├── environment.py         #   Environment ring config (PROD/MSIT/DXT/DAILY)
│   ├── _http.py               #   httpx retry + pagination
│   ├── fabric/client.py       #   Fabric REST API (control plane)
│   ├── dfs/client.py          #   OneLake DFS API (data plane)
│   ├── tables/delta.py        #   Delta table metadata reader
│   ├── tables/iceberg.py      #   Iceberg table metadata reader
│   └── models/                #   Pydantic data models
└── onelake_tui/               # Textual-based terminal UI
    ├── app.py                 #   Main app, keybindings, event wiring
    ├── app.tcss               #   Layout CSS (3-panel + footer)
    ├── workspace_picker.py    #   Flat filterable workspace list
    ├── item_list.py           #   Item list for selected workspace
    ├── tree.py                #   DFS file tree (single item)
    ├── detail.py              #   Detail/preview panel with rich rendering
    ├── sprite.py              #   OneLake-inspired splash art + shimmer animation
    ├── status_bar.py          #   3-line footer (path, shortcuts, auth)
    ├── nodes.py               #   Node dataclasses
    └── banner.py              #   Welcome screen delegate

Navigation model: Workspace → Item → DFS files/folders/tables. Each stage is a separate widget:

  • WorkspacePicker (flat OptionList, filterable)
  • ItemList (flat OptionList per workspace)
  • OneLakeTree (lazy-loading tree per item)
  • DetailPanel (context-aware: metadata on highlight, preview on Enter)

Auth Configuration

Authentication uses DefaultAzureCredential, which supports (in order):

Method Use case
az login Local development
Service principal CI/CD pipelines
Managed identity Azure-hosted environments

Environment Configuration

uv run onelake-tui              # PROD (default)
uv run onelake-tui --env msit   # Microsoft internal testing
uv run onelake-tui --env dxt    # Developer testing
uv run onelake-tui --env daily  # Daily builds

Each environment maps to the correct Fabric REST and OneLake DFS hostnames automatically.

Debugging

tail -f ~/.onelake-tui/debug.log

Development

cd TUI
uv sync --all-extras
uv run pytest           # 182 unit + 6 integration tests
uv run ruff check src/  # Lint
uv run ruff format src/ # Format

License

MIT

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

onelake_tui-0.2.0b1.tar.gz (74.1 kB view details)

Uploaded Source

Built Distribution

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

onelake_tui-0.2.0b1-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file onelake_tui-0.2.0b1.tar.gz.

File metadata

  • Download URL: onelake_tui-0.2.0b1.tar.gz
  • Upload date:
  • Size: 74.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for onelake_tui-0.2.0b1.tar.gz
Algorithm Hash digest
SHA256 914611d05b0f86f81d65ce962c0691884f2bdcd21fa4ac2f79c4bbf6be89098b
MD5 455bf5492b7fc14f42c559fb6fdb7e70
BLAKE2b-256 012834827f4f76e897e939185ffcbef44458902b96367bd02adfc57463591f3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for onelake_tui-0.2.0b1.tar.gz:

Publisher: publish.yml on lmoloney/OneLakeTools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file onelake_tui-0.2.0b1-py3-none-any.whl.

File metadata

  • Download URL: onelake_tui-0.2.0b1-py3-none-any.whl
  • Upload date:
  • Size: 51.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for onelake_tui-0.2.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 c413c36035f795f10f34e2bfce960ba147dfa21201088e47a907a0b8d17ab548
MD5 e8d3bfc44cf6191ac6fb2ce7cb04c946
BLAKE2b-256 8442f68067b709dda089dc6943508cafc64e1f41b6149013a80809d6731d615b

See more details on using hashes here.

Provenance

The following attestation bundles were made for onelake_tui-0.2.0b1-py3-none-any.whl:

Publisher: publish.yml on lmoloney/OneLakeTools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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