LLM model discovery and tracking system for real-time monitoring of available models across multiple providers
Project description
llm-discovery
LLM model discovery and tracking system for real-time monitoring of available models across multiple providers (OpenAI, Google AI Studio/Vertex AI, Anthropic).
Features
- Zero-Configuration Quick Start: Use prebuilt model data without API keys (max 24h old)
- Real-time Model Discovery: Fetch available models from multiple LLM providers
- Automatic Data Source Switching: Seamlessly switches between API and prebuilt data
- Multi-format Export: Export model data in JSON, CSV, YAML, Markdown, and TOML formats
- Change Detection: Track model additions and removals over time
- Data Source Transparency: See whether data comes from API or prebuilt sources with timestamps
- CI/CD Integration: Easy integration with GitHub Actions and other CI/CD systems
- Python API: Use as a library in your Python applications
- Offline Mode: Cache-first operation for offline usage
Installation
Method 1: uvx (No Installation Required - Recommended)
# Fetch and cache models
uvx llm-discovery update
# Display cached models
uvx llm-discovery list
Method 2: pip
pip install llm-discovery
Quick Start
Without API Keys (Zero Configuration)
Try llm-discovery instantly without any API keys using prebuilt model data (updated daily):
# Display models using prebuilt data (no API keys required)
uvx llm-discovery list
# Export prebuilt data
uvx llm-discovery export --format json --output models.json
The data source and timestamp are displayed in the output, showing whether data comes from API or prebuilt sources.
With API Keys (Real-time Data)
Set up API keys for the providers you want to use:
# OpenAI
export OPENAI_API_KEY="sk-..."
# Google AI Studio
export GOOGLE_API_KEY="AIza..."
# Google Vertex AI (alternative to AI Studio)
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/gcp-credentials.json"
Basic Usage
# Fetch and cache models from all providers
uvx llm-discovery update
# Display cached models in a table
uvx llm-discovery list
# Detect changes from previous snapshot
uvx llm-discovery update --detect-changes
# Export to JSON
uvx llm-discovery export --format json --output models.json
Python API
import asyncio
from llm_discovery import DiscoveryClient
from llm_discovery.models.config import Config
async def main():
# Load configuration from environment variables
config = Config.from_env()
client = DiscoveryClient(config)
# Fetch models from all providers
provider_snapshots = await client.fetch_all_models()
# Display all models
for provider in provider_snapshots:
for model in provider.models:
print(f"{model.provider_name}/{model.model_id}: {model.model_name}")
asyncio.run(main())
Documentation
For detailed documentation, visit our documentation site or see:
- Quick Start Guide
- Installation Guide
- API Reference (Technical Contract)
- CLI Reference (Technical Contract)
Development
Setup
# Clone the repository
git clone https://github.com/drillan/llm-discovery.git
cd llm-discovery
# Install with development dependencies
uv sync --all-extras --all-groups
# Run tests
uv run pytest
# Run linting
ruff check .
# Run type checking
mypy llm_discovery/
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
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 llm_discovery-0.1.0.tar.gz.
File metadata
- Download URL: llm_discovery-0.1.0.tar.gz
- Upload date:
- Size: 251.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f1c606844fb06105de00a8ce0f25c64b745d442baba8714302f0f80afa4b40f
|
|
| MD5 |
048cf9f6affb529a1137544e3d89f86e
|
|
| BLAKE2b-256 |
fd1cbdf93b802ea5014766ba29fc2b10835d35bd84014783b5c0fff94f1b70c2
|
Provenance
The following attestation bundles were made for llm_discovery-0.1.0.tar.gz:
Publisher:
publish.yml on drillan/llm-discovery
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_discovery-0.1.0.tar.gz -
Subject digest:
2f1c606844fb06105de00a8ce0f25c64b745d442baba8714302f0f80afa4b40f - Sigstore transparency entry: 622091339
- Sigstore integration time:
-
Permalink:
drillan/llm-discovery@c27746267c010c4e50eb68b328b419c1eed6ecb3 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/drillan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c27746267c010c4e50eb68b328b419c1eed6ecb3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file llm_discovery-0.1.0-py3-none-any.whl.
File metadata
- Download URL: llm_discovery-0.1.0-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9c8efccc7d3ae3abd8c3d9670e36e060e304d18bbf4072e12fc7b431c1af1fd
|
|
| MD5 |
df9afb5bc4cc1fbcb8bf2abc3a920cf3
|
|
| BLAKE2b-256 |
934cb630621f5fc85cf1d76b29ab3ec735a5174968bb92625ef8ddd15b65953d
|
Provenance
The following attestation bundles were made for llm_discovery-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on drillan/llm-discovery
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_discovery-0.1.0-py3-none-any.whl -
Subject digest:
c9c8efccc7d3ae3abd8c3d9670e36e060e304d18bbf4072e12fc7b431c1af1fd - Sigstore transparency entry: 622091340
- Sigstore integration time:
-
Permalink:
drillan/llm-discovery@c27746267c010c4e50eb68b328b419c1eed6ecb3 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/drillan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c27746267c010c4e50eb68b328b419c1eed6ecb3 -
Trigger Event:
push
-
Statement type: