A centralized, language-agnostic, open-source approach to storing and sharing model definitions like context windows, cost per token, etc.
Note: This project does not strive to be an exhaustive registry of every model, but a registry that I can use in my own projects to provide consistent, sane defaults for model and provider selection for provider and model agnostic projects where the user can configure which models and providers they want to use.
Want a model added? Request a Model.
For an exhaustive registry, check out models.dev.
Nearly every project that wants to incorporate multiple models needs to handle knowledge about the underlying model like context window length.
This leads to the proliferation of essentially the same code repeated across multiple codebases that all need to be updated when new models are released, token costs change, a model is deprecated, etc.
- LangChain
- LiteLLM
- AutoGen
- tokentrim
- AI Research Assistant Obsidian Plugin
- AgentGPT
next/src/types/modelSettings.ts - MetaGPT
utils/token_counter.py
Have more examples? Create a Pull Request.
Centralized, language-agnostic utility that defines model information and allows developers to easily import and consume these definitions in their own codebases.
A JSON Schema definition can be found in model-metadata.schema.json, and example Model Metadata definitions can be found in the /models directory. Provider definitions live in /providers with their own schema in provider.schema.json.
These schema defines properties that are relevant to the model and developers who wish to leverage it in their own codebases.
model_id: The identifier of the model that the provider uses- Example:
gpt-3.5-turbo
- Example:
model_name: The human-friendly name of the model- Example:
GPT-3.5 Turbo
- Example:
model_type: The type of model (chat,completion, orembedding)- Example:
chat
- Example:
context_window: The maximum number of tokens in the model's context window- Example:
4096
- Example:
model_provider: The provider of the model in lowercase- Example:
openai
- Example:
model_description: A human-friendly description of the modelmodel_version: The version of the model- Example
0613
- Example
cost_per_token: The cost per token in USD- Example:
json { "input": 0.0000015, "output": 0.000002 } - Note: supports either a basic number or an object with
inputandoutputnumbers to define different costs between input tokens and output tokens
- Example:
knowledge_cutoff: The training data cutoff date for the model- Note: This is helpful when dealing with applications where you may need to know if you should supplement the model's training data with more recent information
tokenizer: What type of tokenization the model usesfamily: The tokenizer family, e.g.tiktoken(OpenAI),tekken(Mistral),sentencepiece(Google),other, orunknown- Note: This is helpful when determining if/how the consuming application can calculate token usage using a standard open source library like
tiktokenorgpt-tokenizer, etc. or an alternate approach to counting tokens
- Note: This is helpful when determining if/how the consuming application can calculate token usage using a standard open source library like
name: The specific tokenizer name or protocol used by the model, e.g.cl100k_base(tiktoken),p50k_base(tiktoken),v3(tekken), etc.
tuning: The types of tuning that the model has been given in Array format; currently supportsfunction,instruction,code,multilingual, andmultimodal- Example:
["function", "instruction"] - Note: This is helpful when deciding which models are suitable for given tasks
- Example:
deprecated: Whether the model has been deprecated by the provider- Example:
false - Note: Deprecated models may still work but should be avoided for new integrations
- Example:
providers: Which providers serve this model and how to reference it on each- Example:
providers: - provider_id: openai model_id_on_provider: gpt-4o - provider_id: openrouter model_id_on_provider: openai/gpt-4o
- Note: Allows a single model to be accessed via direct provider API or aggregator. Provider definitions live in
/providers.
- Example:
meta_model: If the model is a meta model, like OpenRouter's Auto Router, this field indicates that the model may have special treatment for context, tokenization, and cost
Provider definitions in providers/ describe API endpoints and routing. See provider.schema.json.
provider_id: Unique lowercase identifier matching theproviders/filename and used in modelprovider_referencename: Human-readable nameapi_type: One ofopenai_compatible,anthropic,openai,otherrouting_priority:direct(serves models itself) oraggregator(routes to other providers) orboth
The routing_priority field differentiates direct providers (who serve models themselves) from aggregators (who route to other providers):
routing_priority |
Provider Examples |
|---|---|
direct |
OpenAI, Anthropic, DeepSeek, Groq, Mistral, Cloudflare |
aggregator |
OpenRouter |
Ollama, LM Studio, and LocalAI use direct but default to localhost with no auth — override base_url and auth_type in your app config when deploying.
provider_id: openai
name: OpenAI
website_url: https://openai.com
api_type: openai_compatible
base_url: https://api.openai.com/v1
auth_type: api_key
routing_priority: direct
status: active66 active models across 12 primary model providers (deprecated models exist in /models but are excluded from this list). Provider definitions cover 17 direct/local/aggregator routes.
OpenAI:
gpt-4-turbogpt-4.1gpt-4.1-minigpt-4.1-nanogpt-4.5gpt-4ogpt-4o-minigpt-5gpt-5-minigpt-5-nanogpt-5.3-codexgpt-5.4gpt-5.4-image-2gpt-5.4-minigpt-5.4-nanogpt-5.4-progpt-5.5gpt-5.5-proo3o4-mini
Anthropic:
claude-haiku-4claude-haiku-4-5claude-opus-4-6claude-opus-4-6-fastclaude-opus-4-7claude-opus-latestclaude-sonnet-4-2claude-sonnet-4-6
Google:
gemini-2.5-flashgemini-2.5-progemma-4-26b-a4b-itgemma-4-31b-it
DeepSeek:
deepseek-coder-v4deepseek-v4-flashdeepseek-v4-pro
xAI:
grok-4.2grok-4.2-multi-agent
Moonshot AI:
kimi-k2.6kimi-v3
Mistral AI:
codestral-latestmistral-large-2411mistral-large-2512mistral-large-latestmistral-medium-latestmistral-nemomistral-small-latest
MiniMax:
minimax-m2minimax-m2.1minimax-m2.1-highspeedminimax-m2.5minimax-m2.5-highspeedminimax-m2.7minimax-m2.7-highspeed
Z.AI:
glm-4.7glm-4.7-flashglm-5glm-5-turboglm-5.1glm-5v-turbo
Qwen:
qwen3-32bqwen3.6-flashqwen3.6-plus
Groq:
deepseek-r1-distill-llama-70bllama-3.1-8b-instantllama-3.3-70b-versatile
NVIDIA:
nemotron-3-super-120b-a12b
OpenRouter:
auto
Full definitions (including deprecated models) live in /models.
Language-specific packages wrap the registry with a typed API. See each package for usage examples.
| Package | Status |
|---|---|
| TypeScript | Alpha |
| Python | Alpha |