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
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
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
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_registry-0.5.0.tar.gz.
File metadata
- Download URL: llm_registry-0.5.0.tar.gz
- Upload date:
- Size: 494.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3022ee007427a9d8a213de9a648fbdfcaf42b5f1887851659aacc9e897be1a3
|
|
| MD5 |
a751e04e91b3097c812c91d5aeae6ddf
|
|
| BLAKE2b-256 |
591de92149147d8f49454ebd43c0bbbff4102faff05f00e457817deb88b902c5
|
Provenance
The following attestation bundles were made for llm_registry-0.5.0.tar.gz:
Publisher:
publish.yml on yamanahlawat/llm-registry
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_registry-0.5.0.tar.gz -
Subject digest:
e3022ee007427a9d8a213de9a648fbdfcaf42b5f1887851659aacc9e897be1a3 - Sigstore transparency entry: 926932079
- Sigstore integration time:
-
Permalink:
yamanahlawat/llm-registry@79e46fcd820d6ac0bba535065348acd7fce2a3db -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/yamanahlawat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@79e46fcd820d6ac0bba535065348acd7fce2a3db -
Trigger Event:
release
-
Statement type:
File details
Details for the file llm_registry-0.5.0-py3-none-any.whl.
File metadata
- Download URL: llm_registry-0.5.0-py3-none-any.whl
- Upload date:
- Size: 19.3 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 |
0b3232b9b80635e22405fe4e58a83539f016c2d6dee921b5cbc1c8027017ec76
|
|
| MD5 |
904001cb3702bf38c20605f02da69b5d
|
|
| BLAKE2b-256 |
066befb50e5586d876160c75342f6835ac7ebf46bc4d42de2d30d026c93feae4
|
Provenance
The following attestation bundles were made for llm_registry-0.5.0-py3-none-any.whl:
Publisher:
publish.yml on yamanahlawat/llm-registry
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_registry-0.5.0-py3-none-any.whl -
Subject digest:
0b3232b9b80635e22405fe4e58a83539f016c2d6dee921b5cbc1c8027017ec76 - Sigstore transparency entry: 926932082
- Sigstore integration time:
-
Permalink:
yamanahlawat/llm-registry@79e46fcd820d6ac0bba535065348acd7fce2a3db -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/yamanahlawat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@79e46fcd820d6ac0bba535065348acd7fce2a3db -
Trigger Event:
release
-
Statement type: