diff --git a/.agents/skills/manifest-automation/SKILL.md b/.agents/skills/manifest-automation/SKILL.md
index 70539167..66c418a9 100644
--- a/.agents/skills/manifest-automation/SKILL.md
+++ b/.agents/skills/manifest-automation/SKILL.md
@@ -42,7 +42,7 @@ The merge helper is advisory. Always inspect its proposed result before applying
## GitHub stars
-`data/github-stars.json` tracks `cli`, `desktop`, `extension`, `ide`, and selected `model` entries. Every CLI, desktop, extension, and IDE manifest must have a corresponding entry; use `null` when no official repository or trustworthy count is available. Providers and vendors are not tracked.
+`data/github-stars.json` tracks `cli`, `desktop`, `extension`, and `ide` entries. Every CLI, desktop, extension, and IDE manifest must have a corresponding entry; use `null` when no official repository or trustworthy count is available. Models, providers, and vendors are not tracked.
## Validation
diff --git a/cspell.json b/cspell.json
index b1e22c19..d42b699e 100644
--- a/cspell.json
+++ b/cspell.json
@@ -42,6 +42,7 @@
],
"useGitignore": true,
"ignorePaths": ["cloudflare-env.d.ts", "docs", ".claude"],
+ "ignoreRegExpList": ["/\\d+-g[0-9a-f]{6,}/g"],
"words": [
"Autorisierungsaufträgen",
"Entwicklungsframework",
@@ -63,6 +64,7 @@
"ccstatusline",
"API'lerle",
"acli",
+ "anomalyco",
"aracidir",
"glab",
"Rovo",
@@ -139,8 +141,10 @@
"Mengkonversi",
"mengorkestrasi",
"Moonshot",
+ "Novita",
"SpaceXAI",
"moonshotai",
+ "novita",
"Optimierung",
"Optimizasyonlar",
"Porcentagem",
diff --git a/data/$schemas/artificial-analysis-index.schema.json b/data/$schemas/artificial-analysis-index.schema.json
new file mode 100644
index 00000000..40d78c89
--- /dev/null
+++ b/data/$schemas/artificial-analysis-index.schema.json
@@ -0,0 +1,86 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Artificial Analysis Intelligence Index Data",
+ "description": "Observed Artificial Analysis Intelligence Index scores mapped to catalog model identifiers.",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "const": "./$schemas/artificial-analysis-index.schema.json"
+ },
+ "source": {
+ "const": "Artificial Analysis"
+ },
+ "sourceUrl": {
+ "type": "string",
+ "format": "uri",
+ "pattern": "^https://"
+ },
+ "methodologyUrl": {
+ "type": "string",
+ "format": "uri",
+ "pattern": "^https://"
+ },
+ "indexVersion": {
+ "type": "string",
+ "pattern": "^[0-9]+(?:\\.[0-9]+)*$"
+ },
+ "observedAt": {
+ "type": "string",
+ "format": "date"
+ },
+ "legacyMissingModelIds": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/modelId"
+ },
+ "uniqueItems": true
+ },
+ "entries": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/entry"
+ },
+ "minItems": 1,
+ "uniqueItems": true
+ }
+ },
+ "required": [
+ "$schema",
+ "source",
+ "sourceUrl",
+ "methodologyUrl",
+ "indexVersion",
+ "observedAt",
+ "legacyMissingModelIds",
+ "entries"
+ ],
+ "additionalProperties": false,
+ "$defs": {
+ "modelId": {
+ "type": "string",
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
+ },
+ "entry": {
+ "type": "object",
+ "properties": {
+ "modelId": {
+ "$ref": "#/$defs/modelId"
+ },
+ "score": {
+ "type": "number",
+ "minimum": 0,
+ "maximum": 100
+ },
+ "estimated": {
+ "type": "boolean"
+ },
+ "configuration": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["modelId", "score", "estimated", "configuration"],
+ "additionalProperties": false
+ }
+ }
+}
diff --git a/data/$schemas/vendor-company-stages.schema.json b/data/$schemas/vendor-company-stages.schema.json
new file mode 100644
index 00000000..e2c4e40a
--- /dev/null
+++ b/data/$schemas/vendor-company-stages.schema.json
@@ -0,0 +1,181 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Vendor Company Stage Configuration",
+ "description": "Dated, sourced company-stage assignments and display order for the vendor catalog.",
+ "type": "object",
+ "properties": {
+ "$schema": {
+ "type": "string"
+ },
+ "asOf": {
+ "type": "string",
+ "format": "date"
+ },
+ "criteria": {
+ "type": "object",
+ "properties": {
+ "publicCompanyIncludesListedParent": {
+ "const": true
+ },
+ "superUnicornMinimumUsd": {
+ "const": 10000000000
+ },
+ "unicornMinimumUsd": {
+ "const": 1000000000
+ },
+ "startupIsDefault": {
+ "const": true
+ }
+ },
+ "required": [
+ "publicCompanyIncludesListedParent",
+ "superUnicornMinimumUsd",
+ "unicornMinimumUsd",
+ "startupIsDefault"
+ ],
+ "additionalProperties": false
+ },
+ "groups": {
+ "type": "array",
+ "prefixItems": [
+ {
+ "allOf": [
+ { "$ref": "#/$defs/group" },
+ {
+ "type": "object",
+ "properties": {
+ "id": { "const": "public-company" },
+ "translationKey": { "const": "publicCompany" }
+ }
+ }
+ ]
+ },
+ {
+ "allOf": [
+ { "$ref": "#/$defs/group" },
+ {
+ "type": "object",
+ "properties": {
+ "id": { "const": "super-unicorn" },
+ "translationKey": { "const": "superUnicorn" }
+ }
+ }
+ ]
+ },
+ {
+ "allOf": [
+ { "$ref": "#/$defs/group" },
+ {
+ "type": "object",
+ "properties": {
+ "id": { "const": "unicorn" },
+ "translationKey": { "const": "unicorn" }
+ }
+ }
+ ]
+ },
+ {
+ "allOf": [
+ { "$ref": "#/$defs/group" },
+ {
+ "type": "object",
+ "properties": {
+ "id": { "const": "startup" },
+ "translationKey": { "const": "startup" }
+ }
+ }
+ ]
+ }
+ ],
+ "items": false,
+ "minItems": 4,
+ "maxItems": 4
+ },
+ "assignments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/assignment"
+ },
+ "minItems": 1
+ }
+ },
+ "required": ["$schema", "asOf", "criteria", "groups", "assignments"],
+ "additionalProperties": false,
+ "$defs": {
+ "stage": {
+ "type": "string",
+ "enum": ["public-company", "super-unicorn", "unicorn", "startup"]
+ },
+ "group": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "$ref": "#/$defs/stage"
+ },
+ "translationKey": {
+ "type": "string",
+ "enum": ["publicCompany", "superUnicorn", "unicorn", "startup"]
+ }
+ },
+ "required": ["id", "translationKey"],
+ "additionalProperties": false
+ },
+ "source": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "pattern": "^https://"
+ },
+ "title": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["url", "title"],
+ "additionalProperties": false
+ },
+ "assignment": {
+ "type": "object",
+ "properties": {
+ "vendorId": {
+ "type": "string",
+ "pattern": "^[a-z0-9-]+$"
+ },
+ "stage": {
+ "$ref": "#/$defs/stage"
+ },
+ "source": {
+ "oneOf": [
+ {
+ "$ref": "#/$defs/source"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": ["vendorId", "stage", "source"],
+ "additionalProperties": false,
+ "if": {
+ "type": "object",
+ "properties": {
+ "stage": {
+ "not": { "const": "startup" }
+ }
+ },
+ "required": ["stage"]
+ },
+ "then": {
+ "type": "object",
+ "properties": {
+ "source": {
+ "$ref": "#/$defs/source"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/artificial-analysis-index.json b/data/artificial-analysis-index.json
index 1e18709a..2cfe0e05 100644
--- a/data/artificial-analysis-index.json
+++ b/data/artificial-analysis-index.json
@@ -1,10 +1,11 @@
{
+ "$schema": "./$schemas/artificial-analysis-index.schema.json",
"source": "Artificial Analysis",
"sourceUrl": "https://artificialanalysis.ai/leaderboards/models",
"methodologyUrl": "https://artificialanalysis.ai/methodology/intelligence-benchmarking",
"indexVersion": "4.1",
- "observedAt": "2026-07-27",
- "legacyMissingModelIds": ["composer", "cursor-composer-2", "cursor-composer-2-5"],
+ "observedAt": "2026-07-31",
+ "legacyMissingModelIds": ["cursor-composer-2", "cursor-composer-2-5"],
"entries": [
{
"modelId": "claude-fable-5",
@@ -170,6 +171,12 @@
},
{
"modelId": "deepseek-v4-flash",
+ "score": 50,
+ "estimated": false,
+ "configuration": "DeepSeek V4 Flash 0731 (max)"
+ },
+ {
+ "modelId": "deepseek-v4-flash-preview",
"score": 40,
"estimated": false,
"configuration": "DeepSeek V4 Flash (max)"
diff --git a/data/data-health.json b/data/data-health.json
index e7eceee7..a5912542 100644
--- a/data/data-health.json
+++ b/data/data-health.json
@@ -1,5 +1,5 @@
{
- "asOf": "2026-07-31",
+ "asOf": "2026-08-01",
"thresholds": {
"models": 30,
"providers": 30,
@@ -10,173 +10,123 @@
"vendors": 90
},
"summary": {
- "totalRecords": 242,
- "recordsWithSources": 235,
- "verifiedRecords": 215,
- "provenanceComplete": 215,
+ "totalRecords": 248,
+ "recordsWithSources": 248,
+ "verifiedRecords": 248,
+ "provenanceComplete": 248,
"staleVerifiedRecords": 0,
"translationPlaceholderValues": 300,
"danglingRelationships": 0,
"modelBenchmarkCoverage": 9.5,
- "productsWithPricing": 67,
- "productRecords": 67,
- "communityUrlsPopulated": 302,
- "communityUrlsWithProvenance": 302,
+ "productsWithPricing": 63,
+ "productRecords": 63,
+ "communityUrlsPopulated": 328,
+ "communityUrlsWithProvenance": 328,
"duplicatedVendorCommunityUrls": 0,
"errors": 0,
"warnings": 0,
- "info": 7
+ "info": 0
},
"byCategory": {
"ides": {
- "total": 9,
- "verified": 7,
- "provenanceComplete": 7,
+ "total": 8,
+ "verified": 8,
+ "provenanceComplete": 8,
"stale": 0
},
"clis": {
- "total": 27,
- "verified": 18,
- "provenanceComplete": 18,
+ "total": 25,
+ "verified": 25,
+ "provenanceComplete": 25,
"stale": 0
},
"desktops": {
- "total": 12,
- "verified": 7,
- "provenanceComplete": 7,
+ "total": 11,
+ "verified": 11,
+ "provenanceComplete": 11,
"stale": 0
},
"extensions": {
"total": 19,
- "verified": 17,
- "provenanceComplete": 17,
+ "verified": 19,
+ "provenanceComplete": 19,
"stale": 0
},
"models": {
"total": 123,
- "verified": 122,
- "provenanceComplete": 122,
+ "verified": 123,
+ "provenanceComplete": 123,
"stale": 0
},
"providers": {
- "total": 12,
- "verified": 4,
- "provenanceComplete": 4,
+ "total": 17,
+ "verified": 17,
+ "provenanceComplete": 17,
"stale": 0
},
"vendors": {
- "total": 40,
- "verified": 40,
- "provenanceComplete": 40,
+ "total": 45,
+ "verified": 45,
+ "provenanceComplete": 45,
"stale": 0
}
},
"translationsByLocale": {
"de": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 39,
- "matchingEnglishPercent": 8.7
+ "matchingEnglishPercent": 8.6
},
"es": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 25,
- "matchingEnglishPercent": 5.6
+ "matchingEnglishPercent": 5.5
},
"fr": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 36,
- "matchingEnglishPercent": 8.1
+ "matchingEnglishPercent": 7.9
},
"id": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 30,
- "matchingEnglishPercent": 6.7
+ "matchingEnglishPercent": 6.6
},
"ja": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 23,
"matchingEnglishPercent": 5.1
},
"ko": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 23,
"matchingEnglishPercent": 5.1
},
"pt": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 31,
- "matchingEnglishPercent": 6.9
+ "matchingEnglishPercent": 6.8
},
"ru": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 23,
"matchingEnglishPercent": 5.1
},
"tr": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 26,
- "matchingEnglishPercent": 5.8
+ "matchingEnglishPercent": 5.7
},
"zh-Hans": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 22,
"matchingEnglishPercent": 4.9
},
"zh-Hant": {
- "totalStrings": 447,
+ "totalStrings": 453,
"matchingEnglish": 22,
"matchingEnglishPercent": 4.9
}
},
- "issues": [
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "models",
- "id": "composer",
- "message": "No structured source references are recorded."
- },
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "providers",
- "id": "deepseek",
- "message": "No structured source references are recorded."
- },
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "providers",
- "id": "minimax",
- "message": "No structured source references are recorded."
- },
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "providers",
- "id": "moonshot",
- "message": "No structured source references are recorded."
- },
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "providers",
- "id": "openrouter",
- "message": "No structured source references are recorded."
- },
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "providers",
- "id": "xai",
- "message": "No structured source references are recorded."
- },
- {
- "severity": "info",
- "code": "missing-sources",
- "category": "providers",
- "id": "z-ai",
- "message": "No structured source references are recorded."
- }
- ]
+ "issues": []
}
diff --git a/data/github-stars.json b/data/github-stars.json
index 1556f213..f4a396f1 100644
--- a/data/github-stars.json
+++ b/data/github-stars.json
@@ -42,30 +42,26 @@
"kiro-cli": 4.1,
"kode": 5.2,
"vibe-cli": 4.8,
- "neovate-code": 1.6,
"omp": 19.9,
"opencode": 190,
"qoder-cli": null,
- "qwen-code": 26.3,
- "rovo-dev-cli": null
+ "qwen-code": 26.3
},
"desktops": {
"air": null,
"claude-code-desktop": 139.2,
+ "codebuddy": null,
"codex-app": 102.6,
"factory-desktop": null,
"minimax-code": 0,
"opencode-desktop": 190,
"qoder": null,
"stagewise": 6.8,
- "trae-work": null,
"verdent-deck": 0,
- "workbuddy": null,
"zcode": null
},
"ides": {
"antigravity": null,
- "codebuddy": null,
"cursor": 33.1,
"intellij-idea": 20.4,
"kiro": 4.1,
@@ -73,18 +69,5 @@
"vscode": 187.9,
"windsurf": null,
"zed": 87.6
- },
- "models": {
- "claude-fable-5": null,
- "claude-opus-4-8": null,
- "claude-sonnet-5": null,
- "composer": null,
- "deepseek-3-2": null,
- "gemini-3-1-pro-preview": null,
- "gemini-3-5-flash": null,
- "glm-4-6v": null,
- "gpt-5-6-luna": null,
- "gpt-5-6-sol": null,
- "gpt-5-6-terra": null
}
}
diff --git a/data/vendor-company-stages.json b/data/vendor-company-stages.json
new file mode 100644
index 00000000..9f3aa86c
--- /dev/null
+++ b/data/vendor-company-stages.json
@@ -0,0 +1,345 @@
+{
+ "$schema": "./$schemas/vendor-company-stages.schema.json",
+ "asOf": "2026-07-31",
+ "criteria": {
+ "publicCompanyIncludesListedParent": true,
+ "superUnicornMinimumUsd": 10000000000,
+ "unicornMinimumUsd": 1000000000,
+ "startupIsDefault": true
+ },
+ "groups": [
+ {
+ "id": "public-company",
+ "translationKey": "publicCompany"
+ },
+ {
+ "id": "super-unicorn",
+ "translationKey": "superUnicorn"
+ },
+ {
+ "id": "unicorn",
+ "translationKey": "unicorn"
+ },
+ {
+ "id": "startup",
+ "translationKey": "startup"
+ }
+ ],
+ "assignments": [
+ {
+ "vendorId": "alibaba",
+ "stage": "public-company",
+ "source": {
+ "url": "https://www.alibabagroup.com/en-US/ir-home",
+ "title": "Alibaba Group investor relations"
+ }
+ },
+ {
+ "vendorId": "atlassian",
+ "stage": "public-company",
+ "source": {
+ "url": "https://investors.atlassian.com/",
+ "title": "Atlassian investor relations"
+ }
+ },
+ {
+ "vendorId": "aws",
+ "stage": "public-company",
+ "source": {
+ "url": "https://ir.aboutamazon.com/",
+ "title": "Amazon investor relations"
+ }
+ },
+ {
+ "vendorId": "github",
+ "stage": "public-company",
+ "source": {
+ "url": "https://news.microsoft.com/announcement/microsoft-acquires-github/",
+ "title": "Microsoft acquires GitHub"
+ }
+ },
+ {
+ "vendorId": "gitlab",
+ "stage": "public-company",
+ "source": {
+ "url": "https://ir.gitlab.com/",
+ "title": "GitLab investor relations"
+ }
+ },
+ {
+ "vendorId": "google",
+ "stage": "public-company",
+ "source": {
+ "url": "https://abc.xyz/investor/",
+ "title": "Alphabet investor relations"
+ }
+ },
+ {
+ "vendorId": "meta",
+ "stage": "public-company",
+ "source": {
+ "url": "https://investor.atmeta.com/",
+ "title": "Meta investor relations"
+ }
+ },
+ {
+ "vendorId": "microsoft",
+ "stage": "public-company",
+ "source": {
+ "url": "https://www.microsoft.com/en-us/Investor",
+ "title": "Microsoft investor relations"
+ }
+ },
+ {
+ "vendorId": "minimax",
+ "stage": "public-company",
+ "source": {
+ "url": "https://www1.hkexnews.hk/listedco/listconews/sehk/2026/0313/2026031301613.pdf",
+ "title": "MiniMax Hong Kong Stock Exchange filing"
+ }
+ },
+ {
+ "vendorId": "tencent",
+ "stage": "public-company",
+ "source": {
+ "url": "https://www.tencent.com/en-us/investors.html",
+ "title": "Tencent investor relations"
+ }
+ },
+ {
+ "vendorId": "xai",
+ "stage": "public-company",
+ "source": {
+ "url": "https://apnews.com/article/a5c60fcbaaca262cf107d30f1de899ef",
+ "title": "AP report on public SpaceX and its xAI subsidiary"
+ }
+ },
+ {
+ "vendorId": "xiaomi",
+ "stage": "public-company",
+ "source": {
+ "url": "https://ir.mi.com/",
+ "title": "Xiaomi investor relations"
+ }
+ },
+ {
+ "vendorId": "z-ai",
+ "stage": "public-company",
+ "source": {
+ "url": "https://www.thestandard.com.hk/innovation/article/336423/Chinese-AI-startups-Zhipu-MiniMax-face-pressure-as-50b-lock-ups-expire-this-week",
+ "title": "Z.ai Hong Kong listing report"
+ }
+ },
+ {
+ "vendorId": "ant-group",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://auptimate.com/wp-content/uploads/2026/06/top100-as-of-june19.html",
+ "title": "Top 100 private companies as of June 2026"
+ }
+ },
+ {
+ "vendorId": "anthropic",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://apnews.com/article/86c432fa375548fd4f111f8164d6ffc1",
+ "title": "Anthropic funding and valuation report"
+ }
+ },
+ {
+ "vendorId": "anysphere",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://apnews.com/article/a5c60fcbaaca262cf107d30f1de899ef",
+ "title": "Anysphere acquisition valuation report"
+ }
+ },
+ {
+ "vendorId": "baseten",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://www.baseten.co/blog/announcing-our-series-f/",
+ "title": "Baseten Series F announcement"
+ }
+ },
+ {
+ "vendorId": "bytedance",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://www.investing.com/news/stock-market-news/exclusivebytedance-valued-at-550-billion-in-proposed-share-sale-sources-say-4523409",
+ "title": "Reuters report on ByteDance valuation"
+ }
+ },
+ {
+ "vendorId": "cognition",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://cognition.com/blog",
+ "title": "Cognition funding announcement"
+ }
+ },
+ {
+ "vendorId": "deepseek",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://www.axios.com/2026/06/03/china-deepseek-billion",
+ "title": "Axios report on DeepSeek valuation"
+ }
+ },
+ {
+ "vendorId": "fireworks-ai",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://fireworks.ai/blog/series-d-announcement",
+ "title": "Fireworks AI Series D announcement"
+ }
+ },
+ {
+ "vendorId": "mistral-ai",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://techcrunch.com/2026/06/12/mistral-is-rumored-to-be-raising-e3b-at-e20-valuation/",
+ "title": "Mistral AI valuation report"
+ }
+ },
+ {
+ "vendorId": "moonshot",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://techcrunch.com/2026/05/07/chinas-moonshot-ai-raises-2b-at-20b-valuation-as-demand-for-open-source-ai-skyrockets/",
+ "title": "Moonshot AI funding and valuation report"
+ }
+ },
+ {
+ "vendorId": "openai",
+ "stage": "super-unicorn",
+ "source": {
+ "url": "https://apnews.com/article/a0a915c32b85337d799fe2f9525a932a",
+ "title": "OpenAI funding and valuation report"
+ }
+ },
+ {
+ "vendorId": "factory-ai",
+ "stage": "unicorn",
+ "source": {
+ "url": "https://factory.ai/news/series-c",
+ "title": "Factory Series C announcement"
+ }
+ },
+ {
+ "vendorId": "jetbrains",
+ "stage": "unicorn",
+ "source": {
+ "url": "https://ris3.gov.cz/sites/default/files/2026-04/ENG_Analysis%20of%20the%20Start-up%20Ecosystem%20in%20Czechia.pdf",
+ "title": "Czech startup ecosystem analysis classifying JetBrains as a unicorn"
+ }
+ },
+ {
+ "vendorId": "openrouter",
+ "stage": "unicorn",
+ "source": {
+ "url": "https://techcrunch.com/2026/05/26/openrouter-more-than-doubles-valuation-to-1-3b-in-a-year/",
+ "title": "OpenRouter funding and valuation report"
+ }
+ },
+ {
+ "vendorId": "siliconflow",
+ "stage": "unicorn",
+ "source": {
+ "url": "https://www1.hkexnews.hk/app/sehk/2026/108701/documents/sehk26063002928.pdf",
+ "title": "SiliconFlow draft listing application and financing valuations"
+ }
+ },
+ {
+ "vendorId": "sourcegraph",
+ "stage": "unicorn",
+ "source": {
+ "url": "https://techcrunch.com/2021/07/14/sourcegraph-raises-125m-at-a-2-6b-valuation-for-its-universal-code-search-platform/",
+ "title": "Sourcegraph Series D valuation report"
+ }
+ },
+ {
+ "vendorId": "together-ai",
+ "stage": "unicorn",
+ "source": {
+ "url": "https://www.together.ai/blog/announcing-our-series-c",
+ "title": "Together AI Series C announcement"
+ }
+ },
+ {
+ "vendorId": "anomaly",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "augment",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "cline",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "continue",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "deepinfra",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "kilo",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "novita-ai",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "oh-my-pi",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "roo-code",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "shareai-lab",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "sst",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "stagewise",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "tabnine",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "verdent-ai",
+ "stage": "startup",
+ "source": null
+ },
+ {
+ "vendorId": "zed-industries",
+ "stage": "startup",
+ "source": null
+ }
+ ]
+}
diff --git a/docs/DATA-HEALTH.md b/docs/DATA-HEALTH.md
index 3757381e..bd421531 100644
--- a/docs/DATA-HEALTH.md
+++ b/docs/DATA-HEALTH.md
@@ -1,35 +1,35 @@
# Data Health Report
-Snapshot date: 2026-07-31. Regenerate with `pnpm data-health:report`.
+Snapshot date: 2026-08-01. Regenerate with `pnpm data-health:report`.
## Scorecard
| Metric | Value |
| --- | ---: |
-| Manifest records | 242 |
-| Records with structured sources | 235 |
-| Verified records | 215 |
-| Verified with complete provenance | 215 |
+| Manifest records | 248 |
+| Records with structured sources | 248 |
+| Verified records | 248 |
+| Verified with complete provenance | 248 |
| Stale verified records | 0 |
| Non-English values identical to English | 300 |
| Dangling product relationships | 0 |
| Model benchmark coverage | 9.5% |
-| Products with pricing | 67/67 |
-| Community URLs with provenance | 302/302 |
+| Products with pricing | 63/63 |
+| Community URLs with provenance | 328/328 |
| Duplicated vendor community URLs | 0 |
-| Errors / warnings / info | 0 / 0 / 7 |
+| Errors / warnings / info | 0 / 0 / 0 |
## Category Breakdown
| Category | Total | Verified | Provenance complete | Stale |
| --- | ---: | ---: | ---: | ---: |
-| ides | 9 | 7 | 7 | 0 |
-| clis | 27 | 18 | 18 | 0 |
-| desktops | 12 | 7 | 7 | 0 |
-| extensions | 19 | 17 | 17 | 0 |
-| models | 123 | 122 | 122 | 0 |
-| providers | 12 | 4 | 4 | 0 |
-| vendors | 40 | 40 | 40 | 0 |
+| ides | 8 | 8 | 8 | 0 |
+| clis | 25 | 25 | 25 | 0 |
+| desktops | 11 | 11 | 11 | 0 |
+| extensions | 19 | 19 | 19 | 0 |
+| models | 123 | 123 | 123 | 0 |
+| providers | 17 | 17 | 17 | 0 |
+| vendors | 45 | 45 | 45 | 0 |
## Translation Placeholder Proxy
@@ -37,23 +37,23 @@ Exact English matches are a triage signal; product names and technical terms can
| Locale | Comparable strings | Exact English matches | Match rate |
| --- | ---: | ---: | ---: |
-| de | 447 | 39 | 8.7% |
-| es | 447 | 25 | 5.6% |
-| fr | 447 | 36 | 8.1% |
-| id | 447 | 30 | 6.7% |
-| ja | 447 | 23 | 5.1% |
-| ko | 447 | 23 | 5.1% |
-| pt | 447 | 31 | 6.9% |
-| ru | 447 | 23 | 5.1% |
-| tr | 447 | 26 | 5.8% |
-| zh-Hans | 447 | 22 | 4.9% |
-| zh-Hant | 447 | 22 | 4.9% |
+| de | 453 | 39 | 8.6% |
+| es | 453 | 25 | 5.5% |
+| fr | 453 | 36 | 7.9% |
+| id | 453 | 30 | 6.6% |
+| ja | 453 | 23 | 5.1% |
+| ko | 453 | 23 | 5.1% |
+| pt | 453 | 31 | 6.8% |
+| ru | 453 | 23 | 5.1% |
+| tr | 453 | 26 | 5.7% |
+| zh-Hans | 453 | 22 | 4.9% |
+| zh-Hant | 453 | 22 | 4.9% |
## Backlog by Issue Type
| Issue | Count |
| --- | ---: |
-| missing-sources | 7 |
+| None | 0 |
## Priority Queue
diff --git a/manifests/$schemas/cli.schema.json b/manifests/$schemas/cli.schema.json
index 2450898c..33475a5e 100644
--- a/manifests/$schemas/cli.schema.json
+++ b/manifests/$schemas/cli.schema.json
@@ -3,5 +3,31 @@
"title": "CLI Manifest Schema",
"description": "Schema for CLI tool metadata",
"type": "object",
- "allOf": [{ "$ref": "./ref/app.schema.json" }]
+ "allOf": [
+ { "$ref": "./ref/app.schema.json" },
+ {
+ "type": "object",
+ "properties": {
+ "latestVersion": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^(?!\\s*(?:[Ll][Aa][Tt][Ee][Ss][Tt]|[Uu][Nn][Kk][Nn][Oo][Ww][Nn]|[Nn]\\/?[Aa]|[Tt][Bb][Dd]|[-—])\\s*$).+$",
+ "description": "Concrete current CLI version; placeholders such as Latest, Unknown, N/A, or TBD are not allowed"
+ },
+ "resourceUrls": {
+ "type": "object",
+ "properties": {
+ "download": {
+ "type": "string",
+ "format": "uri",
+ "pattern": "^https://",
+ "description": "Official HTTPS download or installation page"
+ }
+ },
+ "required": ["download"]
+ }
+ },
+ "required": ["latestVersion", "resourceUrls"]
+ }
+ ]
}
diff --git a/manifests/$schemas/model.schema.json b/manifests/$schemas/model.schema.json
index a79666a6..41b21777 100644
--- a/manifests/$schemas/model.schema.json
+++ b/manifests/$schemas/model.schema.json
@@ -13,8 +13,14 @@
"size": {
"type": ["string", "null"],
"minLength": 1,
+ "pattern": "^(?:[1-9][0-9]{0,2}(?:\\.[0-9]*[1-9])?[MB]|[1-9][0-9]*(?:\\.[0-9]*[1-9])?T)$",
"not": { "const": "Unknown" },
- "description": "Officially disclosed model parameter size (e.g., '7B', '32B', '200B'); null when the vendor does not disclose it. Placeholder strings such as 'Unknown' are forbidden."
+ "description": "Officially disclosed total model parameter size in canonical M/B/T notation (e.g., '7B', '32B', '1T'); null when the vendor does not disclose it. Use the largest exact unit, without commas, leading zeroes, or trailing decimal zeroes. Activated parameters belong in activeParameters. Placeholder strings such as 'Unknown' are forbidden."
+ },
+ "activeParameters": {
+ "type": ["string", "null"],
+ "pattern": "^(?:[1-9][0-9]{0,2}(?:\\.[0-9]*[1-9])?[MB]|[1-9][0-9]*(?:\\.[0-9]*[1-9])?T)$",
+ "description": "Officially disclosed activated parameter count for sparse or mixture-of-experts models in canonical M/B/T notation (e.g., '3B', '17B', '6.5B'); null when not applicable or undisclosed. Use the largest exact unit, without commas, leading zeroes, or trailing decimal zeroes."
},
"contextWindow": {
"type": "number",
@@ -135,6 +141,7 @@
},
"required": [
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"tokenPricing",
@@ -146,7 +153,40 @@
"capabilities",
"benchmarks",
"platformUrls"
- ]
+ ],
+ "if": {
+ "type": "object",
+ "properties": {
+ "activeParameters": {
+ "type": "string"
+ }
+ },
+ "required": ["activeParameters"]
+ },
+ "then": {
+ "type": "object",
+ "properties": {
+ "size": {
+ "type": "string"
+ },
+ "sources": {
+ "type": "array",
+ "contains": {
+ "type": "object",
+ "properties": {
+ "fields": {
+ "type": "array",
+ "contains": {
+ "const": "activeParameters"
+ }
+ }
+ },
+ "required": ["fields"]
+ }
+ }
+ },
+ "required": ["size", "sources"]
+ }
}
],
"$defs": {
diff --git a/manifests/$schemas/ref/product.schema.json b/manifests/$schemas/ref/product.schema.json
index 8579501c..c28b8981 100644
--- a/manifests/$schemas/ref/product.schema.json
+++ b/manifests/$schemas/ref/product.schema.json
@@ -171,7 +171,18 @@
},
"per": {
"type": ["string", "null"],
- "description": "Billing period with optional unit (e.g., 'month', 'year', 'user/month', 'seat/year', 'one-time', 'custom')"
+ "enum": [
+ "month",
+ "user/month",
+ "year",
+ "hour",
+ "credit",
+ "usage-based",
+ "subscription",
+ "custom",
+ null
+ ],
+ "description": "Canonical lowercase billing period or published non-numeric pricing state. Trial duration and other plan details belong in the tier name, not this field."
},
"category": {
"type": "string",
diff --git a/manifests/clis/amp-cli.json b/manifests/clis/amp-cli.json
index b512f97e..c244c2e4 100644
--- a/manifests/clis/amp-cli.json
+++ b/manifests/clis/amp-cli.json
@@ -39,13 +39,17 @@
}
},
"verified": true,
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://ampcode.com",
"docsUrl": "https://ampcode.com",
"vendor": "Sourcegraph",
- "latestVersion": "1.0.0",
+ "latestVersion": "0.0.1785488326-gdfd462",
+ "releaseTracking": {
+ "provider": "npm",
+ "identifier": "@ampcode/cli"
+ },
"githubUrl": null,
"license": "Proprietary",
"pricing": [
@@ -79,7 +83,7 @@
}
],
"resourceUrls": {
- "download": "https://ampcode.com",
+ "download": "https://ampcode.com/manual",
"changelog": "https://ampcode.com",
"pricing": "https://ampcode.com/pricing",
"mcp": null,
@@ -98,16 +102,19 @@
"platforms": [
{
"os": "macOS",
+ "installCommand": "curl -fsSL https://ampcode.com/install.sh | bash",
"launchCommand": "amp",
"installPath": null
},
{
"os": "Windows",
+ "installCommand": "powershell -c \"irm https://ampcode.com/install.ps1 | iex\"",
"launchCommand": "amp",
"installPath": null
},
{
"os": "Linux",
+ "installCommand": "curl -fsSL https://ampcode.com/install.sh | bash",
"launchCommand": "amp",
"installPath": null
}
@@ -127,6 +134,16 @@
"url": "https://ampcode.com/pricing",
"title": "Amp pricing",
"fields": ["pricing", "resourceUrls.pricing"]
+ },
+ {
+ "url": "https://ampcode.com/manual",
+ "title": "Amp Owner's Manual",
+ "fields": ["resourceUrls.download", "platforms"]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@ampcode/cli",
+ "title": "Amp CLI npm package",
+ "fields": ["latestVersion", "releaseTracking"]
}
]
}
diff --git a/manifests/clis/antigravity-cli.json b/manifests/clis/antigravity-cli.json
index c8cad180..52f9dca3 100644
--- a/manifests/clis/antigravity-cli.json
+++ b/manifests/clis/antigravity-cli.json
@@ -123,7 +123,7 @@
"name": "Organization",
"value": null,
"currency": null,
- "per": "usage",
+ "per": "usage-based",
"category": "Enterprise"
}
],
diff --git a/manifests/clis/auggie-cli.json b/manifests/clis/auggie-cli.json
index 408026f5..8b5b5d01 100644
--- a/manifests/clis/auggie-cli.json
+++ b/manifests/clis/auggie-cli.json
@@ -39,13 +39,17 @@
}
},
"verified": true,
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.augmentcode.com",
"docsUrl": "https://docs.augmentcode.com/cli",
"vendor": "Augment",
- "latestVersion": "0.7.0",
+ "latestVersion": "0.34.0",
+ "releaseTracking": {
+ "provider": "npm",
+ "identifier": "@augmentcode/auggie"
+ },
"githubUrl": "https://github.com/augmentcode/auggie",
"license": "Proprietary",
"pricing": [
@@ -65,7 +69,7 @@
}
],
"resourceUrls": {
- "download": "https://www.augmentcode.com",
+ "download": "https://docs.augmentcode.com/cli/overview",
"changelog": null,
"pricing": "https://www.augmentcode.com/pricing",
"mcp": "https://www.augmentcode.com/mcp",
@@ -89,19 +93,19 @@
"platforms": [
{
"os": "macOS",
- "installCommand": "npm install -g @augmentcode/npm i @augmentcode/auggie",
+ "installCommand": "npm install -g @augmentcode/auggie",
"launchCommand": "auggie",
"installPath": null
},
{
"os": "Windows",
- "installCommand": "npm install -g @augmentcode/npm i @augmentcode/auggie",
+ "installCommand": "npm install -g @augmentcode/auggie",
"launchCommand": "auggie",
"installPath": null
},
{
"os": "Linux",
- "installCommand": "npm install -g @augmentcode/npm i @augmentcode/auggie",
+ "installCommand": "npm install -g @augmentcode/auggie",
"launchCommand": "auggie",
"installPath": null
}
@@ -120,12 +124,17 @@
{
"url": "https://docs.augmentcode.com/cli/overview",
"title": "Introducing Auggie CLI",
- "fields": ["name", "description", "docsUrl"]
+ "fields": ["name", "description", "docsUrl", "resourceUrls.download", "platforms"]
},
{
"url": "https://www.augmentcode.com/pricing",
"title": "Augment pricing",
"fields": ["pricing", "resourceUrls.pricing"]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@augmentcode/auggie",
+ "title": "Auggie CLI npm package",
+ "fields": ["latestVersion", "releaseTracking"]
}
]
}
diff --git a/manifests/clis/claude-code-cli.json b/manifests/clis/claude-code-cli.json
index 731199c1..1f0a7d47 100644
--- a/manifests/clis/claude-code-cli.json
+++ b/manifests/clis/claude-code-cli.json
@@ -49,7 +49,7 @@
{
"url": "https://code.claude.com/docs/en/installation",
"title": "Claude Code installation",
- "fields": ["platforms"]
+ "fields": ["resourceUrls.download", "platforms"]
},
{
"url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.215",
@@ -102,7 +102,7 @@
"fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-19",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "medium",
"websiteUrl": "https://code.claude.com",
@@ -120,47 +120,47 @@
"name": "Pro",
"value": 20,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Pro (Annual)",
"value": 17,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Max 5x",
"value": 100,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Max 20x",
"value": 200,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Team",
"value": null,
"currency": "USD",
- "per": "Custom",
+ "per": "custom",
"category": "Team"
},
{
"name": "Enterprise",
"value": null,
"currency": "USD",
- "per": "Custom",
+ "per": "custom",
"category": "Enterprise"
}
],
"resourceUrls": {
- "download": null,
+ "download": "https://code.claude.com/docs/en/installation",
"changelog": "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",
"pricing": "https://claude.com/pricing",
"mcp": "https://code.claude.com/docs/en/mcp",
diff --git a/manifests/clis/cline-cli.json b/manifests/clis/cline-cli.json
index 14ef20af..3d571677 100644
--- a/manifests/clis/cline-cli.json
+++ b/manifests/clis/cline-cli.json
@@ -39,7 +39,7 @@
}
},
"verified": true,
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://cline.bot/cline-cli",
@@ -60,6 +60,13 @@
"per": null,
"category": "Individual"
},
+ {
+ "name": "AI Inference",
+ "value": null,
+ "currency": null,
+ "per": "usage-based",
+ "category": "Individual"
+ },
{
"name": "Enterprise",
"value": null,
diff --git a/manifests/clis/codebuddy-cli.json b/manifests/clis/codebuddy-cli.json
index 2b1f2fd9..065a3c63 100644
--- a/manifests/clis/codebuddy-cli.json
+++ b/manifests/clis/codebuddy-cli.json
@@ -2,6 +2,7 @@
"$schema": "../$schemas/cli.schema.json",
"id": "codebuddy-cli",
"name": "CodeBuddy CLI",
+ "familyId": "codebuddy",
"description": "CodeBuddy CLI is an AI-driven code editor that integrates intelligent code generation, debugging, and development workflows into your terminal. Features TUI mode and inline chat.",
"translations": {
"zh-Hans": {
@@ -39,16 +40,16 @@
}
},
"verified": true,
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.codebuddy.ai/cli",
"docsUrl": "https://www.codebuddy.ai/docs/cli",
"vendor": "Tencent",
- "latestVersion": "1.0.0",
+ "latestVersion": "2.131.0",
"releaseTracking": {
"provider": "npm",
- "identifier": "codebuddy-cli"
+ "identifier": "@tencent-ai/codebuddy-code"
},
"githubUrl": null,
"license": "Proprietary",
@@ -83,7 +84,7 @@
}
],
"resourceUrls": {
- "download": "https://www.codebuddy.ai/cli",
+ "download": "https://www.codebuddy.ai/docs/cli/quickstart",
"changelog": null,
"pricing": "https://www.codebuddy.ai/docs/ide/Account/pricing",
"mcp": null,
@@ -98,28 +99,38 @@
"reddit": null,
"blog": "https://www.codebuddy.ai/blog"
},
- "relatedProducts": [],
+ "relatedProducts": [
+ {
+ "type": "desktop",
+ "productId": "codebuddy"
+ }
+ ],
"platforms": [
{
"os": "macOS",
- "installCommand": "npm install -g codebuddy-cli",
+ "installCommand": "npm install -g @tencent-ai/codebuddy-code",
"launchCommand": "codebuddy",
"installPath": null
},
{
"os": "Windows",
- "installCommand": "npm install -g codebuddy-cli",
+ "installCommand": "npm install -g @tencent-ai/codebuddy-code",
"launchCommand": "codebuddy",
"installPath": null
},
{
"os": "Linux",
- "installCommand": "npm install -g codebuddy-cli",
+ "installCommand": "npm install -g @tencent-ai/codebuddy-code",
"launchCommand": "codebuddy",
"installPath": null
}
],
"sources": [
+ {
+ "url": "https://www.codebuddy.ai/docs/ide/Introduction",
+ "title": "CodeBuddy product family introduction",
+ "fields": ["familyId", "relatedProducts"]
+ },
{
"url": "https://www.codebuddy.ai/blog",
"title": "CodeBuddy blog",
@@ -129,6 +140,16 @@
"url": "https://www.codebuddy.ai/docs/ide/Account/pricing",
"title": "CodeBuddy pricing",
"fields": ["pricing", "resourceUrls.pricing"]
+ },
+ {
+ "url": "https://www.codebuddy.ai/docs/cli/quickstart",
+ "title": "CodeBuddy Code quick start",
+ "fields": ["resourceUrls.download", "platforms", "releaseTracking"]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@tencent-ai/codebuddy-code",
+ "title": "CodeBuddy Code npm package",
+ "fields": ["latestVersion"]
}
]
}
diff --git a/manifests/clis/codex-cli.json b/manifests/clis/codex-cli.json
index 97f89375..e7f4fb1b 100644
--- a/manifests/clis/codex-cli.json
+++ b/manifests/clis/codex-cli.json
@@ -40,7 +40,7 @@
}
},
"verified": true,
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://openai.com/codex",
@@ -54,6 +54,13 @@
"githubUrl": "https://github.com/openai/codex",
"license": "Apache-2.0",
"pricing": [
+ {
+ "name": "ChatGPT Free",
+ "value": 0,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
{
"name": "ChatGPT Plus",
"value": 20,
diff --git a/manifests/clis/cursor-cli.json b/manifests/clis/cursor-cli.json
index 0b721f27..0c31dc03 100644
--- a/manifests/clis/cursor-cli.json
+++ b/manifests/clis/cursor-cli.json
@@ -39,7 +39,7 @@
}
},
"verified": true,
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://cursor.com/cli",
@@ -57,47 +57,47 @@
"name": "Hobby",
"value": 0,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Pro",
"value": 20,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Pro+",
"value": 60,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Ultra",
"value": 200,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Teams",
"value": 40,
"currency": "USD",
- "per": "user/Month",
+ "per": "user/month",
"category": "Team"
},
{
"name": "Enterprise",
"value": null,
"currency": "USD",
- "per": "Custom",
+ "per": "custom",
"category": "Enterprise"
}
],
"resourceUrls": {
- "download": null,
+ "download": "https://docs.cursor.com/en/cli/installation",
"changelog": "https://cursor.com/changelog",
"pricing": "https://cursor.com/pricing",
"mcp": null,
@@ -139,6 +139,11 @@
}
],
"sources": [
+ {
+ "url": "https://docs.cursor.com/en/cli/installation",
+ "title": "Cursor CLI installation",
+ "fields": ["resourceUrls.download", "platforms"]
+ },
{
"url": "https://www.linkedin.com/company/cursorai",
"title": "Cursor CLI linkedin community",
diff --git a/manifests/clis/gemini-cli.json b/manifests/clis/gemini-cli.json
index 877427b6..df250318 100644
--- a/manifests/clis/gemini-cli.json
+++ b/manifests/clis/gemini-cli.json
@@ -49,6 +49,11 @@
{
"url": "https://cloud.google.com/products/gemini/pricing",
"title": "Gemini Code Assist pricing",
+ "fields": ["pricing"]
+ },
+ {
+ "url": "https://geminicli.com/docs/resources/quota-and-pricing/",
+ "title": "Gemini CLI quotas and pricing",
"fields": ["pricing", "resourceUrls.pricing"]
},
{
@@ -72,7 +77,7 @@
"fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://geminicli.com",
@@ -86,6 +91,13 @@
"githubUrl": "https://github.com/google-gemini/gemini-cli",
"license": "Apache-2.0",
"pricing": [
+ {
+ "name": "Gemini Code Assist (Individual)",
+ "value": 0,
+ "currency": "USD",
+ "per": null,
+ "category": "Individual"
+ },
{
"name": "Gemini Code Assist Standard (monthly commitment)",
"value": 0.031232877,
@@ -118,7 +130,7 @@
"resourceUrls": {
"download": "https://www.npmjs.com/package/@google/gemini-cli",
"changelog": "https://geminicli.com/docs/changelogs",
- "pricing": "https://cloud.google.com/products/gemini/pricing",
+ "pricing": "https://geminicli.com/docs/resources/quota-and-pricing/",
"mcp": null,
"issue": "https://github.com/google-gemini/gemini-cli/issues"
},
diff --git a/manifests/clis/gitlab-duo-cli.json b/manifests/clis/gitlab-duo-cli.json
index 7ae8bcde..3b0b8d08 100644
--- a/manifests/clis/gitlab-duo-cli.json
+++ b/manifests/clis/gitlab-duo-cli.json
@@ -39,7 +39,8 @@
"sources": [
{
"url": "https://about.gitlab.com/blog/gitlab-duo-cli-generally-available/",
- "title": "GitLab Duo CLI general availability"
+ "title": "GitLab Duo CLI general availability",
+ "fields": ["name", "description", "websiteUrl"]
},
{
"url": "https://about.gitlab.com/blog/gitlab-duo-cli/",
@@ -54,9 +55,29 @@
"url": "https://docs.gitlab.com/subscriptions/subscription-add-ons",
"title": "GitLab Duo add-ons",
"fields": ["pricing"]
+ },
+ {
+ "url": "https://docs.gitlab.com/user/gitlab_duo_cli/",
+ "title": "GitLab Duo CLI documentation",
+ "fields": ["docsUrl"]
+ },
+ {
+ "url": "https://docs.gitlab.com/user/gitlab_duo_cli/set_up/",
+ "title": "Set up GitLab Duo CLI",
+ "fields": ["resourceUrls.download", "platforms"]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@gitlab/duo-cli",
+ "title": "GitLab Duo CLI npm package",
+ "fields": ["latestVersion", "releaseTracking", "license"]
+ },
+ {
+ "url": "https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/releases",
+ "title": "GitLab Duo CLI releases",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
}
],
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "gitlab-duo-cli",
@@ -64,11 +85,15 @@
"familyId": "gitlab-duo",
"description": "GitLab Duo CLI is GitLab's terminal coding agent for understanding projects, editing code, running tests, and integrating AI-assisted work with GitLab development workflows.",
"websiteUrl": "https://about.gitlab.com/gitlab-duo",
- "docsUrl": "https://docs.gitlab.com/editor_extensions/gitlab_cli",
+ "docsUrl": "https://docs.gitlab.com/user/gitlab_duo_cli/",
"vendor": "GitLab",
- "latestVersion": "Latest",
+ "latestVersion": "9.6.0",
+ "releaseTracking": {
+ "provider": "npm",
+ "identifier": "@gitlab/duo-cli"
+ },
"githubUrl": null,
- "license": "Proprietary",
+ "license": "MIT",
"pricing": [
{
"name": "On-Demand GitLab Credits",
@@ -93,8 +118,8 @@
}
],
"resourceUrls": {
- "download": null,
- "changelog": "https://about.gitlab.com/blog/gitlab-duo-cli-generally-available/",
+ "download": "https://docs.gitlab.com/user/gitlab_duo_cli/set_up/",
+ "changelog": "https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/releases",
"pricing": "https://docs.gitlab.com/subscriptions/gitlab_credits",
"mcp": null,
"issue": null
@@ -113,20 +138,20 @@
{
"os": "macOS",
"installPath": null,
- "installCommand": null,
- "launchCommand": "glab duo"
+ "installCommand": "bash <(curl --fail --silent --show-error --location \"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.sh\")",
+ "launchCommand": "duo"
},
{
"os": "Windows",
"installPath": null,
- "installCommand": null,
- "launchCommand": "glab duo"
+ "installCommand": "irm \"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.ps1\" | iex",
+ "launchCommand": "duo"
},
{
"os": "Linux",
"installPath": null,
- "installCommand": null,
- "launchCommand": "glab duo"
+ "installCommand": "bash <(curl --fail --silent --show-error --location \"https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.sh\")",
+ "launchCommand": "duo"
}
]
}
diff --git a/manifests/clis/grok-build.json b/manifests/clis/grok-build.json
index 9e1e14ed..2dd8f2eb 100644
--- a/manifests/clis/grok-build.json
+++ b/manifests/clis/grok-build.json
@@ -35,11 +35,12 @@
"description": "Grok Build 是 xAI 的開放原始碼終端機程式設計代理,可用於探索程式碼儲存庫、編輯程式碼、執行命令和完成端對端開發任務。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
- "url": "https://x.ai/news/grok-build-cli",
- "title": "Introducing Grok Build"
+ "url": "https://docs.x.ai/build/overview",
+ "title": "Grok Build overview and installation",
+ "fields": ["name", "description", "docsUrl", "platforms", "resourceUrls.download"]
},
{
"url": "https://x.ai/build/changelog",
@@ -47,25 +48,37 @@
"fields": ["latestVersion", "resourceUrls.changelog"]
},
{
- "url": "https://x.ai/news/grok-build-open-source",
- "title": "Grok Build is Now Open Source",
- "fields": ["githubUrl", "license"]
+ "url": "https://x.ai/cli",
+ "title": "Grok Build product page",
+ "fields": ["websiteUrl"]
},
{
"url": "https://github.com/xai-org/grok-build",
"title": "Grok Build official repository",
- "fields": ["githubUrl", "license", "resourceUrls.issue", "communityUrls.github"]
+ "fields": [
+ "description",
+ "githubUrl",
+ "license",
+ "platforms",
+ "resourceUrls.issue",
+ "communityUrls.github"
+ ]
+ },
+ {
+ "url": "https://x.ai/pricing",
+ "title": "xAI pricing",
+ "fields": ["pricing", "resourceUrls.pricing"]
}
],
- "lastVerifiedAt": "2026-07-22",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "grok-build",
"name": "Grok Build",
"familyId": "grok-build",
"description": "Grok Build is xAI's open source terminal coding agent for exploring repositories, editing code, running commands, and completing end-to-end development tasks.",
- "websiteUrl": "https://x.ai/build",
- "docsUrl": "https://x.ai/cli",
+ "websiteUrl": "https://x.ai/cli",
+ "docsUrl": "https://docs.x.ai/build/overview",
"vendor": "xAI",
"latestVersion": "0.2.106",
"githubUrl": "https://github.com/xai-org/grok-build",
@@ -77,12 +90,19 @@
"currency": null,
"per": null,
"category": "Individual"
+ },
+ {
+ "name": "SuperGrok",
+ "value": 30,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
}
],
"resourceUrls": {
- "download": "https://x.ai/cli",
+ "download": "https://docs.x.ai/build/overview",
"changelog": "https://x.ai/build/changelog",
- "pricing": null,
+ "pricing": "https://x.ai/pricing",
"mcp": null,
"issue": "https://github.com/xai-org/grok-build/issues"
},
@@ -100,19 +120,19 @@
{
"os": "macOS",
"installPath": null,
- "installCommand": "npm install -g @xai/grok-cli",
+ "installCommand": "curl -fsSL https://x.ai/cli/install.sh | bash",
"launchCommand": "grok"
},
{
"os": "Windows",
"installPath": null,
- "installCommand": "npm install -g @xai/grok-cli",
+ "installCommand": "irm https://x.ai/cli/install.ps1 | iex",
"launchCommand": "grok"
},
{
"os": "Linux",
"installPath": null,
- "installCommand": "npm install -g @xai/grok-cli",
+ "installCommand": "curl -fsSL https://x.ai/cli/install.sh | bash",
"launchCommand": "grok"
}
]
diff --git a/manifests/clis/junie-cli.json b/manifests/clis/junie-cli.json
index f6d411d9..5a3541f4 100644
--- a/manifests/clis/junie-cli.json
+++ b/manifests/clis/junie-cli.json
@@ -35,57 +35,95 @@
"description": "Junie CLI 是 JetBrains 的模型無關終端機程式設計代理,可用於規劃變更、編輯程式碼儲存庫、執行開發工具和使用可重複利用的代理設定。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
- "url": "https://blog.jetbrains.com/junie/2026/03/junie-cli-the-llm-agnostic-coding-agent-is-now-in-beta/",
- "title": "Junie CLI beta"
+ "url": "https://junie.jetbrains.com/",
+ "title": "Junie CLI product and pricing",
+ "fields": [
+ "name",
+ "description",
+ "websiteUrl",
+ "pricing",
+ "resourceUrls.pricing",
+ "communityUrls.discord"
+ ]
},
{
- "url": "https://www.jetbrains.com/junie/",
- "title": "Junie product site"
+ "url": "https://junie.jetbrains.com/docs/junie-cli-usage.html",
+ "title": "Junie CLI quickstart",
+ "fields": ["docsUrl", "resourceUrls.download", "platforms"]
},
{
"url": "https://github.com/JetBrains/junie",
"title": "Junie official repository",
- "fields": ["githubUrl", "resourceUrls.issue"]
+ "fields": ["githubUrl", "license", "platforms", "resourceUrls.issue", "communityUrls.github"]
+ },
+ {
+ "url": "https://github.com/JetBrains/junie/blob/main/update-info.jsonl",
+ "title": "Junie stable update manifest",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://junie.jetbrains.com/docs/junie-cli-mcp-configuration.html",
+ "title": "Junie CLI MCP configuration",
+ "fields": ["resourceUrls.mcp"]
+ },
+ {
+ "url": "https://blog.jetbrains.com/junie",
+ "title": "Junie official blog",
+ "fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "junie-cli",
"name": "Junie CLI",
"familyId": "junie",
"description": "Junie CLI is JetBrains' model-agnostic terminal coding agent for planning changes, editing repositories, running development tools, and using reusable agent configurations.",
- "websiteUrl": "https://www.jetbrains.com/junie",
- "docsUrl": "https://www.jetbrains.com/help/junie/junie-cli.html",
+ "websiteUrl": "https://junie.jetbrains.com/",
+ "docsUrl": "https://junie.jetbrains.com/docs/junie-cli.html",
"vendor": "JetBrains",
- "latestVersion": "Beta",
+ "latestVersion": "888.117",
"githubUrl": "https://github.com/JetBrains/junie",
"license": "Proprietary",
"pricing": [
{
- "name": "Beta",
+ "name": "Free to Start",
"value": 0,
"currency": null,
"per": null,
"category": "Individual"
+ },
+ {
+ "name": "AI Pro",
+ "value": 8.33,
+ "currency": "USD",
+ "per": "user/month",
+ "category": "Individual"
+ },
+ {
+ "name": "AI Ultimate",
+ "value": 25,
+ "currency": "USD",
+ "per": "user/month",
+ "category": "Individual"
}
],
"resourceUrls": {
- "download": null,
- "changelog": "https://blog.jetbrains.com/junie/2026/03/junie-cli-the-llm-agnostic-coding-agent-is-now-in-beta/",
- "pricing": null,
- "mcp": null,
+ "download": "https://junie.jetbrains.com/docs/junie-cli-usage.html",
+ "changelog": "https://github.com/JetBrains/junie/releases",
+ "pricing": "https://junie.jetbrains.com/#pricing",
+ "mcp": "https://junie.jetbrains.com/docs/junie-cli-mcp-configuration.html",
"issue": "https://github.com/JetBrains/junie/issues"
},
"communityUrls": {
"linkedin": null,
"twitter": null,
- "github": null,
+ "github": "https://github.com/JetBrains/junie",
"youtube": null,
- "discord": null,
+ "discord": "https://jb.gg/junie-discord",
"reddit": null,
"blog": "https://blog.jetbrains.com/junie"
},
@@ -99,19 +137,19 @@
{
"os": "macOS",
"installPath": null,
- "installCommand": null,
+ "installCommand": "curl -fsSL https://junie.jetbrains.com/install.sh | bash",
"launchCommand": "junie"
},
{
"os": "Windows",
"installPath": null,
- "installCommand": null,
+ "installCommand": "powershell -NoProfile -ExecutionPolicy Bypass -Command \"iex (irm 'https://junie.jetbrains.com/install.ps1')\"",
"launchCommand": "junie"
},
{
"os": "Linux",
"installPath": null,
- "installCommand": null,
+ "installCommand": "curl -fsSL https://junie.jetbrains.com/install.sh | bash",
"launchCommand": "junie"
}
]
diff --git a/manifests/clis/kilo-code-cli.json b/manifests/clis/kilo-code-cli.json
index 3e8ba7f1..d0b5a8a2 100644
--- a/manifests/clis/kilo-code-cli.json
+++ b/manifests/clis/kilo-code-cli.json
@@ -69,7 +69,7 @@
"name": "Enterprise",
"value": null,
"currency": null,
- "per": "Custom",
+ "per": "custom",
"category": "Enterprise"
}
],
diff --git a/manifests/clis/kimi-cli.json b/manifests/clis/kimi-cli.json
index f84ec69c..0a135f2e 100644
--- a/manifests/clis/kimi-cli.json
+++ b/manifests/clis/kimi-cli.json
@@ -39,44 +39,139 @@
"description": "Kimi Code CLI 是 Moonshot AI 的終端機程式設計代理,支援程式碼儲存庫探索、檔案編輯、命令執行、MCP 工具,以及與其 VS Code 擴充功能共享工作流程。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
- "url": "https://www.kimi.com/resources/kimi-code-introduction",
- "title": "Kimi Code introduction"
+ "url": "https://www.kimi.com/help/kimi-code/cli-getting-started",
+ "title": "Getting started with Kimi Code CLI",
+ "fields": [
+ "name",
+ "description",
+ "websiteUrl",
+ "docsUrl",
+ "platforms",
+ "resourceUrls.download"
+ ]
},
{
"url": "https://github.com/MoonshotAI/kimi-code",
- "title": "Kimi Code repository"
+ "title": "Kimi Code repository",
+ "fields": ["githubUrl", "license", "resourceUrls.issue", "communityUrls.github"]
},
{
"url": "https://www.kimi.com/code/docs/en/kimi-code/whats-new.html",
- "title": "Kimi Code release notes"
+ "title": "Kimi Code release notes",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://www.kimi.com/code/docs/en/kimi-code-cli/customization/mcp.html",
+ "title": "Kimi Code CLI MCP documentation",
+ "fields": ["resourceUrls.mcp"]
+ },
+ {
+ "url": "https://www.kimi.com/help/kimi-code/benefits",
+ "title": "Kimi Code membership benefits",
+ "fields": ["pricing"]
+ },
+ {
+ "url": "https://www.kimi.com/resources/kimi-k2-7-code-pricing",
+ "title": "Kimi Code monthly subscription pricing",
+ "fields": ["pricing", "resourceUrls.pricing"]
+ },
+ {
+ "url": "https://www.kimi.com/resources/kimi-k2-7-code",
+ "title": "Kimi Code annual subscription pricing",
+ "fields": ["pricing"]
+ },
+ {
+ "url": "https://x.com/Kimi_Moonshot",
+ "title": "Kimi official X account",
+ "fields": ["communityUrls.twitter"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.kimi.com/code",
- "docsUrl": "https://www.kimi.com/code/docs/en",
+ "docsUrl": "https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html",
"vendor": "Moonshot AI",
- "latestVersion": "0.28.0",
+ "latestVersion": "0.29.1",
+ "releaseTracking": {
+ "provider": "npm",
+ "identifier": "@moonshot-ai/kimi-code"
+ },
"githubUrl": "https://github.com/MoonshotAI/kimi-code",
- "license": "Apache-2.0",
+ "license": "MIT",
"pricing": [
{
- "name": "Free",
+ "name": "Open Source",
"value": 0,
"currency": null,
"per": null,
"category": "Individual"
+ },
+ {
+ "name": "Moderato",
+ "value": 19,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Moderato (Annual)",
+ "value": 15,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Allegretto",
+ "value": 39,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Allegretto (Annual)",
+ "value": 31,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Allegro",
+ "value": 99,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Allegro (Annual)",
+ "value": 79,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Vivace",
+ "value": 199,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Vivace (Annual)",
+ "value": 159,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
}
],
"resourceUrls": {
- "download": "https://www.kimi.com/code/docs/en/kimi-code/quickstart.html",
+ "download": "https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html",
"changelog": "https://www.kimi.com/code/docs/en/kimi-code/whats-new.html",
- "pricing": null,
- "mcp": "https://www.kimi.com/code/docs/en/kimi-code/mcp.html",
+ "pricing": "https://www.kimi.com/resources/kimi-k2-7-code-pricing",
+ "mcp": "https://www.kimi.com/code/docs/en/kimi-code-cli/customization/mcp.html",
"issue": "https://github.com/MoonshotAI/kimi-code/issues"
},
"communityUrls": {
@@ -98,19 +193,19 @@
{
"os": "macOS",
"installPath": null,
- "installCommand": "uv tool install kimi-code",
+ "installCommand": "curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash",
"launchCommand": "kimi"
},
{
"os": "Windows",
"installPath": null,
- "installCommand": "uv tool install kimi-code",
+ "installCommand": "irm https://code.kimi.com/kimi-code/install.ps1 | iex",
"launchCommand": "kimi"
},
{
"os": "Linux",
"installPath": null,
- "installCommand": "uv tool install kimi-code",
+ "installCommand": "curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash",
"launchCommand": "kimi"
}
]
diff --git a/manifests/clis/kode.json b/manifests/clis/kode.json
index 00560385..d043e872 100644
--- a/manifests/clis/kode.json
+++ b/manifests/clis/kode.json
@@ -38,16 +38,19 @@
"description": "Kode 是開放原始碼 AI 程式設計助手,理解您的程式碼庫、編輯檔案、執行命令並處理完整的開發工作流程。透過多模型支援擴充 Claude Code。"
}
},
- "verified": false,
- "websiteUrl": "https://github.com/shareAI-lab/Kode",
- "docsUrl": "https://github.com/shareAI-lab/Kode/blob/main/README.md",
+ "verified": true,
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://github.com/shareAI-lab/Kode-CLI",
+ "docsUrl": "https://github.com/shareAI-lab/Kode-CLI/blob/main/README.md",
"vendor": "shareAI Lab",
"latestVersion": "2.2.1",
"releaseTracking": {
"provider": "npm",
"identifier": "@shareai-lab/kode"
},
- "githubUrl": "https://github.com/shareAI-lab/Kode-cli",
+ "githubUrl": "https://github.com/shareAI-lab/Kode-CLI",
"license": "Apache-2.0",
"pricing": [
{
@@ -60,15 +63,15 @@
],
"resourceUrls": {
"download": "https://www.npmjs.com/package/@shareai-lab/kode",
- "changelog": null,
+ "changelog": "https://github.com/shareAI-lab/Kode-CLI/releases",
"pricing": null,
"mcp": null,
- "issue": "https://github.com/shareAI-lab/Kode/issues"
+ "issue": "https://github.com/shareAI-lab/Kode-CLI/issues"
},
"communityUrls": {
"linkedin": null,
"twitter": null,
- "github": "https://github.com/shareAI-lab/Kode-cli",
+ "github": "https://github.com/shareAI-lab/Kode-CLI",
"youtube": null,
"discord": null,
"reddit": null,
@@ -79,27 +82,44 @@
{
"os": "macOS",
"installCommand": "npm install -g @shareai-lab/kode",
- "launchCommand": "kode (alias: kwa or kd)",
+ "launchCommand": "kode",
"installPath": null
},
{
"os": "Windows",
"installCommand": "npm install -g @shareai-lab/kode",
- "launchCommand": "kode (alias: kwa or kd)",
+ "launchCommand": "kode",
"installPath": null
},
{
"os": "Linux",
"installCommand": "npm install -g @shareai-lab/kode",
- "launchCommand": "kode (alias: kwa or kd)",
+ "launchCommand": "kode",
"installPath": null
}
],
"sources": [
{
- "url": "https://github.com/shareAI-lab/Kode-cli",
- "title": "Kode github community",
- "fields": ["communityUrls.github"]
+ "url": "https://github.com/shareAI-lab/Kode-CLI",
+ "title": "Kode official repository",
+ "fields": [
+ "name",
+ "description",
+ "websiteUrl",
+ "docsUrl",
+ "githubUrl",
+ "license",
+ "pricing",
+ "platforms",
+ "resourceUrls.changelog",
+ "resourceUrls.issue",
+ "communityUrls.github"
+ ]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@shareai-lab/kode",
+ "title": "Kode npm package",
+ "fields": ["latestVersion", "releaseTracking", "resourceUrls.download", "platforms"]
}
]
}
diff --git a/manifests/clis/neovate-code.json b/manifests/clis/neovate-code.json
deleted file mode 100644
index 3684b6d9..00000000
--- a/manifests/clis/neovate-code.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "$schema": "../$schemas/cli.schema.json",
- "id": "neovate-code",
- "name": "Neovate Code",
- "description": "Ant Group's Neovate Code is an open-source smart programming assistant. Generates code, fixes bugs, reviews code, and adds tests with flexible multi-client architecture.",
- "translations": {
- "zh-Hans": {
- "description": "蚂蚁集团的 Neovate Code 是开源智能编程助手。生成代码、修复错误、审查代码并添加测试,具有灵活的多客户端架构。"
- },
- "de": {
- "description": "Neovate Code von der Ant Group ist ein quelloffener intelligenter Programmierassistent. Er erzeugt Code, behebt Fehler, prüft Code und ergänzt Tests mit einer flexiblen Multi-Client-Architektur."
- },
- "ko": {
- "description": "Ant Group의 Neovate Code는 오픈 소스 지능형 프로그래밍 도우미입니다. 유연한 다중 클라이언트 아키텍처로 코드 생성, 버그 수정, 코드 검토, 테스트 추가를 지원합니다."
- },
- "es": {
- "description": "Neovate Code de Ant Group es un asistente de programación inteligente de código abierto. Genera código, corrige errores, revisa código y añade pruebas con una arquitectura multicliente flexible."
- },
- "fr": {
- "description": "Neovate Code d’Ant Group est un assistant intelligent open source. Il génère du code, corrige des bogues, révise le code et ajoute des tests avec une architecture multiclient flexible."
- },
- "id": {
- "description": "Neovate Code dari Ant Group adalah asisten cerdas sumber terbuka. Dengan arsitektur banyak klien yang fleksibel, produk ini membuat kode, memperbaiki bug, meninjau kode, dan menambah pengujian."
- },
- "ja": {
- "description": "Ant GroupのNeovate Codeは、オープンソースのスマートプログラミングアシスタントです。コードの生成、バグ修正、コードレビュー、テストの追加を提供し、柔軟なマルチクライアントアーキテクチャを備えています。"
- },
- "pt": {
- "description": "O Neovate Code, da Ant Group, é um assistente de programação inteligente de código aberto. Gera código, corrige bugs, revisa código e adiciona testes com uma arquitetura multicliente flexível."
- },
- "ru": {
- "description": "Neovate Code от Ant Group — интеллектуальный помощник с открытым кодом. Он создаёт код, исправляет ошибки, проверяет код и добавляет тесты благодаря гибкой многоклиентской архитектуре."
- },
- "tr": {
- "description": "Ant Group’un Neovate Code ürünü açık kaynaklı, akıllı bir programlama yardımcısıdır. Esnek çok istemcili mimarisiyle kod üretir, hataları düzeltir, kodu inceler ve testler ekler."
- },
- "zh-Hant": {
- "description": "螞蟻集團的 Neovate Code 是開放原始碼智慧程式設計助理,透過彈性的多用戶端架構產生程式碼、修正錯誤、審查程式碼並新增測試。"
- }
- },
- "verified": false,
- "websiteUrl": "https://neovateai.dev",
- "docsUrl": "https://neovateai.dev/en/docs/overview",
- "vendor": "Ant Group",
- "latestVersion": "0.28.5",
- "releaseTracking": {
- "provider": "npm",
- "identifier": "@neovate/code"
- },
- "githubUrl": "https://github.com/neovateai/neovate-code",
- "license": "MIT",
- "pricing": [
- {
- "name": "Free (Individual)",
- "value": 0,
- "currency": null,
- "per": null,
- "category": "Individual"
- },
- {
- "name": "Standard (Business)",
- "value": null,
- "currency": null,
- "per": "custom",
- "category": "Business"
- },
- {
- "name": "Enterprise",
- "value": null,
- "currency": null,
- "per": "custom",
- "category": "Enterprise"
- }
- ],
- "resourceUrls": {
- "download": "https://www.npmjs.com/package/@neovate/code",
- "changelog": "https://github.com/neovateai/neovate-code/tags",
- "pricing": "https://neovateai.dev",
- "mcp": null,
- "issue": "https://github.com/neovateai/neovate-code/issues"
- },
- "communityUrls": {
- "linkedin": null,
- "twitter": null,
- "github": "https://github.com/neovateai/neovate-code",
- "youtube": null,
- "discord": null,
- "reddit": null,
- "blog": "https://neovateai.dev/en/blog"
- },
- "relatedProducts": [],
- "platforms": [
- {
- "os": "macOS",
- "installCommand": "npm install -g @neovate/code",
- "launchCommand": "neovate (alias: neo)",
- "installPath": null
- },
- {
- "os": "Windows",
- "installCommand": "npm install -g @neovate/code",
- "launchCommand": "neovate (alias: neo)",
- "installPath": null
- },
- {
- "os": "Linux",
- "installCommand": "npm install -g @neovate/code",
- "launchCommand": "neovate (alias: neo)",
- "installPath": null
- }
- ],
- "sources": [
- {
- "url": "https://github.com/neovateai/neovate-code",
- "title": "Neovate Code github community",
- "fields": ["communityUrls.github"]
- },
- {
- "url": "https://neovateai.dev/en/blog",
- "title": "Neovate Code blog community",
- "fields": ["communityUrls.blog"]
- }
- ]
-}
diff --git a/manifests/clis/omp.json b/manifests/clis/omp.json
index c9c1ab4e..8d2d5637 100644
--- a/manifests/clis/omp.json
+++ b/manifests/clis/omp.json
@@ -39,7 +39,7 @@
"description": "omp 是一款開放原始碼終端機程式設計 Agent,支援雜湊錨定編輯、LSP 與除錯器整合、子 Agent、持久化程式碼執行環境以及 40 多家模型供應商。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
"url": "https://omp.sh",
@@ -49,12 +49,17 @@
{
"url": "https://github.com/can1357/oh-my-pi",
"title": "Oh My Pi official repository",
- "fields": ["description", "githubUrl", "platforms", "communityUrls", "resourceUrls.issue"]
+ "fields": ["description", "githubUrl", "platforms", "resourceUrls.mcp", "resourceUrls.issue"]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@oh-my-pi/pi-coding-agent",
+ "title": "Oh My Pi coding-agent package",
+ "fields": ["latestVersion", "releaseTracking", "resourceUrls.download"]
},
{
"url": "https://github.com/can1357/oh-my-pi/releases",
"title": "Oh My Pi releases",
- "fields": ["latestVersion", "resourceUrls.changelog"]
+ "fields": ["resourceUrls.changelog"]
},
{
"url": "https://github.com/can1357/oh-my-pi/blob/main/LICENSE",
@@ -62,13 +67,17 @@
"fields": ["license", "pricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://omp.sh",
"docsUrl": "https://omp.sh/docs",
"vendor": "Oh My Pi",
- "latestVersion": "17.0.6",
+ "latestVersion": "17.1.7",
+ "releaseTracking": {
+ "provider": "npm",
+ "identifier": "@oh-my-pi/pi-coding-agent"
+ },
"githubUrl": "https://github.com/can1357/oh-my-pi",
"license": "MIT",
"pricing": [
@@ -81,10 +90,10 @@
}
],
"resourceUrls": {
- "download": "https://omp.sh",
+ "download": "https://www.npmjs.com/package/@oh-my-pi/pi-coding-agent",
"changelog": "https://github.com/can1357/oh-my-pi/releases",
"pricing": null,
- "mcp": null,
+ "mcp": "https://github.com/can1357/oh-my-pi/blob/main/docs/mcp.md",
"issue": "https://github.com/can1357/oh-my-pi/issues"
},
"communityUrls": {
diff --git a/manifests/clis/opencode.json b/manifests/clis/opencode.json
index 654e02af..3c9746fc 100644
--- a/manifests/clis/opencode.json
+++ b/manifests/clis/opencode.json
@@ -39,11 +39,14 @@
"description": "OpenCode 是一個為終端機建置的開放原始碼 AI 程式設計 Agent。具有原生 TUI、LSP 支援、多工作階段功能,支援 75+ 個 LLM 供應商,包括本機模型。"
}
},
- "verified": false,
+ "verified": true,
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
"websiteUrl": "https://opencode.ai",
- "docsUrl": "https://opencode.ai",
+ "docsUrl": "https://opencode.ai/docs",
"vendor": "Anomaly",
- "latestVersion": "1.18.8",
+ "latestVersion": "1.18.10",
"releaseTracking": {
"provider": "npm",
"identifier": "opencode-ai"
@@ -67,10 +70,10 @@
}
],
"resourceUrls": {
- "download": "https://opencode.ai",
+ "download": "https://opencode.ai/docs",
"changelog": "https://github.com/anomalyco/opencode/releases",
- "pricing": "https://opencode.ai",
- "mcp": null,
+ "pricing": "https://opencode.ai/docs/zen",
+ "mcp": "https://opencode.ai/docs/mcp-servers",
"issue": "https://github.com/anomalyco/opencode/issues"
},
"communityUrls": {
@@ -95,7 +98,7 @@
"platforms": [
{
"os": "macOS",
- "installCommand": "npm i -g opencode-ai@latest",
+ "installCommand": "curl -fsSL https://opencode.ai/install | bash",
"launchCommand": "opencode",
"installPath": null
},
@@ -107,21 +110,50 @@
},
{
"os": "Linux",
- "installCommand": "npm i -g opencode-ai@latest",
+ "installCommand": "curl -fsSL https://opencode.ai/install | bash",
"launchCommand": "opencode",
"installPath": null
}
],
"sources": [
+ {
+ "url": "https://opencode.ai/docs",
+ "title": "OpenCode documentation",
+ "fields": [
+ "name",
+ "description",
+ "websiteUrl",
+ "docsUrl",
+ "resourceUrls.download",
+ "platforms"
+ ]
+ },
+ {
+ "url": "https://www.npmjs.com/package/opencode-ai",
+ "title": "OpenCode npm package",
+ "fields": ["latestVersion", "releaseTracking", "license", "platforms"]
+ },
{
"url": "https://github.com/anomalyco/opencode",
- "title": "OpenCode github community",
- "fields": ["communityUrls.github"]
+ "title": "OpenCode repository",
+ "fields": [
+ "description",
+ "githubUrl",
+ "license",
+ "resourceUrls.changelog",
+ "resourceUrls.issue",
+ "communityUrls.github"
+ ]
},
{
"url": "https://opencode.ai/docs/zen",
"title": "OpenCode Zen pricing",
"fields": ["pricing", "resourceUrls.pricing"]
+ },
+ {
+ "url": "https://opencode.ai/docs/mcp-servers",
+ "title": "OpenCode MCP servers documentation",
+ "fields": ["resourceUrls.mcp"]
}
]
}
diff --git a/manifests/clis/qwen-code.json b/manifests/clis/qwen-code.json
index 32a8cb15..4fa033a3 100644
--- a/manifests/clis/qwen-code.json
+++ b/manifests/clis/qwen-code.json
@@ -35,28 +35,64 @@
"description": "Qwen Code 是 Alibaba 的開放原始碼終端機程式設計代理,可用於理解大型程式碼庫、編輯檔案、執行命令,並連接 Qwen 或相容 OpenAI 的模型。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
"url": "https://github.com/QwenLM/qwen-code",
- "title": "Qwen Code repository"
+ "title": "Qwen Code repository",
+ "fields": [
+ "name",
+ "description",
+ "websiteUrl",
+ "githubUrl",
+ "license",
+ "platforms",
+ "resourceUrls.issue",
+ "communityUrls.github"
+ ]
},
{
- "url": "https://qwenlm.github.io/qwen-code-docs/",
- "title": "Qwen Code documentation"
+ "url": "https://qwenlm.github.io/qwen-code-docs/en/",
+ "title": "Qwen Code documentation",
+ "fields": ["description", "docsUrl"]
+ },
+ {
+ "url": "https://qwenlm.github.io/qwen-code-docs/en/users/quickstart/",
+ "title": "Qwen Code quickstart",
+ "fields": ["resourceUrls.download", "platforms"]
+ },
+ {
+ "url": "https://github.com/QwenLM/qwen-code/releases/tag/v0.21.2",
+ "title": "Qwen Code v0.21.2 release",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://www.npmjs.com/package/@qwen-code/qwen-code",
+ "title": "Qwen Code npm package",
+ "fields": ["releaseTracking"]
+ },
+ {
+ "url": "https://qwenlm.github.io/qwen-code-docs/en/users/features/mcp/",
+ "title": "Qwen Code MCP documentation",
+ "fields": ["resourceUrls.mcp"]
+ },
+ {
+ "url": "https://x.com/Alibaba_Qwen",
+ "title": "Qwen official X account",
+ "fields": ["communityUrls.twitter"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "qwen-code",
"name": "Qwen Code",
"familyId": "qwen-code",
"description": "Qwen Code is Alibaba's open source terminal coding agent for understanding large codebases, editing files, executing commands, and connecting to Qwen or OpenAI-compatible models.",
- "websiteUrl": "https://qwenlm.github.io/qwen-code-docs",
- "docsUrl": "https://qwenlm.github.io/qwen-code-docs",
+ "websiteUrl": "https://qwenlm.github.io/qwen-code-docs/en/",
+ "docsUrl": "https://qwenlm.github.io/qwen-code-docs/en/",
"vendor": "Alibaba",
- "latestVersion": "0.21.0",
+ "latestVersion": "0.21.2",
"releaseTracking": {
"provider": "npm",
"identifier": "@qwen-code/qwen-code"
@@ -73,10 +109,10 @@
}
],
"resourceUrls": {
- "download": "https://qwenlm.github.io/qwen-code-docs/en/users/quickstart/installation",
+ "download": "https://qwenlm.github.io/qwen-code-docs/en/users/quickstart/",
"changelog": "https://github.com/QwenLM/qwen-code/releases",
"pricing": null,
- "mcp": null,
+ "mcp": "https://qwenlm.github.io/qwen-code-docs/en/users/features/mcp/",
"issue": "https://github.com/QwenLM/qwen-code/issues"
},
"communityUrls": {
@@ -93,19 +129,19 @@
{
"os": "macOS",
"installPath": null,
- "installCommand": "npm install -g @qwen-code/qwen-code@latest",
+ "installCommand": "curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bash",
"launchCommand": "qwen"
},
{
"os": "Windows",
"installPath": null,
- "installCommand": "npm install -g @qwen-code/qwen-code@latest",
+ "installCommand": "irm https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.ps1 | iex",
"launchCommand": "qwen"
},
{
"os": "Linux",
"installPath": null,
- "installCommand": "npm install -g @qwen-code/qwen-code@latest",
+ "installCommand": "curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bash",
"launchCommand": "qwen"
}
]
diff --git a/manifests/clis/rovo-dev-cli.json b/manifests/clis/rovo-dev-cli.json
deleted file mode 100644
index d204f510..00000000
--- a/manifests/clis/rovo-dev-cli.json
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- "$schema": "../$schemas/cli.schema.json",
- "id": "rovo-dev-cli",
- "name": "Rovo Dev CLI",
- "familyId": "rovo-dev",
- "description": "Rovo Dev CLI is Atlassian's terminal coding agent for understanding repositories, generating and refactoring code, running tests, using worktrees, and connecting to Jira and Confluence.",
- "translations": {
- "de": {
- "description": "Rovo Dev CLI ist der Terminal-Agent von Atlassian zum Verstehen von Repositories, Erzeugen und Überarbeiten von Code, Ausführen von Tests, Nutzen von Worktrees und Verbinden mit Jira und Confluence."
- },
- "es": {
- "description": "Rovo Dev CLI es el agente de programación en terminal de Atlassian para comprender repositorios, generar y refactorizar código, ejecutar pruebas, usar worktrees y conectarse a Jira y Confluence."
- },
- "fr": {
- "description": "Rovo Dev CLI est l’agent de codage en terminal d’Atlassian pour comprendre les dépôts, générer et refactoriser du code, exécuter des tests, utiliser des worktrees et se connecter à Jira et Confluence."
- },
- "id": {
- "description": "Rovo Dev CLI adalah agen coding terminal dari Atlassian untuk memahami repositori, membuat dan menyusun ulang kode, menjalankan pengujian, menggunakan worktree, serta terhubung ke Jira dan Confluence."
- },
- "ja": {
- "description": "Rovo Dev CLI は、リポジトリの理解、コードの生成とリファクタリング、テスト実行、worktree の利用、Jira と Confluence への接続に対応する Atlassian のターミナル向けコーディングエージェントです。"
- },
- "ko": {
- "description": "Rovo Dev CLI는 저장소 이해, 코드 생성 및 리팩터링, 테스트 실행, worktree 사용, Jira 및 Confluence 연결을 위한 Atlassian의 터미널 코딩 에이전트입니다."
- },
- "pt": {
- "description": "O Rovo Dev CLI é o agente de programação no terminal da Atlassian para compreender repositórios, gerar e refatorar código, executar testes, usar worktrees e conectar-se ao Jira e ao Confluence."
- },
- "ru": {
- "description": "Rovo Dev CLI — терминальный агент программирования Atlassian для анализа репозиториев, генерации и рефакторинга кода, запуска тестов, использования worktree и подключения к Jira и Confluence."
- },
- "tr": {
- "description": "Rovo Dev CLI, depoları anlamak, kod üretmek ve yeniden düzenlemek, testleri çalıştırmak, worktree kullanmak ve Jira ile Confluence'a bağlanmak için Atlassian'ın terminal kodlama aracısıdır."
- },
- "zh-Hans": {
- "description": "Rovo Dev CLI 是 Atlassian 的终端编码代理,可用于理解代码仓库、生成和重构代码、运行测试、使用 worktree,以及连接 Jira 和 Confluence。"
- },
- "zh-Hant": {
- "description": "Rovo Dev CLI 是 Atlassian 的終端機程式設計代理,可用於理解程式碼儲存庫、產生和重構程式碼、執行測試、使用 worktree,以及連接 Jira 和 Confluence。"
- }
- },
- "verified": false,
- "sources": [
- {
- "url": "https://www.atlassian.com/blog/blog/announcements/rovo-dev-command-line-interface",
- "title": "Rovo Dev agent, now available in the CLI"
- },
- {
- "url": "https://support.atlassian.com/rovo/docs/install-and-run-rovo-dev-cli-on-your-device/",
- "title": "Install and run Rovo Dev CLI"
- },
- {
- "url": "https://www.atlassian.com/software/rovo-dev/pricing",
- "title": "Rovo Dev pricing",
- "fields": ["pricing", "resourceUrls.pricing"]
- }
- ],
- "lastVerifiedAt": "2026-07-30",
- "verifiedBy": "codex-agent",
- "confidence": "high",
- "websiteUrl": "https://www.atlassian.com/software/rovo-dev",
- "docsUrl": "https://support.atlassian.com/rovo/docs/use-rovo-dev-cli/",
- "vendor": "Atlassian",
- "latestVersion": "Latest",
- "githubUrl": null,
- "license": "Proprietary",
- "pricing": [
- {
- "name": "Rovo Dev Standard",
- "value": 20,
- "currency": "USD",
- "per": "user/month",
- "category": "Business"
- }
- ],
- "resourceUrls": {
- "download": "https://support.atlassian.com/rovo/docs/install-and-run-rovo-dev-cli-on-your-device/",
- "changelog": "https://support.atlassian.com/rovo/docs/rovo-dev-cli-commands/",
- "pricing": "https://www.atlassian.com/software/rovo-dev/pricing",
- "mcp": "https://support.atlassian.com/rovo/docs/use-rovo-dev-cli/",
- "issue": null
- },
- "communityUrls": {
- "linkedin": null,
- "twitter": null,
- "github": null,
- "youtube": null,
- "discord": null,
- "reddit": null,
- "blog": null
- },
- "relatedProducts": [
- {
- "type": "extension",
- "productId": "rovo-dev"
- }
- ],
- "platforms": [
- {
- "os": "macOS",
- "installPath": null,
- "installCommand": null,
- "launchCommand": "acli rovodev run"
- },
- {
- "os": "Windows",
- "installPath": null,
- "installCommand": null,
- "launchCommand": "acli rovodev run"
- },
- {
- "os": "Linux",
- "installPath": null,
- "installCommand": null,
- "launchCommand": "acli rovodev run"
- }
- ]
-}
diff --git a/manifests/desktops/air.json b/manifests/desktops/air.json
index 5d4def8b..c18bad92 100644
--- a/manifests/desktops/air.json
+++ b/manifests/desktops/air.json
@@ -39,23 +39,33 @@
"description": "JetBrains Air 是一款獨立桌面環境,用於委派、執行和審查並行的程式設計智慧體任務。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
"url": "https://air.dev/",
"title": "JetBrains Air product site",
- "fields": ["description", "websiteUrl", "docsUrl", "vendor", "license", "pricing"]
+ "fields": ["name", "description", "websiteUrl", "vendor"]
},
{
- "url": "https://air.dev/download",
- "title": "JetBrains Air downloads",
- "fields": ["platforms", "resourceUrls.download"]
+ "url": "https://www.jetbrains.com/help/air/set-up.html",
+ "title": "Set up JetBrains Air",
+ "fields": ["description", "docsUrl", "platforms", "resourceUrls.download"]
},
{
"url": "https://air.dev/changelog",
"title": "JetBrains Air changelog",
"fields": ["latestVersion", "resourceUrls.changelog"]
},
+ {
+ "url": "https://www.jetbrains.com/legal/docs/terms/jetbrains-air/",
+ "title": "JetBrains Air EAP User Agreement",
+ "fields": ["license", "pricing"]
+ },
+ {
+ "url": "https://youtrack.jetbrains.com/projects/AIR",
+ "title": "JetBrains Air issue tracker",
+ "fields": ["resourceUrls.issue"]
+ },
{
"url": "https://x.com/getsome_air",
"title": "Air twitter community",
@@ -72,7 +82,7 @@
"fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://air.dev",
@@ -83,7 +93,7 @@
"license": "Proprietary",
"pricing": [
{
- "name": "Preview Download",
+ "name": "Early Access",
"value": 0,
"currency": null,
"per": null,
@@ -93,7 +103,7 @@
"resourceUrls": {
"download": "https://air.dev/download",
"changelog": "https://air.dev/changelog",
- "pricing": "https://air.dev/#faq",
+ "pricing": null,
"mcp": null,
"issue": "https://youtrack.jetbrains.com/projects/AIR"
},
@@ -110,9 +120,9 @@
"platforms": [
{
"os": "macOS",
- "installPath": "/Applications/Air.app",
+ "installPath": null,
"installCommand": null,
- "launchCommand": "open -a \"Air\""
+ "launchCommand": null
},
{
"os": "Windows",
diff --git a/manifests/desktops/codebuddy.json b/manifests/desktops/codebuddy.json
new file mode 100644
index 00000000..1645bcf7
--- /dev/null
+++ b/manifests/desktops/codebuddy.json
@@ -0,0 +1,133 @@
+{
+ "$schema": "../$schemas/desktop.schema.json",
+ "id": "codebuddy",
+ "name": "CodeBuddy",
+ "familyId": "codebuddy",
+ "description": "CodeBuddy is an AI coding environment with intelligent code completion, multi-file code generation in Craft Mode, design-to-code conversion, and integrated deployment tools.",
+ "translations": {
+ "zh-Hans": {
+ "description": "CodeBuddy 是一款 AI 编码环境,提供智能代码补全、Craft 模式多文件代码生成、设计转代码和集成部署工具。"
+ },
+ "de": {
+ "description": "CodeBuddy ist eine AI-Coding-Umgebung mit intelligenter Codevervollständigung, Mehrdatei-Codegenerierung im Craft-Modus, Design-zu-Code-Konvertierung und integrierten Bereitstellungswerkzeugen."
+ },
+ "ko": {
+ "description": "CodeBuddy는 지능형 코드 자동 완성, Craft 모드의 다중 파일 코드 생성, 디자인-투-코드 변환 및 통합 배포 도구를 제공하는 AI 코딩 환경입니다."
+ },
+ "es": {
+ "description": "CodeBuddy es un entorno de programación con IA con autocompletado inteligente, generación de código en varios archivos en modo Craft, conversión de diseño a código y despliegue integrado."
+ },
+ "fr": {
+ "description": "CodeBuddy est un environnement de codage IA avec complétion intelligente, génération de code multi-fichiers en mode Craft, conversion du design en code et outils de déploiement intégrés."
+ },
+ "id": {
+ "description": "CodeBuddy adalah lingkungan coding AI dengan pelengkapan kode cerdas, pembuatan kode multi-file dalam Craft Mode, konversi desain ke kode, dan alat deployment terintegrasi."
+ },
+ "ja": {
+ "description": "CodeBuddyは、インテリジェントなコード補完、Craftモードでのマルチファイルコード生成、デザインからコードへの変換、統合デプロイツールを備えたAIコーディング環境です。"
+ },
+ "pt": {
+ "description": "CodeBuddy é um ambiente de programação com IA com preenchimento inteligente, geração de código em vários arquivos no modo Craft, conversão de design em código e implantação integrada."
+ },
+ "ru": {
+ "description": "CodeBuddy — среда программирования с ИИ, умным автодополнением, генерацией кода в нескольких файлах в режиме Craft, преобразованием дизайна в код и встроенными инструментами развёртывания."
+ },
+ "tr": {
+ "description": "CodeBuddy; akıllı kod tamamlama, Craft Mode ile çoklu dosya kod üretimi, tasarımdan koda dönüşüm ve entegre dağıtım araçları sunan bir AI kodlama ortamıdır."
+ },
+ "zh-Hant": {
+ "description": "CodeBuddy 是一款 AI 程式設計環境,提供智慧程式碼補全、Craft 模式多檔案程式碼產生、設計轉程式碼和整合式部署工具。"
+ }
+ },
+ "verified": true,
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://www.codebuddy.ai",
+ "docsUrl": "https://www.codebuddy.ai/docs/ide",
+ "vendor": "Tencent",
+ "latestVersion": "1.0.0",
+ "githubUrl": null,
+ "license": "Proprietary",
+ "pricing": [
+ {
+ "name": "Free",
+ "value": 0,
+ "currency": null,
+ "per": null,
+ "category": "Individual"
+ },
+ {
+ "name": "Pro",
+ "value": 9.95,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Teams",
+ "value": 40,
+ "currency": "USD",
+ "per": "user/month",
+ "category": "Business"
+ }
+ ],
+ "resourceUrls": {
+ "download": "https://www.codebuddy.ai/ide",
+ "changelog": null,
+ "pricing": "https://www.codebuddy.ai/pricing",
+ "mcp": null,
+ "issue": null
+ },
+ "communityUrls": {
+ "linkedin": null,
+ "twitter": null,
+ "github": null,
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": "https://www.codebuddy.ai/blog"
+ },
+ "relatedProducts": [
+ {
+ "type": "cli",
+ "productId": "codebuddy-cli"
+ }
+ ],
+ "platforms": [
+ {
+ "os": "Windows",
+ "installCommand": null,
+ "launchCommand": "codebuddy",
+ "installPath": null
+ },
+ {
+ "os": "macOS",
+ "installCommand": null,
+ "launchCommand": "codebuddy",
+ "installPath": null
+ }
+ ],
+ "sources": [
+ {
+ "url": "https://www.codebuddy.ai/docs/ide/Introduction",
+ "title": "CodeBuddy product introduction",
+ "fields": ["name", "description", "websiteUrl", "docsUrl", "familyId", "relatedProducts"]
+ },
+ {
+ "url": "https://www.codebuddy.ai/docs/ide/Getting-Started/Installation",
+ "title": "CodeBuddy installation guide",
+ "fields": ["platforms", "resourceUrls.download"]
+ },
+ {
+ "url": "https://www.codebuddy.ai/blog",
+ "title": "CodeBuddy blog community",
+ "fields": ["communityUrls.blog"]
+ },
+ {
+ "url": "https://www.codebuddy.ai/docs/ide/Account/pricing",
+ "title": "CodeBuddy pricing",
+ "fields": ["pricing", "resourceUrls.pricing"]
+ }
+ ]
+}
diff --git a/manifests/desktops/opencode-desktop.json b/manifests/desktops/opencode-desktop.json
index 2033fc95..ac6fad75 100644
--- a/manifests/desktops/opencode-desktop.json
+++ b/manifests/desktops/opencode-desktop.json
@@ -35,24 +35,50 @@
"description": "OpenCode Desktop 是開放原始碼 OpenCode 程式設計代理的獨立桌面介面,提供本機專案工作階段,並支援多種託管和本機模型供應商。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
"url": "https://opencode.ai/download",
- "title": "OpenCode downloads"
+ "title": "OpenCode downloads",
+ "fields": ["description", "websiteUrl", "platforms", "resourceUrls.download"]
+ },
+ {
+ "url": "https://opencode.ai/docs",
+ "title": "OpenCode documentation",
+ "fields": ["docsUrl", "relatedProducts"]
+ },
+ {
+ "url": "https://github.com/anomalyco/opencode/releases/tag/v1.18.10",
+ "title": "OpenCode v1.18.10 release",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://github.com/anomalyco/opencode/blob/dev/LICENSE",
+ "title": "OpenCode MIT license",
+ "fields": ["license", "pricing"]
},
{
"url": "https://github.com/anomalyco/opencode",
- "title": "OpenCode repository",
- "fields": ["pricing"]
+ "title": "OpenCode official repository",
+ "fields": ["githubUrl", "resourceUrls.issue", "communityUrls.github"]
+ },
+ {
+ "url": "https://opencode.ai/docs/mcp-servers/",
+ "title": "OpenCode MCP servers documentation",
+ "fields": ["resourceUrls.mcp"]
},
{
"url": "https://opencode.ai/zen",
"title": "OpenCode Zen pricing",
- "fields": ["pricing", "resourceUrls.pricing"]
+ "fields": ["resourceUrls.pricing"]
+ },
+ {
+ "url": "https://discord.com/invite/opencode",
+ "title": "OpenCode Discord community",
+ "fields": ["communityUrls.discord"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "opencode-desktop",
@@ -62,10 +88,10 @@
"websiteUrl": "https://opencode.ai/download",
"docsUrl": "https://opencode.ai/docs",
"vendor": "Anomaly",
- "latestVersion": "1.18.8",
+ "latestVersion": "1.18.10",
"releaseTracking": {
- "provider": "homebrew-cask",
- "identifier": "opencode-desktop"
+ "provider": "github-release",
+ "identifier": "anomalyco/opencode"
},
"githubUrl": "https://github.com/anomalyco/opencode",
"license": "MIT",
@@ -82,7 +108,7 @@
"download": "https://opencode.ai/download",
"changelog": "https://github.com/anomalyco/opencode/releases",
"pricing": "https://opencode.ai/zen",
- "mcp": null,
+ "mcp": "https://opencode.ai/docs/mcp-servers/",
"issue": "https://github.com/anomalyco/opencode/issues"
},
"communityUrls": {
@@ -90,7 +116,7 @@
"twitter": null,
"github": "https://github.com/anomalyco/opencode",
"youtube": null,
- "discord": null,
+ "discord": "https://discord.com/invite/opencode",
"reddit": null,
"blog": null
},
@@ -107,19 +133,19 @@
"platforms": [
{
"os": "macOS",
- "installPath": "/Applications/OpenCode.app",
+ "installPath": null,
"installCommand": "brew install --cask opencode-desktop",
"launchCommand": null
},
{
"os": "Windows",
- "installPath": "%LOCALAPPDATA%\\Programs\\OpenCode",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
},
{
"os": "Linux",
- "installPath": "/opt/OpenCode",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
}
diff --git a/manifests/desktops/stagewise.json b/manifests/desktops/stagewise.json
index e11f37fe..40fedf37 100644
--- a/manifests/desktops/stagewise.json
+++ b/manifests/desktops/stagewise.json
@@ -35,19 +35,40 @@
"description": "stagewise 是一款開放原始碼桌面程式設計代理,提供多代理工作階段、Git worktree 隔離、變更檢查,以及對託管和本機模型供應商的支援。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
"url": "https://stagewise.io/",
- "title": "stagewise product site"
+ "title": "stagewise product site",
+ "fields": ["name", "description", "websiteUrl", "vendor"]
},
{
"url": "https://github.com/stagewise-io/stagewise",
"title": "stagewise repository",
- "fields": ["pricing"]
+ "fields": ["githubUrl", "license", "pricing", "resourceUrls.issue", "communityUrls.github"]
+ },
+ {
+ "url": "https://docs.stagewise.io/",
+ "title": "stagewise documentation",
+ "fields": ["description", "docsUrl"]
+ },
+ {
+ "url": "https://docs.stagewise.io/quickstart",
+ "title": "stagewise quickstart",
+ "fields": ["platforms", "resourceUrls.download"]
+ },
+ {
+ "url": "https://github.com/stagewise-io/stagewise/releases/tag/stagewise@1.14.0",
+ "title": "Stagewise 1.14.0 release",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://stagewise.io/pricing",
+ "title": "stagewise pricing",
+ "fields": ["pricing", "resourceUrls.pricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "stagewise",
@@ -55,24 +76,45 @@
"familyId": "stagewise",
"description": "stagewise is an open source desktop coding agent with multi-agent sessions, Git worktree isolation, change review, and support for hosted and local model providers.",
"websiteUrl": "https://stagewise.io",
- "docsUrl": "https://stagewise.io/docs",
+ "docsUrl": "https://docs.stagewise.io",
"vendor": "stagewise",
- "latestVersion": "1.2.1",
+ "latestVersion": "1.14.0",
"githubUrl": "https://github.com/stagewise-io/stagewise",
"license": "AGPL-3.0-only",
"pricing": [
{
- "name": "Open Source",
+ "name": "Hobby",
"value": 0,
"currency": null,
"per": null,
"category": "Individual"
+ },
+ {
+ "name": "Pro",
+ "value": 20,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Ultra",
+ "value": 200,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "Enterprise",
+ "value": null,
+ "currency": null,
+ "per": "custom",
+ "category": "Enterprise"
}
],
"resourceUrls": {
"download": "https://stagewise.io",
- "changelog": "https://stagewise.io/news/release-week-may-25-31",
- "pricing": null,
+ "changelog": "https://github.com/stagewise-io/stagewise/releases",
+ "pricing": "https://stagewise.io/pricing",
"mcp": null,
"issue": "https://github.com/stagewise-io/stagewise/issues"
},
@@ -89,19 +131,19 @@
"platforms": [
{
"os": "macOS",
- "installPath": "/Applications/stagewise.app",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
},
{
"os": "Windows",
- "installPath": "%LOCALAPPDATA%\\Programs\\stagewise",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
},
{
"os": "Linux",
- "installPath": "/opt/stagewise",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
}
diff --git a/manifests/desktops/trae-work.json b/manifests/desktops/trae-work.json
deleted file mode 100644
index abc95f02..00000000
--- a/manifests/desktops/trae-work.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "$schema": "../$schemas/desktop.schema.json",
- "id": "trae-work",
- "name": "TRAE Work",
- "familyId": "trae",
- "description": "TRAE Work is a standalone AI workspace with Work and Code modes for delegating coding and professional tasks across desktop, web, and mobile.",
- "translations": {
- "de": {
- "description": "TRAE Work ist ein eigenständiger AI-Arbeitsbereich mit Work- und Code-Modus zum Delegieren von Entwicklungs- und Berufsaufgaben auf Desktop, Web und Mobilgeräten."
- },
- "es": {
- "description": "TRAE Work es un espacio de trabajo de IA independiente con modos Work y Code para delegar tareas de desarrollo y profesionales en escritorio, web y móvil."
- },
- "fr": {
- "description": "TRAE Work est un espace de travail IA autonome avec les modes Work et Code pour déléguer des tâches de développement et professionnelles sur ordinateur, web et mobile."
- },
- "id": {
- "description": "TRAE Work adalah ruang kerja AI mandiri dengan mode Work dan Code untuk mendelegasikan tugas coding dan profesional melalui desktop, web, dan perangkat seluler."
- },
- "ja": {
- "description": "TRAE Workは、Desktop、Web、Mobileでコーディングや業務タスクを委任できる、WorkモードとCodeモードを備えた独立型AIワークスペースです。"
- },
- "ko": {
- "description": "TRAE Work는 데스크톱, 웹, 모바일에서 코딩 및 전문 업무를 위임할 수 있는 Work와 Code 모드를 갖춘 독립형 AI 작업 공간입니다."
- },
- "pt": {
- "description": "TRAE Work é um espaço de trabalho de IA independente com modos Work e Code para delegar tarefas de desenvolvimento e profissionais no desktop, web e celular."
- },
- "ru": {
- "description": "TRAE Work — автономное AI-пространство с режимами Work и Code для делегирования задач разработки и профессиональной работы на ПК, в вебе и на мобильных устройствах."
- },
- "tr": {
- "description": "TRAE Work; masaüstü, web ve mobilde kodlama ile profesyonel görevleri devretmek için Work ve Code modları sunan bağımsız bir AI çalışma alanıdır."
- },
- "zh-Hans": {
- "description": "TRAE Work 是一款独立 AI 工作台,提供 Work 与 Code 双模式,可在桌面端、网页端和移动端委派编码及专业工作任务。"
- },
- "zh-Hant": {
- "description": "TRAE Work 是一款獨立 AI 工作台,提供 Work 與 Code 雙模式,可在桌面端、網頁端和行動端委派程式設計及專業工作任務。"
- }
- },
- "verified": false,
- "sources": [
- {
- "url": "https://www.trae.ai/work",
- "title": "TRAE Work",
- "fields": ["name", "description", "websiteUrl"]
- },
- {
- "url": "https://www.trae.ai/blog/trae_work_0609",
- "title": "Introducing TRAE Work",
- "fields": ["description", "familyId", "relatedProducts"]
- },
- {
- "url": "https://www.trae.ai/download",
- "title": "TRAE Download Center",
- "fields": ["platforms", "resourceUrls.download"]
- },
- {
- "url": "https://www.trae.ai/changelog",
- "title": "TRAE changelog",
- "fields": ["latestVersion", "resourceUrls.changelog"]
- },
- {
- "url": "https://www.trae.ai/pricing",
- "title": "TRAE pricing",
- "fields": ["pricing", "resourceUrls.pricing"]
- },
- {
- "url": "https://www.trae.ai/terms-of-service",
- "title": "TRAE Terms of Service",
- "fields": ["license"]
- },
- {
- "url": "https://x.com/Trae_ai",
- "title": "TRAE Work twitter community",
- "fields": ["communityUrls.twitter"]
- },
- {
- "url": "https://www.reddit.com/r/Trae_ai",
- "title": "TRAE Work reddit community",
- "fields": ["communityUrls.reddit"]
- },
- {
- "url": "https://www.trae.ai/blog",
- "title": "TRAE Work blog community",
- "fields": ["communityUrls.blog"]
- }
- ],
- "lastVerifiedAt": "2026-07-21",
- "verifiedBy": "codex-agent",
- "confidence": "high",
- "websiteUrl": "https://www.trae.ai/work",
- "docsUrl": "https://docs.trae.ai",
- "vendor": "ByteDance",
- "latestVersion": "0.1.23",
- "githubUrl": null,
- "license": "Proprietary",
- "pricing": [
- {
- "name": "Free",
- "value": 0,
- "currency": null,
- "per": null,
- "category": "Individual"
- },
- {
- "name": "Lite",
- "value": 3,
- "currency": "USD",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Pro",
- "value": 10,
- "currency": "USD",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Pro+",
- "value": 30,
- "currency": "USD",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Ultra",
- "value": 100,
- "currency": "USD",
- "per": "month",
- "category": "Individual"
- }
- ],
- "resourceUrls": {
- "download": "https://www.trae.ai/download",
- "changelog": "https://www.trae.ai/changelog",
- "pricing": "https://www.trae.ai/pricing",
- "mcp": null,
- "issue": null
- },
- "communityUrls": {
- "linkedin": null,
- "twitter": "https://x.com/Trae_ai",
- "github": null,
- "youtube": null,
- "discord": null,
- "reddit": "https://www.reddit.com/r/Trae_ai",
- "blog": "https://www.trae.ai/blog"
- },
- "relatedProducts": [
- {
- "type": "ide",
- "productId": "trae"
- }
- ],
- "platforms": [
- {
- "os": "macOS",
- "installPath": null,
- "installCommand": null,
- "launchCommand": null
- },
- {
- "os": "Windows",
- "installPath": null,
- "installCommand": null,
- "launchCommand": null
- }
- ]
-}
diff --git a/manifests/desktops/workbuddy.json b/manifests/desktops/workbuddy.json
deleted file mode 100644
index 51ef79a4..00000000
--- a/manifests/desktops/workbuddy.json
+++ /dev/null
@@ -1,166 +0,0 @@
-{
- "$schema": "../$schemas/desktop.schema.json",
- "translations": {
- "de": {
- "description": "Tencent WorkBuddy ist eine AI-Agenten-Desktopumgebung mit Coding-Modus für Codegenerierung, Reviews, Debugging, Refactoring und autonome lokale Aufgaben."
- },
- "es": {
- "description": "Tencent WorkBuddy es una estación de escritorio con agentes de IA y modo Coding para generar, revisar, depurar y refactorizar código, además de ejecutar tareas locales autónomas."
- },
- "fr": {
- "description": "Tencent WorkBuddy est un poste de travail de bureau avec agents IA et mode Coding pour générer, réviser, déboguer et refactoriser du code, et exécuter des tâches locales autonomes."
- },
- "id": {
- "description": "Tencent WorkBuddy adalah workstation desktop agen AI dengan Coding Mode untuk pembuatan, peninjauan, debugging, refactoring kode, dan eksekusi tugas lokal secara otonom."
- },
- "ja": {
- "description": "Tencent WorkBuddyは、コード生成、レビュー、デバッグ、リファクタリング、自律的なローカルタスク実行に対応するCoding Modeを備えたAIエージェントデスクトップです。"
- },
- "ko": {
- "description": "Tencent WorkBuddy는 코드 생성, 검토, 디버깅, 리팩터링 및 자율적인 로컬 작업 실행을 위한 Coding Mode를 갖춘 AI 에이전트 데스크톱 워크스테이션입니다."
- },
- "pt": {
- "description": "Tencent WorkBuddy é uma estação desktop com agentes de IA e modo Coding para gerar, revisar, depurar e refatorar código, além de executar tarefas locais autônomas."
- },
- "ru": {
- "description": "Tencent WorkBuddy — настольная среда с ИИ-агентами и режимом Coding для генерации, проверки, отладки и рефакторинга кода, а также автономного выполнения локальных задач."
- },
- "tr": {
- "description": "Tencent WorkBuddy; kod üretimi, inceleme, hata ayıklama, yeniden düzenleme ve otonom yerel görev yürütme için Coding Mode sunan bir AI ajan masaüstü çalışma alanıdır."
- },
- "zh-Hans": {
- "description": "Tencent WorkBuddy 是一款 AI 智能体桌面工作台,提供 Coding Mode,可进行代码生成、审查、调试、重构及自主执行本地任务。"
- },
- "zh-Hant": {
- "description": "Tencent WorkBuddy 是一款 AI 智慧代理桌面工作台,提供 Coding Mode,可進行程式碼產生、審查、除錯、重構及自主執行本機任務。"
- }
- },
- "verified": true,
- "sources": [
- {
- "url": "https://www.workbuddy.ai/docs/workbuddy/Quickstart",
- "title": "Tencent WorkBuddy quick start",
- "fields": ["description", "websiteUrl", "docsUrl"]
- },
- {
- "url": "https://www.workbuddy.ai/docs/workbuddy/From-Beginner-to-Expert-Guide/FQA",
- "title": "Tencent WorkBuddy FAQ",
- "fields": ["platforms"]
- },
- {
- "url": "https://www.workbuddy.ai/docs/workbuddy/From-Beginner-to-Expert-Guide/Installation-Mac-Guide",
- "title": "Tencent WorkBuddy macOS installation guide",
- "fields": ["platforms", "resourceUrls.download"]
- },
- {
- "url": "https://www.workbuddy.ai/docs/workbuddy/From-Beginner-to-Expert-Guide/Installation-Win-Guide",
- "title": "Tencent WorkBuddy Windows installation guide",
- "fields": ["platforms", "resourceUrls.download"]
- },
- {
- "url": "https://www.workbuddy.ai/document/term",
- "title": "Tencent WorkBuddy service agreement",
- "fields": ["vendor", "license"]
- },
- {
- "url": "https://cloud.tencent.com/document/product/1831/134333",
- "title": "WorkBuddy billing overview",
- "fields": ["pricing", "resourceUrls.pricing"]
- }
- ],
- "lastVerifiedAt": "2026-07-30",
- "verifiedBy": "codex-agent",
- "confidence": "high",
- "id": "workbuddy",
- "name": "Tencent WorkBuddy",
- "familyId": "workbuddy",
- "description": "Tencent WorkBuddy is an AI agent desktop workstation with a Coding Mode for code generation, review, debugging, refactoring, and autonomous local task execution.",
- "websiteUrl": "https://www.workbuddy.ai/",
- "docsUrl": "https://www.workbuddy.ai/docs/workbuddy/",
- "vendor": "Tencent",
- "latestVersion": "Latest",
- "githubUrl": null,
- "license": "Proprietary",
- "pricing": [
- {
- "name": "Experience",
- "value": 0,
- "currency": "CNY",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Standard",
- "value": 99,
- "currency": "CNY",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Advanced",
- "value": 199,
- "currency": "CNY",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Flagship",
- "value": 999,
- "currency": "CNY",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "SaaS Enterprise",
- "value": 198,
- "currency": "CNY",
- "per": "user/month",
- "category": "Business"
- },
- {
- "name": "Dedicated Cloud Enterprise",
- "value": 316,
- "currency": "CNY",
- "per": "user/month",
- "category": "Enterprise"
- },
- {
- "name": "Private Deployment",
- "value": null,
- "currency": null,
- "per": "custom",
- "category": "Enterprise"
- }
- ],
- "resourceUrls": {
- "download": "https://www.workbuddy.ai/",
- "changelog": null,
- "pricing": "https://cloud.tencent.com/document/product/1831/134333",
- "mcp": null,
- "issue": null
- },
- "communityUrls": {
- "linkedin": null,
- "twitter": null,
- "github": null,
- "youtube": null,
- "discord": null,
- "reddit": null,
- "blog": null
- },
- "relatedProducts": [],
- "platforms": [
- {
- "os": "macOS",
- "installPath": null,
- "installCommand": null,
- "launchCommand": null
- },
- {
- "os": "Windows",
- "installPath": null,
- "installCommand": null,
- "launchCommand": null
- }
- ]
-}
diff --git a/manifests/desktops/zcode.json b/manifests/desktops/zcode.json
index 464c45bd..03c09cd6 100644
--- a/manifests/desktops/zcode.json
+++ b/manifests/desktops/zcode.json
@@ -35,19 +35,40 @@
"description": "ZCode 是 Z.ai 的獨立桌面程式設計環境,支援代理式開發、專案規劃、程式碼變更、終端機執行和可重複利用的 ADE 工具。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
"url": "https://zcode.z.ai/en/docs/welcome",
"title": "ZCode documentation",
- "fields": ["pricing"]
+ "fields": ["description", "docsUrl"]
+ },
+ {
+ "url": "https://zcode.z.ai/en/docs/install",
+ "title": "ZCode installation guide",
+ "fields": ["platforms", "resourceUrls.download"]
},
{
"url": "https://zcode.z.ai/en/changelog",
- "title": "ZCode changelog"
+ "title": "ZCode changelog",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://zcode.z.ai/en",
+ "title": "ZCode product and GLM Coding Plan pricing",
+ "fields": ["websiteUrl", "pricing", "resourceUrls.pricing"]
+ },
+ {
+ "url": "https://zcode.z.ai/en/terms",
+ "title": "ZCode Terms of Service",
+ "fields": ["license"]
+ },
+ {
+ "url": "https://zcode.z.ai/en/docs/mcp-services",
+ "title": "ZCode MCP servers documentation",
+ "fields": ["resourceUrls.mcp"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "zcode",
@@ -57,23 +78,44 @@
"websiteUrl": "https://zcode.z.ai",
"docsUrl": "https://zcode.z.ai/en/docs/welcome",
"vendor": "Z.ai",
- "latestVersion": "3.3.6",
+ "latestVersion": "3.5.3",
"githubUrl": null,
"license": "Proprietary",
"pricing": [
{
- "name": "Free Download",
+ "name": "Free Trial",
"value": 0,
"currency": null,
"per": null,
"category": "Individual"
+ },
+ {
+ "name": "GLM Coding Lite",
+ "value": 16.2,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "GLM Coding Pro",
+ "value": 64.8,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
+ },
+ {
+ "name": "GLM Coding Max",
+ "value": 144,
+ "currency": "USD",
+ "per": "month",
+ "category": "Individual"
}
],
"resourceUrls": {
"download": "https://zcode.z.ai/en/docs/install",
"changelog": "https://zcode.z.ai/en/changelog",
- "pricing": null,
- "mcp": null,
+ "pricing": "https://zcode.z.ai/en",
+ "mcp": "https://zcode.z.ai/en/docs/mcp-services",
"issue": null
},
"communityUrls": {
@@ -95,13 +137,13 @@
},
{
"os": "Windows",
- "installPath": "%LOCALAPPDATA%\\Programs\\ZCode",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
},
{
"os": "Linux",
- "installPath": "/opt/ZCode",
+ "installPath": null,
"installCommand": null,
"launchCommand": null
}
diff --git a/manifests/extensions/claude-code.json b/manifests/extensions/claude-code.json
index 810ed681..6144ff7c 100644
--- a/manifests/extensions/claude-code.json
+++ b/manifests/extensions/claude-code.json
@@ -115,42 +115,42 @@
"name": "Pro",
"value": 20,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Pro (Annual)",
"value": 17,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Max 5x",
"value": 100,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Max 20x",
"value": 200,
"currency": "USD",
- "per": "Month",
+ "per": "month",
"category": "Individual"
},
{
"name": "Team",
"value": null,
"currency": "USD",
- "per": "Custom",
+ "per": "custom",
"category": "Team"
},
{
"name": "Enterprise",
"value": null,
"currency": "USD",
- "per": "Custom",
+ "per": "custom",
"category": "Enterprise"
}
],
diff --git a/manifests/extensions/kilo-code.json b/manifests/extensions/kilo-code.json
index 6f06383d..b1f1e926 100644
--- a/manifests/extensions/kilo-code.json
+++ b/manifests/extensions/kilo-code.json
@@ -65,7 +65,7 @@
"name": "Enterprise",
"value": null,
"currency": null,
- "per": "Custom",
+ "per": "custom",
"category": "Enterprise"
}
],
diff --git a/manifests/extensions/kimi-code.json b/manifests/extensions/kimi-code.json
index 3e9cd324..3bff1f31 100644
--- a/manifests/extensions/kimi-code.json
+++ b/manifests/extensions/kimi-code.json
@@ -35,19 +35,40 @@
"description": "Kimi Code for VS Code 將 Moonshot AI 的程式設計代理與編輯器內容、儲存庫感知變更、終端機操作,以及 Kimi Code CLI 的共享工作流程整合起來。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
- "url": "https://www.kimi.com/resources/kimi-code-introduction",
- "title": "Kimi Code introduction"
+ "url": "https://www.kimi.com/code/docs/en/",
+ "title": "Kimi Code documentation",
+ "fields": ["description", "websiteUrl", "docsUrl", "supportedIdes"]
},
{
"url": "https://github.com/MoonshotAI/kimi-code",
"title": "Kimi Code repository",
- "fields": ["pricing"]
+ "fields": ["githubUrl", "resourceUrls.issue", "communityUrls.github", "relatedProducts"]
+ },
+ {
+ "url": "https://github.com/MoonshotAI/kimi-code/blob/main/apps/vscode/package.json",
+ "title": "Kimi Code VS Code extension manifest",
+ "fields": ["name", "vendor", "license", "pricing", "githubUrl", "releaseTracking"]
+ },
+ {
+ "url": "https://marketplace.visualstudio.com/items?itemName=moonshot-ai.kimi-code",
+ "title": "Kimi Code Visual Studio Marketplace listing",
+ "fields": ["latestVersion", "releaseTracking", "resourceUrls.download", "supportedIdes"]
+ },
+ {
+ "url": "https://github.com/MoonshotAI/kimi-code/blob/main/apps/vscode/CHANGELOG.md",
+ "title": "Kimi Code VS Code changelog",
+ "fields": ["resourceUrls.changelog"]
+ },
+ {
+ "url": "https://x.com/Kimi_Moonshot",
+ "title": "Kimi official X account",
+ "fields": ["communityUrls.twitter"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "kimi-code",
@@ -57,7 +78,7 @@
"websiteUrl": "https://www.kimi.com/code",
"docsUrl": "https://www.kimi.com/code/docs/en",
"vendor": "Moonshot AI",
- "latestVersion": "0.6.4",
+ "latestVersion": "0.6.6",
"releaseTracking": {
"provider": "vscode-marketplace",
"identifier": "moonshot-ai.kimi-code"
@@ -74,8 +95,8 @@
}
],
"resourceUrls": {
- "download": null,
- "changelog": "https://www.kimi.com/code/docs/en/kimi-code/whats-new.html",
+ "download": "https://marketplace.visualstudio.com/items?itemName=moonshot-ai.kimi-code",
+ "changelog": "https://github.com/MoonshotAI/kimi-code/blob/main/apps/vscode/CHANGELOG.md",
"pricing": null,
"mcp": null,
"issue": "https://github.com/MoonshotAI/kimi-code/issues"
@@ -98,8 +119,8 @@
"supportedIdes": [
{
"ideId": "vscode",
- "marketplaceUrl": null,
- "installUri": null
+ "marketplaceUrl": "https://marketplace.visualstudio.com/items?itemName=moonshot-ai.kimi-code",
+ "installUri": "vscode:extension/moonshot-ai.kimi-code"
}
]
}
diff --git a/manifests/extensions/mistral-vibe.json b/manifests/extensions/mistral-vibe.json
index 1c297d31..ef86476b 100644
--- a/manifests/extensions/mistral-vibe.json
+++ b/manifests/extensions/mistral-vibe.json
@@ -14,10 +14,10 @@
"description": "Mistral Vibe untuk VS Code menghadirkan agen coding Mistral ke dalam editor untuk chat berbasis repositori, perubahan kode, eksekusi perintah, dan alur kerja pengembangan agentik."
},
"ja": {
- "description": "Mistral Vibe for VS Code は、リポジトリを考慮したチャット、コード変更、コマンド実行、エージェント型開発ワークフローのために Mistral のコーディングエージェントをエディターに導入します。"
+ "description": "Mistral Vibe VS Code は、リポジトリを考慮したチャット、コード変更、コマンド実行、エージェント型開発ワークフローのために Mistral のコーディングエージェントをエディターに導入します。"
},
"ko": {
- "description": "Mistral Vibe for VS Code는 저장소 인식 채팅, 코드 변경, 명령 실행, 에이전틱 개발 워크플로를 위해 Mistral의 코딩 에이전트를 편집기에 통합합니다."
+ "description": "Mistral Vibe VS Code는 저장소 인식 채팅, 코드 변경, 명령 실행, 에이전틱 개발 워크플로를 위해 Mistral의 코딩 에이전트를 편집기에 통합합니다."
},
"pt": {
"description": "O Mistral Vibe para VS Code leva o agente da Mistral ao editor para conversas sobre o repositório, mudanças no código, execução de comandos e fluxos de desenvolvimento agênticos."
@@ -26,13 +26,13 @@
"description": "Mistral Vibe для VS Code добавляет агент программирования Mistral в редактор для чата с учетом репозитория, изменения кода, выполнения команд и агентных процессов разработки."
},
"tr": {
- "description": "Mistral Vibe for VS Code, depo odaklı sohbet, kod değişiklikleri, komut yürütme ve aracılı geliştirme iş akışları için Mistral'ın kodlama aracısını editöre getirir."
+ "description": "Mistral Vibe VS Code, depo odaklı sohbet, kod değişiklikleri, komut yürütme ve aracılı geliştirme iş akışları için Mistral'ın kodlama aracısını editöre getirir."
},
"zh-Hans": {
- "description": "Mistral Vibe for VS Code 将 Mistral 的编码代理带入编辑器,支持仓库感知聊天、代码变更、命令执行和代理式开发工作流。"
+ "description": "Mistral Vibe VS Code 将 Mistral 的编码代理带入编辑器,支持仓库感知聊天、代码变更、命令执行和代理式开发工作流。"
},
"zh-Hant": {
- "description": "Mistral Vibe for VS Code 將 Mistral 的程式設計代理帶入編輯器,支援儲存庫感知聊天、程式碼變更、命令執行和代理式開發工作流程。"
+ "description": "Mistral Vibe VS Code 將 Mistral 的程式設計代理帶入編輯器,支援儲存庫感知聊天、程式碼變更、命令執行和代理式開發工作流程。"
}
},
"verified": true,
@@ -45,19 +45,24 @@
"url": "https://docs.mistral.ai/vibe/code/overview",
"title": "Mistral Vibe documentation"
},
+ {
+ "url": "https://marketplace.visualstudio.com/items?itemName=mistralai.mistral-vibe-code",
+ "title": "Mistral Vibe VS Code Marketplace listing",
+ "fields": ["latestVersion", "releaseTracking", "resourceUrls.download", "supportedIdes"]
+ },
{
"url": "https://mistral.ai/pricing",
"title": "Mistral pricing",
"fields": ["pricing", "resourceUrls.pricing"]
}
],
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"id": "mistral-vibe",
- "name": "Mistral Vibe for VS Code",
+ "name": "Mistral Vibe VS Code",
"familyId": "mistral-vibe",
- "description": "Mistral Vibe for VS Code brings Mistral's coding agent into the editor for repository-aware chat, code changes, command execution, and agentic development workflows.",
+ "description": "Mistral Vibe VS Code brings Mistral's coding agent into the editor for repository-aware chat, code changes, command execution, and agentic development workflows.",
"websiteUrl": "https://mistral.ai/products/vibe",
"docsUrl": "https://docs.mistral.ai/vibe/code/overview",
"vendor": "Mistral AI",
@@ -92,7 +97,7 @@
}
],
"resourceUrls": {
- "download": null,
+ "download": "https://marketplace.visualstudio.com/items?itemName=mistralai.mistral-vibe-code",
"changelog": null,
"pricing": "https://mistral.ai/pricing",
"mcp": null,
@@ -116,8 +121,8 @@
"supportedIdes": [
{
"ideId": "vscode",
- "marketplaceUrl": null,
- "installUri": null
+ "marketplaceUrl": "https://marketplace.visualstudio.com/items?itemName=mistralai.mistral-vibe-code",
+ "installUri": "vscode:extension/mistralai.mistral-vibe-code"
}
]
}
diff --git a/manifests/extensions/opencode-extension.json b/manifests/extensions/opencode-extension.json
index 6020ab19..c496136f 100644
--- a/manifests/extensions/opencode-extension.json
+++ b/manifests/extensions/opencode-extension.json
@@ -35,16 +35,42 @@
"description": "OpenCode Extension 將開放原始碼 OpenCode 代理連接到相容 VS Code 的編輯器,提供編輯器內容、檔案參照,以及終端機代理共享工作階段。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
- "url": "https://opencode.ai/download",
- "title": "OpenCode downloads"
+ "url": "https://opencode.ai/docs/ide",
+ "title": "OpenCode IDE documentation",
+ "fields": ["description", "websiteUrl", "docsUrl", "supportedIdes"]
+ },
+ {
+ "url": "https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode",
+ "title": "OpenCode Visual Studio Marketplace listing",
+ "fields": [
+ "name",
+ "latestVersion",
+ "releaseTracking",
+ "resourceUrls.download",
+ "supportedIdes"
+ ]
+ },
+ {
+ "url": "https://github.com/anomalyco/opencode/blob/dev/sdks/vscode/package.json",
+ "title": "OpenCode VS Code extension manifest",
+ "fields": ["vendor", "releaseTracking", "githubUrl", "license"]
},
{
"url": "https://github.com/anomalyco/opencode",
"title": "OpenCode repository",
- "fields": ["pricing"]
+ "fields": [
+ "vendor",
+ "githubUrl",
+ "license",
+ "pricing",
+ "resourceUrls.changelog",
+ "resourceUrls.issue",
+ "communityUrls.github",
+ "relatedProducts"
+ ]
},
{
"url": "https://opencode.ai/zen",
@@ -52,14 +78,14 @@
"fields": ["pricing", "resourceUrls.pricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
- "confidence": "high",
+ "confidence": "medium",
"id": "opencode-extension",
"name": "OpenCode Extension",
"familyId": "opencode",
"description": "OpenCode Extension connects the open source OpenCode agent to VS Code-compatible editors for editor context, file references, and shared terminal-agent sessions.",
- "websiteUrl": "https://opencode.ai/download",
+ "websiteUrl": "https://opencode.ai/docs/ide",
"docsUrl": "https://opencode.ai/docs/ide",
"vendor": "Anomaly",
"latestVersion": "0.0.13",
@@ -79,7 +105,7 @@
}
],
"resourceUrls": {
- "download": "https://opencode.ai/download",
+ "download": "https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode",
"changelog": "https://github.com/anomalyco/opencode/releases",
"pricing": "https://opencode.ai/zen",
"mcp": null,
@@ -107,8 +133,8 @@
"supportedIdes": [
{
"ideId": "vscode",
- "marketplaceUrl": null,
- "installUri": null
+ "marketplaceUrl": "https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode",
+ "installUri": "vscode:extension/sst-dev.opencode"
},
{
"ideId": "cursor",
@@ -116,7 +142,7 @@
"installUri": null
},
{
- "ideId": "zed",
+ "ideId": "windsurf",
"marketplaceUrl": null,
"installUri": null
}
diff --git a/manifests/extensions/rovo-dev.json b/manifests/extensions/rovo-dev.json
index 823b3f84..51cf3e5e 100644
--- a/manifests/extensions/rovo-dev.json
+++ b/manifests/extensions/rovo-dev.json
@@ -98,12 +98,7 @@
"reddit": null,
"blog": null
},
- "relatedProducts": [
- {
- "type": "cli",
- "productId": "rovo-dev-cli"
- }
- ],
+ "relatedProducts": [],
"supportedIdes": [
{
"ideId": "vscode",
diff --git a/manifests/ides/antigravity.json b/manifests/ides/antigravity.json
index e409983c..f0d3a1d4 100644
--- a/manifests/ides/antigravity.json
+++ b/manifests/ides/antigravity.json
@@ -89,7 +89,7 @@
"name": "Organization",
"value": null,
"currency": null,
- "per": "usage",
+ "per": "usage-based",
"category": "Enterprise"
}
],
diff --git a/manifests/ides/codebuddy.json b/manifests/ides/codebuddy.json
deleted file mode 100644
index 3b7b52ee..00000000
--- a/manifests/ides/codebuddy.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "$schema": "../$schemas/ide.schema.json",
- "id": "codebuddy",
- "name": "CodeBuddy IDE",
- "description": "Tencent's AI coding assistant offering intelligent code completion, multi-file code generation (Craft Mode), design-to-code conversion, and integrated deployment tools.",
- "translations": {
- "zh-Hans": {
- "description": "腾讯的 AI 编码助手,提供智能代码补全、多文件代码生成(Craft 模式)、设计转代码转换和集成部署工具。"
- },
- "de": {
- "description": "Tencents AI-Codierungsassistent bietet intelligente Codevervollständigung, Mehrdatei-Codegenerierung im Craft-Modus, Design-zu-Code-Konvertierung und integrierte Bereitstellungswerkzeuge."
- },
- "ko": {
- "description": "텐센트의 AI 코딩 어시스턴트로, 스마트 코드 자동 완성, 다중 파일 코드 생성(Craft 모드), 디자인-투-코드 변환 및 통합 배포 도구를 제공합니다."
- },
- "es": {
- "description": "El asistente de programación con IA de Tencent ofrece completado inteligente, código en varios archivos (modo Craft), conversión de diseño a código y herramientas de despliegue integradas."
- },
- "fr": {
- "description": "L'assistant de codage IA de Tencent offrant autocomplétion intelligente de code, génération de code multi-fichiers (mode Craft), conversion design-vers-code et outils de déploiement intégrés."
- },
- "id": {
- "description": "Asisten pengkodean AI dari Tencent yang menawarkan pelengkapan kode cerdas, pembuatan kode multi-file (mode Craft), konversi desain ke kode, dan alat penyebaran terintegrasi."
- },
- "ja": {
- "description": "TencentのAIコーディングアシスタント。インテリジェントなコード補完、マルチファイルコード生成(Craftモード)、デザインからコードへの変換、統合デプロイツールを提供します。"
- },
- "pt": {
- "description": "O assistente de programação com IA da Tencent oferece preenchimento inteligente, código em vários arquivos (modo Craft), conversão de design em código e ferramentas integradas de implantação."
- },
- "ru": {
- "description": "ИИ-помощник Tencent для программирования предлагает умное автодополнение, генерацию кода в нескольких файлах (режим Craft), преобразование дизайна в код и встроенные инструменты развёртывания."
- },
- "tr": {
- "description": "Tencent'in AI kodlama asistanı, akıllı kod tamamlama, çoklu dosya kod üretimi (Craft modu), tasarımdan koda dönüşüm ve entegre dağıtım araçları sunar."
- },
- "zh-Hant": {
- "description": "騰訊的 AI 程式設計助理提供智慧程式碼補全、多檔案程式碼產生(Craft 模式)、設計轉程式碼,以及整合式部署工具。"
- }
- },
- "verified": true,
- "lastVerifiedAt": "2026-07-30",
- "verifiedBy": "codex-agent",
- "confidence": "high",
- "websiteUrl": "https://www.codebuddy.ai",
- "docsUrl": "https://www.codebuddy.ai/docs/ide",
- "vendor": "Tencent",
- "latestVersion": "1.0.0",
- "githubUrl": null,
- "license": "Proprietary",
- "pricing": [
- {
- "name": "Free",
- "value": 0,
- "currency": null,
- "per": null,
- "category": "Individual"
- },
- {
- "name": "Pro",
- "value": 9.95,
- "currency": "USD",
- "per": "month",
- "category": "Individual"
- },
- {
- "name": "Teams",
- "value": 40,
- "currency": "USD",
- "per": "user/month",
- "category": "Business"
- }
- ],
- "resourceUrls": {
- "download": "https://www.codebuddy.ai/ide",
- "changelog": null,
- "pricing": "https://www.codebuddy.ai/pricing",
- "mcp": null,
- "issue": null
- },
- "communityUrls": {
- "linkedin": null,
- "twitter": null,
- "github": null,
- "youtube": null,
- "discord": null,
- "reddit": null,
- "blog": "https://www.codebuddy.ai/blog"
- },
- "relatedProducts": [],
- "platforms": [
- {
- "os": "Windows",
- "installCommand": null,
- "launchCommand": "codebuddy",
- "installPath": null
- },
- {
- "os": "macOS",
- "installCommand": null,
- "launchCommand": "codebuddy",
- "installPath": null
- }
- ],
- "sources": [
- {
- "url": "https://www.codebuddy.ai/blog",
- "title": "CodeBuddy IDE blog community",
- "fields": ["communityUrls.blog"]
- },
- {
- "url": "https://www.codebuddy.ai/docs/ide/Account/pricing",
- "title": "CodeBuddy pricing",
- "fields": ["pricing", "resourceUrls.pricing"]
- }
- ]
-}
diff --git a/manifests/ides/trae.json b/manifests/ides/trae.json
index 7c626241..37c341f5 100644
--- a/manifests/ides/trae.json
+++ b/manifests/ides/trae.json
@@ -39,18 +39,13 @@
"description": "AI 驅動的 IDE,定位為可提升十倍效率的「AI 工程師」,提供即時程式碼補全、聊天式輔助與自主程式碼產生(Builder/SOLO 模式),支援端對端開發。"
}
},
- "verified": false,
+ "verified": true,
"sources": [
{
- "url": "https://www.trae.ai/solo-code",
- "title": "TRAE IDE",
+ "url": "https://www.trae.ai/ide",
+ "title": "TRAE IDE product page",
"fields": ["name", "description", "websiteUrl"]
},
- {
- "url": "https://www.trae.ai/blog/trae_work_0609",
- "title": "Introducing TRAE Work",
- "fields": ["familyId", "relatedProducts"]
- },
{
"url": "https://www.trae.ai/download",
"title": "TRAE Download Center",
@@ -66,11 +61,21 @@
"title": "TRAE pricing",
"fields": ["pricing", "resourceUrls.pricing"]
},
+ {
+ "url": "https://www.trae.ai/terms-of-service",
+ "title": "TRAE Terms of Service",
+ "fields": ["license"]
+ },
{
"url": "https://x.com/Trae_ai",
"title": "TRAE IDE twitter community",
"fields": ["communityUrls.twitter"]
},
+ {
+ "url": "https://discord.com/invite/nwWJDCaqtc",
+ "title": "TRAE Discord community",
+ "fields": ["communityUrls.discord"]
+ },
{
"url": "https://www.reddit.com/r/Trae_ai",
"title": "TRAE IDE reddit community",
@@ -84,13 +89,13 @@
{
"url": "https://github.com/Trae-AI/TRAE",
"title": "TRAE official repository",
- "fields": ["githubUrl", "resourceUrls.issue"]
+ "fields": ["githubUrl", "resourceUrls.issue", "communityUrls.github"]
}
],
- "lastVerifiedAt": "2026-07-30",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
- "websiteUrl": "https://www.trae.ai/solo-code",
+ "websiteUrl": "https://www.trae.ai/ide",
"docsUrl": "https://docs.trae.ai",
"vendor": "ByteDance",
"latestVersion": "3.5.71",
@@ -143,35 +148,30 @@
"communityUrls": {
"linkedin": null,
"twitter": "https://x.com/Trae_ai",
- "github": null,
+ "github": "https://github.com/Trae-AI/TRAE",
"youtube": null,
- "discord": null,
+ "discord": "https://discord.com/invite/nwWJDCaqtc",
"reddit": "https://www.reddit.com/r/Trae_ai",
"blog": "https://www.trae.ai/blog"
},
- "relatedProducts": [
- {
- "type": "desktop",
- "productId": "trae-work"
- }
- ],
+ "relatedProducts": [],
"platforms": [
{
"os": "macOS",
"installCommand": null,
- "launchCommand": "trae",
+ "launchCommand": null,
"installPath": null
},
{
"os": "Windows",
"installCommand": null,
- "launchCommand": "trae",
+ "launchCommand": null,
"installPath": null
},
{
"os": "Linux",
"installCommand": null,
- "launchCommand": "trae",
+ "launchCommand": null,
"installPath": null
}
]
diff --git a/manifests/ides/vscode.json b/manifests/ides/vscode.json
index 8699a567..33768f69 100644
--- a/manifests/ides/vscode.json
+++ b/manifests/ides/vscode.json
@@ -2,49 +2,52 @@
"$schema": "../$schemas/ide.schema.json",
"id": "vscode",
"name": "Visual Studio Code",
- "description": "A free, open-source code editor with extensive language support and an ecosystem of extensions (including AI agents like GitHub Copilot) for editing, debugging, and version control.",
+ "description": "A free code editor built on open source, with broad language support, editing, debugging, version control, extensions, and AI agents such as GitHub Copilot.",
"translations": {
"zh-Hans": {
- "description": "免费开源的代码编辑器,具有广泛的语言支持和扩展生态系统(包括 GitHub Copilot 等 AI Agent),用于编辑、调试和版本控制。"
+ "description": "一款基于开源技术构建的免费代码编辑器,提供广泛的语言支持、编辑、调试、版本控制、扩展,以及 GitHub Copilot 等 AI Agent。"
},
"de": {
- "description": "Kostenloser Open-Source-Editor mit umfangreicher Sprachunterstützung und Erweiterungen (inkl. AI-Agenten wie GitHub Copilot) für Bearbeitung, Debugging und Versionskontrolle."
+ "description": "Ein kostenloser, auf Open Source basierender Code-Editor mit Sprachunterstützung, Bearbeitung, Debugging, Versionskontrolle, Erweiterungen und AI-Agenten wie GitHub Copilot."
},
"ko": {
- "description": "편집, 디버깅 및 버전 제어를 위한 광범위한 언어 지원과 확장 생태계(GitHub Copilot 등 AI 에이전트 포함)을 갖춘 무료 오픈 소스 코드 편집기입니다."
+ "description": "오픈 소스를 기반으로 하며 다양한 언어, 편집, 디버깅, 버전 관리, 확장 기능과 GitHub Copilot 같은 AI 에이전트를 지원하는 무료 코드 편집기입니다."
},
"es": {
- "description": "Microsoft's editor extendido con soporte nativo de ChatGPT, Claude y otras herramientas de IA. Soporta extensiones y personalización."
+ "description": "Editor de código gratuito basado en código abierto, con amplia compatibilidad de lenguajes, edición, depuración, control de versiones, extensiones y agentes de IA como GitHub Copilot."
},
"fr": {
- "description": "L'éditeur de Microsoft étendu avec support natif ChatGPT, Claude et autres outils IA. Supporte extensions et personnalisation."
+ "description": "Éditeur de code gratuit basé sur l’open source, avec prise en charge des langages, édition, débogage, gestion de versions, extensions et agents IA comme GitHub Copilot."
},
"id": {
- "description": "Editor kode gratis dan open source dengan dukungan bahasa yang luas dan ekosistem ekstensi (termasuk agen AI seperti GitHub Copilot) untuk pengeditan, debugging, dan kontrol versi."
+ "description": "Editor kode gratis berbasis sumber terbuka dengan dukungan bahasa, pengeditan, debugging, kontrol versi, ekstensi, dan agen AI seperti GitHub Copilot."
},
"ja": {
- "description": "広範な言語サポートと拡張機能のエコシステム(GitHub CopilotなどのAIエージェントを含む)を備えた、編集、デバッグ、バージョン管理のための無料のオープンソースコードエディタ。"
+ "description": "オープンソースを基盤とし、幅広い言語、編集、デバッグ、バージョン管理、拡張機能、GitHub Copilot などの AI エージェントに対応する無料のコードエディターです。"
},
"pt": {
- "description": "Um editor de código gratuito e de código aberto com amplo suporte de idiomas e um ecossistema de extensões (incluindo agentes de IA como GitHub Copilot) para edição, depuração e controle de versão."
+ "description": "Editor de código gratuito baseado em código aberto, com suporte a linguagens, edição, depuração, controle de versão, extensões e agentes de IA como o GitHub Copilot."
},
"ru": {
- "description": "Бесплатный редактор кода с открытым исходным кодом с обширной поддержкой языков и экосистемой расширений (включая агенты ИИ, такие как GitHub Copilot) для редактирования, отладки и контроля версий."
+ "description": "Бесплатный редактор кода на основе открытого исходного кода с поддержкой языков, редактирования, отладки, контроля версий, расширений и ИИ-агентов, таких как GitHub Copilot."
},
"tr": {
- "description": "Düzenleme, hata ayıklama ve sürüm kontrolü için kapsamlı dil desteği ve uzantı ekosistemi (GitHub Copilot gibi AI ajanları dahil) olan ücretsiz açık kaynaklı kod düzenleyici."
+ "description": "Açık kaynak temelli; dil desteği, düzenleme, hata ayıklama, sürüm kontrolü, uzantılar ve GitHub Copilot gibi AI aracıları sunan ücretsiz kod düzenleyici."
},
"zh-Hant": {
- "description": "免費且開放原始碼的程式碼編輯器,具備廣泛的語言支援與擴充功能生態系(包含 GitHub Copilot 等 AI Agent),可用於編輯、除錯與版本控制。"
+ "description": "一款以開放原始碼為基礎的免費程式碼編輯器,提供廣泛的語言支援、編輯、除錯、版本控制、擴充功能,以及 GitHub Copilot 等 AI Agent。"
}
},
- "verified": false,
+ "verified": true,
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
"websiteUrl": "https://code.visualstudio.com",
"docsUrl": "https://code.visualstudio.com/docs",
"vendor": "Microsoft",
- "latestVersion": "1.106",
+ "latestVersion": "1.131",
"githubUrl": "https://github.com/microsoft/vscode",
- "license": "MIT",
+ "license": "Proprietary",
"pricing": [
{
"name": "Free",
@@ -58,7 +61,7 @@
"download": "https://code.visualstudio.com/download",
"changelog": "https://code.visualstudio.com/updates",
"pricing": null,
- "mcp": "https://github.com/mcp",
+ "mcp": "https://code.visualstudio.com/docs/agent-customization/mcp-servers",
"issue": "https://github.com/microsoft/vscode/issues"
},
"communityUrls": {
@@ -74,33 +77,68 @@
"platforms": [
{
"os": "macOS",
- "installCommand": "https://code.visualstudio.com/download",
+ "installCommand": null,
"launchCommand": "code",
"installPath": null
},
{
"os": "Windows",
- "installCommand": "https://code.visualstudio.com/download",
+ "installCommand": null,
"launchCommand": "code",
"installPath": null
},
{
"os": "Linux",
- "installCommand": "https://code.visualstudio.com/download",
+ "installCommand": null,
"launchCommand": "code",
"installPath": null
}
],
"sources": [
{
- "url": "https://x.com/code",
- "title": "Visual Studio Code twitter community",
- "fields": ["communityUrls.twitter"]
+ "url": "https://code.visualstudio.com/",
+ "title": "Visual Studio Code product page",
+ "fields": ["name", "description", "websiteUrl", "pricing"]
+ },
+ {
+ "url": "https://code.visualstudio.com/download",
+ "title": "Visual Studio Code downloads",
+ "fields": ["platforms", "resourceUrls.download"]
+ },
+ {
+ "url": "https://code.visualstudio.com/updates/v1_131",
+ "title": "Visual Studio Code 1.131 release notes",
+ "fields": ["latestVersion", "resourceUrls.changelog"]
+ },
+ {
+ "url": "https://code.visualstudio.com/docs/configure/command-line",
+ "title": "Visual Studio Code command-line interface",
+ "fields": ["platforms"]
+ },
+ {
+ "url": "https://code.visualstudio.com/license",
+ "title": "Visual Studio Code product license",
+ "fields": ["license"]
+ },
+ {
+ "url": "https://code.visualstudio.com/docs/supporting/faq",
+ "title": "Visual Studio Code licensing FAQ",
+ "fields": ["description", "githubUrl", "license"]
+ },
+ {
+ "url": "https://code.visualstudio.com/docs/agent-customization/mcp-servers",
+ "title": "Visual Studio Code MCP servers documentation",
+ "fields": ["resourceUrls.mcp"]
},
{
"url": "https://github.com/microsoft/vscode",
- "title": "Visual Studio Code github community",
- "fields": ["communityUrls.github", "pricing"]
+ "title": "Visual Studio Code source repository",
+ "fields": ["githubUrl", "resourceUrls.issue", "communityUrls.github"]
+ },
+ {
+ "url": "https://x.com/code",
+ "title": "Visual Studio Code twitter community",
+ "fields": ["communityUrls.twitter"]
},
{
"url": "https://www.reddit.com/r/vscode",
diff --git a/manifests/models/claude-fable-5.json b/manifests/models/claude-fable-5.json
index d015de48..8d3ca14e 100644
--- a/manifests/models/claude-fable-5.json
+++ b/manifests/models/claude-fable-5.json
@@ -67,6 +67,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/claude-haiku-3-5.json b/manifests/models/claude-haiku-3-5.json
index db6e5a88..a19d9aba 100644
--- a/manifests/models/claude-haiku-3-5.json
+++ b/manifests/models/claude-haiku-3-5.json
@@ -68,6 +68,7 @@
"docsUrl": "https://www.anthropic.com/news/3-5-models-and-computer-use",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/claude-haiku-3.json b/manifests/models/claude-haiku-3.json
index 86ad929f..6a149cf0 100644
--- a/manifests/models/claude-haiku-3.json
+++ b/manifests/models/claude-haiku-3.json
@@ -68,6 +68,7 @@
"docsUrl": "https://www.anthropic.com/news/claude-3-haiku",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/claude-haiku-4-5.json b/manifests/models/claude-haiku-4-5.json
index e4ab90d9..10685e10 100644
--- a/manifests/models/claude-haiku-4-5.json
+++ b/manifests/models/claude-haiku-4-5.json
@@ -77,6 +77,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 64000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-3.json b/manifests/models/claude-opus-3.json
index 6c4e258c..3f57b351 100644
--- a/manifests/models/claude-opus-3.json
+++ b/manifests/models/claude-opus-3.json
@@ -71,6 +71,7 @@
"docsUrl": "https://www.anthropic.com/news/claude-3-family",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-4-1.json b/manifests/models/claude-opus-4-1.json
index de87857d..3317d58e 100644
--- a/manifests/models/claude-opus-4-1.json
+++ b/manifests/models/claude-opus-4-1.json
@@ -53,6 +53,7 @@
"docsUrl": "https://docs.anthropic.com/claude/docs/models-overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 32000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-4-5.json b/manifests/models/claude-opus-4-5.json
index e55df046..73f00e67 100644
--- a/manifests/models/claude-opus-4-5.json
+++ b/manifests/models/claude-opus-4-5.json
@@ -53,6 +53,7 @@
"docsUrl": "https://docs.anthropic.com/claude/docs/models-overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 64000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-4-6.json b/manifests/models/claude-opus-4-6.json
index 7dd36de7..b5646f49 100644
--- a/manifests/models/claude-opus-4-6.json
+++ b/manifests/models/claude-opus-4-6.json
@@ -79,6 +79,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-4-7.json b/manifests/models/claude-opus-4-7.json
index 849be108..3734e3be 100644
--- a/manifests/models/claude-opus-4-7.json
+++ b/manifests/models/claude-opus-4-7.json
@@ -80,6 +80,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-4-8.json b/manifests/models/claude-opus-4-8.json
index 154684eb..9c0e43b1 100644
--- a/manifests/models/claude-opus-4-8.json
+++ b/manifests/models/claude-opus-4-8.json
@@ -67,6 +67,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/whats-new-claude-4-8",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-4.json b/manifests/models/claude-opus-4.json
index 1cfdb6a8..25636e2e 100644
--- a/manifests/models/claude-opus-4.json
+++ b/manifests/models/claude-opus-4.json
@@ -58,6 +58,7 @@
"docsUrl": "https://docs.anthropic.com/claude/docs/models-overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 32000,
"tokenPricing": {
diff --git a/manifests/models/claude-opus-5.json b/manifests/models/claude-opus-5.json
index 85bde314..ca62bf9a 100644
--- a/manifests/models/claude-opus-5.json
+++ b/manifests/models/claude-opus-5.json
@@ -74,6 +74,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/whats-new-opus-5",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-3-5-20240620.json b/manifests/models/claude-sonnet-3-5-20240620.json
index 382cd673..3a92d14c 100644
--- a/manifests/models/claude-sonnet-3-5-20240620.json
+++ b/manifests/models/claude-sonnet-3-5-20240620.json
@@ -72,6 +72,7 @@
"docsUrl": "https://www.anthropic.com/news/claude-3-5-sonnet",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 8192,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-3-5-20241022.json b/manifests/models/claude-sonnet-3-5-20241022.json
index c1d4281a..e331ba03 100644
--- a/manifests/models/claude-sonnet-3-5-20241022.json
+++ b/manifests/models/claude-sonnet-3-5-20241022.json
@@ -70,6 +70,7 @@
"docsUrl": "https://www.anthropic.com/news/3-5-models-and-computer-use",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 8192,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-3-7.json b/manifests/models/claude-sonnet-3-7.json
index f6043a7b..f4f27fdf 100644
--- a/manifests/models/claude-sonnet-3-7.json
+++ b/manifests/models/claude-sonnet-3-7.json
@@ -68,6 +68,7 @@
"docsUrl": "https://www.anthropic.com/news/claude-3-7-sonnet",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-3.json b/manifests/models/claude-sonnet-3.json
index ec3376a9..ba9175dd 100644
--- a/manifests/models/claude-sonnet-3.json
+++ b/manifests/models/claude-sonnet-3.json
@@ -71,6 +71,7 @@
"docsUrl": "https://www.anthropic.com/news/claude-3-family",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-4-5.json b/manifests/models/claude-sonnet-4-5.json
index 38c972c3..296bea0e 100644
--- a/manifests/models/claude-sonnet-4-5.json
+++ b/manifests/models/claude-sonnet-4-5.json
@@ -53,6 +53,7 @@
"docsUrl": "https://docs.anthropic.com/claude/docs/models-overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 64000,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-4-6.json b/manifests/models/claude-sonnet-4-6.json
index c59b9d35..68610e63 100644
--- a/manifests/models/claude-sonnet-4-6.json
+++ b/manifests/models/claude-sonnet-4-6.json
@@ -80,6 +80,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 64000,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-4.json b/manifests/models/claude-sonnet-4.json
index 18aa4e71..77ff3a42 100644
--- a/manifests/models/claude-sonnet-4.json
+++ b/manifests/models/claude-sonnet-4.json
@@ -53,6 +53,7 @@
"docsUrl": "https://docs.anthropic.com/claude/docs/models-overview",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 64000,
"tokenPricing": {
diff --git a/manifests/models/claude-sonnet-5.json b/manifests/models/claude-sonnet-5.json
index b912cf22..091799c6 100644
--- a/manifests/models/claude-sonnet-5.json
+++ b/manifests/models/claude-sonnet-5.json
@@ -67,6 +67,7 @@
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/whats-new-sonnet-5",
"vendor": "Anthropic",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/composer.json b/manifests/models/composer.json
deleted file mode 100644
index 6a370aae..00000000
--- a/manifests/models/composer.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- "$schema": "../$schemas/model.schema.json",
- "id": "composer",
- "name": "Composer",
- "description": "Fast frontier coding model from Cursor optimized with RL for interactive software engineering, trained as a mixture-of-experts to deliveries high-speed code assistance.",
- "translations": {
- "zh-Hans": {
- "description": "Cursor 发布的高速前沿编码模型,采用 MoE 架构与强化学习针对交互式软件工程优化,可在真实开发环境中快速提供代码辅助。"
- },
- "de": {
- "description": "Schnelles Grenzwissen-Codierungsmodell von Cursor, optimiert mit RL und als Mixture-of-Experts für interaktive Softwareentwicklung."
- },
- "ko": {
- "description": "Cursor에서 출시한 고속 최전선 코딩 모델로, MoE 아키텍처와 강화 학습을 사용하여 대화형 소프트웨어 엔지니어링에 최적화되어 있습니다."
- },
- "es": {
- "description": "Modelo de codificación de alta velocidad de la vanguardia de Cursor, optimizado con RL como una mezcla de expertos para la ingeniería de software interactiva."
- },
- "fr": {
- "description": "Modèle de codage à haute vitesse de Cursor, optimisé par apprentissage par renforcement comme mélange d’experts pour le génie logiciel interactif."
- },
- "id": {
- "description": "Model coding kecepatan tinggi dari depan Cursor, dioptimalkan dengan RL sebagai campuran ahli untuk rekayasa perangkat lunak interaktif."
- },
- "ja": {
- "description": "Cursorの高速最先端コーディングモデルで、RLとMoE構造で対話型ソフトウェアエンジニアリングに最適化されています。"
- },
- "pt": {
- "description": "Modelo avançado de programação em alta velocidade do Cursor, otimizado com aprendizado por reforço como uma mistura de especialistas para engenharia de software interativa."
- },
- "ru": {
- "description": "Быстрая передовая модель программирования от Cursor, оптимизированная с помощью RL как смесь экспертов для интерактивной разработки программного обеспечения."
- },
- "tr": {
- "description": "Cursor’ın etkileşimli yazılım mühendisliği için pekiştirmeli öğrenmeyle uzmanlar karışımı olarak optimize edilmiş yüksek hızlı, öncü kodlama modeli."
- },
- "zh-Hant": {
- "description": "Cursor 發布的高速前沿程式設計模型,採用 MoE 架構與強化學習針對互動式軟體工程最佳化,可在真實開發環境中快速提供程式碼輔助。"
- }
- },
- "verified": false,
- "websiteUrl": "https://cursor.com",
- "docsUrl": "https://cursor.com/blog/composer",
- "vendor": "Anysphere",
- "size": null,
- "contextWindow": 128000,
- "maxOutput": 8000,
- "tokenPricing": {
- "status": "available",
- "primaryOffer": "global-standard",
- "offers": [
- {
- "id": "global-standard",
- "currency": "USD",
- "region": "global",
- "serviceTier": "standard",
- "effectiveFrom": null,
- "effectiveTo": null,
- "tiers": [
- {
- "condition": null,
- "rates": {
- "input": 0,
- "output": 0,
- "cacheRead": null,
- "cacheWrite": null
- }
- }
- ]
- }
- ]
- },
- "releaseDate": null,
- "lifecycle": "latest",
- "knowledgeCutoff": null,
- "inputModalities": ["text"],
- "outputModalities": ["text"],
- "capabilities": ["function-calling", "tool-choice", "structured-outputs"],
- "benchmarks": {
- "sweBench": null,
- "terminalBench": null,
- "mmmu": null,
- "mmmuPro": null,
- "webDevArena": null,
- "sciCode": null,
- "liveCodeBench": null
- },
- "platformUrls": {
- "huggingface": null,
- "artificialAnalysis": null,
- "openrouter": null
- }
-}
diff --git a/manifests/models/cursor-composer-2-5.json b/manifests/models/cursor-composer-2-5.json
index b4060d65..8ff6c89f 100644
--- a/manifests/models/cursor-composer-2-5.json
+++ b/manifests/models/cursor-composer-2-5.json
@@ -1,7 +1,7 @@
{
"$schema": "../$schemas/model.schema.json",
"id": "cursor-composer-2-5",
- "name": "Cursor Composer 2.5",
+ "name": "Composer 2.5",
"description": "Cursor's efficient coding agent model for interactive development, reliable tool use, and long-running software engineering tasks.",
"translations": {
"de": {
@@ -61,13 +61,14 @@
"fields": ["benchmarks.terminalBench"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "medium",
"websiteUrl": "https://cursor.com",
"docsUrl": "https://docs.cursor.com/models",
"vendor": "Anysphere",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/cursor-composer-2.json b/manifests/models/cursor-composer-2.json
index 2574ca1b..b6fa6495 100644
--- a/manifests/models/cursor-composer-2.json
+++ b/manifests/models/cursor-composer-2.json
@@ -1,7 +1,7 @@
{
"$schema": "../$schemas/model.schema.json",
"id": "cursor-composer-2",
- "name": "Cursor Composer 2",
+ "name": "Composer 2",
"description": "Cursor's retired coding agent model for long-horizon software engineering, now routed to Composer 2.5.",
"translations": {
"de": {
@@ -61,13 +61,14 @@
"fields": ["benchmarks.terminalBench"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "medium",
"websiteUrl": "https://cursor.com",
"docsUrl": "https://docs.cursor.com/models",
"vendor": "Anysphere",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/deepseek-3-2.json b/manifests/models/deepseek-3-2.json
index f6865065..aeca8186 100644
--- a/manifests/models/deepseek-3-2.json
+++ b/manifests/models/deepseek-3-2.json
@@ -75,6 +75,7 @@
"docsUrl": "https://api-docs.deepseek.com/quick_start/pricing",
"vendor": "DeepSeek",
"size": "671B",
+ "activeParameters": null,
"contextWindow": 128000,
"maxOutput": 8000,
"tokenPricing": {
diff --git a/manifests/models/deepseek-r1-0528.json b/manifests/models/deepseek-r1-0528.json
index 1f2623b5..f2c16b99 100644
--- a/manifests/models/deepseek-r1-0528.json
+++ b/manifests/models/deepseek-r1-0528.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"tokenPricing",
@@ -58,15 +59,21 @@
"outputModalities",
"capabilities"
]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://api-docs.deepseek.com/news/news250528",
"vendor": "DeepSeek",
- "size": "671B (37B active)",
+ "size": "671B",
+ "activeParameters": "37B",
"contextWindow": 64000,
"maxOutput": null,
"tokenPricing": {
@@ -75,6 +82,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.5, "output": 2.18, "cacheRead": 0.35, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-05-28",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/deepseek-r1.json b/manifests/models/deepseek-r1.json
index 08b5dc93..a2e0a77a 100644
--- a/manifests/models/deepseek-r1.json
+++ b/manifests/models/deepseek-r1.json
@@ -56,15 +56,21 @@
"capabilities",
"platformUrls"
]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://huggingface.co/deepseek-ai/DeepSeek-R1",
"vendor": "DeepSeek",
"size": "671B",
+ "activeParameters": null,
"contextWindow": 128000,
"maxOutput": null,
"tokenPricing": {
@@ -73,6 +79,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.7, "output": 2.5, "cacheRead": null, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-01-20",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/deepseek-v3-1.json b/manifests/models/deepseek-v3-1.json
index f1485bc1..8509a463 100644
--- a/manifests/models/deepseek-v3-1.json
+++ b/manifests/models/deepseek-v3-1.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"tokenPricing",
@@ -58,15 +59,21 @@
"outputModalities",
"capabilities"
]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://api-docs.deepseek.com/news/news250821",
"vendor": "DeepSeek",
- "size": "671B (37B active)",
+ "size": "671B",
+ "activeParameters": "37B",
"contextWindow": 128000,
"maxOutput": null,
"tokenPricing": {
@@ -75,6 +82,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.385, "output": 1.25, "cacheRead": 0.135, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-08-21",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/deepseek-v3-2-exp.json b/manifests/models/deepseek-v3-2-exp.json
index 10fe65a8..f79a9730 100644
--- a/manifests/models/deepseek-v3-2-exp.json
+++ b/manifests/models/deepseek-v3-2-exp.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"tokenPricing",
@@ -58,15 +59,21 @@
"outputModalities",
"capabilities"
]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://api-docs.deepseek.com/news/news250929",
"vendor": "DeepSeek",
- "size": "671B (37B active)",
+ "size": "671B",
+ "activeParameters": "37B",
"contextWindow": 128000,
"maxOutput": null,
"tokenPricing": {
@@ -75,6 +82,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.27, "output": 0.41, "cacheRead": null, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-09-29",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/deepseek-v3-terminus.json b/manifests/models/deepseek-v3-terminus.json
index 9a225d31..39c4230c 100644
--- a/manifests/models/deepseek-v3-terminus.json
+++ b/manifests/models/deepseek-v3-terminus.json
@@ -56,15 +56,21 @@
"outputModalities",
"platformUrls"
]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://huggingface.co/deepseek-ai/DeepSeek-V3.1-Terminus",
"vendor": "DeepSeek",
"size": "671B",
+ "activeParameters": null,
"contextWindow": 128000,
"maxOutput": null,
"tokenPricing": {
@@ -73,6 +79,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.27, "output": 1, "cacheRead": 0.135, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-09-22",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/deepseek-v3.json b/manifests/models/deepseek-v3.json
index 0ab75e28..e121c112 100644
--- a/manifests/models/deepseek-v3.json
+++ b/manifests/models/deepseek-v3.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"tokenPricing",
@@ -58,15 +59,21 @@
"outputModalities",
"capabilities"
]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://api-docs.deepseek.com/news/news1226",
"vendor": "DeepSeek",
- "size": "671B (37B active)",
+ "size": "671B",
+ "activeParameters": "37B",
"contextWindow": 64000,
"maxOutput": 8192,
"tokenPricing": {
@@ -75,6 +82,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.275, "output": 1.11, "cacheRead": 0.1025, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2024-12-26",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/deepseek-v4-flash-preview.json b/manifests/models/deepseek-v4-flash-preview.json
new file mode 100644
index 00000000..52c9715c
--- /dev/null
+++ b/manifests/models/deepseek-v4-flash-preview.json
@@ -0,0 +1,126 @@
+{
+ "$schema": "../$schemas/model.schema.json",
+ "id": "deepseek-v4-flash-preview",
+ "name": "DeepSeek-V4-Flash-Preview",
+ "description": "DeepSeek's open-weight V4 Flash preview with 284B total and 13B active parameters, a 1M-token context window, dual thinking modes, JSON output, and tool calls.",
+ "translations": {
+ "de": {
+ "description": "DeepSeeks Open-Weight-Vorschau von V4 Flash mit 284 Mrd. Gesamt- und 13 Mrd. aktiven Parametern, 1 Mio. Token Kontext, zwei Denkmodi, JSON und Werkzeugaufrufen."
+ },
+ "es": {
+ "description": "La versión preliminar de pesos abiertos de DeepSeek V4 Flash, con 284B parámetros totales y 13B activos, contexto de 1M tokens, dos modos de pensamiento, JSON y herramientas."
+ },
+ "fr": {
+ "description": "La préversion à poids ouverts de DeepSeek V4 Flash, avec 284 Md de paramètres dont 13 Md actifs, un contexte de 1 M de jetons, deux modes de réflexion, JSON et outils."
+ },
+ "id": {
+ "description": "Pratinjau open-weight DeepSeek V4 Flash dengan 284B parameter total dan 13B aktif, konteks 1 juta token, dua mode berpikir, keluaran JSON, dan pemanggilan alat."
+ },
+ "ja": {
+ "description": "総2840億・アクティブ130億パラメータ、100万トークンのコンテキスト、2種類の思考モード、JSON出力、ツール呼び出しを備えたDeepSeek V4 Flashのオープンウェイト・プレビュー。"
+ },
+ "ko": {
+ "description": "총 284B 및 활성 13B 매개변수, 100만 토큰 컨텍스트, 이중 사고 모드, JSON 출력과 도구 호출을 지원하는 DeepSeek V4 Flash 오픈 웨이트 프리뷰입니다."
+ },
+ "pt": {
+ "description": "A prévia de pesos abertos do DeepSeek V4 Flash, com 284B parâmetros totais e 13B ativos, contexto de 1M tokens, dois modos de pensamento, JSON e ferramentas."
+ },
+ "ru": {
+ "description": "Предварительная версия DeepSeek V4 Flash с открытыми весами: 284 млрд параметров, 13 млрд активных, контекст 1 млн токенов, два режима рассуждений, JSON и инструменты."
+ },
+ "tr": {
+ "description": "DeepSeek V4 Flash'in 284B toplam ve 13B aktif parametreli, 1M token bağlamlı, çift düşünme modlu, JSON çıktılı ve araç çağrılı açık ağırlıklı önizlemesi."
+ },
+ "zh-Hans": {
+ "description": "DeepSeek V4 Flash 的开放权重预览版,拥有 2840 亿总参数、130 亿激活参数,支持 100 万 token 上下文、双思考模式、JSON 输出和工具调用。"
+ },
+ "zh-Hant": {
+ "description": "DeepSeek V4 Flash 的開放權重預覽版,擁有 2840 億總參數、130 億啟用參數,支援 100 萬 token 上下文、雙思考模式、JSON 輸出和工具呼叫。"
+ }
+ },
+ "verified": true,
+ "sources": [
+ {
+ "url": "https://api-docs.deepseek.com/news/news260424/",
+ "title": "DeepSeek V4 Preview release",
+ "fields": [
+ "name",
+ "description",
+ "docsUrl",
+ "size",
+ "activeParameters",
+ "releaseDate",
+ "contextWindow",
+ "inputModalities",
+ "outputModalities",
+ "capabilities"
+ ]
+ },
+ {
+ "url": "https://api-docs.deepseek.com/updates/",
+ "title": "DeepSeek V4 Flash July 31 API update",
+ "fields": ["lifecycle", "tokenPricing"]
+ },
+ {
+ "url": "https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash",
+ "title": "DeepSeek V4 Flash official model card",
+ "fields": ["lifecycle", "platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/models/deepseek-v4-flash-0420",
+ "title": "Artificial Analysis DeepSeek V4 Flash preview model page",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev DeepSeek V4 Flash pricing record",
+ "fields": ["referenceTokenPricing"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://www.deepseek.com",
+ "docsUrl": "https://api-docs.deepseek.com/news/news260424/",
+ "vendor": "DeepSeek",
+ "size": "284B",
+ "activeParameters": "13B",
+ "contextWindow": 1000000,
+ "maxOutput": null,
+ "tokenPricing": {
+ "status": "unavailable",
+ "reason": "historical-price-unverified",
+ "primaryOffer": null,
+ "offers": []
+ },
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "first-party-api",
+ "rates": { "input": 0.14, "output": 0.28, "cacheRead": 0.0028, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev — DeepSeek V4 Flash",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
+ "releaseDate": "2026-04-24",
+ "lifecycle": "maintained",
+ "knowledgeCutoff": null,
+ "inputModalities": ["text"],
+ "outputModalities": ["text"],
+ "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"],
+ "benchmarks": {
+ "sweBench": null,
+ "terminalBench": null,
+ "mmmu": null,
+ "mmmuPro": null,
+ "webDevArena": null,
+ "sciCode": null,
+ "liveCodeBench": null
+ },
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash",
+ "artificialAnalysis": "https://artificialanalysis.ai/models/deepseek-v4-flash-0420",
+ "openrouter": null
+ }
+}
diff --git a/manifests/models/deepseek-v4-flash.json b/manifests/models/deepseek-v4-flash.json
index 877ef79e..e51bd198 100644
--- a/manifests/models/deepseek-v4-flash.json
+++ b/manifests/models/deepseek-v4-flash.json
@@ -2,48 +2,48 @@
"$schema": "../$schemas/model.schema.json",
"id": "deepseek-v4-flash",
"name": "DeepSeek-V4-Flash",
- "description": "DeepSeek's efficient open-weight V4 model, updated on July 31 with substantially enhanced agent capabilities while retaining 284B total and 13B active parameters.",
+ "description": "DeepSeek's July 31 update to its open-source V4 Flash line, available via API with stronger agent capabilities; the refreshed 0731 weights are not yet published.",
"translations": {
"de": {
- "description": "DeepSeeks effizientes Open-Weight-V4-Modell, das am 31. Juli mit deutlich verbesserten Agentenfähigkeiten aktualisiert wurde und weiterhin 284 Mrd. Gesamt- sowie 13 Mrd. aktive Parameter besitzt."
+ "description": "DeepSeeks Aktualisierung der Open-Source-Reihe V4 Flash vom 31. Juli ist per API mit stärkeren Agentenfähigkeiten verfügbar; die neuen 0731-Gewichte sind noch nicht veröffentlicht."
},
"es": {
- "description": "El eficiente modelo V4 de pesos abiertos de DeepSeek, actualizado el 31 de julio con capacidades de agente considerablemente mejoradas y manteniendo 284B parámetros totales y 13B activos."
+ "description": "La actualización del 31 de julio de la línea V4 Flash de código abierto de DeepSeek está disponible por API; los nuevos pesos 0731 aún no se han publicado."
},
"fr": {
- "description": "Le modèle V4 efficace à poids ouverts de DeepSeek, mis à jour le 31 juillet avec des capacités agentiques nettement renforcées tout en conservant 284 Md de paramètres au total, dont 13 Md actifs."
+ "description": "La mise à jour du 31 juillet de la gamme open source V4 Flash de DeepSeek est disponible par API ; les nouveaux poids 0731 ne sont pas encore publiés."
},
"id": {
- "description": "Model V4 open-weight efisien dari DeepSeek, diperbarui pada 31 Juli dengan kemampuan agen yang jauh lebih kuat sambil mempertahankan 284B parameter total dan 13B parameter aktif."
+ "description": "Pembaruan 31 Juli untuk lini open-source V4 Flash DeepSeek tersedia melalui API dengan kemampuan agen lebih kuat; bobot 0731 yang baru belum diterbitkan."
},
"ja": {
- "description": "総2840億・アクティブ130億パラメータを維持しつつ、7月31日にエージェント能力を大幅に強化したDeepSeekの効率的なオープンウェイトV4モデル。"
+ "description": "DeepSeekのオープンソースV4 Flash系統の7月31日更新版。強化されたエージェント能力をAPIで利用できるが、更新された0731ウェイトはまだ公開されていない。"
},
"ko": {
- "description": "총 284B 및 활성 13B 매개변수를 유지하면서 7월 31일 에이전트 기능을 크게 강화한 DeepSeek의 효율적인 오픈 웨이트 V4 모델입니다."
+ "description": "DeepSeek 오픈 소스 V4 Flash 계열의 7월 31일 업데이트로, 강화된 에이전트 기능을 API에서 제공하지만 새 0731 가중치는 아직 공개되지 않았습니다."
},
"pt": {
- "description": "O modelo V4 eficiente e de pesos abertos da DeepSeek, atualizado em 31 de julho com capacidades de agente significativamente aprimoradas, mantendo 284B parâmetros totais e 13B ativos."
+ "description": "A atualização de 31 de julho da linha V4 Flash de código aberto da DeepSeek está disponível via API; os novos pesos 0731 ainda não foram publicados."
},
"ru": {
- "description": "Эффективная модель DeepSeek V4 с открытыми весами, обновлённая 31 июля со значительно усиленными агентными возможностями при сохранении 284 млрд параметров, из которых 13 млрд активны."
+ "description": "Обновление открытой линейки DeepSeek V4 Flash от 31 июля доступно через API с улучшенными агентными возможностями; новые веса 0731 ещё не опубликованы."
},
"tr": {
- "description": "DeepSeek'in 31 Temmuz'da aracı yetenekleri önemli ölçüde geliştirilerek güncellenen, 284B toplam ve 13B aktif parametreyi koruyan verimli açık ağırlıklı V4 modeli."
+ "description": "DeepSeek'in açık kaynak V4 Flash serisinin 31 Temmuz güncellemesi, güçlendirilmiş aracı yeteneklerle API'de sunuluyor; yeni 0731 ağırlıkları henüz yayımlanmadı."
},
"zh-Hans": {
- "description": "DeepSeek 的高效开放权重 V4 模型,于 7 月 31 日更新并显著增强智能体能力,保持 2840 亿总参数和 130 亿激活参数。"
+ "description": "DeepSeek 开源 V4 Flash 系列的 7 月 31 日更新版,已通过 API 提供并增强智能体能力;更新后的 0731 权重尚未发布。"
},
"zh-Hant": {
- "description": "DeepSeek 的高效開放權重 V4 模型,於 7 月 31 日更新並顯著增強智慧體能力,維持 2840 億總參數和 130 億啟用參數。"
+ "description": "DeepSeek 開源 V4 Flash 系列的 7 月 31 日更新版,已透過 API 提供並增強智慧體能力;更新後的 0731 權重尚未發布。"
}
},
"verified": true,
"sources": [
{
"url": "https://api-docs.deepseek.com/news/news260424/",
- "title": "DeepSeek V4 Preview release",
- "fields": ["name", "description", "size", "lifecycle", "contextWindow", "capabilities"]
+ "title": "DeepSeek V4 Preview open-source release",
+ "fields": ["description"]
},
{
"url": "https://api-docs.deepseek.com/quick_start/pricing",
@@ -61,7 +61,15 @@
{
"url": "https://api-docs.deepseek.com/updates/",
"title": "DeepSeek V4 Flash July 31 API update",
- "fields": ["description", "releaseDate", "lifecycle", "capabilities"]
+ "fields": [
+ "name",
+ "description",
+ "size",
+ "activeParameters",
+ "releaseDate",
+ "lifecycle",
+ "capabilities"
+ ]
},
{
"url": "https://artificialanalysis.ai/models/deepseek-v4-flash/",
@@ -75,7 +83,8 @@
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://api-docs.deepseek.com/quick_start/pricing",
"vendor": "DeepSeek",
- "size": "284B total / 13B active",
+ "size": "284B",
+ "activeParameters": "13B",
"contextWindow": 1000000,
"maxOutput": 384000,
"tokenPricing": {
@@ -119,7 +128,7 @@
"liveCodeBench": null
},
"platformUrls": {
- "huggingface": "https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash",
+ "huggingface": null,
"artificialAnalysis": "https://artificialanalysis.ai/models/deepseek-v4-flash/",
"openrouter": null
}
diff --git a/manifests/models/deepseek-v4-pro.json b/manifests/models/deepseek-v4-pro.json
index 627d673a..f5819b75 100644
--- a/manifests/models/deepseek-v4-pro.json
+++ b/manifests/models/deepseek-v4-pro.json
@@ -47,6 +47,7 @@
"name",
"description",
"size",
+ "activeParameters",
"releaseDate",
"lifecycle",
"contextWindow",
@@ -78,7 +79,8 @@
"websiteUrl": "https://www.deepseek.com",
"docsUrl": "https://api-docs.deepseek.com/quick_start/pricing",
"vendor": "DeepSeek",
- "size": "1.6T total / 49B active",
+ "size": "1.6T",
+ "activeParameters": "49B",
"contextWindow": 1000000,
"maxOutput": 384000,
"tokenPricing": {
diff --git a/manifests/models/devstral-2.json b/manifests/models/devstral-2.json
index 159ccf95..3532dd5e 100644
--- a/manifests/models/devstral-2.json
+++ b/manifests/models/devstral-2.json
@@ -67,6 +67,7 @@
"docsUrl": "https://mistral.ai/news/devstral-2-vibe-cli",
"vendor": "Mistral AI",
"size": "123B",
+ "activeParameters": null,
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/devstral-small-2.json b/manifests/models/devstral-small-2.json
index 6dc64967..261955dc 100644
--- a/manifests/models/devstral-small-2.json
+++ b/manifests/models/devstral-small-2.json
@@ -67,6 +67,7 @@
"docsUrl": "https://docs.mistral.ai/models/model-cards/devstral-small-2-25-12",
"vendor": "Mistral AI",
"size": "24B",
+ "activeParameters": null,
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/gemini-2-0-flash.json b/manifests/models/gemini-2-0-flash.json
index 7df061ff..d5f782df 100644
--- a/manifests/models/gemini-2-0-flash.json
+++ b/manifests/models/gemini-2-0-flash.json
@@ -67,6 +67,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 8192,
"tokenPricing": {
diff --git a/manifests/models/gemini-2-5-flash-lite.json b/manifests/models/gemini-2-5-flash-lite.json
index bfc20812..b1af9497 100644
--- a/manifests/models/gemini-2-5-flash-lite.json
+++ b/manifests/models/gemini-2-5-flash-lite.json
@@ -67,6 +67,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-lite",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-2-5-flash.json b/manifests/models/gemini-2-5-flash.json
index 19bb96cc..5489fc1d 100644
--- a/manifests/models/gemini-2-5-flash.json
+++ b/manifests/models/gemini-2-5-flash.json
@@ -69,6 +69,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-2-5-pro.json b/manifests/models/gemini-2-5-pro.json
index e6633bf5..71d74e62 100644
--- a/manifests/models/gemini-2-5-pro.json
+++ b/manifests/models/gemini-2-5-pro.json
@@ -69,6 +69,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-3-1-pro-preview.json b/manifests/models/gemini-3-1-pro-preview.json
index ece32d88..0a666995 100644
--- a/manifests/models/gemini-3-1-pro-preview.json
+++ b/manifests/models/gemini-3-1-pro-preview.json
@@ -71,6 +71,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-3-5-flash-lite.json b/manifests/models/gemini-3-5-flash-lite.json
index edb32ff7..360e8e03 100644
--- a/manifests/models/gemini-3-5-flash-lite.json
+++ b/manifests/models/gemini-3-5-flash-lite.json
@@ -68,13 +68,14 @@
"fields": ["name", "releaseDate", "lifecycle"]
}
],
- "lastVerifiedAt": "2026-07-22",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://deepmind.google",
"docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash-lite",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-3-5-flash.json b/manifests/models/gemini-3-5-flash.json
index d3dcea56..a6ba7155 100644
--- a/manifests/models/gemini-3-5-flash.json
+++ b/manifests/models/gemini-3-5-flash.json
@@ -81,6 +81,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-3-6-flash.json b/manifests/models/gemini-3-6-flash.json
index e70db127..ce8715e4 100644
--- a/manifests/models/gemini-3-6-flash.json
+++ b/manifests/models/gemini-3-6-flash.json
@@ -75,6 +75,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-3-flash.json b/manifests/models/gemini-3-flash.json
index b33bf379..945c547a 100644
--- a/manifests/models/gemini-3-flash.json
+++ b/manifests/models/gemini-3-flash.json
@@ -68,6 +68,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/gemini-3",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemini-3-pro.json b/manifests/models/gemini-3-pro.json
index de943528..a55605d3 100644
--- a/manifests/models/gemini-3-pro.json
+++ b/manifests/models/gemini-3-pro.json
@@ -53,6 +53,7 @@
"docsUrl": "https://ai.google.dev/gemini-api/docs/models#gemini-3-pro",
"vendor": "Google",
"size": null,
+ "activeParameters": null,
"contextWindow": 1048576,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/gemma-4-26b-a4b.json b/manifests/models/gemma-4-26b-a4b.json
index 63001888..b3a30177 100644
--- a/manifests/models/gemma-4-26b-a4b.json
+++ b/manifests/models/gemma-4-26b-a4b.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -62,21 +63,27 @@
{
"url": "https://huggingface.co/google/gemma-4-26B-A4B-it",
"title": "Gemma 4 26B A4B official model repository",
- "fields": ["size", "platformUrls.huggingface"]
+ "fields": ["size", "activeParameters", "platformUrls.huggingface"]
},
{
"url": "https://artificialanalysis.ai/models/gemma-4-26b-a4b",
"title": "Artificial Analysis Gemma 4 26B A4B model page",
"fields": ["releaseDate", "platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-27",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://deepmind.google",
"docsUrl": "https://ai.google.dev/gemma/docs/core/model_card_4",
"vendor": "Google",
- "size": "26B (4B active)",
+ "size": "26B",
+ "activeParameters": "4B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
@@ -85,6 +92,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.126, "output": 0.4, "cacheRead": 0.0325, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2026-04-02",
"lifecycle": "latest",
"knowledgeCutoff": null,
diff --git a/manifests/models/gemma-4-31b.json b/manifests/models/gemma-4-31b.json
index f735ac24..4aef01a9 100644
--- a/manifests/models/gemma-4-31b.json
+++ b/manifests/models/gemma-4-31b.json
@@ -68,15 +68,21 @@
"url": "https://artificialanalysis.ai/models/gemma-4-31b",
"title": "Artificial Analysis Gemma 4 31B model page",
"fields": ["releaseDate", "platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-27",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://deepmind.google",
"docsUrl": "https://ai.google.dev/gemma/docs/core/model_card_4",
"vendor": "Google",
"size": "31B",
+ "activeParameters": null,
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
@@ -85,6 +91,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.14, "output": 0.4, "cacheRead": 0.09, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2026-04-02",
"lifecycle": "latest",
"knowledgeCutoff": null,
diff --git a/manifests/models/glm-4-5-air.json b/manifests/models/glm-4-5-air.json
index cc9ecacf..a33f8f95 100644
--- a/manifests/models/glm-4-5-air.json
+++ b/manifests/models/glm-4-5-air.json
@@ -67,7 +67,7 @@
{
"url": "https://huggingface.co/zai-org/GLM-4.5-Air",
"title": "Official GLM-4.5-Air model card",
- "fields": ["size", "platformUrls"]
+ "fields": ["size", "activeParameters", "platformUrls"]
}
],
"lastVerifiedAt": "2026-07-26",
@@ -76,7 +76,8 @@
"websiteUrl": "https://z.ai",
"docsUrl": "https://docs.z.ai/guides/llm/glm-4.5",
"vendor": "Z.ai",
- "size": "106B (12B active)",
+ "size": "106B",
+ "activeParameters": "12B",
"contextWindow": 131072,
"maxOutput": 98304,
"tokenPricing": {
diff --git a/manifests/models/glm-4-5.json b/manifests/models/glm-4-5.json
index c050b97e..d1b4de48 100644
--- a/manifests/models/glm-4-5.json
+++ b/manifests/models/glm-4-5.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"tokenPricing",
@@ -66,7 +67,8 @@
"websiteUrl": "https://z.ai",
"docsUrl": "https://docs.z.ai/guides/llm/glm-4.5",
"vendor": "Z.ai",
- "size": "355B (32B active)",
+ "size": "355B",
+ "activeParameters": "32B",
"contextWindow": 131072,
"maxOutput": 98304,
"tokenPricing": {
diff --git a/manifests/models/glm-4-5v.json b/manifests/models/glm-4-5v.json
index d4f12730..67af2753 100644
--- a/manifests/models/glm-4-5v.json
+++ b/manifests/models/glm-4-5v.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"maxOutput",
"inputModalities",
"outputModalities",
@@ -76,7 +77,8 @@
"websiteUrl": "https://z.ai",
"docsUrl": "https://docs.z.ai/guides/vlm/glm-4.5v",
"vendor": "Z.ai",
- "size": "106B (12B active)",
+ "size": "106B",
+ "activeParameters": "12B",
"contextWindow": 65536,
"maxOutput": 16384,
"tokenPricing": {
diff --git a/manifests/models/glm-4-6.json b/manifests/models/glm-4-6.json
index 4a2be5d8..a165a8e2 100644
--- a/manifests/models/glm-4-6.json
+++ b/manifests/models/glm-4-6.json
@@ -43,6 +43,7 @@
"docsUrl": "https://huggingface.co/zai-org/GLM-4.6",
"vendor": "Z.ai",
"size": "357B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-4-6v.json b/manifests/models/glm-4-6v.json
index 22dc2491..1ef16b0e 100644
--- a/manifests/models/glm-4-6v.json
+++ b/manifests/models/glm-4-6v.json
@@ -43,6 +43,7 @@
"docsUrl": "https://docs.z.ai/guides/vlm/glm-4.6v",
"vendor": "Z.ai",
"size": "106B",
+ "activeParameters": null,
"contextWindow": 128000,
"maxOutput": 32768,
"tokenPricing": {
diff --git a/manifests/models/glm-4-7-flash.json b/manifests/models/glm-4-7-flash.json
index 9dcd3ee1..87476c67 100644
--- a/manifests/models/glm-4-7-flash.json
+++ b/manifests/models/glm-4-7-flash.json
@@ -67,7 +67,7 @@
{
"url": "https://huggingface.co/zai-org/GLM-4.7-Flash",
"title": "Official GLM-4.7-Flash model card",
- "fields": ["size", "platformUrls"]
+ "fields": ["size", "activeParameters", "platformUrls"]
}
],
"lastVerifiedAt": "2026-07-26",
@@ -76,7 +76,8 @@
"websiteUrl": "https://z.ai",
"docsUrl": "https://docs.z.ai/guides/llm/glm-4.7",
"vendor": "Z.ai",
- "size": "31.2B (3B active)",
+ "size": "31.2B",
+ "activeParameters": "3B",
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-4-7.json b/manifests/models/glm-4-7.json
index 4144eb79..fce31850 100644
--- a/manifests/models/glm-4-7.json
+++ b/manifests/models/glm-4-7.json
@@ -77,6 +77,7 @@
"docsUrl": "https://docs.z.ai/guides/llm/glm-4.7",
"vendor": "Z.ai",
"size": "358B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-5-1.json b/manifests/models/glm-5-1.json
index 5066feeb..f4423c8a 100644
--- a/manifests/models/glm-5-1.json
+++ b/manifests/models/glm-5-1.json
@@ -77,6 +77,7 @@
"docsUrl": "https://docs.z.ai/guides/llm/glm-5.1",
"vendor": "Z.ai",
"size": "754B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-5-2.json b/manifests/models/glm-5-2.json
index b68d136f..154c75f4 100644
--- a/manifests/models/glm-5-2.json
+++ b/manifests/models/glm-5-2.json
@@ -87,6 +87,7 @@
"docsUrl": "https://docs.z.ai/guides/llm/glm-5.2",
"vendor": "Z.ai",
"size": "753B",
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-5-turbo.json b/manifests/models/glm-5-turbo.json
index 1dea6609..d187ec95 100644
--- a/manifests/models/glm-5-turbo.json
+++ b/manifests/models/glm-5-turbo.json
@@ -72,6 +72,7 @@
"docsUrl": "https://docs.z.ai/guides/llm/glm-5-turbo",
"vendor": "Z.ai",
"size": null,
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-5.json b/manifests/models/glm-5.json
index 644b7ab0..8a145e3f 100644
--- a/manifests/models/glm-5.json
+++ b/manifests/models/glm-5.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"inputModalities",
@@ -68,7 +69,7 @@
{
"url": "https://huggingface.co/zai-org/GLM-5",
"title": "Official GLM-5 weights and model card",
- "fields": ["size", "platformUrls"]
+ "fields": ["size", "activeParameters", "platformUrls"]
}
],
"lastVerifiedAt": "2026-07-21",
@@ -77,7 +78,8 @@
"websiteUrl": "https://z.ai",
"docsUrl": "https://docs.z.ai/guides/llm/glm-5",
"vendor": "Z.ai",
- "size": "744B (40B active)",
+ "size": "744B",
+ "activeParameters": "40B",
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/glm-5v-turbo.json b/manifests/models/glm-5v-turbo.json
index c31611a4..5ee147cf 100644
--- a/manifests/models/glm-5v-turbo.json
+++ b/manifests/models/glm-5v-turbo.json
@@ -72,6 +72,7 @@
"docsUrl": "https://docs.z.ai/guides/vlm/glm-5v-turbo",
"vendor": "Z.ai",
"size": null,
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": 131072,
"tokenPricing": {
diff --git a/manifests/models/gpt-4-1-mini.json b/manifests/models/gpt-4-1-mini.json
index 33f63af1..b1cdd333 100644
--- a/manifests/models/gpt-4-1-mini.json
+++ b/manifests/models/gpt-4-1-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-4.1-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1047576,
"maxOutput": 32768,
"tokenPricing": {
diff --git a/manifests/models/gpt-4-1-nano.json b/manifests/models/gpt-4-1-nano.json
index 7c8950f0..ffddfbd7 100644
--- a/manifests/models/gpt-4-1-nano.json
+++ b/manifests/models/gpt-4-1-nano.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-4.1-nano",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1047576,
"maxOutput": 32768,
"tokenPricing": {
diff --git a/manifests/models/gpt-4-1.json b/manifests/models/gpt-4-1.json
index e17e6361..b8911287 100644
--- a/manifests/models/gpt-4-1.json
+++ b/manifests/models/gpt-4-1.json
@@ -43,6 +43,7 @@
"docsUrl": "https://platform.openai.com/docs/models/gpt-4.1",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1047576,
"maxOutput": 32768,
"tokenPricing": {
diff --git a/manifests/models/gpt-4o-mini.json b/manifests/models/gpt-4o-mini.json
index faad26da..82e9fd89 100644
--- a/manifests/models/gpt-4o-mini.json
+++ b/manifests/models/gpt-4o-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-4o-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 128000,
"maxOutput": 16384,
"tokenPricing": {
diff --git a/manifests/models/gpt-4o.json b/manifests/models/gpt-4o.json
index 5446ff8c..32571d58 100644
--- a/manifests/models/gpt-4o.json
+++ b/manifests/models/gpt-4o.json
@@ -43,6 +43,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-4o",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 128000,
"maxOutput": 16384,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-1-codex-mini.json b/manifests/models/gpt-5-1-codex-mini.json
index d48ff5c9..1ad8ac73 100644
--- a/manifests/models/gpt-5-1-codex-mini.json
+++ b/manifests/models/gpt-5-1-codex-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.1-codex-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-1-codex.json b/manifests/models/gpt-5-1-codex.json
index 4f781920..2cf06fa6 100644
--- a/manifests/models/gpt-5-1-codex.json
+++ b/manifests/models/gpt-5-1-codex.json
@@ -43,6 +43,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.1-codex",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-1.json b/manifests/models/gpt-5-1.json
index 793d5412..43df9d1a 100644
--- a/manifests/models/gpt-5-1.json
+++ b/manifests/models/gpt-5-1.json
@@ -43,6 +43,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.1",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-2-codex.json b/manifests/models/gpt-5-2-codex.json
index a04c7a8d..3e9fd74b 100644
--- a/manifests/models/gpt-5-2-codex.json
+++ b/manifests/models/gpt-5-2-codex.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.2-codex",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-2.json b/manifests/models/gpt-5-2.json
index 79b9a007..275a4c29 100644
--- a/manifests/models/gpt-5-2.json
+++ b/manifests/models/gpt-5-2.json
@@ -68,6 +68,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.2",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-3-codex.json b/manifests/models/gpt-5-3-codex.json
index 912431c6..460012ca 100644
--- a/manifests/models/gpt-5-3-codex.json
+++ b/manifests/models/gpt-5-3-codex.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.3-codex",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-4-mini.json b/manifests/models/gpt-5-4-mini.json
index 6c2c21ba..275d56a3 100644
--- a/manifests/models/gpt-5-4-mini.json
+++ b/manifests/models/gpt-5-4-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.4-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-4-nano.json b/manifests/models/gpt-5-4-nano.json
index fb13dd3f..9735867d 100644
--- a/manifests/models/gpt-5-4-nano.json
+++ b/manifests/models/gpt-5-4-nano.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.4-nano",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-4.json b/manifests/models/gpt-5-4.json
index 3ded5323..52129c0d 100644
--- a/manifests/models/gpt-5-4.json
+++ b/manifests/models/gpt-5-4.json
@@ -68,6 +68,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.4",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1050000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-5.json b/manifests/models/gpt-5-5.json
index ea81ca73..ca064068 100644
--- a/manifests/models/gpt-5-5.json
+++ b/manifests/models/gpt-5-5.json
@@ -68,6 +68,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.5",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1050000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-6-luna.json b/manifests/models/gpt-5-6-luna.json
index 7ce939ad..3c78708d 100644
--- a/manifests/models/gpt-5-6-luna.json
+++ b/manifests/models/gpt-5-6-luna.json
@@ -72,6 +72,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.6-luna",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1050000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-6-sol.json b/manifests/models/gpt-5-6-sol.json
index 12ca2060..51ffc8f6 100644
--- a/manifests/models/gpt-5-6-sol.json
+++ b/manifests/models/gpt-5-6-sol.json
@@ -72,6 +72,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.6-sol",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1050000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-6-terra.json b/manifests/models/gpt-5-6-terra.json
index 197d11dd..513c3c38 100644
--- a/manifests/models/gpt-5-6-terra.json
+++ b/manifests/models/gpt-5-6-terra.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.6-terra",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1050000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-codex.json b/manifests/models/gpt-5-codex.json
index ef4d04c9..88ad0fe2 100644
--- a/manifests/models/gpt-5-codex.json
+++ b/manifests/models/gpt-5-codex.json
@@ -43,6 +43,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5-codex",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-mini.json b/manifests/models/gpt-5-mini.json
index fbe7a67f..bba9a9ae 100644
--- a/manifests/models/gpt-5-mini.json
+++ b/manifests/models/gpt-5-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5-nano.json b/manifests/models/gpt-5-nano.json
index bdfdcef2..02c733f5 100644
--- a/manifests/models/gpt-5-nano.json
+++ b/manifests/models/gpt-5-nano.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5-nano",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/gpt-5.json b/manifests/models/gpt-5.json
index 76603312..8b9ddea0 100644
--- a/manifests/models/gpt-5.json
+++ b/manifests/models/gpt-5.json
@@ -43,6 +43,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 400000,
"maxOutput": 128000,
"tokenPricing": {
diff --git a/manifests/models/grok-4-1-fast.json b/manifests/models/grok-4-1-fast.json
index 07f73a56..78acecc3 100644
--- a/manifests/models/grok-4-1-fast.json
+++ b/manifests/models/grok-4-1-fast.json
@@ -67,6 +67,7 @@
"docsUrl": "https://x.ai/news/grok-4-1-fast",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 2000000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/grok-4-20.json b/manifests/models/grok-4-20.json
index 19556441..4f30ea7b 100644
--- a/manifests/models/grok-4-20.json
+++ b/manifests/models/grok-4-20.json
@@ -72,6 +72,7 @@
"docsUrl": "https://docs.x.ai/developers/models/grok-4.20",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/grok-4-3.json b/manifests/models/grok-4-3.json
index d2298502..1d069274 100644
--- a/manifests/models/grok-4-3.json
+++ b/manifests/models/grok-4-3.json
@@ -67,6 +67,7 @@
"docsUrl": "https://docs.x.ai/developers/models",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/grok-4-5.json b/manifests/models/grok-4-5.json
index f30eb8fd..03693c08 100644
--- a/manifests/models/grok-4-5.json
+++ b/manifests/models/grok-4-5.json
@@ -71,6 +71,7 @@
"docsUrl": "https://docs.x.ai/developers/models/grok-4.5",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 500000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/grok-4-fast.json b/manifests/models/grok-4-fast.json
index 451e76d3..b409092d 100644
--- a/manifests/models/grok-4-fast.json
+++ b/manifests/models/grok-4-fast.json
@@ -67,6 +67,7 @@
"docsUrl": "https://x.ai/news/grok-4-fast",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 2000000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/grok-4.json b/manifests/models/grok-4.json
index 3679b0f5..ff3f8562 100644
--- a/manifests/models/grok-4.json
+++ b/manifests/models/grok-4.json
@@ -67,6 +67,7 @@
"docsUrl": "https://x.ai/news/grok-4",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 256000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/grok-code-fast-1.json b/manifests/models/grok-code-fast-1.json
index de065c40..af12e086 100644
--- a/manifests/models/grok-code-fast-1.json
+++ b/manifests/models/grok-code-fast-1.json
@@ -53,6 +53,7 @@
"docsUrl": "https://docs.x.ai/docs/models/grok-code-fast-1",
"vendor": "xAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 256000,
"maxOutput": 10000,
"tokenPricing": {
diff --git a/manifests/models/hy3.json b/manifests/models/hy3.json
index b7be2219..2aaa6176 100644
--- a/manifests/models/hy3.json
+++ b/manifests/models/hy3.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -66,13 +67,14 @@
"fields": ["releaseDate", "referenceTokenPricing", "platformUrls.artificialAnalysis"]
}
],
- "lastVerifiedAt": "2026-07-28",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.tencent.com",
"docsUrl": "https://huggingface.co/tencent/Hy3",
"vendor": "Tencent",
- "size": "295B + 3.8B MTP (21B active)",
+ "size": "295B",
+ "activeParameters": "21B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/kimi-k2-0905.json b/manifests/models/kimi-k2-0905.json
index 3c501cf7..cdd3c7f3 100644
--- a/manifests/models/kimi-k2-0905.json
+++ b/manifests/models/kimi-k2-0905.json
@@ -2,40 +2,40 @@
"$schema": "../$schemas/model.schema.json",
"id": "kimi-k2-0905",
"name": "Kimi K2 0905",
- "description": "A 200B parameter large language model from Moonshot AI with 200K context window, optimized for long-context reasoning and instruction following.",
+ "description": "A 1T parameter large language model from Moonshot AI with a 256K context window, optimized for long-context reasoning and instruction following.",
"translations": {
"zh-Hans": {
- "description": "月之暗面推出的 200B 参数大语言模型,具备 200K 上下文窗口,专为长文本推理和指令遵循优化。"
+ "description": "月之暗面推出的 1T 参数大语言模型,具备 256K 上下文窗口,专为长文本推理和指令遵循优化。"
},
"de": {
- "description": "Ein 200B-Parameter-Großsprachmodell von Moonshot AI mit 200K-Kontextfenster, optimiert für Long-Context-Reasoning und Instruction-Following."
+ "description": "Ein 1T-Parameter-Großsprachmodell von Moonshot AI mit 256K-Kontextfenster, optimiert für Long-Context-Reasoning und Instruction-Following."
},
"ko": {
- "description": "Moonshot AI의 200B 파라미터 대형 언어 모델로, 200K 컨텍스트 윈도를 갖추고 있으며 긴 컨텍스트 추론 및 지시 따르기에 최적화되었습니다."
+ "description": "Moonshot AI의 1T 파라미터 대형 언어 모델로, 256K 컨텍스트 윈도를 갖추고 있으며 긴 컨텍스트 추론 및 지시 따르기에 최적화되었습니다."
},
"es": {
- "description": "Un modelo de lenguaje grande con 200B de parámetros de Moonshot AI con ventana de contexto de 200K, optimizado para razonamiento de contexto largo y seguimiento de instrucciones."
+ "description": "Un modelo de lenguaje grande con 1T de parámetros de Moonshot AI y una ventana de contexto de 256K, optimizado para razonamiento de contexto largo y seguimiento de instrucciones."
},
"fr": {
- "description": "Un grand modèle de langage avec 200B de paramètres de Moonshot AI avec fenêtre de contexte de 200K, optimisé pour le raisonnement de contexte long et le suivi des instructions."
+ "description": "Un grand modèle de langage de Moonshot AI avec 1T de paramètres et une fenêtre de contexte de 256K, optimisé pour le raisonnement en contexte long et le suivi des instructions."
},
"id": {
- "description": "Model bahasa besar dengan 200B parameter dari Moonshot AI dengan jendela konteks 200K, dioptimalkan untuk penalaran konteks panjang dan mengikuti instruksi."
+ "description": "Model bahasa besar Moonshot AI dengan 1T parameter dan jendela konteks 256K, dioptimalkan untuk penalaran konteks panjang dan mengikuti instruksi."
},
"ja": {
- "description": "Moonshot AIの200Bパラメータの大規模言語モデルで、200Kコンテキストウィンドウを備え、長い文脈推論と指示追従のために最適化されています。"
+ "description": "Moonshot AIの1Tパラメータの大規模言語モデルで、256Kコンテキストウィンドウを備え、長い文脈推論と指示追従のために最適化されています。"
},
"pt": {
- "description": "Um modelo de linguagem grande com 200B de parâmetros de Moonshot AI com janela de contexto de 200K, otimizado para raciocínio de contexto longo e seguimento de instruções."
+ "description": "Um modelo de linguagem grande da Moonshot AI com 1T de parâmetros e janela de contexto de 256K, otimizado para raciocínio de contexto longo e seguimento de instruções."
},
"ru": {
- "description": "Большая языковая модель с 200B параметров от Moonshot AI с окном контекста 200K, оптимизированная для рассуждения на длинном контексте и следования инструкциям."
+ "description": "Большая языковая модель Moonshot AI с 1T параметров и контекстным окном 256K, оптимизированная для рассуждений в длинном контексте и следования инструкциям."
},
"tr": {
- "description": "Moonshot AI’ın 200B parametreli ve 200K bağlamlı büyük dil modeli; uzun bağlamlı akıl yürütme ve talimat izleme için optimize edilmiştir."
+ "description": "Moonshot AI’ın 1T parametreli ve 256K bağlamlı büyük dil modeli; uzun bağlamlı akıl yürütme ve talimat izleme için optimize edilmiştir."
},
"zh-Hant": {
- "description": "月之暗面推出的 200B 參數大語言模型,具備 200K 上下文視窗,專為長文本推理和指令遵循最佳化。"
+ "description": "月之暗面推出的 1T 參數大語言模型,具備 256K 上下文視窗,專為長文本推理和指令遵循最佳化。"
}
},
"verified": true,
@@ -44,15 +44,28 @@
"url": "https://platform.kimi.ai/docs/models",
"title": "Kimi API model availability and K2 retirement notice",
"fields": ["lifecycle", "tokenPricing"]
+ },
+ {
+ "url": "https://huggingface.co/moonshotai/Kimi-K2-Instruct-0905",
+ "title": "Kimi K2 Instruct 0905 official model card",
+ "fields": [
+ "description",
+ "docsUrl",
+ "size",
+ "activeParameters",
+ "contextWindow",
+ "platformUrls.huggingface"
+ ]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "medium",
"websiteUrl": "https://moonshot.ai",
"docsUrl": "https://huggingface.co/moonshotai/Kimi-K2-Instruct-0905",
"vendor": "Moonshot",
- "size": "1,000B",
+ "size": "1T",
+ "activeParameters": "32B",
"contextWindow": 262144,
"maxOutput": 262144,
"tokenPricing": {
diff --git a/manifests/models/kimi-k2-5.json b/manifests/models/kimi-k2-5.json
index 79ba951b..49f22877 100644
--- a/manifests/models/kimi-k2-5.json
+++ b/manifests/models/kimi-k2-5.json
@@ -47,6 +47,7 @@
"name",
"description",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -56,7 +57,7 @@
{
"url": "https://huggingface.co/moonshotai/Kimi-K2.5",
"title": "Kimi K2.5 official model card",
- "fields": ["size", "contextWindow", "platformUrls.huggingface"]
+ "fields": ["size", "activeParameters", "contextWindow", "platformUrls.huggingface"]
},
{
"url": "https://platform.kimi.ai/docs/pricing/chat-k25",
@@ -100,7 +101,8 @@
"websiteUrl": "https://www.moonshot.ai",
"docsUrl": "https://github.com/MoonshotAI/Kimi-K2.5",
"vendor": "Moonshot",
- "size": "1T (32B active)",
+ "size": "1T",
+ "activeParameters": "32B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/kimi-k2-6.json b/manifests/models/kimi-k2-6.json
index 70862f2d..ebc33e27 100644
--- a/manifests/models/kimi-k2-6.json
+++ b/manifests/models/kimi-k2-6.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"releaseDate",
@@ -70,7 +71,8 @@
"websiteUrl": "https://www.moonshot.ai",
"docsUrl": "https://huggingface.co/moonshotai/Kimi-K2.6",
"vendor": "Moonshot",
- "size": "1T (32B active)",
+ "size": "1T",
+ "activeParameters": "32B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/kimi-k2-7-code.json b/manifests/models/kimi-k2-7-code.json
index e5f81098..c42986af 100644
--- a/manifests/models/kimi-k2-7-code.json
+++ b/manifests/models/kimi-k2-7-code.json
@@ -47,32 +47,38 @@
"name",
"description",
"size",
+ "activeParameters",
"contextWindow",
"tokenPricing",
"inputModalities",
"outputModalities",
- "capabilities",
- "lifecycle"
+ "capabilities"
]
},
{
"url": "https://www.kimi.com/code/docs/en/kimi-code/whats-new.html",
"title": "Kimi Code release notes",
- "fields": ["releaseDate", "lifecycle"]
+ "fields": ["releaseDate"]
+ },
+ {
+ "url": "https://www.kimi.com/code/docs/en/kimi-code/models.html",
+ "title": "Current Kimi Code model availability",
+ "fields": ["lifecycle"]
},
{
"url": "https://huggingface.co/moonshotai/Kimi-K2.7-Code",
"title": "Kimi K2.7 Code official model card",
- "fields": ["size", "contextWindow", "platformUrls.huggingface"]
+ "fields": ["size", "activeParameters", "contextWindow", "platformUrls.huggingface"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.kimi.com",
"docsUrl": "https://www.kimi.com/resources/kimi-k2-7-code",
"vendor": "Moonshot",
- "size": "1T (32B active)",
+ "size": "1T",
+ "activeParameters": "32B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
@@ -101,7 +107,7 @@
]
},
"releaseDate": "2026-06-12",
- "lifecycle": "latest",
+ "lifecycle": "maintained",
"knowledgeCutoff": null,
"inputModalities": ["text", "image", "video"],
"outputModalities": ["text"],
diff --git a/manifests/models/kimi-k2-instruct.json b/manifests/models/kimi-k2-instruct.json
index 0a68b49d..417e22a4 100644
--- a/manifests/models/kimi-k2-instruct.json
+++ b/manifests/models/kimi-k2-instruct.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"releaseDate",
@@ -62,15 +63,21 @@
"url": "https://platform.kimi.ai/docs/models",
"title": "Kimi API model availability and K2 retirement notice",
"fields": ["lifecycle", "tokenPricing"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.moonshot.ai",
"docsUrl": "https://huggingface.co/moonshotai/Kimi-K2-Instruct",
"vendor": "Moonshot",
- "size": "1T (32B active)",
+ "size": "1T",
+ "activeParameters": "32B",
"contextWindow": 131072,
"maxOutput": null,
"tokenPricing": {
@@ -79,6 +86,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.57, "output": 2.3, "cacheRead": null, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-07-11",
"lifecycle": "deprecated",
"knowledgeCutoff": null,
diff --git a/manifests/models/kimi-k2-thinking.json b/manifests/models/kimi-k2-thinking.json
index e3aa440e..96a86022 100644
--- a/manifests/models/kimi-k2-thinking.json
+++ b/manifests/models/kimi-k2-thinking.json
@@ -49,15 +49,21 @@
"digest": "sha256:50692812b00a1b51ddd80947258f053d2317be53e34384d7421d2e9034d3b60d",
"observedAt": "2026-07-28"
}
+ },
+ {
+ "url": "https://huggingface.co/moonshotai/Kimi-K2-Thinking",
+ "title": "Kimi K2 Thinking official model card",
+ "fields": ["docsUrl", "size", "activeParameters", "contextWindow", "platformUrls.huggingface"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "medium",
"websiteUrl": "https://moonshot.ai",
- "docsUrl": "https://huggingface.co/moonshotai/Kimi-K2-Instruct-Thinking",
+ "docsUrl": "https://huggingface.co/moonshotai/Kimi-K2-Thinking",
"vendor": "Moonshot",
- "size": "1,000B",
+ "size": "1T",
+ "activeParameters": "32B",
"contextWindow": 262144,
"maxOutput": 262144,
"tokenPricing": {
@@ -101,7 +107,7 @@
"liveCodeBench": null
},
"platformUrls": {
- "huggingface": "https://huggingface.co/moonshotai/Kimi-K2-Instruct-Thinking",
+ "huggingface": "https://huggingface.co/moonshotai/Kimi-K2-Thinking",
"artificialAnalysis": "https://artificialanalysis.ai/models/kimi-k2-thinking",
"openrouter": "https://openrouter.ai/moonshotai/kimi-k2-thinking"
}
diff --git a/manifests/models/kimi-k3.json b/manifests/models/kimi-k3.json
index 9c0c5ad0..68457c99 100644
--- a/manifests/models/kimi-k3.json
+++ b/manifests/models/kimi-k3.json
@@ -66,6 +66,7 @@
"docsUrl": "https://platform.moonshot.ai/docs",
"vendor": "Moonshot",
"size": "2.8T",
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/llama-4-maverick.json b/manifests/models/llama-4-maverick.json
index 59e81838..d0ad83ca 100644
--- a/manifests/models/llama-4-maverick.json
+++ b/manifests/models/llama-4-maverick.json
@@ -56,7 +56,13 @@
{
"url": "https://huggingface.co/meta-llama/Llama-4-Maverick-17B-128E-Instruct",
"title": "Llama 4 Maverick official model card",
- "fields": ["size", "contextWindow", "knowledgeCutoff", "platformUrls.huggingface"]
+ "fields": [
+ "size",
+ "activeParameters",
+ "contextWindow",
+ "knowledgeCutoff",
+ "platformUrls.huggingface"
+ ]
},
{
"url": "https://huggingface.co/meta-llama/Llama-4-Maverick-17B-128E-Instruct",
@@ -72,15 +78,21 @@
"url": "https://huggingface.co/meta-llama/Llama-4-Maverick-17B-128E-Instruct",
"title": "Llama 4 Maverick official model card — LiveCodeBench, 2024-10-01 to 2025-02-01; Instruction-tuned model; 0-shot pass@1; label: Llama 4 Maverick; observed 2026-07-21",
"fields": ["benchmarks.liveCodeBench"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://ai.meta.com",
"docsUrl": "https://huggingface.co/meta-llama/Llama-4-Maverick-17B-128E-Instruct",
"vendor": "Meta",
- "size": "400B (17B active)",
+ "size": "400B",
+ "activeParameters": "17B",
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
@@ -89,6 +101,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.2, "output": 0.8, "cacheRead": 0.0525, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-04-05",
"lifecycle": "maintained",
"knowledgeCutoff": "2024-08",
diff --git a/manifests/models/llama-4-scout.json b/manifests/models/llama-4-scout.json
index 6870ee4e..71b25d1e 100644
--- a/manifests/models/llama-4-scout.json
+++ b/manifests/models/llama-4-scout.json
@@ -56,7 +56,13 @@
{
"url": "https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct",
"title": "Llama 4 Scout official model card",
- "fields": ["size", "contextWindow", "knowledgeCutoff", "platformUrls.huggingface"]
+ "fields": [
+ "size",
+ "activeParameters",
+ "contextWindow",
+ "knowledgeCutoff",
+ "platformUrls.huggingface"
+ ]
},
{
"url": "https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct",
@@ -72,15 +78,21 @@
"url": "https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct",
"title": "Llama 4 Scout official model card — LiveCodeBench, 2024-10-01 to 2025-02-01; Instruction-tuned model; 0-shot pass@1; label: Llama 4 Scout; observed 2026-07-21",
"fields": ["benchmarks.liveCodeBench"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev pricing catalog",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://ai.meta.com",
"docsUrl": "https://huggingface.co/meta-llama/Llama-4-Scout-17B-16E-Instruct",
"vendor": "Meta",
- "size": "109B (17B active)",
+ "size": "109B",
+ "activeParameters": "17B",
"contextWindow": 10000000,
"maxOutput": null,
"tokenPricing": {
@@ -89,6 +101,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "provider-median",
+ "rates": { "input": 0.11, "output": 0.46, "cacheRead": null, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev provider median",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-04-05",
"lifecycle": "maintained",
"knowledgeCutoff": "2024-08",
diff --git a/manifests/models/mimo-v2-5-pro.json b/manifests/models/mimo-v2-5-pro.json
index d67a4106..613af05e 100644
--- a/manifests/models/mimo-v2-5-pro.json
+++ b/manifests/models/mimo-v2-5-pro.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -64,15 +65,21 @@
"url": "https://artificialanalysis.ai/models/mimo-v2-5-pro",
"title": "Artificial Analysis MiMo-V2.5-Pro model page",
"fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev Xiaomi pricing records",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-27",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://mimo.xiaomi.com/",
"docsUrl": "https://huggingface.co/XiaomiMiMo/MiMo-V2.5-Pro",
"vendor": "Xiaomi",
- "size": "1.02T (42B active)",
+ "size": "1.02T",
+ "activeParameters": "42B",
"contextWindow": 1048576,
"maxOutput": null,
"tokenPricing": {
@@ -81,6 +88,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "first-party-api",
+ "rates": { "input": 0.435, "output": 0.87, "cacheRead": 0.0036, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev — Xiaomi",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2026-04-22",
"lifecycle": "latest",
"knowledgeCutoff": null,
diff --git a/manifests/models/mimo-v2-5.json b/manifests/models/mimo-v2-5.json
index 0647813f..57fb4d33 100644
--- a/manifests/models/mimo-v2-5.json
+++ b/manifests/models/mimo-v2-5.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -64,15 +65,21 @@
"url": "https://artificialanalysis.ai/models/mimo-v2-5-0424",
"title": "Artificial Analysis MiMo-V2.5 model page",
"fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev Xiaomi pricing records",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-27",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://mimo.xiaomi.com/",
"docsUrl": "https://huggingface.co/XiaomiMiMo/MiMo-V2.5",
"vendor": "Xiaomi",
- "size": "310B (15B active)",
+ "size": "310B",
+ "activeParameters": "15B",
"contextWindow": 1048576,
"maxOutput": null,
"tokenPricing": {
@@ -81,6 +88,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "first-party-api",
+ "rates": { "input": 0.14, "output": 0.28, "cacheRead": 0.0028, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev — Xiaomi",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2026-04-22",
"lifecycle": "latest",
"knowledgeCutoff": null,
diff --git a/manifests/models/mimo-v2-flash.json b/manifests/models/mimo-v2-flash.json
index 0c6ed065..0402658e 100644
--- a/manifests/models/mimo-v2-flash.json
+++ b/manifests/models/mimo-v2-flash.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -60,15 +61,21 @@
"url": "https://artificialanalysis.ai/models/mimo-v2-flash",
"title": "Artificial Analysis MiMo-V2-Flash model page",
"fields": ["releaseDate", "platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev Xiaomi pricing records",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-27",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://mimo.xiaomi.com/",
"docsUrl": "https://huggingface.co/XiaomiMiMo/MiMo-V2-Flash",
"vendor": "Xiaomi",
- "size": "309B (15B active)",
+ "size": "309B",
+ "activeParameters": "15B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
@@ -77,6 +84,16 @@
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "first-party-api",
+ "rates": { "input": 0.14, "output": 0.28, "cacheRead": 0.0028, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev — Xiaomi",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2025-12-16",
"lifecycle": "maintained",
"knowledgeCutoff": null,
diff --git a/manifests/models/minimax-m2-1.json b/manifests/models/minimax-m2-1.json
index 87e0c341..40878575 100644
--- a/manifests/models/minimax-m2-1.json
+++ b/manifests/models/minimax-m2-1.json
@@ -43,6 +43,7 @@
"docsUrl": "https://platform.minimax.io/docs/guides/text-generation",
"vendor": "MiniMax",
"size": "230B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/minimax-m2-5.json b/manifests/models/minimax-m2-5.json
index 7e2300ba..d63e3ab5 100644
--- a/manifests/models/minimax-m2-5.json
+++ b/manifests/models/minimax-m2-5.json
@@ -78,6 +78,7 @@
"docsUrl": "https://platform.minimax.io/docs/api-reference/api-overview",
"vendor": "MiniMax",
"size": "229B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/minimax-m2-7.json b/manifests/models/minimax-m2-7.json
index f803fa76..c75e02fa 100644
--- a/manifests/models/minimax-m2-7.json
+++ b/manifests/models/minimax-m2-7.json
@@ -78,6 +78,7 @@
"docsUrl": "https://platform.minimax.io/docs/api-reference/api-overview",
"vendor": "MiniMax",
"size": "229B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/minimax-m2.json b/manifests/models/minimax-m2.json
index 37bd8866..6189c02c 100644
--- a/manifests/models/minimax-m2.json
+++ b/manifests/models/minimax-m2.json
@@ -43,6 +43,7 @@
"docsUrl": "https://platform.minimax.io/docs/guides/text-generation",
"vendor": "MiniMax",
"size": "230B",
+ "activeParameters": null,
"contextWindow": 204800,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/minimax-m3.json b/manifests/models/minimax-m3.json
index 38648a0e..069a7daf 100644
--- a/manifests/models/minimax-m3.json
+++ b/manifests/models/minimax-m3.json
@@ -58,15 +58,21 @@
"url": "https://platform.minimax.io/subscribe/token-plan?tab=api-enterprise",
"title": "MiniMax M3 pay-as-you-go pricing",
"fields": ["tokenPricing", "contextWindow"]
+ },
+ {
+ "url": "https://huggingface.co/MiniMaxAI/MiniMax-M3",
+ "title": "MiniMax M3 official model card",
+ "fields": ["size", "activeParameters", "platformUrls.huggingface"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://www.minimax.io",
"docsUrl": "https://platform.minimax.io/docs/api-reference/api-overview",
"vendor": "MiniMax",
- "size": null,
+ "size": "428B",
+ "activeParameters": "23B",
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
@@ -109,5 +115,9 @@
"sciCode": null,
"liveCodeBench": null
},
- "platformUrls": { "huggingface": null, "artificialAnalysis": null, "openrouter": null }
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/MiniMaxAI/MiniMax-M3",
+ "artificialAnalysis": null,
+ "openrouter": null
+ }
}
diff --git a/manifests/models/mistral-medium-3-5.json b/manifests/models/mistral-medium-3-5.json
index b7d1db62..217b15ce 100644
--- a/manifests/models/mistral-medium-3-5.json
+++ b/manifests/models/mistral-medium-3-5.json
@@ -78,6 +78,7 @@
"docsUrl": "https://docs.mistral.ai/models/model-cards/mistral-medium-3-5-26-04",
"vendor": "Mistral AI",
"size": "128B",
+ "activeParameters": null,
"contextWindow": 256000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/mistral-small-4.json b/manifests/models/mistral-small-4.json
index e5d1bf94..43a7533a 100644
--- a/manifests/models/mistral-small-4.json
+++ b/manifests/models/mistral-small-4.json
@@ -47,6 +47,7 @@
"name",
"description",
"size",
+ "activeParameters",
"contextWindow",
"releaseDate",
"lifecycle",
@@ -77,7 +78,8 @@
"websiteUrl": "https://mistral.ai",
"docsUrl": "https://docs.mistral.ai/models/model-cards/mistral-small-4-0-26-03",
"vendor": "Mistral AI",
- "size": "119B (6.5B active)",
+ "size": "119B",
+ "activeParameters": "6.5B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/muse-spark-1-1.json b/manifests/models/muse-spark-1-1.json
index 6c214879..968470d9 100644
--- a/manifests/models/muse-spark-1-1.json
+++ b/manifests/models/muse-spark-1-1.json
@@ -49,6 +49,7 @@
"contextWindow",
"releaseDate",
"lifecycle",
+ "tokenPricing",
"inputModalities",
"outputModalities",
"capabilities"
@@ -58,23 +59,39 @@
"url": "https://developer.meta.com/ai",
"title": "Meta Model API documentation",
"fields": ["docsUrl"]
+ },
+ {
+ "url": "https://models.dev/api.json",
+ "title": "Models.dev Meta pricing record",
+ "fields": ["referenceTokenPricing"]
}
],
- "lastVerifiedAt": "2026-07-21",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://ai.meta.com",
"docsUrl": "https://developer.meta.com/ai",
"vendor": "Meta",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
- "status": "not-applicable",
- "reason": "open-weights-only",
+ "status": "unavailable",
+ "reason": "official-price-not-published",
"primaryOffer": null,
"offers": []
},
+ "referenceTokenPricing": {
+ "currency": "USD",
+ "basis": "first-party-api",
+ "rates": { "input": 1.25, "output": 4.25, "cacheRead": 0.15, "cacheWrite": null },
+ "source": {
+ "name": "Models.dev — Meta",
+ "url": "https://models.dev/api.json",
+ "observedAt": "2026-07-31"
+ }
+ },
"releaseDate": "2026-07-09",
"lifecycle": "latest",
"knowledgeCutoff": null,
diff --git a/manifests/models/o3-mini.json b/manifests/models/o3-mini.json
index 304d1c83..66388779 100644
--- a/manifests/models/o3-mini.json
+++ b/manifests/models/o3-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/o3-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 100000,
"tokenPricing": {
diff --git a/manifests/models/o3.json b/manifests/models/o3.json
index 7df42478..9400cb5f 100644
--- a/manifests/models/o3.json
+++ b/manifests/models/o3.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/o3",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 100000,
"tokenPricing": {
diff --git a/manifests/models/o4-mini.json b/manifests/models/o4-mini.json
index 9e949cd5..bf22392a 100644
--- a/manifests/models/o4-mini.json
+++ b/manifests/models/o4-mini.json
@@ -67,6 +67,7 @@
"docsUrl": "https://developers.openai.com/api/docs/models/o4-mini",
"vendor": "OpenAI",
"size": null,
+ "activeParameters": null,
"contextWindow": 200000,
"maxOutput": 100000,
"tokenPricing": {
diff --git a/manifests/models/qwen3-5-122b-a10b.json b/manifests/models/qwen3-5-122b-a10b.json
index 520492fc..45b34e66 100644
--- a/manifests/models/qwen3-5-122b-a10b.json
+++ b/manifests/models/qwen3-5-122b-a10b.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -77,7 +78,8 @@
"websiteUrl": "https://qwen.ai",
"docsUrl": "https://huggingface.co/Qwen/Qwen3.5-122B-A10B",
"vendor": "Alibaba",
- "size": "122B (10B active)",
+ "size": "122B",
+ "activeParameters": "10B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-5-35b-a3b.json b/manifests/models/qwen3-5-35b-a3b.json
index a4ec836e..c9cea082 100644
--- a/manifests/models/qwen3-5-35b-a3b.json
+++ b/manifests/models/qwen3-5-35b-a3b.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -77,7 +78,8 @@
"websiteUrl": "https://qwen.ai",
"docsUrl": "https://huggingface.co/Qwen/Qwen3.5-35B-A3B",
"vendor": "Alibaba",
- "size": "35B (3B active)",
+ "size": "35B",
+ "activeParameters": "3B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-5-397b-a17b.json b/manifests/models/qwen3-5-397b-a17b.json
index 991358c5..ac5b4bf1 100644
--- a/manifests/models/qwen3-5-397b-a17b.json
+++ b/manifests/models/qwen3-5-397b-a17b.json
@@ -48,6 +48,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -77,7 +78,8 @@
"websiteUrl": "https://qwen.ai",
"docsUrl": "https://huggingface.co/Qwen/Qwen3.5-397B-A17B",
"vendor": "Alibaba",
- "size": "397B (17B active)",
+ "size": "397B",
+ "activeParameters": "17B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-6-27b.json b/manifests/models/qwen3-6-27b.json
index 2534a4ac..3ac5b70e 100644
--- a/manifests/models/qwen3-6-27b.json
+++ b/manifests/models/qwen3-6-27b.json
@@ -75,6 +75,7 @@
"docsUrl": "https://qwen.ai/blog?id=qwen3.6-27b&lang=en",
"vendor": "Alibaba",
"size": "27.8B",
+ "activeParameters": null,
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-6-35b-a3b.json b/manifests/models/qwen3-6-35b-a3b.json
index 71bde144..36771f50 100644
--- a/manifests/models/qwen3-6-35b-a3b.json
+++ b/manifests/models/qwen3-6-35b-a3b.json
@@ -50,6 +50,7 @@
"title": "Qwen3.6-35B-A3B official model card",
"fields": [
"size",
+ "activeParameters",
"contextWindow",
"inputModalities",
"outputModalities",
@@ -79,7 +80,8 @@
"websiteUrl": "https://qwen.ai",
"docsUrl": "https://qwen.ai/blog?id=qwen3.6-35b-a3b",
"vendor": "Alibaba",
- "size": "35B (3B active)",
+ "size": "35B",
+ "activeParameters": "3B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-6-max-preview.json b/manifests/models/qwen3-6-max-preview.json
index 9c9c6bf2..1917785b 100644
--- a/manifests/models/qwen3-6-max-preview.json
+++ b/manifests/models/qwen3-6-max-preview.json
@@ -79,6 +79,7 @@
"docsUrl": "https://qwen.ai/blog?id=qwen3.6-max-preview",
"vendor": "Alibaba",
"size": null,
+ "activeParameters": null,
"contextWindow": 256000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-6-plus.json b/manifests/models/qwen3-6-plus.json
index 8158d588..cf06a3af 100644
--- a/manifests/models/qwen3-6-plus.json
+++ b/manifests/models/qwen3-6-plus.json
@@ -71,6 +71,7 @@
"docsUrl": "https://help.aliyun.com/en/model-studio/coding-plan",
"vendor": "Alibaba",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 65536,
"tokenPricing": {
diff --git a/manifests/models/qwen3-7-max.json b/manifests/models/qwen3-7-max.json
index aacce795..91d214c8 100644
--- a/manifests/models/qwen3-7-max.json
+++ b/manifests/models/qwen3-7-max.json
@@ -81,6 +81,7 @@
"docsUrl": "https://help.aliyun.com/en/model-studio/models",
"vendor": "Alibaba",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/models/qwen3-7-plus.json b/manifests/models/qwen3-7-plus.json
index 1b9ce817..597bcf7b 100644
--- a/manifests/models/qwen3-7-plus.json
+++ b/manifests/models/qwen3-7-plus.json
@@ -68,6 +68,7 @@
"docsUrl": "https://help.aliyun.com/en/model-studio/model-pricing",
"vendor": "Alibaba",
"size": null,
+ "activeParameters": null,
"contextWindow": 1000000,
"maxOutput": 64000,
"tokenPricing": {
diff --git a/manifests/models/qwen3-coder-30b-a3b.json b/manifests/models/qwen3-coder-30b-a3b.json
index da98df43..4ce7d13c 100644
--- a/manifests/models/qwen3-coder-30b-a3b.json
+++ b/manifests/models/qwen3-coder-30b-a3b.json
@@ -43,6 +43,7 @@
"docsUrl": "https://huggingface.co/Qwen/Qwen3-Coder-30B-A3B-Instruct",
"vendor": "Alibaba",
"size": "30.5B",
+ "activeParameters": "3.3B",
"contextWindow": 262144,
"maxOutput": 65536,
"tokenPricing": {
@@ -129,6 +130,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"releaseDate",
diff --git a/manifests/models/qwen3-coder-480b-a35b.json b/manifests/models/qwen3-coder-480b-a35b.json
index eef9dec7..a90d8a46 100644
--- a/manifests/models/qwen3-coder-480b-a35b.json
+++ b/manifests/models/qwen3-coder-480b-a35b.json
@@ -43,6 +43,7 @@
"docsUrl": "https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B-Instruct",
"vendor": "Alibaba",
"size": "480B",
+ "activeParameters": "35B",
"contextWindow": 262144,
"maxOutput": 65536,
"tokenPricing": {
@@ -129,6 +130,7 @@
"description",
"docsUrl",
"size",
+ "activeParameters",
"contextWindow",
"maxOutput",
"inputModalities",
diff --git a/manifests/models/qwen3-coder-next.json b/manifests/models/qwen3-coder-next.json
index 1afe4159..54abfdb8 100644
--- a/manifests/models/qwen3-coder-next.json
+++ b/manifests/models/qwen3-coder-next.json
@@ -47,6 +47,7 @@
"name",
"description",
"size",
+ "activeParameters",
"contextWindow",
"releaseDate",
"inputModalities",
@@ -77,7 +78,8 @@
"websiteUrl": "https://qwen.ai",
"docsUrl": "https://help.aliyun.com/en/model-studio/qwen-coder",
"vendor": "Alibaba",
- "size": "80B (3B active)",
+ "size": "80B",
+ "activeParameters": "3B",
"contextWindow": 262144,
"maxOutput": null,
"tokenPricing": {
diff --git a/manifests/providers/alibaba.json b/manifests/providers/alibaba.json
index e108cf45..c2c13eae 100644
--- a/manifests/providers/alibaba.json
+++ b/manifests/providers/alibaba.json
@@ -38,12 +38,12 @@
"description": "阿里巴巴的雲端運算平台,提供先進的 AI 服務和語言模型,包括用於企業和開發應用的通義千問(Qwen)。"
}
},
- "verified": false,
- "websiteUrl": "https://aliyun.com",
- "docsUrl": "https://help.aliyun.com/zh/dashscope",
+ "verified": true,
+ "websiteUrl": "https://www.alibabacloud.com/en/product/modelstudio",
+ "docsUrl": "https://www.alibabacloud.com/help/en/model-studio/",
"vendor": "alibaba",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://dashscope.console.aliyun.com/apiKey",
+ "applyKeyUrl": "https://bailian.console.alibabacloud.com/?tab=model#/api-key",
"platformUrls": {
"huggingface": "https://huggingface.co/Qwen",
"artificialAnalysis": null,
@@ -59,6 +59,21 @@
"blog": "https://developer.aliyun.com/group"
},
"sources": [
+ {
+ "url": "https://www.alibabacloud.com/en/product/modelstudio",
+ "title": "Alibaba Cloud Model Studio",
+ "fields": ["name", "description", "websiteUrl", "type"]
+ },
+ {
+ "url": "https://www.alibabacloud.com/help/en/model-studio/",
+ "title": "Alibaba Cloud Model Studio documentation",
+ "fields": ["docsUrl", "type"]
+ },
+ {
+ "url": "https://www.alibabacloud.com/help/en/model-studio/get-api-key",
+ "title": "Obtain an Alibaba Cloud Model Studio API key",
+ "fields": ["applyKeyUrl"]
+ },
{
"url": "https://www.linkedin.com/company/alibaba-cloud",
"title": "Alibaba Cloud linkedin community",
@@ -84,5 +99,8 @@
"title": "Alibaba Cloud blog community",
"fields": ["communityUrls.blog"]
}
- ]
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/anthropic.json b/manifests/providers/anthropic.json
index 0221811d..82fd7f45 100644
--- a/manifests/providers/anthropic.json
+++ b/manifests/providers/anthropic.json
@@ -51,8 +51,8 @@
"fields": ["docsUrl", "type"]
},
{
- "url": "https://platform.claude.com",
- "title": "Claude Platform console",
+ "url": "https://platform.claude.com/settings/keys",
+ "title": "Claude Platform API keys",
"fields": ["applyKeyUrl"]
},
{
@@ -66,14 +66,14 @@
"fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-18",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://anthropic.com",
"docsUrl": "https://platform.claude.com/docs/en/home",
"vendor": "anthropic",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://platform.claude.com",
+ "applyKeyUrl": "https://platform.claude.com/settings/keys",
"platformUrls": {
"huggingface": "https://huggingface.co/anthropics",
"artificialAnalysis": null,
diff --git a/manifests/providers/baseten.json b/manifests/providers/baseten.json
new file mode 100644
index 00000000..f303f6cd
--- /dev/null
+++ b/manifests/providers/baseten.json
@@ -0,0 +1,91 @@
+{
+ "$schema": "../$schemas/provider.schema.json",
+ "id": "baseten",
+ "name": "Baseten",
+ "description": "An AI inference platform offering managed Model APIs for popular open models and dedicated deployments for custom and fine-tuned models.",
+ "translations": {
+ "zh-Hans": {
+ "description": "AI 推理平台,为热门开放模型提供托管 Model API,并为自定义和微调模型提供专用部署。"
+ },
+ "de": {
+ "description": "Eine KI-Inferenzplattform mit verwalteten Modell-APIs für beliebte offene Modelle und dedizierten Bereitstellungen für eigene und feinabgestimmte Modelle."
+ },
+ "ko": {
+ "description": "인기 오픈 모델을 위한 관리형 Model API와 사용자 지정 및 파인튜닝 모델을 위한 전용 배포를 제공하는 AI 추론 플랫폼입니다."
+ },
+ "es": {
+ "description": "Plataforma de inferencia de IA con API de modelos administradas para modelos abiertos populares y despliegues dedicados para modelos personalizados y ajustados."
+ },
+ "fr": {
+ "description": "Plateforme d’inférence IA proposant des API de modèles gérées pour les modèles ouverts populaires et des déploiements dédiés pour les modèles personnalisés et ajustés."
+ },
+ "id": {
+ "description": "Platform inferensi AI dengan Model API terkelola untuk model terbuka populer dan deployment khusus untuk model kustom serta model yang disempurnakan."
+ },
+ "ja": {
+ "description": "人気のオープンモデル向けマネージドModel APIと、カスタムモデルやファインチューニング済みモデル向けの専用デプロイを提供するAI推論基盤。"
+ },
+ "pt": {
+ "description": "Plataforma de inferência de IA com APIs de modelos gerenciadas para modelos abertos populares e implantações dedicadas para modelos personalizados e ajustados."
+ },
+ "ru": {
+ "description": "Платформа инференса ИИ с управляемыми API для популярных открытых моделей и выделенными развёртываниями для пользовательских и дообученных моделей."
+ },
+ "tr": {
+ "description": "Popüler açık modeller için yönetilen Model API’leri, özel ve ince ayarlı modeller için ayrılmış dağıtımlar sunan yapay zekâ çıkarım platformu."
+ },
+ "zh-Hant": {
+ "description": "AI 推論平台,為熱門開放模型提供託管 Model API,並為自訂和微調模型提供專用部署。"
+ }
+ },
+ "verified": true,
+ "websiteUrl": "https://www.baseten.co",
+ "docsUrl": "https://docs.baseten.co/reference/inference-api/overview",
+ "vendor": "baseten",
+ "type": "model-service-provider",
+ "applyKeyUrl": "https://app.baseten.co/settings/api_keys",
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/baseten",
+ "artificialAnalysis": "https://artificialanalysis.ai/providers/baseten",
+ "openrouter": "https://openrouter.ai/provider/baseten"
+ },
+ "communityUrls": {
+ "linkedin": null,
+ "twitter": null,
+ "github": null,
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": null
+ },
+ "sources": [
+ {
+ "url": "https://docs.baseten.co/reference/inference-api/overview",
+ "title": "Baseten inference API overview",
+ "fields": ["name", "description", "websiteUrl", "docsUrl", "type"]
+ },
+ {
+ "url": "https://docs.baseten.co/organization/api-keys",
+ "title": "Baseten API keys",
+ "fields": ["applyKeyUrl"]
+ },
+ {
+ "url": "https://huggingface.co/baseten",
+ "title": "Verified Baseten Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/providers/baseten",
+ "title": "Baseten on Artificial Analysis",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/baseten",
+ "title": "Baseten on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
+}
diff --git a/manifests/providers/deepinfra.json b/manifests/providers/deepinfra.json
new file mode 100644
index 00000000..283637fb
--- /dev/null
+++ b/manifests/providers/deepinfra.json
@@ -0,0 +1,91 @@
+{
+ "$schema": "../$schemas/provider.schema.json",
+ "id": "deepinfra",
+ "name": "DeepInfra",
+ "description": "Serverless AI inference platform offering OpenAI-compatible APIs for 100+ models across text, image, video, speech, embeddings, and reranking, plus private model deployments.",
+ "translations": {
+ "zh-Hans": {
+ "description": "无服务器 AI 推理平台,通过兼容 OpenAI 的 API 提供 100 多个文本、图像、视频、语音、嵌入和重排序模型,并支持私有模型部署。"
+ },
+ "de": {
+ "description": "Serverlose KI-Inferenzplattform mit OpenAI-kompatiblen APIs für über 100 Text-, Bild-, Video-, Sprach-, Embedding- und Reranking-Modelle sowie privaten Modellbereitstellungen."
+ },
+ "ko": {
+ "description": "텍스트, 이미지, 비디오, 음성, 임베딩, 리랭킹 분야의 100개 이상 모델을 OpenAI 호환 API로 제공하고 비공개 모델 배포도 지원하는 서버리스 AI 추론 플랫폼입니다."
+ },
+ "es": {
+ "description": "Plataforma de inferencia de IA sin servidor con API compatibles con OpenAI para más de 100 modelos de texto, imagen, vídeo, voz, embeddings y reranking, además de despliegues privados."
+ },
+ "fr": {
+ "description": "Plateforme d’inférence IA serverless avec des API compatibles OpenAI pour plus de 100 modèles de texte, image, vidéo, parole, embeddings et reranking, ainsi que des déploiements privés."
+ },
+ "id": {
+ "description": "Platform inferensi AI serverless dengan API kompatibel OpenAI untuk 100+ model teks, gambar, video, suara, embedding, dan reranking, serta deployment model privat."
+ },
+ "ja": {
+ "description": "テキスト、画像、動画、音声、埋め込み、リランキングの100以上のモデルをOpenAI互換APIで提供し、プライベートモデルのデプロイにも対応するサーバーレスAI推論基盤。"
+ },
+ "pt": {
+ "description": "Plataforma de inferência de IA serverless com APIs compatíveis com OpenAI para mais de 100 modelos de texto, imagem, vídeo, voz, embeddings e reranking, além de implantações privadas."
+ },
+ "ru": {
+ "description": "Бессерверная платформа инференса ИИ с OpenAI-совместимыми API для 100+ моделей текста, изображений, видео, речи, векторного поиска и ранжирования, а также частных развёртываний."
+ },
+ "tr": {
+ "description": "Metin, görüntü, video, konuşma, gömme ve yeniden sıralama için 100'den fazla modeli OpenAI uyumlu API'lerle sunan ve özel model dağıtımlarını destekleyen sunucusuz AI çıkarım platformu."
+ },
+ "zh-Hant": {
+ "description": "無伺服器 AI 推論平台,透過相容 OpenAI 的 API 提供 100 多個文字、影像、影片、語音、嵌入及重新排序模型,並支援私有模型部署。"
+ }
+ },
+ "verified": true,
+ "websiteUrl": "https://deepinfra.com",
+ "docsUrl": "https://docs.deepinfra.com/quickstart",
+ "vendor": "deepinfra",
+ "type": "model-service-provider",
+ "applyKeyUrl": "https://deepinfra.com/dash/api_keys",
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/DeepInfra",
+ "artificialAnalysis": "https://artificialanalysis.ai/providers/deepinfra",
+ "openrouter": "https://openrouter.ai/provider/deepinfra"
+ },
+ "communityUrls": {
+ "linkedin": null,
+ "twitter": null,
+ "github": null,
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": null
+ },
+ "sources": [
+ {
+ "url": "https://docs.deepinfra.com/quickstart",
+ "title": "DeepInfra quickstart",
+ "fields": ["name", "description", "websiteUrl", "docsUrl", "type", "applyKeyUrl"]
+ },
+ {
+ "url": "https://docs.deepinfra.com/account/authentication",
+ "title": "DeepInfra authentication",
+ "fields": ["applyKeyUrl"]
+ },
+ {
+ "url": "https://huggingface.co/DeepInfra",
+ "title": "Verified DeepInfra Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/providers/deepinfra",
+ "title": "DeepInfra on Artificial Analysis",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/deepinfra",
+ "title": "DeepInfra on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
+}
diff --git a/manifests/providers/deepseek.json b/manifests/providers/deepseek.json
index 29e0a08c..6f671571 100644
--- a/manifests/providers/deepseek.json
+++ b/manifests/providers/deepseek.json
@@ -2,48 +2,48 @@
"$schema": "../$schemas/provider.schema.json",
"id": "deepseek",
"name": "DeepSeek",
- "description": "A leading AI research company focused on developing advanced language models and AI technology for coding and general intelligence.",
+ "description": "DeepSeek develops language models and provides direct access through its OpenAI- and Anthropic-compatible APIs.",
"translations": {
"zh-Hans": {
- "description": "领先的 AI 研究公司,专注于开发先进的语言模型和 AI 技术,用于编码和通用智能。"
+ "description": "DeepSeek 开发语言模型,并通过兼容 OpenAI 和 Anthropic 的 API 提供直接访问。"
},
"de": {
- "description": "Ein führendes AI-Forschungsunternehmen, das sich auf die Entwicklung fortschrittlicher Sprachmodelle und AI-Technologien für Codierung und allgemeine Intelligenz konzentriert."
+ "description": "DeepSeek entwickelt Sprachmodelle und bietet direkten Zugriff über OpenAI- und Anthropic-kompatible APIs."
},
"ko": {
- "description": "코딩 및 일반 지능을 위한 고급 언어 모델과 AI 기술 개발에 집중하는 선도적인 AI 연구 기업입니다."
+ "description": "DeepSeek는 언어 모델을 개발하고 OpenAI 및 Anthropic 호환 API를 통해 직접 액세스를 제공합니다."
},
"es": {
- "description": "Una empresa de investigación de IA líder centrada en el desarrollo de modelos de lenguaje avanzados y tecnologías de IA para la codificación y la inteligencia general."
+ "description": "DeepSeek desarrolla modelos de lenguaje y ofrece acceso directo mediante API compatibles con OpenAI y Anthropic."
},
"fr": {
- "description": "Une entreprise de recherche en IA de premier plan axée sur le développement de modèles de langue avancés et de technologie d'IA pour le codage et l'intelligence générale."
+ "description": "DeepSeek développe des modèles de langage et fournit un accès direct via des API compatibles avec OpenAI et Anthropic."
},
"id": {
- "description": "Perusahaan riset AI terkemuka yang berfokus pada pengembangan model bahasa canggih dan teknologi AI untuk coding dan kecerdasan umum."
+ "description": "DeepSeek mengembangkan model bahasa dan menyediakan akses langsung melalui API yang kompatibel dengan OpenAI dan Anthropic."
},
"ja": {
- "description": "コーディングと汎用知能のための高度な言語モデルとAI技術の開発に焦点を当てた、先駆的なAI研究企業です。"
+ "description": "DeepSeek は言語モデルを開発し、OpenAI および Anthropic 互換 API を通じて直接アクセスを提供しています。"
},
"pt": {
- "description": "Uma empresa de pesquisa de IA focada no desenvolvimento de modelos de linguagem avançados e tecnologias de IA para programação e inteligência geral."
+ "description": "A DeepSeek desenvolve modelos de linguagem e oferece acesso direto por APIs compatíveis com OpenAI e Anthropic."
},
"ru": {
- "description": "Ведущая компания в области исследований ИИ, занимающаяся разработкой продвинутых языковых моделей и ИИ-технологий для программирования и общего интеллекта."
+ "description": "DeepSeek разрабатывает языковые модели и предоставляет прямой доступ через API, совместимые с OpenAI и Anthropic."
},
"tr": {
- "description": "Kodlama ve genel zeka için gelişmiş dil modelleri ve AI teknolojileri geliştirmeye odaklanan lider bir AI araştırma şirketi."
+ "description": "DeepSeek, dil modelleri geliştirir ve OpenAI ile Anthropic uyumlu API'ler üzerinden doğrudan erişim sağlar."
},
"zh-Hant": {
- "description": "領先的 AI 研究公司,專注於開發先進的語言模型和 AI 技術,用於程式設計和通用智慧。"
+ "description": "DeepSeek 開發語言模型,並透過相容 OpenAI 和 Anthropic 的 API 提供直接存取。"
}
},
- "verified": false,
+ "verified": true,
"websiteUrl": "https://www.deepseek.com",
- "docsUrl": "https://platform.deepseek.com/api-docs",
+ "docsUrl": "https://api-docs.deepseek.com/",
"vendor": "deepseek",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://platform.deepseek.com/apply",
+ "applyKeyUrl": "https://platform.deepseek.com/api_keys",
"platformUrls": {
"huggingface": "https://huggingface.co/deepseek-ai",
"artificialAnalysis": "https://artificialanalysis.ai/providers/deepseek",
@@ -57,5 +57,35 @@
"discord": null,
"reddit": null,
"blog": null
- }
+ },
+ "sources": [
+ {
+ "url": "https://www.deepseek.com",
+ "title": "DeepSeek",
+ "fields": ["name", "description", "websiteUrl", "vendor"]
+ },
+ {
+ "url": "https://api-docs.deepseek.com/",
+ "title": "DeepSeek API documentation",
+ "fields": ["docsUrl", "type", "applyKeyUrl"]
+ },
+ {
+ "url": "https://huggingface.co/deepseek-ai",
+ "title": "DeepSeek official Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/providers/deepseek",
+ "title": "DeepSeek on Artificial Analysis",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/deepseek",
+ "title": "DeepSeek on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/fireworks-ai.json b/manifests/providers/fireworks-ai.json
new file mode 100644
index 00000000..c617a29a
--- /dev/null
+++ b/manifests/providers/fireworks-ai.json
@@ -0,0 +1,91 @@
+{
+ "$schema": "../$schemas/provider.schema.json",
+ "id": "fireworks-ai",
+ "name": "Fireworks AI",
+ "description": "An AI inference and training platform for running open and custom models through serverless and dedicated deployments with OpenAI- and Anthropic-compatible APIs.",
+ "translations": {
+ "zh-Hans": {
+ "description": "AI 推理与训练平台,通过无服务器和专用部署运行开放及自定义模型,并提供兼容 OpenAI 和 Anthropic 的 API。"
+ },
+ "de": {
+ "description": "Eine KI-Inferenz- und Trainingsplattform für offene und eigene Modelle über serverlose und dedizierte Bereitstellungen mit OpenAI- und Anthropic-kompatiblen APIs."
+ },
+ "ko": {
+ "description": "서버리스 및 전용 배포에서 오픈 모델과 사용자 지정 모델을 실행하며 OpenAI 및 Anthropic 호환 API를 제공하는 AI 추론·학습 플랫폼입니다."
+ },
+ "es": {
+ "description": "Plataforma de inferencia y entrenamiento de IA para ejecutar modelos abiertos y personalizados mediante despliegues sin servidor y dedicados, con API compatibles con OpenAI y Anthropic."
+ },
+ "fr": {
+ "description": "Plateforme d’inférence et d’entraînement IA pour exécuter des modèles ouverts ou personnalisés sur des déploiements serverless ou dédiés, avec des API compatibles OpenAI et Anthropic."
+ },
+ "id": {
+ "description": "Platform inferensi dan pelatihan AI untuk menjalankan model terbuka dan kustom melalui deployment serverless dan khusus, dengan API yang kompatibel dengan OpenAI dan Anthropic."
+ },
+ "ja": {
+ "description": "オープンモデルやカスタムモデルをサーバーレスまたは専用環境で実行し、OpenAI・Anthropic互換APIを提供するAI推論・学習プラットフォーム。"
+ },
+ "pt": {
+ "description": "Plataforma de inferência e treinamento de IA para executar modelos abertos e personalizados em implantações serverless e dedicadas, com APIs compatíveis com OpenAI e Anthropic."
+ },
+ "ru": {
+ "description": "Платформа инференса и обучения ИИ для запуска открытых и пользовательских моделей в бессерверных и выделенных средах с API, совместимыми с OpenAI и Anthropic."
+ },
+ "tr": {
+ "description": "Açık ve özel modelleri sunucusuz veya ayrılmış dağıtımlarda çalıştıran, OpenAI ve Anthropic uyumlu API’ler sunan yapay zekâ çıkarım ve eğitim platformu."
+ },
+ "zh-Hant": {
+ "description": "AI 推論與訓練平台,透過無伺服器和專用部署執行開放及自訂模型,並提供相容 OpenAI 和 Anthropic 的 API。"
+ }
+ },
+ "verified": true,
+ "websiteUrl": "https://fireworks.ai",
+ "docsUrl": "https://docs.fireworks.ai/getting-started/quickstart",
+ "vendor": "fireworks-ai",
+ "type": "model-service-provider",
+ "applyKeyUrl": "https://app.fireworks.ai/settings/users/api-keys",
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/fireworks-ai",
+ "artificialAnalysis": "https://artificialanalysis.ai/providers/fireworks",
+ "openrouter": "https://openrouter.ai/provider/fireworks"
+ },
+ "communityUrls": {
+ "linkedin": null,
+ "twitter": null,
+ "github": null,
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": null
+ },
+ "sources": [
+ {
+ "url": "https://fireworks.ai/inference",
+ "title": "Fireworks inference platform",
+ "fields": ["name", "description", "websiteUrl", "type"]
+ },
+ {
+ "url": "https://docs.fireworks.ai/getting-started/quickstart",
+ "title": "Fireworks serverless quickstart",
+ "fields": ["docsUrl", "applyKeyUrl", "description"]
+ },
+ {
+ "url": "https://huggingface.co/fireworks-ai",
+ "title": "Verified Fireworks AI Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/providers/fireworks",
+ "title": "Fireworks on Artificial Analysis",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/fireworks",
+ "title": "Fireworks on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
+}
diff --git a/manifests/providers/google.json b/manifests/providers/google.json
index 03883f8d..cf764a36 100644
--- a/manifests/providers/google.json
+++ b/manifests/providers/google.json
@@ -1,49 +1,54 @@
{
"$schema": "../$schemas/provider.schema.json",
"id": "google",
- "name": "Google AI",
- "description": "Google's AI division offering advanced language models and AI services including Gemini for coding, reasoning, and content generation across applications.",
+ "name": "Google",
+ "description": "Google develops Gemini models and provides developer access through the Gemini API and Google AI Studio.",
"translations": {
"zh-Hans": {
- "description": "Google 的 AI 部门,提供先进的语言模型和 AI 服务,包括 Gemini,用于各类应用中的编码、推理和内容生成。"
+ "description": "Google 开发 Gemini 模型,并通过 Gemini API 和 Google AI Studio 为开发者提供访问。"
},
"de": {
- "description": "Googles AI-Abteilung, die fortschrittliche Sprachmodelle und AI-Dienste anbietet, einschließlich Gemini für Codierung, Reasoning und Inhaltserstellung in verschiedenen Anwendungen."
+ "description": "Google entwickelt Gemini-Modelle und bietet Entwicklern über die Gemini API und Google AI Studio Zugriff."
},
"ko": {
- "description": "코딩, 추론 및 콘텐츠 생성을 위한 Gemini를 포함하여 다양한 애플리케이션에서 고급 언어 모델과 AI 서비스를 제공하는 Google의 AI 부서입니다."
+ "description": "Google은 Gemini 모델을 개발하고 Gemini API와 Google AI Studio를 통해 개발자 액세스를 제공합니다."
},
"es": {
- "description": "La división de IA de Google, ofreciendo modelos de lenguaje avanzados y servicios de IA, incluyendo Gemini para codificación, razonamiento y generación de contenido en varias aplicaciones."
+ "description": "Google desarrolla modelos Gemini y ofrece acceso para desarrolladores mediante la API de Gemini y Google AI Studio."
},
"fr": {
- "description": "La division IA de Google, offrant des modèles de langage avancés et des services d'IA, y compris Gemini pour le codage, le raisonnement et la création de contenu dans diverses applications."
+ "description": "Google développe les modèles Gemini et fournit un accès aux développeurs via l’API Gemini et Google AI Studio."
},
"id": {
- "description": "Divisi AI Google yang menawarkan model bahasa canggih dan layanan AI, termasuk Gemini untuk coding, reasoning, dan pembuatan konten di berbagai aplikasi."
+ "description": "Google mengembangkan model Gemini dan menyediakan akses bagi pengembang melalui Gemini API dan Google AI Studio."
},
"ja": {
- "description": "コーディング、推論、コンテンツ生成用のGeminiを含め、各式アプリケーションで高度な言語モデルとAIサービスを提供するGoogleのAI部門。"
+ "description": "Google は Gemini モデルを開発し、Gemini API と Google AI Studio を通じて開発者向けアクセスを提供しています。"
},
"pt": {
- "description": "A divisão de IA do Google oferece modelos de linguagem e serviços avançados, incluindo o Gemini, para vários aplicativos de programação, raciocínio e geração de conteúdo."
+ "description": "O Google desenvolve modelos Gemini e oferece acesso para desenvolvedores pela API Gemini e pelo Google AI Studio."
},
"ru": {
- "description": "Департамент ИИ Google, предлагающий передовые языковые модели и ИИ-сервисы, включая Gemini для программирования, рассуждений и создания контента в различных приложениях."
+ "description": "Google разрабатывает модели Gemini и предоставляет разработчикам доступ через Gemini API и Google AI Studio."
},
"tr": {
- "description": "Çeşitli uygulamalarda kodlama, akıl yürütme ve içerik oluşturma için Gemini dahil olmak üzere gelişmiş dil modelleri ve AI hizmetleri sunan Google'ın AI bölümü."
+ "description": "Google, Gemini modellerini geliştirir ve Gemini API ile Google AI Studio üzerinden geliştirici erişimi sağlar."
},
"zh-Hant": {
- "description": "Google 的 AI 部門,提供先進的語言模型和 AI 服務,包括 Gemini,用於各類應用中的程式設計、推理和內容產生。"
+ "description": "Google 開發 Gemini 模型,並透過 Gemini API 和 Google AI Studio 為開發者提供存取。"
}
},
"verified": true,
"sources": [
+ {
+ "url": "https://about.google/company-info/",
+ "title": "About Google",
+ "fields": ["name", "vendor"]
+ },
{
"url": "https://ai.google",
"title": "Google AI",
- "fields": ["name", "description", "websiteUrl", "vendor"]
+ "fields": ["description", "websiteUrl"]
},
{
"url": "https://ai.google.dev/gemini-api/docs",
@@ -71,7 +76,7 @@
"fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-18",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://ai.google.dev",
diff --git a/manifests/providers/meta.json b/manifests/providers/meta.json
index e90d04bc..426f49d6 100644
--- a/manifests/providers/meta.json
+++ b/manifests/providers/meta.json
@@ -1,49 +1,49 @@
{
"$schema": "../$schemas/provider.schema.json",
"id": "meta",
- "name": "Meta AI",
- "description": "Meta's AI research division providing open-source foundation models including Llama for various applications in coding, reasoning, and content generation.",
+ "name": "Meta",
+ "description": "Meta develops the Llama family of open-weight foundation models and provides developer access through the Llama API.",
"translations": {
"zh-Hans": {
- "description": "Meta 的 AI 研究部门,提供开源基础模型,包括 Llama,用于编码、推理和内容生成等各种应用。"
+ "description": "Meta 开发 Llama 开放权重基础模型系列,并通过 Llama API 为开发者提供访问。"
},
"de": {
- "description": "Metas AI-Forschungsabteilung, die Open-Source-Foundation-Modelle bereitstellt, einschließlich Llama für verschiedene Anwendungen im Bereich Codierung, Reasoning und Inhaltserstellung."
+ "description": "Meta entwickelt die Open-Weight-Grundmodellfamilie Llama und bietet Entwicklern über die Llama API Zugriff."
},
"ko": {
- "description": "코딩, 추론 및 콘텐츠 생성 등 다양한 애플리케이션을 위한 Llama를 포함하여 오픈 소스 기반 모델을 제공하는 Meta의 AI 연구 부서입니다."
+ "description": "Meta는 오픈 웨이트 기반 모델인 Llama 제품군을 개발하고 Llama API를 통해 개발자 액세스를 제공합니다."
},
"es": {
- "description": "La división de investigación de IA de Meta, proporcionando modelos fundacionales de código abierto incluyendo Llama para varias aplicaciones en codificación, razonamiento y generación de contenido."
+ "description": "Meta desarrolla la familia Llama de modelos fundacionales con pesos abiertos y ofrece acceso para desarrolladores mediante la API de Llama."
},
"fr": {
- "description": "La division de recherche en IA de Meta, fournissant des modèles fondamentaux open source, y compris Llama pour diverses applications en codage, raisonnement et création de contenu."
+ "description": "Meta développe la famille Llama de modèles fondamentaux à poids ouverts et fournit un accès aux développeurs via l’API Llama."
},
"id": {
- "description": "Divisi riset AI Meta yang menyediakan model foundation open source termasuk Llama untuk berbagai aplikasi dalam coding, reasoning, dan pembuatan konten."
+ "description": "Meta mengembangkan keluarga model dasar berbobot terbuka Llama dan menyediakan akses bagi pengembang melalui Llama API."
},
"ja": {
- "description": "コーディング、推論、コンテンツ生成など様々な用途向けのLlamaを含め、オープンソースの基盤モデルを提供するMetaのAI研究部門。"
+ "description": "Meta はオープンウェイトの基盤モデル群 Llama を開発し、Llama API を通じて開発者向けアクセスを提供しています。"
},
"pt": {
- "description": "A divisão de pesquisa em IA da Meta oferece modelos fundamentais de código aberto, incluindo o Llama, para vários aplicativos de programação, raciocínio e geração de conteúdo."
+ "description": "A Meta desenvolve a família Llama de modelos fundamentais com pesos abertos e oferece acesso para desenvolvedores pela API Llama."
},
"ru": {
- "description": "Исследовательское подразделение ИИ Meta, предоставляющее открытые фундаментальные модели, включая Llama для различных приложений в области программирования, рассуждений и создания контента."
+ "description": "Meta разрабатывает семейство базовых моделей Llama с открытыми весами и предоставляет разработчикам доступ через Llama API."
},
"tr": {
- "description": "Çeşitli uygulamalarda kodlama, akıl yürütme ve içerik oluşturma için Llama dahil olmak üzere açık kaynaklı temel modeller sunan Meta'nın AI araştırma departmanı."
+ "description": "Meta, açık ağırlıklı Llama temel model ailesini geliştirir ve Llama API üzerinden geliştirici erişimi sağlar."
},
"zh-Hant": {
- "description": "Meta 的 AI 研究部門,提供開放原始碼基礎模型,包括 Llama,用於程式設計、推理和內容產生等各種應用。"
+ "description": "Meta 開發 Llama 開放權重基礎模型系列,並透過 Llama API 為開發者提供存取。"
}
},
- "verified": false,
- "websiteUrl": "https://llama.meta.com",
- "docsUrl": "https://llama.meta.com/docs",
+ "verified": true,
+ "websiteUrl": "https://ai.developer.meta.com/",
+ "docsUrl": "https://ai.developer.meta.com/docs/overview/",
"vendor": "meta",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://www.llama.com/api",
+ "applyKeyUrl": "https://ai.developer.meta.com/",
"platformUrls": {
"huggingface": "https://huggingface.co/meta-llama",
"artificialAnalysis": null,
@@ -59,10 +59,33 @@
"blog": null
},
"sources": [
+ {
+ "url": "https://ai.meta.com/blog/llamacon-llama-news/",
+ "title": "Meta introduces the Llama API",
+ "fields": ["name", "description", "websiteUrl", "type", "applyKeyUrl"]
+ },
+ {
+ "url": "https://ai.developer.meta.com/docs/overview/",
+ "title": "Meta AI developer platform documentation",
+ "fields": ["docsUrl", "type"]
+ },
+ {
+ "url": "https://huggingface.co/meta-llama",
+ "title": "Meta Llama official Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/meta",
+ "title": "Meta on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ },
{
"url": "https://x.com/MetaAI",
"title": "Meta AI twitter community",
"fields": ["communityUrls.twitter"]
}
- ]
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/minimax.json b/manifests/providers/minimax.json
index c519e81f..55c5398e 100644
--- a/manifests/providers/minimax.json
+++ b/manifests/providers/minimax.json
@@ -38,12 +38,12 @@
"description": "專注於多模態通用大模型研發的 AI 公司,提供包括文字、語音、音樂、影像和影片產生在內的先進 AI 服務。"
}
},
- "verified": false,
- "websiteUrl": "https://platform.minimaxi.com",
- "docsUrl": "https://platform.minimaxi.com/docs/api-reference/text-openai-api",
+ "verified": true,
+ "websiteUrl": "https://www.minimax.io",
+ "docsUrl": "https://platform.minimax.io/docs/api-reference/api-overview",
"vendor": "minimax",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://platform.minimaxi.com",
+ "applyKeyUrl": "https://platform.minimax.io/console/access",
"platformUrls": {
"huggingface": null,
"artificialAnalysis": null,
@@ -57,5 +57,20 @@
"discord": null,
"reddit": null,
"blog": null
- }
+ },
+ "sources": [
+ {
+ "url": "https://www.minimax.io",
+ "title": "MiniMax",
+ "fields": ["name", "description", "websiteUrl", "vendor"]
+ },
+ {
+ "url": "https://platform.minimax.io/docs/api-reference/api-overview",
+ "title": "MiniMax API overview",
+ "fields": ["docsUrl", "type", "applyKeyUrl"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/moonshot.json b/manifests/providers/moonshot.json
index 8a5c2f32..a6e9c180 100644
--- a/manifests/providers/moonshot.json
+++ b/manifests/providers/moonshot.json
@@ -1,7 +1,7 @@
{
"$schema": "../$schemas/provider.schema.json",
"id": "moonshot",
- "name": "Moonshot",
+ "name": "Moonshot AI",
"description": "An AI company specializing in large language models and intelligent applications, known for the Kimi AI assistant.",
"translations": {
"zh-Hans": {
@@ -38,12 +38,12 @@
"description": "專注於大型語言模型和智慧應用的 AI 公司,以 Kimi AI 助手而聞名。"
}
},
- "verified": false,
+ "verified": true,
"websiteUrl": "https://www.moonshot.ai",
- "docsUrl": "https://platform.moonshot.ai/docs",
+ "docsUrl": "https://platform.kimi.ai/docs/api/overview",
"vendor": "moonshot",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://platform.moonshot.ai/console/api-keys",
+ "applyKeyUrl": "https://platform.kimi.ai/console/api-keys",
"platformUrls": {
"huggingface": "https://huggingface.co/moonshotai",
"artificialAnalysis": null,
@@ -57,5 +57,30 @@
"discord": null,
"reddit": null,
"blog": null
- }
+ },
+ "sources": [
+ {
+ "url": "https://www.moonshot.ai",
+ "title": "Moonshot AI",
+ "fields": ["name", "description", "websiteUrl", "vendor", "type"]
+ },
+ {
+ "url": "https://platform.kimi.ai/docs/api/overview",
+ "title": "Kimi API overview",
+ "fields": ["docsUrl", "applyKeyUrl", "type"]
+ },
+ {
+ "url": "https://huggingface.co/moonshotai",
+ "title": "Moonshot AI official Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/moonshotai",
+ "title": "Moonshot AI on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/novita-ai.json b/manifests/providers/novita-ai.json
new file mode 100644
index 00000000..eaf5f4c7
--- /dev/null
+++ b/manifests/providers/novita-ai.json
@@ -0,0 +1,91 @@
+{
+ "$schema": "../$schemas/provider.schema.json",
+ "id": "novita-ai",
+ "name": "Novita AI",
+ "description": "AI and agent cloud providing OpenAI-compatible model APIs, dedicated and serverless GPU infrastructure, and isolated agent sandboxes for production applications.",
+ "translations": {
+ "zh-Hans": {
+ "description": "AI 与智能体云平台,提供兼容 OpenAI 的模型 API、专用及无服务器 GPU 基础设施,以及面向生产应用的隔离智能体沙箱。"
+ },
+ "de": {
+ "description": "KI- und Agenten-Cloud mit OpenAI-kompatiblen Modell-APIs, dedizierter und serverloser GPU-Infrastruktur sowie isolierten Agenten-Sandboxes für Produktionsanwendungen."
+ },
+ "ko": {
+ "description": "OpenAI 호환 모델 API, 전용 및 서버리스 GPU 인프라, 프로덕션 애플리케이션용 격리 에이전트 샌드박스를 제공하는 AI·에이전트 클라우드입니다."
+ },
+ "es": {
+ "description": "Nube de IA y agentes con API de modelos compatibles con OpenAI, infraestructura GPU dedicada y sin servidor, y entornos aislados para agentes en producción."
+ },
+ "fr": {
+ "description": "Cloud d’IA et d’agents proposant des API de modèles compatibles OpenAI, une infrastructure GPU dédiée et serverless, et des sandboxes isolées pour les applications en production."
+ },
+ "id": {
+ "description": "Cloud AI dan agen dengan API model kompatibel OpenAI, infrastruktur GPU khusus dan serverless, serta sandbox agen terisolasi untuk aplikasi produksi."
+ },
+ "ja": {
+ "description": "OpenAI互換のモデルAPI、専用およびサーバーレスGPU基盤、本番アプリ向けの分離エージェントサンドボックスを提供するAI・エージェントクラウド。"
+ },
+ "pt": {
+ "description": "Nuvem de IA e agentes com APIs de modelos compatíveis com OpenAI, infraestrutura de GPU dedicada e serverless e sandboxes isoladas para aplicações em produção."
+ },
+ "ru": {
+ "description": "Облако ИИ и агентов с OpenAI-совместимыми API моделей, выделенной и бессерверной GPU-инфраструктурой и изолированными средами для рабочих приложений."
+ },
+ "tr": {
+ "description": "OpenAI uyumlu model API'leri, ayrılmış ve sunucusuz GPU altyapısı ile üretim uygulamaları için yalıtılmış ajan sanal alanları sunan AI ve ajan bulutu."
+ },
+ "zh-Hant": {
+ "description": "AI 與代理程式雲端平台,提供相容 OpenAI 的模型 API、專用及無伺服器 GPU 基礎設施,以及用於正式環境應用的隔離代理程式沙箱。"
+ }
+ },
+ "verified": true,
+ "websiteUrl": "https://novita.ai",
+ "docsUrl": "https://novita.ai/docs/guides/serverless",
+ "vendor": "novita-ai",
+ "type": "model-service-provider",
+ "applyKeyUrl": "https://novita.ai/settings/key-management",
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/novita",
+ "artificialAnalysis": "https://artificialanalysis.ai/providers/novita",
+ "openrouter": "https://openrouter.ai/provider/novita"
+ },
+ "communityUrls": {
+ "linkedin": null,
+ "twitter": null,
+ "github": null,
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": null
+ },
+ "sources": [
+ {
+ "url": "https://novita.ai/docs/guides/serverless",
+ "title": "Novita AI serverless API",
+ "fields": ["name", "description", "websiteUrl", "docsUrl", "type"]
+ },
+ {
+ "url": "https://novita.ai/docs/guides/quickstart",
+ "title": "Novita AI quickstart",
+ "fields": ["applyKeyUrl"]
+ },
+ {
+ "url": "https://huggingface.co/novita",
+ "title": "Verified Novita AI Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/providers/novita",
+ "title": "Novita on Artificial Analysis",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/novita",
+ "title": "NovitaAI on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
+}
diff --git a/manifests/providers/openai.json b/manifests/providers/openai.json
index e57630d2..611d38cc 100644
--- a/manifests/providers/openai.json
+++ b/manifests/providers/openai.json
@@ -66,7 +66,7 @@
"fields": ["communityUrls.blog"]
}
],
- "lastVerifiedAt": "2026-07-18",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://openai.com",
diff --git a/manifests/providers/openrouter.json b/manifests/providers/openrouter.json
index 0f086f1f..c6db0b72 100644
--- a/manifests/providers/openrouter.json
+++ b/manifests/providers/openrouter.json
@@ -38,12 +38,12 @@
"description": "統一的 API 平台,透過單一介面提供來自不同供應商的多個 AI 模型的存取。"
}
},
- "verified": false,
+ "verified": true,
"websiteUrl": "https://openrouter.ai",
- "docsUrl": "https://openrouter.ai/docs",
+ "docsUrl": "https://openrouter.ai/docs/quickstart",
"vendor": "openrouter",
"type": "model-service-provider",
- "applyKeyUrl": "https://openrouter.ai/apply",
+ "applyKeyUrl": "https://openrouter.ai/settings/keys",
"platformUrls": {
"huggingface": null,
"artificialAnalysis": null,
@@ -57,5 +57,20 @@
"discord": null,
"reddit": null,
"blog": null
- }
+ },
+ "sources": [
+ {
+ "url": "https://openrouter.ai/docs/quickstart",
+ "title": "OpenRouter quickstart",
+ "fields": ["name", "description", "websiteUrl", "docsUrl", "type"]
+ },
+ {
+ "url": "https://openrouter.ai/docs/cookbook/get-started/migrate-to-openrouter",
+ "title": "OpenRouter API key setup",
+ "fields": ["applyKeyUrl"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/siliconflow.json b/manifests/providers/siliconflow.json
index 133777f9..7ed84413 100644
--- a/manifests/providers/siliconflow.json
+++ b/manifests/providers/siliconflow.json
@@ -43,7 +43,7 @@
"docsUrl": "https://docs.siliconflow.com",
"vendor": "siliconflow",
"type": "model-service-provider",
- "applyKeyUrl": "https://cloud.siliconflow.com/me/account/ak",
+ "applyKeyUrl": "https://cloud.siliconflow.com/account/ak",
"platformUrls": {
"huggingface": "https://huggingface.co/siliconflow",
"artificialAnalysis": "https://artificialanalysis.ai/providers/siliconflow",
@@ -90,7 +90,7 @@
"fields": ["platformUrls.openrouter"]
}
],
- "lastVerifiedAt": "2026-07-28",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high"
}
diff --git a/manifests/providers/together-ai.json b/manifests/providers/together-ai.json
new file mode 100644
index 00000000..8000557c
--- /dev/null
+++ b/manifests/providers/together-ai.json
@@ -0,0 +1,91 @@
+{
+ "$schema": "../$schemas/provider.schema.json",
+ "id": "together-ai",
+ "name": "Together AI",
+ "description": "An AI cloud platform for running open models through serverless APIs and dedicated endpoints, with fine-tuning, batch inference, and GPU infrastructure.",
+ "translations": {
+ "zh-Hans": {
+ "description": "通过无服务器 API 和专用端点运行开放模型的 AI 云平台,并提供微调、批量推理和 GPU 基础设施。"
+ },
+ "de": {
+ "description": "Eine KI-Cloud zum Ausführen offener Modelle über serverlose APIs und dedizierte Endpunkte sowie für Feinabstimmung, Batch-Inferenz und GPU-Infrastruktur."
+ },
+ "ko": {
+ "description": "서버리스 API와 전용 엔드포인트로 오픈 모델을 실행하고 파인튜닝, 배치 추론, GPU 인프라를 제공하는 AI 클라우드 플랫폼입니다."
+ },
+ "es": {
+ "description": "Plataforma de nube de IA para ejecutar modelos abiertos mediante API sin servidor y endpoints dedicados, con ajuste fino, inferencia por lotes e infraestructura de GPU."
+ },
+ "fr": {
+ "description": "Plateforme cloud d’IA pour exécuter des modèles ouverts via des API serverless et des endpoints dédiés, avec ajustement fin, inférence par lots et infrastructure GPU."
+ },
+ "id": {
+ "description": "Platform cloud AI untuk menjalankan model terbuka melalui API serverless dan endpoint khusus, dengan penyempurnaan model, inferensi batch, dan infrastruktur GPU."
+ },
+ "ja": {
+ "description": "サーバーレスAPIや専用エンドポイントでオープンモデルを実行し、ファインチューニング、バッチ推論、GPU基盤を提供するAIクラウドプラットフォーム。"
+ },
+ "pt": {
+ "description": "Plataforma de nuvem de IA para executar modelos abertos por APIs serverless e endpoints dedicados, com ajuste fino, inferência em lote e infraestrutura de GPU."
+ },
+ "ru": {
+ "description": "Облачная платформа ИИ для запуска открытых моделей через бессерверные API и выделенные конечные точки, с дообучением, пакетной обработкой и GPU-инфраструктурой."
+ },
+ "tr": {
+ "description": "Açık modelleri sunucusuz API’ler ve özel uç noktalarla çalıştıran; ince ayar, toplu çıkarım ve GPU altyapısı sunan yapay zekâ bulut platformu."
+ },
+ "zh-Hant": {
+ "description": "透過無伺服器 API 和專用端點執行開放模型的 AI 雲端平台,並提供微調、批次推論及 GPU 基礎設施。"
+ }
+ },
+ "verified": true,
+ "websiteUrl": "https://www.together.ai",
+ "docsUrl": "https://docs.together.ai/docs/quickstart",
+ "vendor": "together-ai",
+ "type": "model-service-provider",
+ "applyKeyUrl": "https://api.together.ai/settings/projects/~current/api-keys",
+ "platformUrls": {
+ "huggingface": "https://huggingface.co/togethercomputer",
+ "artificialAnalysis": "https://artificialanalysis.ai/providers/togetherai",
+ "openrouter": "https://openrouter.ai/provider/together"
+ },
+ "communityUrls": {
+ "linkedin": null,
+ "twitter": null,
+ "github": null,
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": null
+ },
+ "sources": [
+ {
+ "url": "https://docs.together.ai/docs/inference/overview",
+ "title": "Together AI inference overview",
+ "fields": ["name", "description", "websiteUrl", "type"]
+ },
+ {
+ "url": "https://docs.together.ai/docs/quickstart",
+ "title": "Together AI quickstart",
+ "fields": ["docsUrl", "applyKeyUrl", "description"]
+ },
+ {
+ "url": "https://huggingface.co/togethercomputer",
+ "title": "Verified Together AI Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://artificialanalysis.ai/providers/togetherai",
+ "title": "Together AI on Artificial Analysis",
+ "fields": ["platformUrls.artificialAnalysis"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/together",
+ "title": "Together on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
+}
diff --git a/manifests/providers/xai.json b/manifests/providers/xai.json
index 834ab981..e1b21b34 100644
--- a/manifests/providers/xai.json
+++ b/manifests/providers/xai.json
@@ -2,48 +2,48 @@
"$schema": "../$schemas/provider.schema.json",
"id": "xai",
"name": "xAI",
- "description": "xAI is a company that makes AI models.",
+ "description": "xAI's developer platform provides API access to Grok models for text generation, image understanding, reasoning, tool calling, and real-time search.",
"translations": {
"zh-Hans": {
- "description": "xAI 是一家专注于开发 AI 模型的公司。"
+ "description": "xAI 开发者平台通过 API 提供 Grok 模型访问,支持文本生成、图像理解、推理、工具调用与实时搜索。"
},
"de": {
- "description": "xAI ist ein Unternehmen, das AI-Modelle entwickelt."
+ "description": "Die Entwicklerplattform von xAI bietet API-Zugriff auf Grok-Modelle für Textgenerierung, Bildverständnis, logisches Denken, Tool-Aufrufe und Echtzeitsuche."
},
"ko": {
- "description": "xAI는 AI 모델을 개발하는 기업입니다."
+ "description": "xAI 개발자 플랫폼은 텍스트 생성, 이미지 이해, 추론, 도구 호출 및 실시간 검색을 위한 Grok 모델 API 액세스를 제공합니다."
},
"es": {
- "description": "xAI es una empresa que desarrolla modelos de IA."
+ "description": "La plataforma para desarrolladores de xAI ofrece acceso por API a modelos Grok para generar texto, comprender imágenes, razonar, usar herramientas y buscar en tiempo real."
},
"fr": {
- "description": "xAI est une entreprise qui développe des modèles d'IA."
+ "description": "La plateforme pour développeurs de xAI donne accès par API aux modèles Grok pour générer du texte, comprendre les images, raisonner, utiliser des outils et effectuer des recherches en temps réel."
},
"id": {
- "description": "xAI adalah perusahaan yang membuat model AI."
+ "description": "Platform developer xAI menyediakan akses API ke model Grok untuk pembuatan teks, pemahaman gambar, penalaran, pemanggilan alat, dan pencarian waktu nyata."
},
"ja": {
- "description": "xAIはAIモデルを開発する企業です。"
+ "description": "xAI の開発者プラットフォームは、テキスト生成、画像理解、推論、ツール呼び出し、リアルタイム検索向けの Grok モデル API を提供します。"
},
"pt": {
- "description": "xAI é uma empresa que cria modelos de IA."
+ "description": "A plataforma para desenvolvedores da xAI oferece acesso via API aos modelos Grok para gerar texto, compreender imagens, raciocinar, usar ferramentas e pesquisar em tempo real."
},
"ru": {
- "description": "xAI — компания, разрабатывающая модели ИИ."
+ "description": "Платформа xAI предоставляет API-доступ к моделям Grok для генерации текста, понимания изображений, рассуждений, вызова инструментов и поиска в реальном времени."
},
"tr": {
- "description": "xAI, AI modelleri geliştiren bir şirkettir."
+ "description": "xAI geliştirici platformu; metin üretimi, görüntü anlama, akıl yürütme, araç çağırma ve gerçek zamanlı arama için Grok modellerine API erişimi sunar."
},
"zh-Hant": {
- "description": "xAI 是一家專注於開發 AI 模型的公司。"
+ "description": "xAI 開發者平台透過 API 提供 Grok 模型存取,支援文字生成、影像理解、推理、工具呼叫及即時搜尋。"
}
},
- "verified": false,
+ "verified": true,
"websiteUrl": "https://x.ai",
- "docsUrl": "https://x.ai/api",
- "vendor": "xAI",
+ "docsUrl": "https://docs.x.ai/",
+ "vendor": "xai",
"type": "foundation-model-provider",
- "applyKeyUrl": "https://x.ai/api",
+ "applyKeyUrl": "https://console.x.ai/team/default/api-keys",
"platformUrls": {
"huggingface": null,
"artificialAnalysis": null,
@@ -57,5 +57,35 @@
"discord": null,
"reddit": null,
"blog": null
- }
+ },
+ "sources": [
+ {
+ "url": "https://x.ai/company",
+ "title": "xAI company",
+ "fields": ["name", "description", "websiteUrl", "vendor"]
+ },
+ {
+ "url": "https://docs.x.ai/",
+ "title": "xAI API documentation",
+ "fields": ["docsUrl", "type", "applyKeyUrl"]
+ },
+ {
+ "url": "https://docs.x.ai/developers/models/grok-4.20",
+ "title": "xAI Docs — Grok 4.20",
+ "fields": ["description"]
+ },
+ {
+ "url": "https://docs.x.ai/developers/tools/overview",
+ "title": "xAI Docs — Tools overview",
+ "fields": ["description"]
+ },
+ {
+ "url": "https://docs.x.ai/developers/tools/web-search",
+ "title": "xAI Docs — Web search",
+ "fields": ["description"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/providers/z-ai.json b/manifests/providers/z-ai.json
index 74cd1540..5c63f806 100644
--- a/manifests/providers/z-ai.json
+++ b/manifests/providers/z-ai.json
@@ -38,9 +38,9 @@
"description": "AI 平台,為各種應用提供先進的語言模型和 AI 服務,包括程式設計和內容產生。"
}
},
- "verified": false,
+ "verified": true,
"websiteUrl": "https://z.ai",
- "docsUrl": "https://docs.z.ai",
+ "docsUrl": "https://docs.z.ai/api-reference/introduction",
"vendor": "z-ai",
"type": "foundation-model-provider",
"applyKeyUrl": "https://z.ai/manage-apikey/apikey-list",
@@ -57,5 +57,30 @@
"discord": null,
"reddit": null,
"blog": null
- }
+ },
+ "sources": [
+ {
+ "url": "https://z.ai",
+ "title": "Z.ai",
+ "fields": ["name", "description", "websiteUrl", "vendor"]
+ },
+ {
+ "url": "https://docs.z.ai/api-reference/introduction",
+ "title": "Z.ai API introduction",
+ "fields": ["docsUrl", "type", "applyKeyUrl"]
+ },
+ {
+ "url": "https://huggingface.co/zai-org",
+ "title": "Z.ai official Hugging Face organization",
+ "fields": ["platformUrls.huggingface"]
+ },
+ {
+ "url": "https://openrouter.ai/provider/z-ai",
+ "title": "Z.ai on OpenRouter",
+ "fields": ["platformUrls.openrouter"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high"
}
diff --git a/manifests/vendors/anysphere.json b/manifests/vendors/anysphere.json
index 67b17ba3..70f9d95e 100644
--- a/manifests/vendors/anysphere.json
+++ b/manifests/vendors/anysphere.json
@@ -2,40 +2,40 @@
"$schema": "../$schemas/vendor.schema.json",
"id": "anysphere",
"name": "Anysphere",
- "description": "Anysphere is an applied research lab working on the future of programming. We are a group of researchers, engineers, and technologists inventing at the edge of what's useful and possible.",
+ "description": "Anysphere develops Cursor, an AI coding editor. In June 2026, SpaceX signed an agreement to acquire Anysphere; the transaction remains subject to closing conditions.",
"translations": {
"zh-Hans": {
- "description": "专注于编程未来的应用研究实验室,由研究人员、工程师和技术专家组成,致力于在实用性和可能性的边缘进行创新。"
+ "description": "Anysphere 开发 AI 编码编辑器 Cursor。2026 年 6 月,SpaceX 签署了收购 Anysphere 的协议;该交易仍须满足交割条件。"
},
"de": {
- "description": "Anwendungs-Forschungslabor, das an der Zukunft des Programmierens arbeitet. Eine Gruppe von Forschern, Ingenieuren und Technologen, die an der Grenze des Nützlichen und Möglichen erfinden."
+ "description": "Anysphere entwickelt Cursor, einen AI-Code-Editor. Im Juni 2026 schloss SpaceX eine Vereinbarung zur Übernahme von Anysphere; der Abschluss steht noch unter Bedingungen."
},
"ko": {
- "description": "프로그래밍의 미래를 연구하는 응용 연구실로, 연구원, 엔지니어 및 기술 전문가로 구성되어 실용성과 가능성의 경계에서 혁신을 만듭니다."
+ "description": "Anysphere는 AI 코딩 편집기 Cursor를 개발합니다. 2026년 6월 SpaceX는 Anysphere 인수 계약을 체결했으며, 거래는 아직 종결 조건을 충족해야 합니다."
},
"es": {
- "description": "Laboratorio de investigación aplicada trabajando en el futuro de la programación. Somos un grupo de investigadores, ingenieros y tecnólogos inventando en el borde de lo útil y posible."
+ "description": "Anysphere desarrolla Cursor, un editor de código con IA. En junio de 2026, SpaceX firmó un acuerdo para adquirir Anysphere; la operación sigue sujeta a condiciones de cierre."
},
"fr": {
- "description": "Laboratoire de recherche appliquée travaillant sur l'avenir de la programmation. Nous sommes un groupe de chercheurs, ingénieurs et technologues inventant à la frontière de l'utile et du possible."
+ "description": "Anysphere développe Cursor, un éditeur de code IA. En juin 2026, SpaceX a signé un accord pour acquérir Anysphere ; l’opération reste soumise aux conditions de clôture."
},
"id": {
- "description": "Laboratorium penelitian terapan yang bekerja pada masa depan pemrograman. Kami adalah kelompok peneliti, insinyur, dan teknolog yang berinovasi di batas yang berguna dan mungkin."
+ "description": "Anysphere mengembangkan Cursor, editor coding AI. Pada Juni 2026, SpaceX menandatangani perjanjian untuk mengakuisisi Anysphere; transaksi masih tunduk pada syarat penutupan."
},
"ja": {
- "description": "プログラミングの未来に取り組む応用研究ラボ。研究者、エンジニア、テクノロジストのグループとして、有用性と可能性の境界でイノベーションを作り出しています。"
+ "description": "AnysphereはAIコーディングエディタCursorを開発しています。2026年6月、SpaceXはAnysphereを買収する契約を締結しましたが、取引の完了には条件の充足が必要です。"
},
"pt": {
- "description": "Laboratório de pesquisa aplicada trabalhando no futuro da programação. Somos um grupo de pesquisadores, engenheiros e tecnólogos inventando na fronteira do útil e possível."
+ "description": "A Anysphere desenvolve o Cursor, um editor de código com IA. Em junho de 2026, a SpaceX assinou um acordo para adquirir a Anysphere; a operação ainda está sujeita a condições de fechamento."
},
"ru": {
- "description": "Прикладная исследовательская лаборатория, работающая над будущим программирования. Мы группа исследователей, инженеров и технологов, создающих новое на границе полезного и возможного."
+ "description": "Anysphere разрабатывает AI-редактор кода Cursor. В июне 2026 года SpaceX подписала соглашение о приобретении Anysphere; сделка пока зависит от выполнения условий закрытия."
},
"tr": {
- "description": "Programlamanın geleceği üzerinde çalışan bir uygulama araştırma laboratuvarı. Yararlı ve mümkün olanın sınırlarında icat eden araştırmacıların, mühendislerin ve teknologların bir grubuyuz."
+ "description": "Anysphere, AI kodlama editörü Cursor’u geliştiriyor. SpaceX Haziran 2026’da Anysphere’i satın almak için anlaşma imzaladı; işlem hâlâ kapanış koşullarına bağlı."
},
"zh-Hant": {
- "description": "專注於程式設計未來的應用研究實驗室,由研究人員、工程師和技術專家組成,致力於實用性和可能性的邊緣進行創新。"
+ "description": "Anysphere 開發 AI 程式設計編輯器 Cursor。2026 年 6 月,SpaceX 簽署了收購 Anysphere 的協議;該交易仍須滿足交割條件。"
}
},
"verified": true,
@@ -45,6 +45,11 @@
"title": "Anysphere official site",
"fields": ["name", "description", "websiteUrl"]
},
+ {
+ "url": "https://www.sec.gov/Archives/edgar/data/1181412/000162828026043411/exhibit101-8xk.htm",
+ "title": "SpaceX-Anysphere merger agreement",
+ "fields": ["description"]
+ },
{
"url": "https://github.com/anysphere",
"title": "Anysphere verified GitHub organization",
@@ -56,7 +61,7 @@
"fields": ["communityUrls.linkedin"]
}
],
- "lastVerifiedAt": "2026-07-28",
+ "lastVerifiedAt": "2026-07-31",
"verifiedBy": "codex-agent",
"confidence": "high",
"websiteUrl": "https://anysphere.inc",
diff --git a/manifests/vendors/baseten.json b/manifests/vendors/baseten.json
new file mode 100644
index 00000000..10178003
--- /dev/null
+++ b/manifests/vendors/baseten.json
@@ -0,0 +1,77 @@
+{
+ "$schema": "../$schemas/vendor.schema.json",
+ "id": "baseten",
+ "name": "Baseten",
+ "description": "Baseten develops infrastructure for training, deploying, and serving AI models with managed APIs, dedicated inference, autoscaling, and observability.",
+ "translations": {
+ "zh-Hans": {
+ "description": "Baseten 开发用于训练、部署和服务 AI 模型的基础设施,提供托管 API、专用推理、自动扩缩容和可观测性。"
+ },
+ "de": {
+ "description": "Baseten entwickelt Infrastruktur zum Trainieren, Bereitstellen und Betreiben von KI-Modellen mit verwalteten APIs, dedizierter Inferenz, Autoskalierung und Beobachtbarkeit."
+ },
+ "ko": {
+ "description": "Baseten은 관리형 API, 전용 추론, 자동 확장 및 관측 기능을 갖춘 AI 모델 학습·배포·서비스 인프라를 개발합니다."
+ },
+ "es": {
+ "description": "Baseten desarrolla infraestructura para entrenar, desplegar y servir modelos de IA con API administradas, inferencia dedicada, escalado automático y monitorización."
+ },
+ "fr": {
+ "description": "Baseten développe une infrastructure pour entraîner, déployer et servir des modèles d’IA avec des API gérées, de l’inférence dédiée, l’autoscaling et l’observabilité."
+ },
+ "id": {
+ "description": "Baseten mengembangkan infrastruktur untuk melatih, menerapkan, dan menyajikan model AI dengan API terkelola, inferensi khusus, skala otomatis, dan pemantauan."
+ },
+ "ja": {
+ "description": "Basetenは、マネージドAPI、専用推論、自動スケーリング、可観測性を備えたAIモデルの学習、デプロイ、提供基盤を開発しています。"
+ },
+ "pt": {
+ "description": "A Baseten desenvolve infraestrutura para treinar, implantar e servir modelos de IA com APIs gerenciadas, inferência dedicada, escalonamento automático e monitoramento."
+ },
+ "ru": {
+ "description": "Baseten разрабатывает инфраструктуру для обучения, развёртывания и обслуживания моделей ИИ с управляемыми API, выделенными вычислениями, автомасштабированием и наблюдаемостью."
+ },
+ "tr": {
+ "description": "Baseten; yönetilen API’ler, ayrılmış çıkarım, otomatik ölçekleme ve gözlemlenebilirlikle yapay zekâ modellerini eğitmek, dağıtmak ve sunmak için altyapı geliştirir."
+ },
+ "zh-Hant": {
+ "description": "Baseten 開發用於訓練、部署及服務 AI 模型的基礎設施,提供託管 API、專用推論、自動擴縮及可觀測性。"
+ }
+ },
+ "verified": true,
+ "sources": [
+ {
+ "url": "https://www.baseten.co",
+ "title": "Baseten official website",
+ "fields": ["name", "description", "websiteUrl"]
+ },
+ {
+ "url": "https://huggingface.co/baseten",
+ "title": "Verified Baseten Hugging Face organization",
+ "fields": ["communityUrls.twitter", "communityUrls.github"]
+ },
+ {
+ "url": "https://www.linkedin.com/company/baseten",
+ "title": "Baseten LinkedIn company page",
+ "fields": ["communityUrls.linkedin"]
+ },
+ {
+ "url": "https://www.baseten.co/blog",
+ "title": "Baseten official blog",
+ "fields": ["communityUrls.blog"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://www.baseten.co",
+ "communityUrls": {
+ "linkedin": "https://www.linkedin.com/company/baseten",
+ "twitter": "https://x.com/baseten",
+ "github": "https://github.com/basetenlabs",
+ "youtube": null,
+ "discord": null,
+ "reddit": null,
+ "blog": "https://www.baseten.co/blog"
+ }
+}
diff --git a/manifests/vendors/deepinfra.json b/manifests/vendors/deepinfra.json
new file mode 100644
index 00000000..74abdbc4
--- /dev/null
+++ b/manifests/vendors/deepinfra.json
@@ -0,0 +1,77 @@
+{
+ "$schema": "../$schemas/vendor.schema.json",
+ "id": "deepinfra",
+ "name": "DeepInfra",
+ "description": "DeepInfra builds an inference cloud spanning serverless model APIs, private deployments, GPU instances, and hosted agents.",
+ "translations": {
+ "zh-Hans": {
+ "description": "DeepInfra 构建覆盖无服务器模型 API、私有部署、GPU 实例和托管智能体的推理云。"
+ },
+ "de": {
+ "description": "DeepInfra entwickelt eine Inferenz-Cloud mit serverlosen Modell-APIs, privaten Bereitstellungen, GPU-Instanzen und verwalteten Agenten."
+ },
+ "ko": {
+ "description": "DeepInfra는 서버리스 모델 API, 비공개 배포, GPU 인스턴스 및 호스팅 에이전트를 아우르는 추론 클라우드를 구축합니다."
+ },
+ "es": {
+ "description": "DeepInfra desarrolla una nube de inferencia con API de modelos sin servidor, despliegues privados, instancias GPU y agentes alojados."
+ },
+ "fr": {
+ "description": "DeepInfra développe un cloud d’inférence réunissant API de modèles serverless, déploiements privés, instances GPU et agents hébergés."
+ },
+ "id": {
+ "description": "DeepInfra membangun cloud inferensi yang mencakup API model serverless, deployment privat, instans GPU, dan agen terkelola."
+ },
+ "ja": {
+ "description": "DeepInfraは、サーバーレスモデルAPI、プライベートデプロイ、GPUインスタンス、ホステッドエージェントを備えた推論クラウドを構築しています。"
+ },
+ "pt": {
+ "description": "A DeepInfra desenvolve uma nuvem de inferência com APIs de modelos serverless, implantações privadas, instâncias de GPU e agentes hospedados."
+ },
+ "ru": {
+ "description": "DeepInfra создаёт облако инференса с бессерверными API моделей, частными развёртываниями, GPU-инстансами и размещёнными агентами."
+ },
+ "tr": {
+ "description": "DeepInfra; sunucusuz model API erişimi, özel dağıtımlar, GPU örnekleri ve barındırılan ajanlar içeren bir çıkarım bulutu geliştirir."
+ },
+ "zh-Hant": {
+ "description": "DeepInfra 建構涵蓋無伺服器模型 API、私有部署、GPU 執行個體及託管代理程式的推論雲。"
+ }
+ },
+ "verified": true,
+ "sources": [
+ {
+ "url": "https://deepinfra.com/about",
+ "title": "DeepInfra about",
+ "fields": ["name", "description", "websiteUrl"]
+ },
+ {
+ "url": "https://docs.deepinfra.com/quickstart",
+ "title": "DeepInfra official documentation and community links",
+ "fields": [
+ "communityUrls.twitter",
+ "communityUrls.github",
+ "communityUrls.linkedin",
+ "communityUrls.discord"
+ ]
+ },
+ {
+ "url": "https://deepinfra.com/blog",
+ "title": "DeepInfra official blog",
+ "fields": ["communityUrls.blog"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://deepinfra.com",
+ "communityUrls": {
+ "linkedin": "https://www.linkedin.com/company/deep-infra",
+ "twitter": "https://x.com/deepinfra",
+ "github": "https://github.com/deepinfra",
+ "youtube": null,
+ "discord": "https://discord.com/invite/x88dCvhqYq",
+ "reddit": null,
+ "blog": "https://deepinfra.com/blog"
+ }
+}
diff --git a/manifests/vendors/deepseek.json b/manifests/vendors/deepseek.json
index 7546340c..4c6a015a 100644
--- a/manifests/vendors/deepseek.json
+++ b/manifests/vendors/deepseek.json
@@ -24,7 +24,7 @@
{
"id": "deepseek-flash",
"name": "DeepSeek Flash",
- "modelIds": ["deepseek-v4-flash"]
+ "modelIds": ["deepseek-v4-flash-preview", "deepseek-v4-flash"]
}
],
"description": "A leading AI research company focused on developing advanced language models and AI technology for coding and general intelligence.",
diff --git a/manifests/vendors/fireworks-ai.json b/manifests/vendors/fireworks-ai.json
new file mode 100644
index 00000000..26aaedca
--- /dev/null
+++ b/manifests/vendors/fireworks-ai.json
@@ -0,0 +1,84 @@
+{
+ "$schema": "../$schemas/vendor.schema.json",
+ "id": "fireworks-ai",
+ "name": "Fireworks AI",
+ "aliases": ["fireworks-ai"],
+ "description": "Fireworks AI develops infrastructure for training, fine-tuning, and serving open and custom AI models across serverless and dedicated deployments.",
+ "translations": {
+ "zh-Hans": {
+ "description": "Fireworks AI 开发用于训练、微调和服务开放及自定义 AI 模型的基础设施,支持无服务器和专用部署。"
+ },
+ "de": {
+ "description": "Fireworks AI entwickelt Infrastruktur zum Trainieren, Feinabstimmen und Bereitstellen offener und eigener KI-Modelle in serverlosen und dedizierten Umgebungen."
+ },
+ "ko": {
+ "description": "Fireworks AI는 서버리스 및 전용 배포에서 오픈 모델과 사용자 지정 AI 모델을 학습, 파인튜닝, 서비스하기 위한 인프라를 개발합니다."
+ },
+ "es": {
+ "description": "Fireworks AI desarrolla infraestructura para entrenar, ajustar y servir modelos de IA abiertos y personalizados en despliegues sin servidor y dedicados."
+ },
+ "fr": {
+ "description": "Fireworks AI développe une infrastructure pour entraîner, ajuster et servir des modèles d’IA ouverts et personnalisés sur des déploiements serverless et dédiés."
+ },
+ "id": {
+ "description": "Fireworks AI mengembangkan infrastruktur untuk melatih, menyempurnakan, dan menyajikan model AI terbuka dan kustom melalui deployment serverless dan khusus."
+ },
+ "ja": {
+ "description": "Fireworks AIは、オープンモデルやカスタムAIモデルをサーバーレスまたは専用環境で学習、ファインチューニング、提供する基盤を開発しています。"
+ },
+ "pt": {
+ "description": "A Fireworks AI desenvolve infraestrutura para treinar, ajustar e servir modelos de IA abertos e personalizados em implantações serverless e dedicadas."
+ },
+ "ru": {
+ "description": "Fireworks AI разрабатывает инфраструктуру для обучения, дообучения и обслуживания открытых и пользовательских моделей ИИ в бессерверных и выделенных средах."
+ },
+ "tr": {
+ "description": "Fireworks AI, açık ve özel yapay zekâ modellerini sunucusuz ve ayrılmış ortamlarda eğitmek, ince ayarlamak ve sunmak için altyapı geliştirir."
+ },
+ "zh-Hant": {
+ "description": "Fireworks AI 開發用於訓練、微調及服務開放與自訂 AI 模型的基礎設施,支援無伺服器和專用部署。"
+ }
+ },
+ "verified": true,
+ "sources": [
+ {
+ "url": "https://fireworks.ai",
+ "title": "Fireworks AI official website",
+ "fields": ["name", "description", "websiteUrl"]
+ },
+ {
+ "url": "https://docs.fireworks.ai/faq/general/support/platform-support",
+ "title": "Fireworks support and official community links",
+ "fields": [
+ "communityUrls.twitter",
+ "communityUrls.github",
+ "communityUrls.youtube",
+ "communityUrls.discord",
+ "communityUrls.blog"
+ ]
+ },
+ {
+ "url": "https://www.linkedin.com/company/fireworks-ai",
+ "title": "Fireworks AI LinkedIn company page",
+ "fields": ["communityUrls.linkedin"]
+ },
+ {
+ "url": "https://huggingface.co/fireworks-ai",
+ "title": "Verified Fireworks AI Hugging Face organization",
+ "fields": ["communityUrls.twitter", "communityUrls.github"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://fireworks.ai",
+ "communityUrls": {
+ "linkedin": "https://www.linkedin.com/company/fireworks-ai",
+ "twitter": "https://x.com/FireworksAI_HQ",
+ "github": "https://github.com/fw-ai",
+ "youtube": "https://www.youtube.com/@fireworksai",
+ "discord": "https://discord.gg/fireworks-ai",
+ "reddit": null,
+ "blog": "https://fireworks.ai/blog"
+ }
+}
diff --git a/manifests/vendors/novita-ai.json b/manifests/vendors/novita-ai.json
new file mode 100644
index 00000000..4d597539
--- /dev/null
+++ b/manifests/vendors/novita-ai.json
@@ -0,0 +1,78 @@
+{
+ "$schema": "../$schemas/vendor.schema.json",
+ "id": "novita-ai",
+ "name": "Novita AI",
+ "aliases": ["novita-ai"],
+ "description": "Novita AI develops cloud infrastructure for model APIs, GPU instances, serverless inference, dedicated deployments, and isolated agent runtimes.",
+ "translations": {
+ "zh-Hans": {
+ "description": "Novita AI 开发面向模型 API、GPU 实例、无服务器推理、专用部署和隔离智能体运行环境的云基础设施。"
+ },
+ "de": {
+ "description": "Novita AI entwickelt Cloud-Infrastruktur für Modell-APIs, GPU-Instanzen, serverlose Inferenz, dedizierte Bereitstellungen und isolierte Agentenlaufzeiten."
+ },
+ "ko": {
+ "description": "Novita AI는 모델 API, GPU 인스턴스, 서버리스 추론, 전용 배포 및 격리 에이전트 런타임을 위한 클라우드 인프라를 개발합니다."
+ },
+ "es": {
+ "description": "Novita AI desarrolla infraestructura en la nube para API de modelos, instancias GPU, inferencia sin servidor, despliegues dedicados y entornos aislados para agentes."
+ },
+ "fr": {
+ "description": "Novita AI développe une infrastructure cloud pour les API de modèles, les instances GPU, l’inférence serverless, les déploiements dédiés et les agents isolés."
+ },
+ "id": {
+ "description": "Novita AI mengembangkan infrastruktur cloud untuk API model, instans GPU, inferensi serverless, deployment khusus, dan runtime agen terisolasi."
+ },
+ "ja": {
+ "description": "Novita AIは、モデルAPI、GPUインスタンス、サーバーレス推論、専用デプロイ、分離エージェントランタイム向けのクラウド基盤を開発しています。"
+ },
+ "pt": {
+ "description": "A Novita AI desenvolve infraestrutura em nuvem para APIs de modelos, instâncias de GPU, inferência serverless, implantações dedicadas e agentes isolados."
+ },
+ "ru": {
+ "description": "Novita AI развивает облачную инфраструктуру для API моделей, GPU-инстансов, бессерверного инференса, выделенных развёртываний и изолированных сред агентов."
+ },
+ "tr": {
+ "description": "Novita AI; model API'leri, GPU örnekleri, sunucusuz çıkarım, ayrılmış dağıtımlar ve yalıtılmış ajan çalışma ortamları için bulut altyapısı geliştirir."
+ },
+ "zh-Hant": {
+ "description": "Novita AI 開發用於模型 API、GPU 執行個體、無伺服器推論、專用部署及隔離代理程式執行環境的雲端基礎設施。"
+ }
+ },
+ "verified": true,
+ "sources": [
+ {
+ "url": "https://novita.ai",
+ "title": "Novita AI official website",
+ "fields": ["name", "description", "websiteUrl", "communityUrls.blog"]
+ },
+ {
+ "url": "https://huggingface.co/novita",
+ "title": "Verified Novita AI Hugging Face organization",
+ "fields": [
+ "communityUrls.twitter",
+ "communityUrls.github",
+ "communityUrls.linkedin",
+ "communityUrls.discord"
+ ]
+ },
+ {
+ "url": "https://github.com/novitalabs",
+ "title": "Novita AI official GitHub organization",
+ "fields": ["communityUrls.twitter", "communityUrls.github", "communityUrls.youtube"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://novita.ai",
+ "communityUrls": {
+ "linkedin": "https://www.linkedin.com/company/novita-ai-labs",
+ "twitter": "https://x.com/novita_ai_labs",
+ "github": "https://github.com/novitalabs",
+ "youtube": "https://www.youtube.com/@novita_ai",
+ "discord": "https://discord.com/invite/YyPRAzwp7P",
+ "reddit": null,
+ "blog": "https://blogs.novita.ai/"
+ }
+}
diff --git a/manifests/vendors/together-ai.json b/manifests/vendors/together-ai.json
new file mode 100644
index 00000000..fef4bedf
--- /dev/null
+++ b/manifests/vendors/together-ai.json
@@ -0,0 +1,83 @@
+{
+ "$schema": "../$schemas/vendor.schema.json",
+ "id": "together-ai",
+ "name": "Together AI",
+ "aliases": ["together-ai"],
+ "description": "Together AI develops an AI cloud for inference, model customization, training, and GPU compute, supported by its systems research.",
+ "translations": {
+ "zh-Hans": {
+ "description": "Together AI 开发用于推理、模型定制、训练和 GPU 计算的 AI 云,并以系统研究为支撑。"
+ },
+ "de": {
+ "description": "Together AI entwickelt eine durch Systemforschung gestützte KI-Cloud für Inferenz, Modellanpassung, Training und GPU-Computing."
+ },
+ "ko": {
+ "description": "Together AI는 시스템 연구를 기반으로 추론, 모델 맞춤화, 학습 및 GPU 컴퓨팅을 위한 AI 클라우드를 개발합니다."
+ },
+ "es": {
+ "description": "Together AI desarrolla una nube de IA para inferencia, personalización de modelos, entrenamiento y cómputo con GPU, respaldada por su investigación de sistemas."
+ },
+ "fr": {
+ "description": "Together AI développe un cloud d’IA pour l’inférence, la personnalisation des modèles, l’entraînement et le calcul GPU, soutenu par ses recherches systèmes."
+ },
+ "id": {
+ "description": "Together AI mengembangkan cloud AI untuk inferensi, kustomisasi model, pelatihan, dan komputasi GPU yang didukung oleh riset sistem."
+ },
+ "ja": {
+ "description": "Together AIは、システム研究を基盤に、推論、モデルのカスタマイズ、学習、GPUコンピューティング向けのAIクラウドを開発しています。"
+ },
+ "pt": {
+ "description": "A Together AI desenvolve uma nuvem de IA para inferência, personalização de modelos, treinamento e computação em GPU, apoiada por sua pesquisa de sistemas."
+ },
+ "ru": {
+ "description": "Together AI разрабатывает облако ИИ для инференса, настройки моделей, обучения и GPU-вычислений на основе собственных системных исследований."
+ },
+ "tr": {
+ "description": "Together AI, sistem araştırmalarıyla desteklenen; çıkarım, model özelleştirme, eğitim ve GPU hesaplama için bir yapay zekâ bulutu geliştirir."
+ },
+ "zh-Hant": {
+ "description": "Together AI 開發用於推論、模型客製、訓練和 GPU 運算的 AI 雲端,並以系統研究為支撐。"
+ }
+ },
+ "verified": true,
+ "sources": [
+ {
+ "url": "https://www.together.ai/about-us",
+ "title": "Together AI about page",
+ "fields": ["name", "description", "websiteUrl"]
+ },
+ {
+ "url": "https://docs.together.ai/docs/support",
+ "title": "Together AI support and Discord community",
+ "fields": ["communityUrls.discord"]
+ },
+ {
+ "url": "https://huggingface.co/togethercomputer",
+ "title": "Verified Together AI Hugging Face organization",
+ "fields": ["communityUrls.twitter", "communityUrls.github"]
+ },
+ {
+ "url": "https://www.linkedin.com/company/togethercomputer",
+ "title": "Together AI LinkedIn company page",
+ "fields": ["communityUrls.linkedin"]
+ },
+ {
+ "url": "https://www.together.ai/blog",
+ "title": "Together AI official blog",
+ "fields": ["communityUrls.blog"]
+ }
+ ],
+ "lastVerifiedAt": "2026-07-31",
+ "verifiedBy": "codex-agent",
+ "confidence": "high",
+ "websiteUrl": "https://www.together.ai",
+ "communityUrls": {
+ "linkedin": "https://www.linkedin.com/company/togethercomputer",
+ "twitter": "https://x.com/togethercompute",
+ "github": "https://github.com/togethercomputer",
+ "youtube": null,
+ "discord": "https://discord.com/invite/9Rk6sSeWEG",
+ "reddit": null,
+ "blog": "https://www.together.ai/blog"
+ }
+}
diff --git a/src/app/[locale]/clis/page.client.tsx b/src/app/[locale]/clis/page.client.tsx
index acddf8d0..b3e4e4a5 100644
--- a/src/app/[locale]/clis/page.client.tsx
+++ b/src/app/[locale]/clis/page.client.tsx
@@ -2,13 +2,12 @@
import { useTranslations } from 'next-intl'
import { useMemo, useState } from 'react'
-import { DeprecatedBadge } from '@/components/controls/DeprecatedBadge'
import FilterSortBar from '@/components/controls/FilterSortBar'
-import { VerifiedBadge } from '@/components/controls/VerifiedBadge'
import Footer from '@/components/Footer'
import Header from '@/components/Header'
import StackTabs from '@/components/navigation/StackTabs'
import PageHeader from '@/components/PageHeader'
+import { ProductCardTitle } from '@/components/product/ProductCardTitle'
import type { Locale } from '@/i18n/config'
import { Link } from '@/i18n/navigation'
import { clisData } from '@/lib/generated'
@@ -137,18 +136,13 @@ export default function CLIsPageClient({ locale }: Props) {
-
-
-
{cli.name}
- {cli.verified && }
- {cli.deprecated && }
-
-
- →
-
-
+
{cli.description}
diff --git a/src/app/[locale]/desktops/page.client.tsx b/src/app/[locale]/desktops/page.client.tsx
index 8d2b0a65..1bc92646 100644
--- a/src/app/[locale]/desktops/page.client.tsx
+++ b/src/app/[locale]/desktops/page.client.tsx
@@ -3,11 +3,11 @@
import { useTranslations } from 'next-intl'
import { useMemo, useState } from 'react'
import FilterSortBar from '@/components/controls/FilterSortBar'
-import { VerifiedBadge } from '@/components/controls/VerifiedBadge'
import Footer from '@/components/Footer'
import Header from '@/components/Header'
import StackTabs from '@/components/navigation/StackTabs'
import PageHeader from '@/components/PageHeader'
+import { ProductCardTitle } from '@/components/product/ProductCardTitle'
import type { Locale } from '@/i18n/config'
import { Link } from '@/i18n/navigation'
import { desktopsData } from '@/lib/generated'
@@ -85,17 +85,13 @@ export default function DesktopsPageClient({ locale }: Props) {
-
-
-
{desktop.name}
- {desktop.verified && }
-
-
- →
-
-
+
{desktop.description}
diff --git a/src/app/[locale]/extensions/page.client.tsx b/src/app/[locale]/extensions/page.client.tsx
index ddba4486..d1d27da0 100644
--- a/src/app/[locale]/extensions/page.client.tsx
+++ b/src/app/[locale]/extensions/page.client.tsx
@@ -3,11 +3,11 @@
import { useTranslations } from 'next-intl'
import { useMemo, useState } from 'react'
import FilterSortBar from '@/components/controls/FilterSortBar'
-import { VerifiedBadge } from '@/components/controls/VerifiedBadge'
import Footer from '@/components/Footer'
import Header from '@/components/Header'
import StackTabs from '@/components/navigation/StackTabs'
import PageHeader from '@/components/PageHeader'
+import { ProductCardTitle } from '@/components/product/ProductCardTitle'
import type { Locale } from '@/i18n/config'
import { Link } from '@/i18n/navigation'
import { extensionsData } from '@/lib/generated'
@@ -141,17 +141,13 @@ export default function ExtensionsPageClient({ locale }: Props) {
-
-
-
{extension.name}
- {extension.verified && }
-
-
- →
-
-
+
{extension.description}
diff --git a/src/app/[locale]/ides/page.client.tsx b/src/app/[locale]/ides/page.client.tsx
index c27d8bd2..ac88c3df 100644
--- a/src/app/[locale]/ides/page.client.tsx
+++ b/src/app/[locale]/ides/page.client.tsx
@@ -3,11 +3,11 @@
import { useTranslations } from 'next-intl'
import { useMemo, useState } from 'react'
import FilterSortBar from '@/components/controls/FilterSortBar'
-import { VerifiedBadge } from '@/components/controls/VerifiedBadge'
import Footer from '@/components/Footer'
import Header from '@/components/Header'
import StackTabs from '@/components/navigation/StackTabs'
import PageHeader from '@/components/PageHeader'
+import { ProductCardTitle } from '@/components/product/ProductCardTitle'
import type { Locale } from '@/i18n/config'
import { Link } from '@/i18n/navigation'
import { idesData } from '@/lib/generated'
@@ -136,17 +136,13 @@ export default function IDEsPageClient({ locale }: Props) {
-
-
-
{ide.name}
- {ide.verified && }
-
-
- →
-
-
+
{ide.description}
diff --git a/src/app/[locale]/model-providers/page.client.tsx b/src/app/[locale]/model-providers/page.client.tsx
index 1e338dad..b2b3e919 100644
--- a/src/app/[locale]/model-providers/page.client.tsx
+++ b/src/app/[locale]/model-providers/page.client.tsx
@@ -94,16 +94,13 @@ export default function ModelProvidersPageClient({ locale }: Props) {
-
+
{provider.name}
{provider.verified && }
-
- →
-
{provider.description}
@@ -122,16 +119,13 @@ export default function ModelProvidersPageClient({ locale }: Props) {
-
+
{provider.name}
{provider.verified && }
-
- →
-
{provider.description}
diff --git a/src/app/[locale]/models/[slug]/page.tsx b/src/app/[locale]/models/[slug]/page.tsx
index 8074de4f..623147ae 100644
--- a/src/app/[locale]/models/[slug]/page.tsx
+++ b/src/app/[locale]/models/[slug]/page.tsx
@@ -44,10 +44,12 @@ export async function generateMetadata({
description: model.description || '',
vendor: model.vendor,
size: model.size ?? undefined,
+ activeParameters: model.activeParameters ?? undefined,
contextWindow: model.contextWindow,
maxOutput: model.maxOutput ?? undefined,
lifecycle: model.lifecycle,
tokenPricing: model.tokenPricing,
+ referenceTokenPricing: model.referenceTokenPricing,
},
translationNamespace: 'pages.modelDetail',
})
@@ -84,7 +86,15 @@ export default async function ModelPage({
// Build additional info for ProductHero
const additionalInfo = [
- model.size && { label: tShared('terms.modelSize'), value: model.size },
+ model.size && {
+ label: tShared('terms.modelSize'),
+ value: model.activeParameters
+ ? tShared('modelParameters.totalAndActive', {
+ total: model.size,
+ active: model.activeParameters,
+ })
+ : model.size,
+ },
{
label: tShared('terms.contextWindow'),
value: `${model.contextWindow.toLocaleString()} tokens`,
diff --git a/src/app/[locale]/models/compare/[models]/page.client.tsx b/src/app/[locale]/models/compare/[models]/page.client.tsx
index 9b9e9249..c47ff4f9 100644
--- a/src/app/[locale]/models/compare/[models]/page.client.tsx
+++ b/src/app/[locale]/models/compare/[models]/page.client.tsx
@@ -9,7 +9,7 @@ import type { Locale } from '@/i18n/config'
import { Link, useRouter } from '@/i18n/navigation'
import { providersData } from '@/lib/generated'
import { buildModelComparisonPath } from '@/lib/model-comparison'
-import { type CurrencyConversion, formatPrimaryTokenRate } from '@/lib/model-pricing'
+import { type CurrencyConversion, formatModelTokenRate } from '@/lib/model-pricing'
import type {
ManifestBenchmarks,
ManifestModel,
@@ -55,6 +55,7 @@ const FALLBACK_MODEL: ManifestModel = {
websiteUrl: '',
docsUrl: null,
size: '',
+ activeParameters: null,
contextWindow: 0,
maxOutput: 0,
tokenPricing: EMPTY_TOKEN_PRICING,
@@ -106,7 +107,7 @@ const createPriceRenderer = (
formatPerMillion: (price: string) => string
) => {
return (model: ManifestModel) => {
- const price = formatPrimaryTokenRate(model.tokenPricing, rate, locale, conversion)
+ const price = formatModelTokenRate(model, rate, locale, conversion)
return price ? formatPerMillion(price) : '-'
}
}
@@ -277,7 +278,14 @@ export default function ComparePageClient({
groupLabel: tShared('capabilities.capabilities'),
key: 'size',
label: tShared('terms.modelSize'),
- render: createSimpleRenderer(m => m.size),
+ render: createSimpleRenderer(m =>
+ m.size && m.activeParameters
+ ? tShared('modelParameters.totalAndActive', {
+ total: m.size,
+ active: m.activeParameters,
+ })
+ : m.size
+ ),
},
{
group: 'capabilities',
diff --git a/src/app/[locale]/models/page.client.tsx b/src/app/[locale]/models/page.client.tsx
index 543ff20a..1c922582 100644
--- a/src/app/[locale]/models/page.client.tsx
+++ b/src/app/[locale]/models/page.client.tsx
@@ -16,7 +16,8 @@ import { formatTokenCount } from '@/lib/format'
import { modelsData } from '@/lib/generated'
import { localizeManifestItems } from '@/lib/manifest-i18n'
import { buildModelComparisonPath } from '@/lib/model-comparison'
-import { formatPrimaryTokenRate } from '@/lib/model-pricing'
+import { groupModelsByLifecycle } from '@/lib/model-list'
+import { formatModelTokenRate } from '@/lib/model-pricing'
import type { ManifestModel } from '@/types/manifests'
type Props = {
@@ -67,21 +68,10 @@ export default function ModelsPageClient({ locale }: Props) {
}, [localizedModels, searchQuery])
// Group filtered models by lifecycle
- const modelsByLifecycle = useMemo(() => {
- const groups = {
- latest: [] as ManifestModel[],
- maintained: [] as ManifestModel[],
- deprecated: [] as ManifestModel[],
- }
- filteredModels.forEach(model => {
- const lifecycle = model.lifecycle || 'maintained'
- groups[lifecycle].push(model)
- })
- return groups
- }, [filteredModels])
+ const modelsByLifecycle = useMemo(() => groupModelsByLifecycle(filteredModels), [filteredModels])
const formatListPrice = (model: ManifestModel): string => {
- const price = formatPrimaryTokenRate(model.tokenPricing, 'input', locale, conversion)
+ const price = formatModelTokenRate(model, 'input', locale, conversion)
return price
? tShared('modelPricing.perMillionTokens', { price })
: tShared('modelPricing.notAvailable')
@@ -109,11 +99,11 @@ export default function ModelsPageClient({ locale }: Props) {
-
+
{tPage('guide.title')}
-
+
{tPage('guide.description')}
@@ -150,28 +140,35 @@ export default function ModelsPageClient({ locale }: Props) {
{tShared(`lifecycle.${lifecycle}`)}
{modelsByLifecycle[lifecycle].length > 0 ? (
-
+
{modelsByLifecycle[lifecycle].map(model => (
-
+
-
-
{model.name}
+
+
+ {model.name}
+
{model.verified && }
-
+
{tPage('size')}
- {model.size ?? '—'}
+ {model.size && model.activeParameters
+ ? tShared('modelParameters.totalAndActive', {
+ total: model.size,
+ active: model.activeParameters,
+ })
+ : (model.size ?? '—')}
@@ -191,24 +188,26 @@ export default function ModelsPageClient({ locale }: Props) {
-
- {model.vendor}
-
-
+
+
+ {model.vendor}
+
+
+
))}
diff --git a/src/app/[locale]/vendors/page.client.tsx b/src/app/[locale]/vendors/page.client.tsx
index 9ef639e8..d9d862b6 100644
--- a/src/app/[locale]/vendors/page.client.tsx
+++ b/src/app/[locale]/vendors/page.client.tsx
@@ -11,6 +11,7 @@ import type { Locale } from '@/i18n/config'
import { Link } from '@/i18n/navigation'
import { vendorsData } from '@/lib/generated'
import { localizeManifestItems } from '@/lib/manifest-i18n'
+import { groupVendorsByCompanyStage } from '@/lib/vendor-list'
import type { ManifestVendor } from '@/types/manifests'
type Props = {
@@ -59,6 +60,11 @@ export default function VendorsPageClient({ locale }: Props) {
return result
}, [localizedVendors, searchQuery])
+ const vendorGroups = useMemo(
+ () => groupVendorsByCompanyStage(filteredVendors, locale),
+ [filteredVendors, locale]
+ )
+
return (
<>
@@ -81,28 +87,36 @@ export default function VendorsPageClient({ locale }: Props) {
/>
-
- {filteredVendors.map(vendor => (
-
-
-
-
{vendor.name}
- {vendor.verified && }
-
-
- →
-
+ {vendorGroups.map(group => (
+
+
+ {tPage(`companyStages.${group.translationKey}`)}
+
+ {group.vendors.length > 0 ? (
+
+ {group.vendors.map(vendor => (
+
+
+
+
{vendor.name}
+ {vendor.verified && }
+
+
+
+ {vendor.description}
+
+
+ ))}
-
- {vendor.description}
-
-
- ))}
-
+ ) : (
+
{tPage('noResults')}
+ )}
+
+ ))}
diff --git a/src/components/product/ModelSpecifications.tsx b/src/components/product/ModelSpecifications.tsx
index 96bb332e..3e293b3e 100644
--- a/src/components/product/ModelSpecifications.tsx
+++ b/src/components/product/ModelSpecifications.tsx
@@ -3,7 +3,12 @@
import { useLocale, useTranslations } from 'next-intl'
import { useCurrency } from '@/components/CurrencyProvider'
import { formatTokenCount } from '@/lib/format'
-import { convertTokenRate, formatTokenRate, isTokenPricingAvailable } from '@/lib/model-pricing'
+import {
+ convertTokenRate,
+ formatReferenceTokenRate,
+ formatTokenRate,
+ isTokenPricingAvailable,
+} from '@/lib/model-pricing'
import type {
ManifestModel,
ManifestTokenPricingCondition,
@@ -11,7 +16,16 @@ import type {
} from '@/types/manifests'
export interface ModelSpecificationsProps {
- model: Pick
+ model: Pick<
+ ManifestModel,
+ | 'size'
+ | 'activeParameters'
+ | 'contextWindow'
+ | 'maxOutput'
+ | 'tokenPricing'
+ | 'referenceTokenPricing'
+ | 'lifecycle'
+ >
}
const reasonKeys: Record = {
@@ -32,7 +46,14 @@ export function ModelSpecifications({ model }: ModelSpecificationsProps) {
const locale = useLocale()
const tShared = useTranslations('shared')
const { conversion } = useCurrency()
- const hasContent = model.size || model.contextWindow || model.maxOutput || model.tokenPricing
+ const parameterSize =
+ model.size && model.activeParameters
+ ? tShared('modelParameters.totalAndActive', {
+ total: model.size,
+ active: model.activeParameters,
+ })
+ : model.size
+ const hasContent = parameterSize || model.contextWindow || model.maxOutput || model.tokenPricing
const currencyNames = new Intl.DisplayNames(locale, { type: 'currency' })
const formatCurrencyName = (currency: string) => currencyNames.of(currency) ?? currency
@@ -80,12 +101,12 @@ export function ModelSpecifications({ model }: ModelSpecificationsProps) {
- {model.size && (
+ {parameterSize && (
{tShared('terms.modelSize')}
-
{model.size}
+
{parameterSize}
)}
@@ -144,10 +165,13 @@ export function ModelSpecifications({ model }: ModelSpecificationsProps) {
)}
- {offer.tiers.map((tier, index) => {
+ {offer.tiers.map(tier => {
const condition = formatCondition(tier.condition)
+ const tierKey = tier.condition
+ ? `${tier.condition.metric}-${tier.condition.min ?? 'min'}-${tier.condition.max ?? 'max'}`
+ : 'default'
return (
-
+
{condition && (
{condition}
@@ -182,6 +206,39 @@ export function ModelSpecifications({ model }: ModelSpecificationsProps) {
)
})}
+ ) : model.referenceTokenPricing ? (
+
+
+ {tShared(reasonKeys[model.tokenPricing.reason])}
+
+
+ {rateRows.map(([rate, label]) => {
+ const price = formatReferenceTokenRate(
+ model.referenceTokenPricing!,
+ rate,
+ locale,
+ conversion
+ )
+ if (!price) return null
+ return (
+
+ {label}
+
+ {tShared('modelPricing.perMillionTokens', { price })}
+
+
+ )
+ })}
+
+ {model.referenceTokenPricing.source.name}
+
+
+
) : (
{tShared(reasonKeys[model.tokenPricing.reason])}
diff --git a/src/components/product/ProductCardTitle.tsx b/src/components/product/ProductCardTitle.tsx
new file mode 100644
index 00000000..d34f418f
--- /dev/null
+++ b/src/components/product/ProductCardTitle.tsx
@@ -0,0 +1,20 @@
+import { DeprecatedBadge } from '@/components/controls/DeprecatedBadge'
+import { VerifiedBadge } from '@/components/controls/VerifiedBadge'
+
+type ProductCardTitleProps = {
+ name: string
+ verified?: boolean
+ deprecated?: boolean
+}
+
+export function ProductCardTitle({ name, verified, deprecated }: ProductCardTitleProps) {
+ return (
+
+
+
{name}
+ {verified && }
+
+ {deprecated &&
}
+
+ )
+}
diff --git a/src/components/product/VendorModels.tsx b/src/components/product/VendorModels.tsx
index bb50f28c..232d2df1 100644
--- a/src/components/product/VendorModels.tsx
+++ b/src/components/product/VendorModels.tsx
@@ -36,7 +36,12 @@ export function VendorModels({ models }: { models: ManifestModel[] }) {
{model.size && (
- {model.size}
+ {model.activeParameters
+ ? tShared('modelParameters.totalAndActive', {
+ total: model.size,
+ active: model.activeParameters,
+ })
+ : model.size}
)}
diff --git a/src/lib/generated/clis.ts b/src/lib/generated/clis.ts
index 9d391a2e..85dc097c 100644
--- a/src/lib/generated/clis.ts
+++ b/src/lib/generated/clis.ts
@@ -24,12 +24,10 @@ import KiloCodeCli from '../../../manifests/clis/kilo-code-cli.json'
import KimiCli from '../../../manifests/clis/kimi-cli.json'
import KiroCli from '../../../manifests/clis/kiro-cli.json'
import Kode from '../../../manifests/clis/kode.json'
-import NeovateCode from '../../../manifests/clis/neovate-code.json'
import Omp from '../../../manifests/clis/omp.json'
import Opencode from '../../../manifests/clis/opencode.json'
import QoderCli from '../../../manifests/clis/qoder-cli.json'
import QwenCode from '../../../manifests/clis/qwen-code.json'
-import RovoDevCli from '../../../manifests/clis/rovo-dev-cli.json'
import VibeCli from '../../../manifests/clis/vibe-cli.json'
import type { ManifestCLI } from '../../types/manifests'
@@ -54,12 +52,10 @@ export const clisData = [
KimiCli,
KiroCli,
Kode,
- NeovateCode,
Omp,
Opencode,
QoderCli,
QwenCode,
- RovoDevCli,
VibeCli,
] as unknown as ManifestCLI[]
diff --git a/src/lib/generated/desktops.ts b/src/lib/generated/desktops.ts
index 789cd664..3ecf95c0 100644
--- a/src/lib/generated/desktops.ts
+++ b/src/lib/generated/desktops.ts
@@ -6,30 +6,28 @@
import Air from '../../../manifests/desktops/air.json'
import ClaudeCodeDesktop from '../../../manifests/desktops/claude-code-desktop.json'
+import Codebuddy from '../../../manifests/desktops/codebuddy.json'
import CodexApp from '../../../manifests/desktops/codex-app.json'
import FactoryDesktop from '../../../manifests/desktops/factory-desktop.json'
import MinimaxCode from '../../../manifests/desktops/minimax-code.json'
import OpencodeDesktop from '../../../manifests/desktops/opencode-desktop.json'
import Qoder from '../../../manifests/desktops/qoder.json'
import Stagewise from '../../../manifests/desktops/stagewise.json'
-import TraeWork from '../../../manifests/desktops/trae-work.json'
import VerdentDeck from '../../../manifests/desktops/verdent-deck.json'
-import Workbuddy from '../../../manifests/desktops/workbuddy.json'
import Zcode from '../../../manifests/desktops/zcode.json'
import type { ManifestDesktop } from '../../types/manifests'
export const desktopsData = [
Air,
ClaudeCodeDesktop,
+ Codebuddy,
CodexApp,
FactoryDesktop,
MinimaxCode,
OpencodeDesktop,
Qoder,
Stagewise,
- TraeWork,
VerdentDeck,
- Workbuddy,
Zcode,
] as unknown as ManifestDesktop[]
diff --git a/src/lib/generated/ides.ts b/src/lib/generated/ides.ts
index 0a5ecba9..0b49aa59 100644
--- a/src/lib/generated/ides.ts
+++ b/src/lib/generated/ides.ts
@@ -5,7 +5,6 @@
*/
import Antigravity from '../../../manifests/ides/antigravity.json'
-import Codebuddy from '../../../manifests/ides/codebuddy.json'
import Cursor from '../../../manifests/ides/cursor.json'
import IntellijIdea from '../../../manifests/ides/intellij-idea.json'
import Kiro from '../../../manifests/ides/kiro.json'
@@ -17,7 +16,6 @@ import type { ManifestIDE } from '../../types/manifests'
export const idesData = [
Antigravity,
- Codebuddy,
Cursor,
IntellijIdea,
Kiro,
diff --git a/src/lib/generated/metadata.ts b/src/lib/generated/metadata.ts
index 1549aaa8..001f7ca4 100644
--- a/src/lib/generated/metadata.ts
+++ b/src/lib/generated/metadata.ts
@@ -3565,11 +3565,11 @@ export const faqMetadata: Record = {
}
export const stackCounts: Record = {
- ides: 9,
- clis: 27,
- desktops: 12,
+ ides: 8,
+ clis: 25,
+ desktops: 11,
extensions: 19,
models: 123,
- 'model-providers': 12,
- vendors: 40,
+ 'model-providers': 17,
+ vendors: 45,
}
diff --git a/src/lib/generated/models.ts b/src/lib/generated/models.ts
index 31af4ba6..f62467a8 100644
--- a/src/lib/generated/models.ts
+++ b/src/lib/generated/models.ts
@@ -24,7 +24,6 @@ import ClaudeSonnet4 from '../../../manifests/models/claude-sonnet-4.json'
import ClaudeSonnet45 from '../../../manifests/models/claude-sonnet-4-5.json'
import ClaudeSonnet46 from '../../../manifests/models/claude-sonnet-4-6.json'
import ClaudeSonnet5 from '../../../manifests/models/claude-sonnet-5.json'
-import Composer from '../../../manifests/models/composer.json'
import CursorComposer2 from '../../../manifests/models/cursor-composer-2.json'
import CursorComposer25 from '../../../manifests/models/cursor-composer-2-5.json'
import Deepseek32 from '../../../manifests/models/deepseek-3-2.json'
@@ -35,6 +34,7 @@ import DeepseekV31 from '../../../manifests/models/deepseek-v3-1.json'
import DeepseekV32Exp from '../../../manifests/models/deepseek-v3-2-exp.json'
import DeepseekV3Terminus from '../../../manifests/models/deepseek-v3-terminus.json'
import DeepseekV4Flash from '../../../manifests/models/deepseek-v4-flash.json'
+import DeepseekV4FlashPreview from '../../../manifests/models/deepseek-v4-flash-preview.json'
import DeepseekV4Pro from '../../../manifests/models/deepseek-v4-pro.json'
import Devstral2 from '../../../manifests/models/devstral-2.json'
import DevstralSmall2 from '../../../manifests/models/devstral-small-2.json'
@@ -150,7 +150,6 @@ export const modelsData = [
ClaudeSonnet46,
ClaudeSonnet4,
ClaudeSonnet5,
- Composer,
CursorComposer25,
CursorComposer2,
Deepseek32,
@@ -160,6 +159,7 @@ export const modelsData = [
DeepseekV32Exp,
DeepseekV3Terminus,
DeepseekV3,
+ DeepseekV4FlashPreview,
DeepseekV4Flash,
DeepseekV4Pro,
Devstral2,
diff --git a/src/lib/generated/providers.ts b/src/lib/generated/providers.ts
index 56ac08e8..53ca29d1 100644
--- a/src/lib/generated/providers.ts
+++ b/src/lib/generated/providers.ts
@@ -6,14 +6,19 @@
import Alibaba from '../../../manifests/providers/alibaba.json'
import Anthropic from '../../../manifests/providers/anthropic.json'
+import Baseten from '../../../manifests/providers/baseten.json'
+import Deepinfra from '../../../manifests/providers/deepinfra.json'
import Deepseek from '../../../manifests/providers/deepseek.json'
+import FireworksAi from '../../../manifests/providers/fireworks-ai.json'
import Google from '../../../manifests/providers/google.json'
import Meta from '../../../manifests/providers/meta.json'
import Minimax from '../../../manifests/providers/minimax.json'
import Moonshot from '../../../manifests/providers/moonshot.json'
+import NovitaAi from '../../../manifests/providers/novita-ai.json'
import Openai from '../../../manifests/providers/openai.json'
import Openrouter from '../../../manifests/providers/openrouter.json'
import Siliconflow from '../../../manifests/providers/siliconflow.json'
+import TogetherAi from '../../../manifests/providers/together-ai.json'
import Xai from '../../../manifests/providers/xai.json'
import ZAi from '../../../manifests/providers/z-ai.json'
import type { ManifestProvider } from '../../types/manifests'
@@ -21,14 +26,19 @@ import type { ManifestProvider } from '../../types/manifests'
export const providersData = [
Alibaba,
Anthropic,
+ Baseten,
+ Deepinfra,
Deepseek,
+ FireworksAi,
Google,
Meta,
Minimax,
Moonshot,
+ NovitaAi,
Openai,
Openrouter,
Siliconflow,
+ TogetherAi,
Xai,
ZAi,
] as unknown as ManifestProvider[]
diff --git a/src/lib/generated/vendors.ts b/src/lib/generated/vendors.ts
index 011da2a4..72f49309 100644
--- a/src/lib/generated/vendors.ts
+++ b/src/lib/generated/vendors.ts
@@ -12,12 +12,15 @@ import Anysphere from '../../../manifests/vendors/anysphere.json'
import Atlassian from '../../../manifests/vendors/atlassian.json'
import Augment from '../../../manifests/vendors/augment.json'
import Aws from '../../../manifests/vendors/aws.json'
+import Baseten from '../../../manifests/vendors/baseten.json'
import Bytedance from '../../../manifests/vendors/bytedance.json'
import Cline from '../../../manifests/vendors/cline.json'
import Cognition from '../../../manifests/vendors/cognition.json'
import Continue from '../../../manifests/vendors/continue.json'
+import Deepinfra from '../../../manifests/vendors/deepinfra.json'
import Deepseek from '../../../manifests/vendors/deepseek.json'
import FactoryAi from '../../../manifests/vendors/factory-ai.json'
+import FireworksAi from '../../../manifests/vendors/fireworks-ai.json'
import Github from '../../../manifests/vendors/github.json'
import Gitlab from '../../../manifests/vendors/gitlab.json'
import Google from '../../../manifests/vendors/google.json'
@@ -28,6 +31,7 @@ import Microsoft from '../../../manifests/vendors/microsoft.json'
import Minimax from '../../../manifests/vendors/minimax.json'
import MistralAi from '../../../manifests/vendors/mistral-ai.json'
import Moonshot from '../../../manifests/vendors/moonshot.json'
+import NovitaAi from '../../../manifests/vendors/novita-ai.json'
import OhMyPi from '../../../manifests/vendors/oh-my-pi.json'
import Openai from '../../../manifests/vendors/openai.json'
import Openrouter from '../../../manifests/vendors/openrouter.json'
@@ -39,6 +43,7 @@ import Sst from '../../../manifests/vendors/sst.json'
import Stagewise from '../../../manifests/vendors/stagewise.json'
import Tabnine from '../../../manifests/vendors/tabnine.json'
import Tencent from '../../../manifests/vendors/tencent.json'
+import TogetherAi from '../../../manifests/vendors/together-ai.json'
import VerdentAi from '../../../manifests/vendors/verdent-ai.json'
import Xai from '../../../manifests/vendors/xai.json'
import Xiaomi from '../../../manifests/vendors/xiaomi.json'
@@ -55,12 +60,15 @@ export const vendorsData = [
Atlassian,
Augment,
Aws,
+ Baseten,
Bytedance,
Cline,
Cognition,
Continue,
+ Deepinfra,
Deepseek,
FactoryAi,
+ FireworksAi,
Github,
Gitlab,
Google,
@@ -71,6 +79,7 @@ export const vendorsData = [
Minimax,
MistralAi,
Moonshot,
+ NovitaAi,
OhMyPi,
Openai,
Openrouter,
@@ -82,6 +91,7 @@ export const vendorsData = [
Stagewise,
Tabnine,
Tencent,
+ TogetherAi,
VerdentAi,
Xai,
Xiaomi,
diff --git a/src/lib/metadata/generators.ts b/src/lib/metadata/generators.ts
index 0042fc35..1813690d 100644
--- a/src/lib/metadata/generators.ts
+++ b/src/lib/metadata/generators.ts
@@ -7,8 +7,12 @@
import type { Metadata } from 'next'
import { getTranslations } from 'next-intl/server'
import { formatTokenCount } from '@/lib/format'
-import { formatPrimaryTokenRate } from '@/lib/model-pricing'
-import type { ManifestTokenPricing, ModelLifecycle } from '@/types/manifests'
+import { formatModelTokenRate } from '@/lib/model-pricing'
+import type {
+ ManifestReferenceTokenPricing,
+ ManifestTokenPricing,
+ ModelLifecycle,
+} from '@/types/manifests'
import {
CATEGORY_DISPLAY_NAMES,
CATEGORY_SEO_KEYWORDS,
@@ -72,10 +76,12 @@ export interface ModelDetailMetadataParams {
description: string
vendor: string
size?: string
+ activeParameters?: string
contextWindow?: number
maxOutput?: number
lifecycle?: ModelLifecycle
tokenPricing?: ManifestTokenPricing
+ referenceTokenPricing?: ManifestReferenceTokenPricing
}
translationNamespace: string
}
@@ -319,7 +325,15 @@ export async function generateModelDetailMetadata(
// Build description with model specs
const specs: string[] = []
- if (model.size) specs.push(`${tShared('terms.modelSize')}: ${model.size}`)
+ if (model.size) {
+ const parameterSize = model.activeParameters
+ ? tShared('modelParameters.totalAndActive', {
+ total: model.size,
+ active: model.activeParameters,
+ })
+ : model.size
+ specs.push(`${tShared('terms.modelSize')}: ${parameterSize}`)
+ }
if (model.contextWindow)
specs.push(`${tShared('terms.contextWindow')}: ${formatTokenCount(model.contextWindow)} tokens`)
if (model.maxOutput)
@@ -327,8 +341,22 @@ export async function generateModelDetailMetadata(
const pricingDisplay =
model.lifecycle !== 'deprecated' && model.tokenPricing
- ? (formatPrimaryTokenRate(model.tokenPricing, 'input', locale) ??
- formatPrimaryTokenRate(model.tokenPricing, 'output', locale))
+ ? (formatModelTokenRate(
+ {
+ tokenPricing: model.tokenPricing,
+ referenceTokenPricing: model.referenceTokenPricing,
+ },
+ 'input',
+ locale
+ ) ??
+ formatModelTokenRate(
+ {
+ tokenPricing: model.tokenPricing,
+ referenceTokenPricing: model.referenceTokenPricing,
+ },
+ 'output',
+ locale
+ ))
: null
if (pricingDisplay) specs.push(`${tShared('terms.pricing')}: ${pricingDisplay}/M tokens`)
@@ -340,6 +368,7 @@ export async function generateModelDetailMetadata(
model.name,
model.vendor,
model.size || '',
+ model.activeParameters || '',
[...CATEGORY_SEO_KEYWORDS.models],
])
diff --git a/src/lib/model-intelligence-index.ts b/src/lib/model-intelligence-index.ts
index 23d8c467..64af4765 100644
--- a/src/lib/model-intelligence-index.ts
+++ b/src/lib/model-intelligence-index.ts
@@ -3,12 +3,32 @@ import { vendorsData } from '@/lib/generated/vendors'
import { findVendorByName } from '@/lib/vendor-identity'
import artificialAnalysisData from '../../data/artificial-analysis-index.json'
+export interface ArtificialAnalysisIndexEntry {
+ modelId: string
+ score: number
+ estimated: boolean
+ configuration: string
+}
+
+export interface ArtificialAnalysisIndexData {
+ $schema: './$schemas/artificial-analysis-index.schema.json'
+ source: 'Artificial Analysis'
+ sourceUrl: string
+ methodologyUrl: string
+ indexVersion: string
+ observedAt: string
+ legacyMissingModelIds: string[]
+ entries: ArtificialAnalysisIndexEntry[]
+}
+
+const artificialAnalysisIndex = artificialAnalysisData as ArtificialAnalysisIndexData
+
const FALLBACK_COLOR: ModelIntelligenceThemeColor = {
light: '#6b7280',
dark: '#9ca3af',
}
-export const modelIntelligenceLegacyMissingModelIds = artificialAnalysisData.legacyMissingModelIds
+export const modelIntelligenceLegacyMissingModelIds = artificialAnalysisIndex.legacyMissingModelIds
export interface ModelIntelligenceThemeColor {
light: string
@@ -91,7 +111,7 @@ for (const vendor of vendorsData) {
}
export const allModelIntelligencePoints: ModelIntelligencePoint[] =
- artificialAnalysisData.entries.map(entry => {
+ artificialAnalysisIndex.entries.map(entry => {
const model = modelById.get(entry.modelId)
if (!model?.releaseDate) {
@@ -181,9 +201,9 @@ export const modelIntelligenceSeries = sortedSeries.map(series => {
})
export const modelIntelligenceMeta = {
- source: artificialAnalysisData.source,
- sourceUrl: artificialAnalysisData.sourceUrl,
- methodologyUrl: artificialAnalysisData.methodologyUrl,
- indexVersion: artificialAnalysisData.indexVersion,
- observedAt: artificialAnalysisData.observedAt,
+ source: artificialAnalysisIndex.source,
+ sourceUrl: artificialAnalysisIndex.sourceUrl,
+ methodologyUrl: artificialAnalysisIndex.methodologyUrl,
+ indexVersion: artificialAnalysisIndex.indexVersion,
+ observedAt: artificialAnalysisIndex.observedAt,
}
diff --git a/src/lib/model-list.ts b/src/lib/model-list.ts
new file mode 100644
index 00000000..3e42858a
--- /dev/null
+++ b/src/lib/model-list.ts
@@ -0,0 +1,43 @@
+import type { ModelLifecycle } from '@/types/manifests'
+
+type DatedModel = {
+ id: string
+ name: string
+ releaseDate: string | null
+}
+
+type LifecycleModel = DatedModel & {
+ lifecycle?: ModelLifecycle | null
+}
+
+export function sortModelsByReleaseDateDesc(models: readonly T[]): T[] {
+ return [...models].sort((a, b) => {
+ const releaseDateOrder = (b.releaseDate ?? '').localeCompare(a.releaseDate ?? '')
+
+ return (
+ releaseDateOrder ||
+ a.name.localeCompare(b.name, 'en', { numeric: true }) ||
+ a.id.localeCompare(b.id, 'en', { numeric: true })
+ )
+ })
+}
+
+export function groupModelsByLifecycle(
+ models: readonly T[]
+): Record {
+ const groups: Record = {
+ latest: [],
+ maintained: [],
+ deprecated: [],
+ }
+
+ for (const model of models) {
+ groups[model.lifecycle ?? 'maintained'].push(model)
+ }
+
+ return {
+ latest: sortModelsByReleaseDateDesc(groups.latest),
+ maintained: sortModelsByReleaseDateDesc(groups.maintained),
+ deprecated: sortModelsByReleaseDateDesc(groups.deprecated),
+ }
+}
diff --git a/src/lib/model-pricing.ts b/src/lib/model-pricing.ts
index d3b1e632..ea9185e3 100644
--- a/src/lib/model-pricing.ts
+++ b/src/lib/model-pricing.ts
@@ -1,5 +1,7 @@
import type {
ManifestAvailableTokenPricing,
+ ManifestModel,
+ ManifestReferenceTokenPricing,
ManifestTokenPricing,
ManifestTokenPricingOffer,
ManifestTokenPricingRate,
@@ -142,6 +144,35 @@ export function formatPrimaryTokenRate(
return `${prefix}${formattedMinimum}–${formatConvertedTokenRate(maximum, locale)}`
}
+export function formatReferenceTokenRate(
+ pricing: ManifestReferenceTokenPricing,
+ rate: ManifestTokenPricingRate,
+ locale: string,
+ conversion?: CurrencyConversion | null
+): string | null {
+ const value = pricing.rates[rate]
+ if (value === null) return null
+
+ const formatted = formatTokenRate(value, pricing.currency, locale, 6, conversion)
+ return pricing.basis === 'provider-median' && !formatted.startsWith('≈')
+ ? `≈${formatted}`
+ : formatted
+}
+
+export function formatModelTokenRate(
+ model: Pick,
+ rate: ManifestTokenPricingRate,
+ locale: string,
+ conversion?: CurrencyConversion | null
+): string | null {
+ return (
+ formatPrimaryTokenRate(model.tokenPricing, rate, locale, conversion) ??
+ (model.referenceTokenPricing
+ ? formatReferenceTokenRate(model.referenceTokenPricing, rate, locale, conversion)
+ : null)
+ )
+}
+
export function hasCurrentSingleTierPricing(pricing: ManifestTokenPricing): boolean {
const offer = getPrimaryTokenPricingOffer(pricing)
return Boolean(offer && offer.tiers.length === 1 && offer.effectiveTo === null)
diff --git a/src/lib/pricing.ts b/src/lib/pricing.ts
index 67f2eddb..977cce5c 100644
--- a/src/lib/pricing.ts
+++ b/src/lib/pricing.ts
@@ -1,10 +1,12 @@
// Pricing utility functions
+import type { ManifestPricingPeriod } from '@/types/manifests'
+
export interface PricingTier {
name: string
value: number | null
currency?: string | null
- per?: string | null
+ per?: ManifestPricingPeriod | null
category: string
}
@@ -20,11 +22,8 @@ const CURRENCY_SYMBOLS: Record = {
EUR: '€',
}
-const NON_USAGE_PERIODS = new Set(['custom', 'subscription'])
-
function isUsageBasedTier(tier: PricingTier): boolean {
- if (tier.value !== null || !tier.per) return false
- return !NON_USAGE_PERIODS.has(tier.per.toLowerCase())
+ return tier.value === null && tier.per === 'usage-based'
}
/**
diff --git a/src/lib/vendor-list.ts b/src/lib/vendor-list.ts
new file mode 100644
index 00000000..0672f55c
--- /dev/null
+++ b/src/lib/vendor-list.ts
@@ -0,0 +1,53 @@
+import type { ManifestVendor } from '@/types/manifests'
+import vendorCompanyStagesData from '../../data/vendor-company-stages.json'
+
+export type VendorCompanyStage = 'public-company' | 'super-unicorn' | 'unicorn' | 'startup'
+
+type VendorCompanyStageTranslationKey = 'publicCompany' | 'superUnicorn' | 'unicorn' | 'startup'
+
+type VendorCompanyStageConfig = {
+ groups: Array<{
+ id: VendorCompanyStage
+ translationKey: VendorCompanyStageTranslationKey
+ }>
+ assignments: Array<{
+ vendorId: string
+ stage: VendorCompanyStage
+ }>
+}
+
+export type VendorCompanyStageGroup = {
+ id: VendorCompanyStage
+ translationKey: VendorCompanyStageTranslationKey
+ vendors: T[]
+}
+
+const vendorCompanyStageConfig = vendorCompanyStagesData as VendorCompanyStageConfig
+const vendorCompanyStageById = new Map(
+ vendorCompanyStageConfig.assignments.map(assignment => [assignment.vendorId, assignment.stage])
+)
+
+export function groupVendorsByCompanyStage(
+ vendors: readonly T[],
+ locale: string
+): VendorCompanyStageGroup[] {
+ const collator = new Intl.Collator(locale, { numeric: true, sensitivity: 'base' })
+ const vendorsByStage = new Map(
+ vendorCompanyStageConfig.groups.map(group => [group.id, []])
+ )
+
+ for (const vendor of vendors) {
+ const stage = vendorCompanyStageById.get(vendor.id)
+ if (!stage) {
+ throw new Error(`Missing company-stage assignment for vendor: ${vendor.id}`)
+ }
+ vendorsByStage.get(stage)?.push(vendor)
+ }
+
+ return vendorCompanyStageConfig.groups.map(group => ({
+ ...group,
+ vendors: [...(vendorsByStage.get(group.id) ?? [])].sort(
+ (a, b) => collator.compare(a.name, b.name) || collator.compare(a.id, b.id)
+ ),
+ }))
+}
diff --git a/src/types/manifests.ts b/src/types/manifests.ts
index fcfd5243..dded1b8d 100644
--- a/src/types/manifests.ts
+++ b/src/types/manifests.ts
@@ -119,11 +119,21 @@ export interface ManifestResourceUrls {
* Pricing tier information
* Based on: /manifests/$schemas/ref/product.schema.json#$defs/pricingTier
*/
+export type ManifestPricingPeriod =
+ | 'month'
+ | 'user/month'
+ | 'year'
+ | 'hour'
+ | 'credit'
+ | 'usage-based'
+ | 'subscription'
+ | 'custom'
+
export interface ManifestPricingTier {
name: string
value: number | null
currency?: 'USD' | 'CNY' | 'EUR' | null
- per?: string | null
+ per?: ManifestPricingPeriod | null
category: string
}
@@ -209,7 +219,9 @@ export interface ManifestBaseApp extends ManifestBaseProduct {
* Based on: /manifests/$schemas/cli.schema.json
* Extends: ManifestBaseApp
*/
-export interface ManifestCLI extends ManifestBaseApp {}
+export interface ManifestCLI extends ManifestBaseApp {
+ resourceUrls: ManifestResourceUrls & { download: string }
+}
/**
* IDE (Integrated Development Environment)
@@ -352,6 +364,7 @@ export type ModelLifecycle = 'latest' | 'maintained' | 'deprecated'
*/
export interface ManifestModel extends ManifestVendorEntity {
size: string | null
+ activeParameters: string | null
contextWindow: number
maxOutput: number | null
tokenPricing: ManifestTokenPricing
diff --git a/tests/codebuddy-catalog.test.ts b/tests/codebuddy-catalog.test.ts
new file mode 100644
index 00000000..b9f9f273
--- /dev/null
+++ b/tests/codebuddy-catalog.test.ts
@@ -0,0 +1,28 @@
+import { describe, expect, it } from 'vitest'
+import { clisData, desktopsData, idesData } from '@/lib/generated'
+
+describe('CodeBuddy catalog placement', () => {
+ it('lists CodeBuddy once as a desktop without a vendor prefix', () => {
+ const desktop = desktopsData.find(product => product.id === 'codebuddy')
+
+ expect(desktop?.name).toBe('CodeBuddy')
+ expect(desktopsData.some(product => product.id === 'workbuddy')).toBe(false)
+ expect(idesData.some(product => product.id === 'codebuddy')).toBe(false)
+ })
+
+ it('links the CodeBuddy desktop and CLI as one product family', () => {
+ const desktop = desktopsData.find(product => product.id === 'codebuddy')
+ const cli = clisData.find(product => product.id === 'codebuddy-cli')
+
+ expect(desktop?.familyId).toBe('codebuddy')
+ expect(cli?.familyId).toBe('codebuddy')
+ expect(desktop?.relatedProducts).toContainEqual({
+ type: 'cli',
+ productId: 'codebuddy-cli',
+ })
+ expect(cli?.relatedProducts).toContainEqual({
+ type: 'desktop',
+ productId: 'codebuddy',
+ })
+ })
+})
diff --git a/tests/model-intelligence-index.test.ts b/tests/model-intelligence-index.test.ts
index e160b35c..57e57ad7 100644
--- a/tests/model-intelligence-index.test.ts
+++ b/tests/model-intelligence-index.test.ts
@@ -241,7 +241,17 @@ describe('model intelligence index', () => {
'deepseek-3-2',
'deepseek-v4-pro',
])
- expect(deepSeekSeries[1]?.points.map(point => point.modelId)).toEqual(['deepseek-v4-flash'])
+ expect(
+ deepSeekSeries[1]?.points.map(point => [
+ point.modelId,
+ point.score,
+ point.estimated,
+ point.configuration,
+ ])
+ ).toEqual([
+ ['deepseek-v4-flash-preview', 40, false, 'DeepSeek V4 Flash (max)'],
+ ['deepseek-v4-flash', 50, false, 'DeepSeek V4 Flash 0731 (max)'],
+ ])
})
it('orders Google product lines from Gemini Pro through Gemma', () => {
diff --git a/tests/model-list.test.ts b/tests/model-list.test.ts
new file mode 100644
index 00000000..229e8ef1
--- /dev/null
+++ b/tests/model-list.test.ts
@@ -0,0 +1,85 @@
+import { describe, expect, it } from 'vitest'
+
+import { modelsData } from '../src/lib/generated'
+import { groupModelsByLifecycle, sortModelsByReleaseDateDesc } from '../src/lib/model-list'
+
+describe('model list sorting', () => {
+ const models = [
+ { id: 'undated', name: 'Undated', releaseDate: null },
+ { id: 'newer-zulu', name: 'Zulu 2', releaseDate: '2026-07-31' },
+ { id: 'older', name: 'Older', releaseDate: '2026-07-24' },
+ { id: 'newer-alpha', name: 'Alpha 10', releaseDate: '2026-07-31' },
+ { id: 'newer-alpha-2', name: 'Alpha 2', releaseDate: '2026-07-31' },
+ ]
+
+ it('orders dated models newest first and leaves undated models last', () => {
+ expect(sortModelsByReleaseDateDesc(models).map(model => model.id)).toEqual([
+ 'newer-alpha-2',
+ 'newer-alpha',
+ 'newer-zulu',
+ 'older',
+ 'undated',
+ ])
+ })
+
+ it('does not mutate the generated catalog order', () => {
+ const originalOrder = models.map(model => model.id)
+
+ sortModelsByReleaseDateDesc(models)
+
+ expect(models.map(model => model.id)).toEqual(originalOrder)
+ })
+
+ it('sorts latest, maintained, and deprecated groups newest first', () => {
+ const grouped = groupModelsByLifecycle([
+ { id: 'latest-old', name: 'Latest Old', releaseDate: '2026-07-01', lifecycle: 'latest' },
+ { id: 'latest-new', name: 'Latest New', releaseDate: '2026-07-31', lifecycle: 'latest' },
+ {
+ id: 'maintained-old',
+ name: 'Maintained Old',
+ releaseDate: '2025-01-01',
+ lifecycle: 'maintained',
+ },
+ {
+ id: 'maintained-new',
+ name: 'Maintained New',
+ releaseDate: '2026-01-01',
+ lifecycle: 'maintained',
+ },
+ {
+ id: 'deprecated-old',
+ name: 'Deprecated Old',
+ releaseDate: '2024-01-01',
+ lifecycle: 'deprecated',
+ },
+ {
+ id: 'deprecated-new',
+ name: 'Deprecated New',
+ releaseDate: '2025-01-01',
+ lifecycle: 'deprecated',
+ },
+ ])
+
+ expect(grouped.latest.map(model => model.id)).toEqual(['latest-new', 'latest-old'])
+ expect(grouped.maintained.map(model => model.id)).toEqual(['maintained-new', 'maintained-old'])
+ expect(grouped.deprecated.map(model => model.id)).toEqual(['deprecated-new', 'deprecated-old'])
+ })
+
+ it('keeps cataloged Composer generations named consistently and in distinct lifecycle groups', () => {
+ expect(
+ ['cursor-composer-2', 'cursor-composer-2-5'].map(id => {
+ const model = modelsData.find(item => item.id === id)
+ return [model?.id, model?.name, model?.lifecycle]
+ })
+ ).toEqual([
+ ['cursor-composer-2', 'Composer 2', 'deprecated'],
+ ['cursor-composer-2-5', 'Composer 2.5', 'latest'],
+ ])
+ })
+
+ it('keeps Kimi K2.7 Code maintained while it remains available alongside Kimi K3', () => {
+ const model = modelsData.find(item => item.id === 'kimi-k2-7-code')
+
+ expect(model?.lifecycle).toBe('maintained')
+ })
+})
diff --git a/tests/model-pricing.test.ts b/tests/model-pricing.test.ts
index 905e4d89..f6bb3c4c 100644
--- a/tests/model-pricing.test.ts
+++ b/tests/model-pricing.test.ts
@@ -1,14 +1,16 @@
import { describe, expect, it } from 'vitest'
import {
convertTokenRate,
+ formatModelTokenRate,
formatPrimaryTokenRate,
+ formatReferenceTokenRate,
getPrimaryTokenPricingOffer,
getPrimaryTokenRate,
getPrimaryTokenRateRange,
hasCurrentSingleTierPricing,
hasTieredTokenPricing,
} from '@/lib/model-pricing'
-import type { ManifestTokenPricing } from '@/types/manifests'
+import type { ManifestReferenceTokenPricing, ManifestTokenPricing } from '@/types/manifests'
const tieredPricing: ManifestTokenPricing = {
status: 'available',
@@ -109,4 +111,32 @@ describe('model pricing', () => {
converted: false,
})
})
+
+ it('falls back to externally tracked reference pricing without replacing official pricing', () => {
+ const unavailable: ManifestTokenPricing = {
+ status: 'unavailable',
+ reason: 'official-price-not-published',
+ primaryOffer: null,
+ offers: [],
+ }
+ const reference: ManifestReferenceTokenPricing = {
+ currency: 'USD',
+ basis: 'provider-median',
+ rates: { input: 0.7, output: 2.5, cacheRead: null, cacheWrite: null },
+ source: {
+ name: 'Models.dev provider median',
+ url: 'https://models.dev/api.json',
+ observedAt: '2026-07-31',
+ },
+ }
+
+ expect(formatReferenceTokenRate(reference, 'input', 'en')).toBe('≈$0.70')
+ expect(
+ formatModelTokenRate(
+ { tokenPricing: unavailable, referenceTokenPricing: reference },
+ 'output',
+ 'en'
+ )
+ ).toBe('≈$2.50')
+ })
})
diff --git a/tests/pricing.test.ts b/tests/pricing.test.ts
index a4c7ee77..5eec732e 100644
--- a/tests/pricing.test.ts
+++ b/tests/pricing.test.ts
@@ -29,7 +29,7 @@ describe('product pricing summaries', () => {
name: 'Usage',
value: null,
currency: 'USD',
- per: 'request',
+ per: 'usage-based',
category: 'Individual',
},
],
diff --git a/tests/validate/clis.catalog.test.ts b/tests/validate/clis.catalog.test.ts
new file mode 100644
index 00000000..b74a298e
--- /dev/null
+++ b/tests/validate/clis.catalog.test.ts
@@ -0,0 +1,46 @@
+import fs from 'node:fs'
+import path from 'node:path'
+import { describe, expect, it } from 'vitest'
+
+const cliDirectory = path.join(process.cwd(), 'manifests', 'clis')
+const placeholderVersion = /^(?:latest|unknown|n\/?a|tbd|-|—)$/i
+
+function readCliManifests(): Array<{ file: string; manifest: Record }> {
+ return fs
+ .readdirSync(cliDirectory)
+ .filter(file => file.endsWith('.json'))
+ .map(file => ({
+ file,
+ manifest: JSON.parse(fs.readFileSync(path.join(cliDirectory, file), 'utf8')) as Record<
+ string,
+ unknown
+ >,
+ }))
+}
+
+describe('validate: CLI catalog guardrails', () => {
+ it('uses concrete latest versions instead of placeholders', () => {
+ const failures = readCliManifests()
+ .filter(({ manifest }) => {
+ const version = manifest.latestVersion
+ return typeof version !== 'string' || placeholderVersion.test(version.trim())
+ })
+ .map(({ file }) => file)
+
+ expect(failures).toEqual([])
+ })
+
+ it('provides an official HTTPS download or installation page', () => {
+ const failures = readCliManifests()
+ .filter(({ manifest }) => {
+ const resourceUrls = manifest.resourceUrls as Record | undefined
+ return (
+ typeof resourceUrls?.download !== 'string' ||
+ !resourceUrls.download.startsWith('https://')
+ )
+ })
+ .map(({ file }) => file)
+
+ expect(failures).toEqual([])
+ })
+})
diff --git a/tests/validate/githubStars.consistency.test.ts b/tests/validate/githubStars.consistency.test.ts
index fd926615..7be207e7 100644
--- a/tests/validate/githubStars.consistency.test.ts
+++ b/tests/validate/githubStars.consistency.test.ts
@@ -1,7 +1,8 @@
import fs from 'node:fs'
import path from 'node:path'
-import { describe, it } from 'vitest'
+import Ajv from 'ajv'
+import { describe, expect, it } from 'vitest'
/**
* Read and parse JSON from disk.
@@ -110,6 +111,18 @@ function validateGithubStarsConsistency(rootDir: string): string[] {
}
describe('validate: github-stars consistency', () => {
+ it('matches the GitHub Stars JSON schema', () => {
+ const rootDir = process.cwd()
+ const schema = readJsonFile(
+ path.join(rootDir, 'manifests', '$schemas', 'github-stars.schema.json')
+ )
+ const githubStars = readJsonFile(path.join(rootDir, 'data', 'github-stars.json'))
+ const ajv = new Ajv({ allErrors: true })
+ const validate = ajv.compile(schema as object)
+
+ expect(validate(githubStars), JSON.stringify(validate.errors, null, 2)).toBe(true)
+ })
+
it('data/github-stars.json matches manifest files', () => {
const failures = validateGithubStarsConsistency(process.cwd())
if (failures.length > 0) {
diff --git a/tests/validate/models.open-weights.test.ts b/tests/validate/models.open-weights.test.ts
new file mode 100644
index 00000000..d212b76d
--- /dev/null
+++ b/tests/validate/models.open-weights.test.ts
@@ -0,0 +1,43 @@
+import fs from 'node:fs'
+import path from 'node:path'
+
+import { describe, expect, it } from 'vitest'
+
+type ModelManifest = {
+ id: string
+ description: string
+ size: string | null
+ tokenPricing: { reason?: string }
+ platformUrls: { huggingface: string | null }
+}
+
+const OPEN_WEIGHTS_DESCRIPTION = /\bopen[- ](?:weight|weights|source)\b/i
+
+function loadModelManifests(): ModelManifest[] {
+ const modelsDir = path.join(process.cwd(), 'manifests', 'models')
+
+ return fs
+ .readdirSync(modelsDir)
+ .filter(file => file.endsWith('.json'))
+ .map(file => JSON.parse(fs.readFileSync(path.join(modelsDir, file), 'utf8')) as ModelManifest)
+}
+
+function hasOpenWeightsEvidence(model: ModelManifest): boolean {
+ return (
+ model.platformUrls.huggingface !== null ||
+ model.tokenPricing.reason === 'open-weights-only' ||
+ OPEN_WEIGHTS_DESCRIPTION.test(model.description)
+ )
+}
+
+describe('validate: open-weight model metadata', () => {
+ it('requires a disclosed parameter size for every open-weight model', () => {
+ const missingSizeIds = loadModelManifests()
+ .filter(hasOpenWeightsEvidence)
+ .filter(model => model.size === null)
+ .map(model => model.id)
+ .sort()
+
+ expect(missingSizeIds).toEqual([])
+ })
+})
diff --git a/tests/validate/models.parameters.test.ts b/tests/validate/models.parameters.test.ts
new file mode 100644
index 00000000..4052264c
--- /dev/null
+++ b/tests/validate/models.parameters.test.ts
@@ -0,0 +1,76 @@
+import fs from 'node:fs'
+import path from 'node:path'
+
+import { describe, expect, it } from 'vitest'
+
+type ModelManifest = {
+ id: string
+ size: string | null
+ activeParameters: string | null
+ sources?: Array<{ fields?: string[] }>
+}
+
+const canonicalParameterCountPattern =
+ /^(?:[1-9][0-9]{0,2}(?:\.[0-9]*[1-9])?[MB]|[1-9][0-9]*(?:\.[0-9]*[1-9])?T)$/
+
+function loadModelManifests(): ModelManifest[] {
+ const modelsDir = path.join(process.cwd(), 'manifests', 'models')
+
+ return fs
+ .readdirSync(modelsDir)
+ .filter(file => file.endsWith('.json'))
+ .map(file => JSON.parse(fs.readFileSync(path.join(modelsDir, file), 'utf8')) as ModelManifest)
+}
+
+describe('validate: model parameter metadata', () => {
+ it('rejects redundant parameter units and separators', () => {
+ expect(
+ ['1T', '1.02T', '999B', '6.5B'].every(value => canonicalParameterCountPattern.test(value))
+ ).toBe(true)
+ expect(
+ ['1,000B', '1000B', '01T', '1.0T'].every(value => !canonicalParameterCountPattern.test(value))
+ ).toBe(true)
+ })
+
+ it('uses canonical parameter units without redundant thousands or separators', () => {
+ const invalidParameterIds = loadModelManifests()
+ .filter(
+ model =>
+ (model.size !== null && !canonicalParameterCountPattern.test(model.size)) ||
+ (model.activeParameters !== null &&
+ !canonicalParameterCountPattern.test(model.activeParameters))
+ )
+ .map(model => model.id)
+ .sort()
+
+ expect(invalidParameterIds).toEqual([])
+ })
+
+ it('keeps activated parameter counts out of the total size field', () => {
+ const mixedSizeIds = loadModelManifests()
+ .filter(model => model.size && /\b(?:active|activated)\b|\btotal\s*\//i.test(model.size))
+ .map(model => model.id)
+ .sort()
+
+ expect(mixedSizeIds).toEqual([])
+ })
+
+ it('requires provenance for every disclosed activated parameter count', () => {
+ const missingSourceIds = loadModelManifests()
+ .filter(model => model.activeParameters !== null)
+ .filter(model => !model.sources?.some(source => source.fields?.includes('activeParameters')))
+ .map(model => model.id)
+ .sort()
+
+ expect(missingSourceIds).toEqual([])
+ })
+
+ it('requires total parameters whenever activated parameters are disclosed', () => {
+ const missingTotalIds = loadModelManifests()
+ .filter(model => model.activeParameters !== null && model.size === null)
+ .map(model => model.id)
+ .sort()
+
+ expect(missingTotalIds).toEqual([])
+ })
+})
diff --git a/tests/validate/pricing.catalog.test.ts b/tests/validate/pricing.catalog.test.ts
new file mode 100644
index 00000000..4306368a
--- /dev/null
+++ b/tests/validate/pricing.catalog.test.ts
@@ -0,0 +1,103 @@
+import fs from 'node:fs'
+import path from 'node:path'
+
+import { describe, expect, it } from 'vitest'
+import type { ManifestPricingPeriod } from '@/types/manifests'
+
+type PricingTier = {
+ name: string
+ value: number | null
+ currency?: string | null
+ per?: ManifestPricingPeriod | null
+}
+
+type ProductManifest = {
+ id: string
+ pricing?: PricingTier[]
+}
+
+type CatalogPricingTier = PricingTier & {
+ catalog: string
+ productId: string
+}
+
+const productCatalogs = ['clis', 'desktops', 'extensions', 'ides'] as const
+const numericPeriods = new Set([
+ 'month',
+ 'user/month',
+ 'year',
+ 'hour',
+ 'credit',
+])
+const nonNumericPricingStates = new Set([
+ 'usage-based',
+ 'subscription',
+ 'custom',
+])
+
+function loadPricingTiers(): CatalogPricingTier[] {
+ return productCatalogs.flatMap(catalog => {
+ const catalogDir = path.join(process.cwd(), 'manifests', catalog)
+
+ return fs
+ .readdirSync(catalogDir)
+ .filter(file => file.endsWith('.json'))
+ .flatMap(file => {
+ const manifest = JSON.parse(
+ fs.readFileSync(path.join(catalogDir, file), 'utf8')
+ ) as ProductManifest
+
+ return (manifest.pricing ?? []).map(tier => ({
+ ...tier,
+ catalog,
+ productId: manifest.id,
+ }))
+ })
+ })
+}
+
+function identify(tier: CatalogPricingTier): string {
+ return `${tier.catalog}/${tier.productId}:${tier.name}`
+}
+
+describe('validate: product pricing metadata', () => {
+ it('uses a numeric billing unit for every positive published price', () => {
+ const failures = loadPricingTiers()
+ .filter(
+ tier =>
+ tier.value !== null &&
+ tier.value > 0 &&
+ (!tier.currency || !tier.per || !numericPeriods.has(tier.per))
+ )
+ .map(identify)
+ .sort()
+
+ expect(failures).toEqual([])
+ })
+
+ it('uses a non-numeric pricing state only when no numeric price is published', () => {
+ const failures = loadPricingTiers()
+ .filter(tier => {
+ if (tier.value === null) {
+ return !tier.per || !nonNumericPricingStates.has(tier.per)
+ }
+
+ return tier.per ? nonNumericPricingStates.has(tier.per) : false
+ })
+ .map(identify)
+ .sort()
+
+ expect(failures).toEqual([])
+ })
+
+ it('keeps trial duration and other plan details out of the billing unit', () => {
+ const failures = loadPricingTiers()
+ .filter(
+ tier => tier.per && !numericPeriods.has(tier.per) && !nonNumericPricingStates.has(tier.per)
+ )
+ .map(identify)
+ .sort()
+
+ expect(failures).toEqual([])
+ })
+})
diff --git a/tests/validate/ranking-data.schema.test.ts b/tests/validate/ranking-data.schema.test.ts
index 32b0d573..3b411fb9 100644
--- a/tests/validate/ranking-data.schema.test.ts
+++ b/tests/validate/ranking-data.schema.test.ts
@@ -5,21 +5,23 @@ import addFormats from 'ajv-formats'
import { describe, expect, it } from 'vitest'
describe('validate: ranking data schemas', () => {
- it('validates the model-price-intelligence-index configuration', () => {
- const rootDir = path.resolve(__dirname, '../..')
- const dataName = 'model-price-intelligence-index'
- const schema = JSON.parse(
- fs.readFileSync(path.join(rootDir, `data/$schemas/${dataName}.schema.json`), 'utf8')
- )
- const data = JSON.parse(fs.readFileSync(path.join(rootDir, `data/${dataName}.json`), 'utf8'))
- const ajv = new Ajv2020({ allErrors: true })
+ it.each(['artificial-analysis-index', 'model-price-intelligence-index'])(
+ 'validates the %s data',
+ dataName => {
+ const rootDir = path.resolve(__dirname, '../..')
+ const schema = JSON.parse(
+ fs.readFileSync(path.join(rootDir, `data/$schemas/${dataName}.schema.json`), 'utf8')
+ )
+ const data = JSON.parse(fs.readFileSync(path.join(rootDir, `data/${dataName}.json`), 'utf8'))
+ const ajv = new Ajv2020({ allErrors: true })
- addFormats(ajv)
+ addFormats(ajv)
- const validate = ajv.compile(schema)
- const valid = validate(data)
+ const validate = ajv.compile(schema)
+ const valid = validate(data)
- expect(validate.errors).toEqual(null)
- expect(valid).toBe(true)
- })
+ expect(validate.errors).toEqual(null)
+ expect(valid).toBe(true)
+ }
+ )
})
diff --git a/tests/vendor-list.test.ts b/tests/vendor-list.test.ts
new file mode 100644
index 00000000..f6dd526e
--- /dev/null
+++ b/tests/vendor-list.test.ts
@@ -0,0 +1,58 @@
+import Ajv2020 from 'ajv/dist/2020.js'
+import addFormats from 'ajv-formats'
+import { describe, expect, it } from 'vitest'
+import vendorCompanyStagesSchema from '../data/$schemas/vendor-company-stages.schema.json'
+import vendorCompanyStagesData from '../data/vendor-company-stages.json'
+import { vendorsData } from '../src/lib/generated'
+import { groupVendorsByCompanyStage } from '../src/lib/vendor-list'
+
+describe('vendor company-stage groups', () => {
+ it('conforms to its JSON schema', () => {
+ const ajv = new Ajv2020({ allErrors: true, strict: true })
+ addFormats(ajv)
+ const validate = ajv.compile(vendorCompanyStagesSchema)
+
+ expect(validate(vendorCompanyStagesData), JSON.stringify(validate.errors, null, 2)).toBe(true)
+ })
+
+ it('assigns every vendor exactly once', () => {
+ const catalogIds = vendorsData.map(vendor => vendor.id).sort()
+ const assignedIds = vendorCompanyStagesData.assignments
+ .map(assignment => assignment.vendorId)
+ .sort()
+
+ expect(new Set(assignedIds).size).toBe(assignedIds.length)
+ expect(assignedIds).toEqual(catalogIds)
+ })
+
+ it('keeps sourced evidence for every non-default assignment', () => {
+ for (const assignment of vendorCompanyStagesData.assignments) {
+ if (assignment.stage !== 'startup') {
+ expect(assignment.source, assignment.vendorId).not.toBeNull()
+ }
+ }
+ })
+
+ it('uses each company stage exactly once and in the configured order', () => {
+ expect(vendorCompanyStagesData.groups.map(group => group.id)).toEqual([
+ 'public-company',
+ 'super-unicorn',
+ 'unicorn',
+ 'startup',
+ ])
+ expect(new Set(vendorCompanyStagesData.groups.map(group => group.id)).size).toBe(4)
+ })
+
+ it('sorts localized vendor names alphabetically within every group', () => {
+ const groups = groupVendorsByCompanyStage(vendorsData, 'en')
+ const collator = new Intl.Collator('en', { numeric: true, sensitivity: 'base' })
+
+ for (const group of groups) {
+ expect(group.vendors.map(vendor => vendor.name)).toEqual(
+ [...group.vendors]
+ .sort((a, b) => collator.compare(a.name, b.name) || collator.compare(a.id, b.id))
+ .map(vendor => vendor.name)
+ )
+ }
+ })
+})
diff --git a/translations/de/pages/vendors.json b/translations/de/pages/vendors.json
index 62dafae0..82a33a08 100644
--- a/translations/de/pages/vendors.json
+++ b/translations/de/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Börsennotierte Unternehmen",
+ "startup": "Start-ups",
+ "superUnicorn": "Super-Unicorns",
+ "unicorn": "Einhörner"
+ },
+ "noResults": "Keine passenden Anbieter gefunden",
"subtitle": "Führende Unternehmen und Organisationen, die AI-Technologien entwickeln",
"title": "AI-Coding-Anbieter"
}
diff --git a/translations/de/shared.json b/translations/de/shared.json
index 971f023a..c262073f 100644
--- a/translations/de/shared.json
+++ b/translations/de/shared.json
@@ -84,6 +84,9 @@
"latest": "Neueste",
"maintained": "Gepflegt"
},
+ "modelParameters": {
+ "totalAndActive": "{total} gesamt / {active} aktiv"
+ },
"modelPricing": {
"cacheRead": "Cache-Lesen",
"cacheWrite": "Cache-Schreiben",
diff --git a/translations/en/pages/vendors.json b/translations/en/pages/vendors.json
index 509841c8..59461f42 100644
--- a/translations/en/pages/vendors.json
+++ b/translations/en/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Public Companies",
+ "startup": "Startups",
+ "superUnicorn": "Super Unicorns",
+ "unicorn": "Unicorns"
+ },
+ "noResults": "No vendors match your search",
"subtitle": "Leading companies and organizations building AI technology",
"title": "AI Coding Vendors"
}
diff --git a/translations/en/shared.json b/translations/en/shared.json
index f568b118..a517a61f 100644
--- a/translations/en/shared.json
+++ b/translations/en/shared.json
@@ -84,6 +84,9 @@
"latest": "Latest",
"maintained": "Maintained"
},
+ "modelParameters": {
+ "totalAndActive": "{total} total / {active} active"
+ },
"modelPricing": {
"cacheRead": "Cache read",
"cacheWrite": "Cache write",
diff --git a/translations/es/pages/vendors.json b/translations/es/pages/vendors.json
index 0d1df2ef..f42f53eb 100644
--- a/translations/es/pages/vendors.json
+++ b/translations/es/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Empresas cotizadas",
+ "startup": "Empresas emergentes",
+ "superUnicorn": "Superunicornios",
+ "unicorn": "Unicornios"
+ },
+ "noResults": "No hay proveedores que coincidan con la búsqueda",
"subtitle": "Principales empresas y organizaciones que construyen tecnologías de IA",
"title": "Proveedores de codificación con IA"
}
diff --git a/translations/es/shared.json b/translations/es/shared.json
index e589b52a..bea70349 100644
--- a/translations/es/shared.json
+++ b/translations/es/shared.json
@@ -84,6 +84,9 @@
"latest": "Más reciente",
"maintained": "Mantenido"
},
+ "modelParameters": {
+ "totalAndActive": "{total} totales / {active} activos"
+ },
"modelPricing": {
"cacheRead": "Lectura de caché",
"cacheWrite": "Escritura de caché",
diff --git a/translations/fr/pages/vendors.json b/translations/fr/pages/vendors.json
index 1d967a5c..3053b724 100644
--- a/translations/fr/pages/vendors.json
+++ b/translations/fr/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Entreprises cotées",
+ "startup": "Start-ups",
+ "superUnicorn": "Super-licornes",
+ "unicorn": "Licornes"
+ },
+ "noResults": "Aucun fournisseur ne correspond à votre recherche",
"subtitle": "Entreprises et organisations de premier plan construisant des technologie IA",
"title": "Fournisseurs de codage IA"
}
diff --git a/translations/fr/shared.json b/translations/fr/shared.json
index 0c7a8e8d..e13535fb 100644
--- a/translations/fr/shared.json
+++ b/translations/fr/shared.json
@@ -84,6 +84,9 @@
"latest": "Le plus récent",
"maintained": "Maintenu"
},
+ "modelParameters": {
+ "totalAndActive": "{total} au total / {active} actifs"
+ },
"modelPricing": {
"cacheRead": "Lecture du cache",
"cacheWrite": "Écriture du cache",
diff --git a/translations/id/pages/vendors.json b/translations/id/pages/vendors.json
index e9d8f696..94d3103c 100644
--- a/translations/id/pages/vendors.json
+++ b/translations/id/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Perusahaan Publik",
+ "startup": "Startup",
+ "superUnicorn": "Super Unicorn",
+ "unicorn": "Unicorn"
+ },
+ "noResults": "Tidak ada vendor yang cocok dengan pencarian Anda",
"subtitle": "Perusahaan dan organisasi terkemuka yang membangun teknologi AI",
"title": "Vendor Coding AI"
}
diff --git a/translations/id/shared.json b/translations/id/shared.json
index 889335de..d062ce04 100644
--- a/translations/id/shared.json
+++ b/translations/id/shared.json
@@ -84,6 +84,9 @@
"latest": "Terbaru",
"maintained": "Dipertahankan"
},
+ "modelParameters": {
+ "totalAndActive": "{total} total / {active} aktif"
+ },
"modelPricing": {
"cacheRead": "Baca cache",
"cacheWrite": "Tulis cache",
diff --git a/translations/ja/pages/vendors.json b/translations/ja/pages/vendors.json
index bf194431..5d198b43 100644
--- a/translations/ja/pages/vendors.json
+++ b/translations/ja/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "上場企業",
+ "startup": "スタートアップ",
+ "superUnicorn": "スーパー・ユニコーン",
+ "unicorn": "ユニコーン"
+ },
+ "noResults": "検索条件に一致するベンダーはありません",
"subtitle": "AI 技術を構築する主要な企業と組織",
"title": "AI コーディングベンダー"
}
diff --git a/translations/ja/shared.json b/translations/ja/shared.json
index 572a81f1..f9ff19f6 100644
--- a/translations/ja/shared.json
+++ b/translations/ja/shared.json
@@ -84,6 +84,9 @@
"latest": "最新",
"maintained": "メンテナンス中"
},
+ "modelParameters": {
+ "totalAndActive": "{total} 合計 / {active} アクティブ"
+ },
"modelPricing": {
"cacheRead": "キャッシュ読み取り",
"cacheWrite": "キャッシュ書き込み",
diff --git a/translations/ko/pages/vendors.json b/translations/ko/pages/vendors.json
index 88c17812..6b3f1979 100644
--- a/translations/ko/pages/vendors.json
+++ b/translations/ko/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "상장 기업",
+ "startup": "스타트업",
+ "superUnicorn": "슈퍼 유니콘",
+ "unicorn": "유니콘"
+ },
+ "noResults": "검색 조건과 일치하는 벤더가 없습니다",
"subtitle": "AI 기술을 구축하는 선도적인 기업 및 조직",
"title": "AI 코딩 벤더"
}
diff --git a/translations/ko/shared.json b/translations/ko/shared.json
index 95072fe5..44908d73 100644
--- a/translations/ko/shared.json
+++ b/translations/ko/shared.json
@@ -84,6 +84,9 @@
"latest": "최신",
"maintained": "유지 관리 중"
},
+ "modelParameters": {
+ "totalAndActive": "{total} 전체 / {active} 활성"
+ },
"modelPricing": {
"cacheRead": "캐시 읽기",
"cacheWrite": "캐시 쓰기",
diff --git a/translations/pt/pages/vendors.json b/translations/pt/pages/vendors.json
index f1908148..6b2ca7eb 100644
--- a/translations/pt/pages/vendors.json
+++ b/translations/pt/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Empresas de capital aberto",
+ "startup": "Empresas emergentes",
+ "superUnicorn": "Superunicórnios",
+ "unicorn": "Unicórnios"
+ },
+ "noResults": "Nenhum fornecedor corresponde à sua busca",
"subtitle": "Principais empresas e organizações construindo tecnologias de IA",
"title": "Fornecedores de tecnologia para programação com IA"
}
diff --git a/translations/pt/shared.json b/translations/pt/shared.json
index bb3df1f2..bb8de975 100644
--- a/translations/pt/shared.json
+++ b/translations/pt/shared.json
@@ -84,6 +84,9 @@
"latest": "Mais recentes",
"maintained": "Mantidos"
},
+ "modelParameters": {
+ "totalAndActive": "{total} no total / {active} ativos"
+ },
"modelPricing": {
"cacheRead": "Leitura de cache",
"cacheWrite": "Gravação de cache",
diff --git a/translations/ru/pages/vendors.json b/translations/ru/pages/vendors.json
index 7868a55b..b87952fa 100644
--- a/translations/ru/pages/vendors.json
+++ b/translations/ru/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Публичные компании",
+ "startup": "Стартапы",
+ "superUnicorn": "Супер-единороги",
+ "unicorn": "Единороги"
+ },
+ "noResults": "Нет вендоров, соответствующих поиску",
"subtitle": "Ведущие компании и организации, создающие технологии ИИ",
"title": "Вендоры ИИ-кодинга"
}
diff --git a/translations/ru/shared.json b/translations/ru/shared.json
index 99d34bc9..72d86ade 100644
--- a/translations/ru/shared.json
+++ b/translations/ru/shared.json
@@ -84,6 +84,9 @@
"latest": "Новая",
"maintained": "Поддерживаемая"
},
+ "modelParameters": {
+ "totalAndActive": "{total} всего / {active} активных"
+ },
"modelPricing": {
"cacheRead": "Чтение кеша",
"cacheWrite": "Запись кеша",
diff --git a/translations/tr/pages/vendors.json b/translations/tr/pages/vendors.json
index 2358250b..16c4873a 100644
--- a/translations/tr/pages/vendors.json
+++ b/translations/tr/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "Halka Açık Şirketler",
+ "startup": "Girişimler",
+ "superUnicorn": "Süper Unicornlar",
+ "unicorn": "Unicornlar"
+ },
+ "noResults": "Aramanızla eşleşen satıcı bulunamadı",
"subtitle": "AI teknolojilerini geliştiren önde gelen şirketler ve kuruluşlar",
"title": "AI Kodlama Satıcıları"
}
diff --git a/translations/tr/shared.json b/translations/tr/shared.json
index c790f3b1..692f3f91 100644
--- a/translations/tr/shared.json
+++ b/translations/tr/shared.json
@@ -84,6 +84,9 @@
"latest": "En yeni",
"maintained": "Destekleniyor"
},
+ "modelParameters": {
+ "totalAndActive": "{total} toplam / {active} etkin"
+ },
"modelPricing": {
"cacheRead": "Önbellek okuma",
"cacheWrite": "Önbellek yazma",
diff --git a/translations/zh-Hans/pages/vendors.json b/translations/zh-Hans/pages/vendors.json
index 43f4d181..6897c991 100644
--- a/translations/zh-Hans/pages/vendors.json
+++ b/translations/zh-Hans/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "上市公司",
+ "startup": "创业公司",
+ "superUnicorn": "超级独角兽",
+ "unicorn": "独角兽"
+ },
+ "noResults": "没有符合搜索条件的厂商",
"subtitle": "构建 AI 技术的领先公司和组织",
"title": "AI 编码厂商"
}
diff --git a/translations/zh-Hans/shared.json b/translations/zh-Hans/shared.json
index 8a5f4155..b144f38a 100644
--- a/translations/zh-Hans/shared.json
+++ b/translations/zh-Hans/shared.json
@@ -84,6 +84,9 @@
"latest": "最新",
"maintained": "维护中"
},
+ "modelParameters": {
+ "totalAndActive": "{total} 总参数 / {active} 激活参数"
+ },
"modelPricing": {
"cacheRead": "缓存读取",
"cacheWrite": "缓存写入",
diff --git a/translations/zh-Hant/pages/vendors.json b/translations/zh-Hant/pages/vendors.json
index 9a9245ae..dfeaaf94 100644
--- a/translations/zh-Hant/pages/vendors.json
+++ b/translations/zh-Hant/pages/vendors.json
@@ -1,4 +1,11 @@
{
+ "companyStages": {
+ "publicCompany": "上市公司",
+ "startup": "新創公司",
+ "superUnicorn": "超級獨角獸",
+ "unicorn": "獨角獸"
+ },
+ "noResults": "沒有符合搜尋條件的廠商",
"subtitle": "建構 AI 技術的領先公司和組織",
"title": "AI 編碼廠商"
}
diff --git a/translations/zh-Hant/shared.json b/translations/zh-Hant/shared.json
index 378ae5a3..3fd94e7f 100644
--- a/translations/zh-Hant/shared.json
+++ b/translations/zh-Hant/shared.json
@@ -84,6 +84,9 @@
"latest": "最新",
"maintained": "維護中"
},
+ "modelParameters": {
+ "totalAndActive": "{total} 總參數 / {active} 啟用參數"
+ },
"modelPricing": {
"cacheRead": "快取讀取",
"cacheWrite": "快取寫入",