Skip to main content

featcat

CI PyPI Python License

AI-Powered Feature Catalog for Data Science Teams

Tiếng Việt

featcat is a lightweight Feature Catalog designed for Data Science teams. It is not a Feature Store (no online serving) — it's a metadata management tool with an AI layer for searching, documenting, and monitoring feature quality.

The Problem

  • Features scattered everywhere: Parquet files stored across local disks, S3, and MinIO — nobody knows what features exist
  • Missing documentation: Dataset columns have no descriptions; new team members don't know what avg_session_duration means
  • Hard to find the right features: Starting a new project (e.g. churn prediction) with no idea which features are already available
  • Undetected data drift: Feature distributions change silently until model performance degrades

Key Features

Module Description Phase
Catalog Register data sources, scan Parquet to auto-extract schema + stats 1
AI Discovery Describe a use case → AI recommends relevant features + suggests new ones 2
Auto-doc LLM automatically generates documentation for each feature 2
NL Query Ask in natural language (English or Vietnamese), AI finds relevant features 2
Monitoring PSI drift detection, null spikes, range violations 3
TUI Terminal UI with dashboard, feature browser, AI chat 3
S3 Support Read Parquet directly from S3/MinIO — never copies data locally 1
Caching Cache LLM responses to speed up doc generation and NL queries 3

Quick Start

# 1. Clone and install
git clone https://github.com/codepawl/featcat.git && cd featcat
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"

# 2. Initialize catalog
featcat init

# 3. Register and scan a data source
featcat source add device_perf /data/features/device_performance.parquet
featcat source scan device_perf

# 4. Browse features
featcat feature list
featcat feature info device_perf.cpu_usage

# 5. (Optional) Enable AI features — requires Ollama
ollama serve &
ollama pull lfm2.5-thinking
featcat discover "churn prediction for telecom customers"
featcat ask "features related to user behavior"

TUI (Terminal UI)

uv pip install -e ".[tui]"
featcat ui

Keybindings: D Dashboard | F Features | M Monitor | C Chat | Q Quit | ? Help

System Health Check

featcat doctor
[x] Python 3.10+
[x] SQLite catalog exists (catalog.db)
[x] Ollama running at localhost:11434
[x] Model lfm2.5-thinking available
[x] 14 features registered
[x] 10 features have docs (71.4%)
[ ] 2 features have drift warnings

Tech Stack

  • Python 3.10+ | SQLite (metadata only, never copies data)
  • Typer + Rich (CLI) | Textual (TUI)
  • PyArrow (Parquet schema + stats) | s3fs (S3/MinIO)
  • Ollama (local LLM) | Pydantic (models + config)

Project Structure

featcat/
├── catalog/        # Models, DB, scanner, storage backends
├── llm/            # LLM abstraction (Ollama, llama.cpp)
├── plugins/        # Discovery, Autodoc, Monitoring, NL Query
├── utils/          # Prompts, catalog context, statistics, cache
├── tui/            # Textual TUI (screens, widgets)
├── config.py       # Pydantic settings
└── cli.py          # Typer CLI entry point

License

MIT

Download files

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

Source Distribution

featcat-0.2.4.tar.gz (346.4 kB view details)

Uploaded Source

Built Distribution

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

featcat-0.2.4-py3-none-any.whl (101.4 kB view details)

Uploaded Python 3

File details

Details for the file featcat-0.2.4.tar.gz.

File metadata

  • Download URL: featcat-0.2.4.tar.gz
  • Upload date:
  • Size: 346.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for featcat-0.2.4.tar.gz
Algorithm Hash digest
SHA256 343b17640ca74399793f11f6e4b92f364b1d8a076f1a9af9a242dedf7f534805
MD5 739ed69dcc0703985717501fc28ebcbc
BLAKE2b-256 d9a100986f4689941d600f50c13029027e40f41b43d9ee37c35c2d89b3715d0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for featcat-0.2.4.tar.gz:

Publisher: publish.yml on codepawl/featcat

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

File details

Details for the file featcat-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: featcat-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 101.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for featcat-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0d27463a005226e80ea315a7d6b3290ccbd1c8b545f3af739469483d38db0cd6
MD5 8ed07401cdd754a14c7a837105ef77d5
BLAKE2b-256 2e7c9cbe5b3de178f7af0edfb1215c5edb1af19d9d32f9ee15721b7c27091802

See more details on using hashes here.

Provenance

The following attestation bundles were made for featcat-0.2.4-py3-none-any.whl:

Publisher: publish.yml on codepawl/featcat

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

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 files

0.2.3

2 files

0.1.0

2 files

Supported by

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