[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73703":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},73703,"models.dev","anomalyco\u002Fmodels.dev","anomalyco","An open-source database of AI models.","https:\u002F\u002Fmodels.dev",null,"TypeScript",4923,1092,17,101,0,139,410,1168,417,31.12,"MIT License",false,"dev",true,[],"2026-06-12 02:03:17","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmodels.dev\">\n    \u003Cpicture>\n      \u003Csource srcset=\".\u002Flogo-dark.svg\" media=\"(prefers-color-scheme: dark)\">\n      \u003Csource srcset=\".\u002Flogo-light.svg\" media=\"(prefers-color-scheme: light)\">\n      \u003Cimg src=\".\u002Flogo-light.svg\" alt=\"Models.dev logo\">\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n[Models.dev](https:\u002F\u002Fmodels.dev) is a comprehensive open-source database of AI model specifications, pricing, and capabilities.\n\nThere's no single database with information about all the available AI models. We started Models.dev as a community-contributed project to address this. We also use it internally in [opencode](https:\u002F\u002Fopencode.ai).\n\n## API\n\nYou can access this data through an API.\n\n```bash\ncurl https:\u002F\u002Fmodels.dev\u002Fapi.json\n```\n\nUse the **Model ID** field to do a lookup on any model; it's the identifier used by [AI SDK](https:\u002F\u002Fai-sdk.dev\u002F).\n\n### Logos\n\nProvider logos are available as SVG files:\n\n```bash\ncurl https:\u002F\u002Fmodels.dev\u002Flogos\u002F{provider}.svg\n```\n\nReplace `{provider}` with the **Provider ID** (e.g., `anthropic`, `openai`, `google`). If we don't have a provider's logo, a default logo is served instead.\n\n## Contributing\n\nThe data is stored in the repo as TOML files; organized by provider and model. The logo is stored as an SVG. This is used to generate this page and power the API.\n\nWe need your help keeping the data up to date.\n\n### Adding a New Model\n\nTo add a new model, start by checking if the provider already exists in the `providers\u002F` directory. If not, then:\n\n#### 1. Create a Provider\n\nIf the provider isn't already in `providers\u002F`:\n\n1. Create a new folder in `providers\u002F` with the provider's ID. For example, `providers\u002Fnewprovider\u002F`.\n2. Add a `provider.toml` with the provider details:\n\n   ```toml\n   name = \"Provider Name\"\n   npm = \"@ai-sdk\u002Fprovider\" # AI SDK Package name\n   env = [\"PROVIDER_API_KEY\"] # Environment Variable keys used for auth\n   doc = \"https:\u002F\u002Fexample.com\u002Fdocs\u002Fmodels\" # Link to provider's documentation\n   ```\n\n   If the provider doesn’t publish an npm package but exposes an OpenAI-compatible endpoint, set the npm field accordingly and include the base URL:\n\n   ```toml\n   npm = \"@ai-sdk\u002Fopenai-compatible\" # Use OpenAI-compatible SDK\n   api = \"https:\u002F\u002Fapi.example.com\u002Fv1\" # Required with openai-compatible\n   ```\n\n#### 2. Add a Logo (optional)\n\nTo add a logo for the provider:\n\n1. Add a `logo.svg` file to the provider's directory (e.g., `providers\u002Fnewprovider\u002Flogo.svg`)\n2. Use SVG format with no fixed size or colors - use `currentColor` for fills\u002Fstrokes\n\nExample SVG structure:\n\n```svg\n\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n  \u003C!-- Logo paths here -->\n\u003C\u002Fsvg>\n```\n\n#### 3. Add a Model Definition\n\nCreate a new TOML file in the provider's `models\u002F` directory where the filename is the model ID.\n\nIf the model ID contains `\u002F`, use subfolders. For example, for the model ID `openai\u002Fgpt-5`, create a folder `openai\u002F` and place a file named `gpt-5.toml` inside it.\n\n```toml\nname = \"Model Display Name\"\nattachment = true           # or false - supports file attachments\nreasoning = false           # or true - supports reasoning \u002F chain-of-thought\ntool_call = true            # or false - supports tool calling\nstructured_output = true    # or false - supports a dedicated structured output feature\ntemperature = true          # or false - supports temperature control\nknowledge = \"2024-04\"       # Knowledge-cutoff date\nrelease_date = \"2025-02-19\" # First public release date\nlast_updated = \"2025-02-19\" # Most recent update date\nopen_weights = true         # or false  - model’s trained weights are publicly available\n\n[cost]\ninput = 3.00                # Cost per million input tokens (USD)\noutput = 15.00              # Cost per million output tokens (USD)\nreasoning = 15.00           # Cost per million reasoning tokens (USD)\ncache_read = 0.30           # Cost per million cached read tokens (USD)\ncache_write = 3.75          # Cost per million cached write tokens (USD)\ninput_audio = 1.00          # Cost per million audio input tokens (USD)\noutput_audio = 10.00        # Cost per million audio output tokens (USD)\n\n[limit]\ncontext = 400_000           # Maximum context window (tokens)\ninput = 272_000             # Maximum input tokens\noutput = 8_192              # Maximum output tokens\n\n[modalities]\ninput = [\"text\", \"image\"]   # Supported input modalities\noutput = [\"text\"]           # Supported output modalities\n\n[interleaved]\nfield = \"reasoning_content\" # Name of the interleaved field \"reasoning_content\" or \"reasoning_details\"\n```\n\n#### 3a. Reuse an Existing Model with `extends`\n\nFor wrapper providers that mirror a model from another provider, prefer reusing the canonical model definition instead of duplicating the whole file.\n\nUse `extends` only for non-first-party wrappers and mirrors. Do not use it inside the actual lab provider directories that act as the canonical source for a model family, for example `providers\u002Fanthropic\u002F`, `providers\u002Fopenai\u002F`, `providers\u002Fgoogle\u002F`, `providers\u002Fxai\u002F`, `providers\u002Fminimax\u002F`, or `providers\u002Fmoonshot\u002F`.\n\n```toml\n[extends]\nfrom = \"anthropic\u002Fclaude-opus-4-6\"\nomit = [\"experimental.modes.fast\"]\n\n[provider]\nnpm = \"@ai-sdk\u002Fanthropic\"\n```\n\nRules:\n\n- `from` must point to another model using `\u003Cprovider>\u002F\u003Cmodel-id>`.\n- `omit` is optional and removes fields after the inherited model and local overrides are merged.\n- You can override any top-level model field locally.\n- If you override a nested table like `[cost]`, `[limit]`, or `[modalities]`, include the full values needed for that table.\n- `id` still comes from the filename; do not add it to the TOML.\n\nUse `extends` when the wrapper model is materially the same as the source model and only differs by a small set of overrides or omitted fields.\n\n#### 4. Submit a Pull Request\n\n1. Fork this repo\n2. Create a new branch with your changes\n3. Add your provider and\u002For model files\n4. Open a PR with a clear description\n\n### Validation\n\nThere's a GitHub Action that will automatically validate your submission against our schema to ensure:\n\n- All required fields are present\n- Data types are correct\n- Values are within acceptable ranges\n- TOML syntax is valid\n\nWhen converting existing wrapper models to `extends`, compare generated output before and after the change:\n\n```bash\nbun run compare:migrations\n```\n\nThis prints a diff for each changed model TOML so you can confirm the generated JSON only changed where you intended.\n\n### Schema Reference\n\nModels must conform to the following schema, as defined in `packages\u002Fcore\u002Fsrc\u002Fschema.ts`.\n\n**Provider Schema:**\n\n- `name`: String - Display name of the provider\n- `npm`: String - AI SDK Package name\n- `env`: String[] - Environment variable keys used for auth\n- `doc`: String - Link to the provider's documentation\n- `api` _(optional)_: String - OpenAI-compatible API endpoint. Required only when using `@ai-sdk\u002Fopenai-compatible` as the npm package\n\n**Model Schema:**\n\n- `name`: String — Display name of the model\n- `attachment`: Boolean — Supports file attachments\n- `reasoning`: Boolean — Supports reasoning \u002F chain-of-thought\n- `tool_call`: Boolean - Supports tool calling\n- `structured_output` _(optional)_: Boolean — Supports structured output feature\n- `temperature` _(optional)_: Boolean — Supports temperature control\n- `knowledge` _(optional)_: String — Knowledge-cutoff date in `YYYY-MM` or `YYYY-MM-DD` format\n- `release_date`: String — First public release date in `YYYY-MM` or `YYYY-MM-DD`\n- `last_updated`: String — Most recent update date in `YYYY-MM` or `YYYY-MM-DD`\n- `open_weights`: Boolean - Indicate the model's trained weights are publicly available\n- `interleaved` _(optional)_: Boolean or Object — Supports interleaved reasoning. Use `true` for general support or an object with `field` to specify the format\n- `interleaved.field`: String — Name of the interleaved field (`\"reasoning_content\"` or `\"reasoning_details\"`)\n- `cost.input`: Number — Cost per million input tokens (USD)\n- `cost.output`: Number — Cost per million output tokens (USD)\n- `cost.reasoning` _(optional)_: Number — Cost per million reasoning tokens (USD)\n- `cost.cache_read` _(optional)_: Number — Cost per million cached read tokens (USD)\n- `cost.cache_write` _(optional)_: Number — Cost per million cached write tokens (USD)\n- `cost.input_audio` _(optional)_: Number — Cost per million audio input tokens, if billed separately (USD)\n- `cost.output_audio` _(optional)_: Number — Cost per million audio output tokens, if billed separately (USD)\n- `limit.context`: Number — Maximum context window (tokens)\n- `limit.input`: Number — Maximum input tokens\n- `limit.output`: Number — Maximum output tokens\n- `modalities.input`: Array of strings — Supported input modalities (e.g., [\"text\", \"image\", \"audio\", \"video\", \"pdf\"])\n- `modalities.output`: Array of strings — Supported output modalities (e.g., [\"text\"])\n- `status` _(optional)_: String — Supported status:\n  - `alpha` - Indicate the model is in alpha testing\n  - `beta` - Indicate the model is in beta testing\n  - `deprecated` - Indicate the model is no longer served by the provider's public API\n\n### Examples\n\nSee existing providers in the `providers\u002F` directory for reference:\n\n- `providers\u002Fanthropic\u002F` - Anthropic Claude models\n- `providers\u002Fopenai\u002F` - OpenAI GPT models\n- `providers\u002Fgoogle\u002F` - Google Gemini models\n\n### Working on frontend\n\nMake sure you have [Bun](https:\u002F\u002Fbun.sh\u002F) installed.\n\n```bash\n$ bun install\n$ cd packages\u002Fweb\n$ bun run dev\n```\n\nAnd it'll open the frontend at http:\u002F\u002Flocalhost:3000\n\n### Manual testing with opencode\n\nYou can manually check provider changes with opencode by:\n\n```bash\n$ bun install\n$ cd packages\u002Fweb\n$ bun run build\n$ OPENCODE_MODELS_PATH=\"dist\u002F_api.json\" opencode\n```\n\n### Questions?\n\nOpen an issue if you need help or have questions about contributing.\n\n---\n\nModels.dev is created by the maintainers of [SST](https:\u002F\u002Fsst.dev).\n\n**Join our community** [Discord](https:\u002F\u002Fsst.dev\u002Fdiscord) | [YouTube](https:\u002F\u002Fwww.youtube.com\u002Fc\u002Fsst-dev) | [X.com](https:\u002F\u002Fx.com\u002FSST_dev)\n","Models.dev 是一个全面的开源AI模型数据库，涵盖了模型规格、定价和功能等信息。该项目通过社区贡献的方式维护，提供了一个API接口供用户查询模型数据，支持使用Model ID进行查找，并且可以获取提供商的SVG格式logo。技术上，项目采用TypeScript编写，数据以TOML文件形式存储，并通过这些文件生成网页和API服务。适合需要比较不同AI模型性能或成本效益的开发者、研究人员以及企业使用，在选择合适的AI解决方案时提供参考依据。",2,"2026-06-11 03:47:02","high_star"]