Database Discovery & Catalog

Auto-discover database structure, enrich with LLM descriptions, and browse saved catalogs

Overview

Before loading or querying data, it helps to understand what is already in your database. The discovery commands introspect any connected SQLite, PostgreSQL, or ClickHouse database and build a detailed structural catalog — tables, columns, types, indexes, foreign keys, row counts, and sample data. Optionally enrich the catalog with LLM-generated descriptions for instant context.

Discovered catalogs are saved locally and can be browsed anytime — useful for AI agents that need database context without manual documentation.

Discover Database Structure

Run discovery against any configured connection:

anysite db discover mydb

This introspects the database and outputs:

The result is automatically saved as a catalog for future reference.

Discovery works with SQLite (via PRAGMAs), PostgreSQL (via information_schema and pg_catalog), and ClickHouse (via system.tables and system.columns). Note: ClickHouse does not support foreign keys, so FK discovery returns empty results.

LLM Enrichment

Add human-readable descriptions to your catalog using an LLM:

anysite db discover mydb --with-llm

Requires the LLM extra: pip install "anysite-cli[llm]" and a configured LLM provider (anysite llm setup).

LLM enrichment adds four layers of context:

Layer What It Generates
Table descriptions Purpose and role of each table
Column descriptions Semantic meaning of each column
Implicit relationships Naming-pattern detection (e.g., user_idusers.id) beyond declared FKs
Database description Overall summary of the database structure and purpose

This context is saved in the catalog and can be injected into LLM prompts via to_context_string().

Filtering Tables

Control which tables to discover:

# Discover specific tables only
anysite db discover mydb --tables users,posts,comments

# Exclude internal tables
anysite db discover mydb --exclude-tables _migrations,django_session

# Control sample data rows (default: 3)
anysite db discover mydb --sample-rows 10

Discovery Options

Option Description Default
--tables Comma-separated list of tables to include All tables
--exclude-tables Comma-separated list of tables to skip None
--sample-rows Number of sample rows per table 3
--with-llm Enrich with LLM-generated descriptions Off

Browse Saved Catalogs

After discovery, catalogs are saved at ~/.anysite/catalogs/<connection>.yaml and can be browsed anytime:

# List all saved catalogs
anysite db catalog

# View a specific catalog
anysite db catalog mydb

# View a single table from the catalog
anysite db catalog mydb --table users

# JSON output (for agents and scripts)
anysite db catalog mydb --json

Use anysite db catalog mydb --json to pipe database context into AI agents. The JSON format includes all tables, columns, relationships, and LLM descriptions — everything an agent needs to understand your data.

Commands Reference

Command Description
anysite db discover <conn> Discover and save database structure
anysite db discover <conn> --with-llm Discover with LLM-generated descriptions
anysite db discover <conn> --tables t1,t2 Discover specific tables only
anysite db discover <conn> --exclude-tables t1 Exclude tables from discovery
anysite db discover <conn> --sample-rows N Control sample data rows
anysite db catalog List all saved catalogs
anysite db catalog <conn> View saved catalog for a connection
anysite db catalog <conn> --table <name> View a specific table from catalog
anysite db catalog <conn> --json Output catalog as JSON

Next Steps

Database Operations

Insert, query, and sync data with your databases

Agent Protocol

Structured JSON output for AI agent integration