Skip to main content

A centralized registry for discovering and managing LLM model capabilities. Track model features, costs, and limitations across providers like OpenAI and Anthropic. Supports both verified model definitions and user-managed entries with local storage.

Project description

LLM Registry

Build Status Coverage MIT License Python 3.11+

A Python package for managing LLM model capabilities across multiple providers. Track pricing, features, and limitations in one place.

Why LLM Registry?

Working with multiple LLM providers means juggling different pricing models, feature sets, and API parameters. LLM Registry solves this by providing a single source of truth for model metadata.

Check a model's capabilities before making API calls, compare costs across providers, and maintain your own custom model configurations alongside the built-in registry.

Features

  • Unified Interface: Query model capabilities across OpenAI, Anthropic, Google, Cohere, Mistral, Meta, and more
  • Cost Tracking: Input/output token costs, cached token pricing, and context window limits
  • Feature Discovery: Check support for streaming, tools, vision, JSON mode, and system prompts
  • Dual Storage: Built-in registry with 100+ models, plus local storage for custom configurations
  • Multi-Provider Support: Single model can be associated with multiple providers
  • CLI & Python API: Use from the command line or integrate into your code

Installation

pip install llm-registry

Quick Start

Python API

List all available models:

from llm_registry import CapabilityRegistry, Provider
registry = CapabilityRegistry()
models = registry.get_models()
for model in models:
    print(model)

Check a specific model's capabilities:

model = registry.get_model("gpt-5")
if model.api_params.stream:
    # Model supports streaming
    print(f"Cost: ${model.token_costs.input_cost}/M input tokens")

Add custom models:

from llm_registry import CapabilityRepository, Provider
from llm_registry.utils import create_model_capability

new_model = create_model_capability(
    model_id="gpt-5",
    provider=Provider.OPENAI,
    model_family="GPT-5",
    input_cost=0.01,
    output_cost=0.03,
    context_window=8192,
    supports_streaming=True,
    supports_tools=True
)

repo = CapabilityRepository()
repo.save_model_capabilities(new_model)

Command Line Interface

List models:

llmr list
llmr list --provider openai

CLI Screenshot

Get detailed information:

llmr get gpt-5
llmr get gpt-5 --json

Example output:

{
  "model_id": "o1",
  "providers": ["openai"],
  "model_family": "o1",
  "api_params": {
    "max_tokens": true,
    "temperature": false,
    "top_p": false,
    "stream": true
  },
  "features": {
    "vision": true,
    "tools": true,
    "json_mode": true,
    "system_prompt": false
  },
  "token_costs": {
    "input_cost": 15.0,
    "output_cost": 60.0,
    "cache_input_cost": 7.5,
    "context_window": 200000,
    "training_cutoff": "2023-10"
  }
}

Manage custom models:

# Add a model
llmr add custom-model \
    --provider openai \
    --input-cost 0.01 \
    --output-cost 0.03 \
    --stream \
    --tools

# Update a model
llmr update custom-model --input-cost 0.005

# Delete a model
llmr delete custom-model --provider openai

Model Metadata

Each model tracks:

  • Basic Information: Provider(s), model ID, model family
  • Costs: Input/output token costs (per 1M tokens), cached token pricing
  • API Parameters: max_tokens, temperature, top_p, streaming support
  • Features: Vision, tools/function calling, JSON mode, system prompts
  • Limits: Context window size, training data cutoff date

Configuration

Model data is stored in ~/.llm-registry by default. Override with:

repo = CapabilityRepository(data_dir=Path("/custom/path"))

Or via CLI:

llmr list --data-dir /custom/path

Contributing

Contributions welcome! Report bugs, suggest features, or submit pull requests.

License

MIT License. See LICENSE for details.

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

llm_registry-0.4.7.tar.gz (487.4 kB view details)

Uploaded Source

Built Distribution

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

llm_registry-0.4.7-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file llm_registry-0.4.7.tar.gz.

File metadata

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

File hashes

Hashes for llm_registry-0.4.7.tar.gz
Algorithm Hash digest
SHA256 4e2b43d4117ec6b0297ee75378f5a7dabc9282beccecb8fe4828b55cc4c0e9e9
MD5 f6d930d8c272a8f736283500c95d8351
BLAKE2b-256 b27bb42693b3403c9703418f11d9b4a45cca2352f5355522a2b23208cedd2112

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_registry-0.4.7.tar.gz:

Publisher: publish.yml on yamanahlawat/llm-registry

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

File details

Details for the file llm_registry-0.4.7-py3-none-any.whl.

File metadata

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

File hashes

Hashes for llm_registry-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7e42a2becc02ea241aae5b1f7c9a059f9acfa406d205b530e73a73f1f7470f02
MD5 ca8ba22c7502c4f6e625ca14b8abd74e
BLAKE2b-256 88ed640479b15ccfb8d5e4ee865f0b8ba3703e56a8fa9a2fa502f5444de94cce

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_registry-0.4.7-py3-none-any.whl:

Publisher: publish.yml on yamanahlawat/llm-registry

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