tau-coding-agent 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. tau/__init__.py +0 -0
  2. tau/agent/__init__.py +11 -0
  3. tau/agent/prompt/__init__.py +10 -0
  4. tau/agent/prompt/builder.py +302 -0
  5. tau/agent/prompt/types.py +33 -0
  6. tau/agent/service.py +369 -0
  7. tau/agent/types.py +61 -0
  8. tau/auth/manager.py +247 -0
  9. tau/auth/storage.py +82 -0
  10. tau/auth/types.py +41 -0
  11. tau/builtins/__init__.py +4 -0
  12. tau/builtins/__pycache__/__init__.cpython-313.pyc +0 -0
  13. tau/builtins/__pycache__/__init__.cpython-314.pyc +0 -0
  14. tau/builtins/commands/__init__.py +41 -0
  15. tau/builtins/commands/__pycache__/__init__.cpython-313.pyc +0 -0
  16. tau/builtins/commands/__pycache__/__init__.cpython-314.pyc +0 -0
  17. tau/builtins/commands/__pycache__/clear.cpython-313.pyc +0 -0
  18. tau/builtins/commands/__pycache__/clear.cpython-314.pyc +0 -0
  19. tau/builtins/commands/__pycache__/compact.cpython-313.pyc +0 -0
  20. tau/builtins/commands/__pycache__/compact.cpython-314.pyc +0 -0
  21. tau/builtins/commands/__pycache__/reload.cpython-313.pyc +0 -0
  22. tau/builtins/commands/__pycache__/reload.cpython-314.pyc +0 -0
  23. tau/builtins/commands/__pycache__/session.cpython-313.pyc +0 -0
  24. tau/builtins/commands/__pycache__/session.cpython-314.pyc +0 -0
  25. tau/builtins/commands/clear.py +16 -0
  26. tau/builtins/commands/compact.py +28 -0
  27. tau/builtins/commands/reload.py +27 -0
  28. tau/builtins/commands/session.py +19 -0
  29. tau/builtins/extensions/footer/__init__.py +76 -0
  30. tau/builtins/extensions/footer/__pycache__/__init__.cpython-313.pyc +0 -0
  31. tau/builtins/extensions/footer/__pycache__/git.cpython-313.pyc +0 -0
  32. tau/builtins/extensions/footer/__pycache__/model.cpython-313.pyc +0 -0
  33. tau/builtins/extensions/footer/__pycache__/utils.cpython-313.pyc +0 -0
  34. tau/builtins/extensions/footer/git.py +26 -0
  35. tau/builtins/extensions/footer/model.py +69 -0
  36. tau/builtins/extensions/footer/utils.py +44 -0
  37. tau/builtins/extensions/header/__init__.py +18 -0
  38. tau/builtins/extensions/header/__pycache__/__init__.cpython-313.pyc +0 -0
  39. tau/builtins/models/__init__.py +0 -0
  40. tau/builtins/models/__pycache__/__init__.cpython-313.pyc +0 -0
  41. tau/builtins/models/__pycache__/text.cpython-313.pyc +0 -0
  42. tau/builtins/models/audio.py +43 -0
  43. tau/builtins/models/image.py +43 -0
  44. tau/builtins/models/text.py +482 -0
  45. tau/builtins/models/video.py +40 -0
  46. tau/builtins/prompts/commit.md +7 -0
  47. tau/builtins/prompts/docs.md +7 -0
  48. tau/builtins/prompts/explain.md +7 -0
  49. tau/builtins/prompts/fix.md +7 -0
  50. tau/builtins/prompts/refactor.md +7 -0
  51. tau/builtins/prompts/review.md +7 -0
  52. tau/builtins/prompts/test.md +7 -0
  53. tau/builtins/providers/__init__.py +0 -0
  54. tau/builtins/providers/__pycache__/__init__.cpython-313.pyc +0 -0
  55. tau/builtins/providers/__pycache__/text.cpython-313.pyc +0 -0
  56. tau/builtins/providers/audio.py +10 -0
  57. tau/builtins/providers/image.py +9 -0
  58. tau/builtins/providers/text.py +33 -0
  59. tau/builtins/providers/video.py +6 -0
  60. tau/builtins/skills/code-review/SKILL.md +4 -0
  61. tau/builtins/skills/debug/SKILL.md +4 -0
  62. tau/builtins/skills/git-commit/SKILL.md +4 -0
  63. tau/builtins/themes/dark.yaml +1 -0
  64. tau/builtins/themes/light.yaml +46 -0
  65. tau/builtins/tools/__init__.py +73 -0
  66. tau/builtins/tools/__pycache__/__init__.cpython-313.pyc +0 -0
  67. tau/builtins/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  68. tau/builtins/tools/__pycache__/bash.cpython-313.pyc +0 -0
  69. tau/builtins/tools/__pycache__/bash.cpython-314.pyc +0 -0
  70. tau/builtins/tools/__pycache__/edit.cpython-313.pyc +0 -0
  71. tau/builtins/tools/__pycache__/edit.cpython-314.pyc +0 -0
  72. tau/builtins/tools/__pycache__/glob.cpython-313.pyc +0 -0
  73. tau/builtins/tools/__pycache__/glob.cpython-314.pyc +0 -0
  74. tau/builtins/tools/__pycache__/grep.cpython-313.pyc +0 -0
  75. tau/builtins/tools/__pycache__/grep.cpython-314.pyc +0 -0
  76. tau/builtins/tools/__pycache__/ls.cpython-313.pyc +0 -0
  77. tau/builtins/tools/__pycache__/ls.cpython-314.pyc +0 -0
  78. tau/builtins/tools/__pycache__/read.cpython-313.pyc +0 -0
  79. tau/builtins/tools/__pycache__/read.cpython-314.pyc +0 -0
  80. tau/builtins/tools/__pycache__/terminal.cpython-313.pyc +0 -0
  81. tau/builtins/tools/__pycache__/terminal.cpython-314.pyc +0 -0
  82. tau/builtins/tools/__pycache__/write.cpython-313.pyc +0 -0
  83. tau/builtins/tools/__pycache__/write.cpython-314.pyc +0 -0
  84. tau/builtins/tools/edit.py +215 -0
  85. tau/builtins/tools/glob.py +112 -0
  86. tau/builtins/tools/grep.py +146 -0
  87. tau/builtins/tools/ls.py +135 -0
  88. tau/builtins/tools/read.py +122 -0
  89. tau/builtins/tools/terminal.py +150 -0
  90. tau/builtins/tools/write.py +105 -0
  91. tau/commands/__init__.py +10 -0
  92. tau/commands/registry.py +71 -0
  93. tau/commands/types.py +33 -0
  94. tau/console/__init__.py +0 -0
  95. tau/console/cli.py +266 -0
  96. tau/console/commands/__init__.py +0 -0
  97. tau/console/commands/auth.py +193 -0
  98. tau/console/commands/packages.py +104 -0
  99. tau/console/commands/update.py +76 -0
  100. tau/core/__init__.py +0 -0
  101. tau/core/registry.py +102 -0
  102. tau/engine/__init__.py +47 -0
  103. tau/engine/service.py +768 -0
  104. tau/engine/types.py +163 -0
  105. tau/extensions/__init__.py +28 -0
  106. tau/extensions/api.py +928 -0
  107. tau/extensions/context.py +462 -0
  108. tau/extensions/events.py +70 -0
  109. tau/extensions/loader.py +386 -0
  110. tau/extensions/runtime.py +184 -0
  111. tau/extensions/settings.py +137 -0
  112. tau/hooks/__init__.py +112 -0
  113. tau/hooks/engine.py +237 -0
  114. tau/hooks/inference.py +21 -0
  115. tau/hooks/runtime.py +126 -0
  116. tau/hooks/service.py +121 -0
  117. tau/hooks/session.py +117 -0
  118. tau/hooks/tui.py +61 -0
  119. tau/hooks/types.py +72 -0
  120. tau/inference/__init__.py +180 -0
  121. tau/inference/api/__init__.py +0 -0
  122. tau/inference/api/audio/__init__.py +0 -0
  123. tau/inference/api/audio/base.py +29 -0
  124. tau/inference/api/audio/builtins.py +15 -0
  125. tau/inference/api/audio/elevenlabs_audio.py +183 -0
  126. tau/inference/api/audio/gemini_audio.py +95 -0
  127. tau/inference/api/audio/openai_audio.py +159 -0
  128. tau/inference/api/audio/registry.py +15 -0
  129. tau/inference/api/audio/sarvam_audio.py +163 -0
  130. tau/inference/api/audio/service.py +103 -0
  131. tau/inference/api/audio/utils.py +47 -0
  132. tau/inference/api/image/__init__.py +0 -0
  133. tau/inference/api/image/base.py +17 -0
  134. tau/inference/api/image/builtins.py +8 -0
  135. tau/inference/api/image/gemini_image.py +77 -0
  136. tau/inference/api/image/openai_image.py +103 -0
  137. tau/inference/api/image/openrouter.py +144 -0
  138. tau/inference/api/image/registry.py +15 -0
  139. tau/inference/api/image/service.py +71 -0
  140. tau/inference/api/registry.py +82 -0
  141. tau/inference/api/text/__init__.py +0 -0
  142. tau/inference/api/text/anthropic_claude_code.py +222 -0
  143. tau/inference/api/text/anthropic_messages.py +196 -0
  144. tau/inference/api/text/base.py +40 -0
  145. tau/inference/api/text/builtins.py +19 -0
  146. tau/inference/api/text/gemini_generate.py +234 -0
  147. tau/inference/api/text/github_copilot_chat.py +172 -0
  148. tau/inference/api/text/google_antigravity.py +522 -0
  149. tau/inference/api/text/mistral_chat.py +284 -0
  150. tau/inference/api/text/ollama_chat.py +200 -0
  151. tau/inference/api/text/openai_codex_responses.py +497 -0
  152. tau/inference/api/text/openai_completions.py +227 -0
  153. tau/inference/api/text/openai_responses.py +235 -0
  154. tau/inference/api/text/registry.py +50 -0
  155. tau/inference/api/text/service.py +297 -0
  156. tau/inference/api/text/types.py +7 -0
  157. tau/inference/api/text/utils.py +228 -0
  158. tau/inference/api/video/__init__.py +0 -0
  159. tau/inference/api/video/base.py +26 -0
  160. tau/inference/api/video/builtins.py +7 -0
  161. tau/inference/api/video/fal_video.py +119 -0
  162. tau/inference/api/video/openrouter_video.py +142 -0
  163. tau/inference/api/video/registry.py +15 -0
  164. tau/inference/api/video/service.py +72 -0
  165. tau/inference/model/__init__.py +0 -0
  166. tau/inference/model/registry.py +102 -0
  167. tau/inference/model/types.py +65 -0
  168. tau/inference/provider/__init__.py +0 -0
  169. tau/inference/provider/oauth/__init__.py +35 -0
  170. tau/inference/provider/oauth/anthropic_claude_code.py +286 -0
  171. tau/inference/provider/oauth/github_copilot.py +333 -0
  172. tau/inference/provider/oauth/google_antigravity.py +258 -0
  173. tau/inference/provider/oauth/openai_codex.py +309 -0
  174. tau/inference/provider/oauth/pkce.py +14 -0
  175. tau/inference/provider/oauth/types.py +46 -0
  176. tau/inference/provider/oauth/utils.py +154 -0
  177. tau/inference/provider/registry.py +141 -0
  178. tau/inference/provider/types.py +114 -0
  179. tau/inference/types.py +549 -0
  180. tau/inference/utils.py +219 -0
  181. tau/message/__init__.py +0 -0
  182. tau/message/types.py +482 -0
  183. tau/message/utils.py +178 -0
  184. tau/packages/__init__.py +11 -0
  185. tau/packages/manager.py +190 -0
  186. tau/packages/types.py +20 -0
  187. tau/packages/utils.py +67 -0
  188. tau/prompts/expand.py +58 -0
  189. tau/prompts/loader.py +69 -0
  190. tau/prompts/registry.py +45 -0
  191. tau/prompts/types.py +24 -0
  192. tau/rpc/__init__.py +8 -0
  193. tau/rpc/mode.py +783 -0
  194. tau/rpc/types.py +252 -0
  195. tau/runtime/service.py +759 -0
  196. tau/runtime/types.py +303 -0
  197. tau/session/branch_summarization.py +312 -0
  198. tau/session/compaction.py +646 -0
  199. tau/session/manager.py +652 -0
  200. tau/session/types.py +188 -0
  201. tau/session/utils.py +233 -0
  202. tau/settings/manager.py +1077 -0
  203. tau/settings/paths.py +150 -0
  204. tau/settings/storage.py +63 -0
  205. tau/settings/types.py +173 -0
  206. tau/settings/utils.py +25 -0
  207. tau/skills/loader.py +91 -0
  208. tau/skills/registry.py +70 -0
  209. tau/skills/types.py +25 -0
  210. tau/themes/loader.py +238 -0
  211. tau/themes/registry.py +108 -0
  212. tau/themes/types.py +19 -0
  213. tau/tool/__init__.py +3 -0
  214. tau/tool/registry.py +117 -0
  215. tau/tool/render.py +21 -0
  216. tau/tool/types.py +244 -0
  217. tau/trust/__init__.py +13 -0
  218. tau/trust/manager.py +80 -0
  219. tau/trust/types.py +14 -0
  220. tau/trust/utils.py +72 -0
  221. tau/tui/__init__.py +54 -0
  222. tau/tui/agent_hooks.py +346 -0
  223. tau/tui/ansi.py +330 -0
  224. tau/tui/app.py +540 -0
  225. tau/tui/autocomplete.py +33 -0
  226. tau/tui/capabilities.py +119 -0
  227. tau/tui/commands/__init__.py +3 -0
  228. tau/tui/commands/appearance.py +498 -0
  229. tau/tui/commands/auth.py +232 -0
  230. tau/tui/commands/context.py +38 -0
  231. tau/tui/commands/misc.py +82 -0
  232. tau/tui/commands/model.py +118 -0
  233. tau/tui/commands/session.py +464 -0
  234. tau/tui/component.py +268 -0
  235. tau/tui/components/__init__.py +0 -0
  236. tau/tui/components/autocomplete_manager.py +267 -0
  237. tau/tui/components/autocomplete_picker.py +143 -0
  238. tau/tui/components/box.py +90 -0
  239. tau/tui/components/command_palette.py +144 -0
  240. tau/tui/components/dynamic_border.py +19 -0
  241. tau/tui/components/file_picker.py +233 -0
  242. tau/tui/components/image.py +181 -0
  243. tau/tui/components/inline_selector.py +71 -0
  244. tau/tui/components/layout.py +1194 -0
  245. tau/tui/components/message_list.py +692 -0
  246. tau/tui/components/modal.py +97 -0
  247. tau/tui/components/model_palette.py +204 -0
  248. tau/tui/components/picker_overlay.py +174 -0
  249. tau/tui/components/prompt_overlay.py +236 -0
  250. tau/tui/components/resume_modal.py +372 -0
  251. tau/tui/components/select_list.py +222 -0
  252. tau/tui/components/settings_modal.py +274 -0
  253. tau/tui/components/settings_schema.py +203 -0
  254. tau/tui/components/spinner.py +119 -0
  255. tau/tui/components/text_input.py +396 -0
  256. tau/tui/components/text_prompt.py +82 -0
  257. tau/tui/components/tree_select_list.py +580 -0
  258. tau/tui/components/trust_screen.py +97 -0
  259. tau/tui/diff.py +114 -0
  260. tau/tui/fuzzy.py +99 -0
  261. tau/tui/input.py +496 -0
  262. tau/tui/input_handler.py +716 -0
  263. tau/tui/keybindings.py +87 -0
  264. tau/tui/markdown.py +286 -0
  265. tau/tui/message_renderers.py +31 -0
  266. tau/tui/overlay.py +326 -0
  267. tau/tui/renderer.py +378 -0
  268. tau/tui/terminal.py +499 -0
  269. tau/tui/theme.py +148 -0
  270. tau/tui/tui.py +544 -0
  271. tau/tui/ui_context.py +768 -0
  272. tau/tui/utils.py +20 -0
  273. tau/utils/__init__.py +0 -0
  274. tau/utils/http_proxy.py +221 -0
  275. tau/utils/image_processing.py +172 -0
  276. tau/utils/secrets.py +59 -0
  277. tau/utils/version_check.py +60 -0
  278. tau_coding_agent-0.1.0.dist-info/METADATA +177 -0
  279. tau_coding_agent-0.1.0.dist-info/RECORD +283 -0
  280. tau_coding_agent-0.1.0.dist-info/WHEEL +5 -0
  281. tau_coding_agent-0.1.0.dist-info/entry_points.txt +2 -0
  282. tau_coding_agent-0.1.0.dist-info/licenses/LICENSE +21 -0
  283. tau_coding_agent-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,482 @@
1
+ from tau.inference.model.types import Cost, Model, Modality
2
+
3
+ _TEXT = [Modality.Text]
4
+ _TEXT_IMAGE = [Modality.Text, Modality.Image]
5
+ _TEXT_IMAGE_VIDEO = [Modality.Text, Modality.Image, Modality.Video]
6
+
7
+ models = [
8
+ # OpenAI Codex (OAuth)
9
+ Model(id="gpt-5.5", name="GPT-5.5", provider="openai-codex", cost=Cost(), thinking=True, context_window=400_000, input=_TEXT_IMAGE, output=_TEXT),
10
+ Model(id="gpt-5.4", name="GPT-5.4", provider="openai-codex", cost=Cost(), thinking=True, context_window=400_000, input=_TEXT_IMAGE, output=_TEXT),
11
+ Model(id="gpt-5.4-mini", name="GPT-5.4 Mini", provider="openai-codex", cost=Cost(), thinking=True, context_window=400_000, input=_TEXT_IMAGE, output=_TEXT),
12
+ Model(id="gpt-5.3-codex", name="GPT-5.3 Codex", provider="openai-codex", cost=Cost(), thinking=True, context_window=400_000, input=_TEXT_IMAGE, output=_TEXT),
13
+ Model(id="gpt-5.3-codex-spark", name="GPT-5.3 Codex Spark", provider="openai-codex", cost=Cost(), thinking=True, context_window=400_000, input=_TEXT_IMAGE, output=_TEXT),
14
+ Model(id="gpt-5.2", name="GPT-5.2", provider="openai-codex", cost=Cost(), thinking=True, context_window=400_000, input=_TEXT_IMAGE, output=_TEXT),
15
+ # Anthropic Claude Code (OAuth)
16
+ Model(id="claude-opus-4-7", name="Claude Opus 4.7", provider="anthropic-claude-code", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
17
+ Model(id="claude-sonnet-4-6", name="Claude Sonnet 4.6", provider="anthropic-claude-code", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
18
+ Model(id="claude-haiku-4-5-20251001", name="Claude Haiku 4.5", provider="anthropic-claude-code", cost=Cost(), context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
19
+ # Google Antigravity (OAuth — free IDE quota)
20
+ Model(id="gemini-3-flash", name="Gemini 3 Flash", provider="google-antigravity", cost=Cost(), thinking=True, context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
21
+ Model(id="gemini-3.1-pro-preview", name="Gemini 3.1 Pro", provider="google-antigravity", cost=Cost(), thinking=True, context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
22
+ Model(id="gemini-3-flash-preview", name="Gemini 3 Flash Preview", provider="google-antigravity", cost=Cost(), thinking=True, context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
23
+ Model(id="gemini-3.1-flash-lite", name="Gemini 3.1 Flash Lite", provider="google-antigravity", cost=Cost(), context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
24
+ Model(id="gemini-2.5-pro", name="Gemini 2.5 Pro", provider="google-antigravity", cost=Cost(), thinking=True, context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
25
+ Model(id="gemini-2.5-flash", name="Gemini 2.5 Flash", provider="google-antigravity", cost=Cost(), thinking=True, context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
26
+ Model(id="gemini-2.5-flash-lite", name="Gemini 2.5 Flash Lite", provider="google-antigravity", cost=Cost(), context_window=1_048_576, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
27
+ # GitHub Copilot
28
+ Model(id="gpt-4o", name="GPT-4o", provider="github-copilot", cost=Cost(), context_window=128_000, input=_TEXT_IMAGE, output=_TEXT),
29
+ Model(id="gpt-4o-mini", name="GPT-4o Mini", provider="github-copilot", cost=Cost(), context_window=128_000, input=_TEXT_IMAGE, output=_TEXT),
30
+ Model(id="o3-mini", name="O3 Mini", provider="github-copilot", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT, output=_TEXT),
31
+ Model(id="claude-3.5-sonnet", name="Claude 3.5 Sonnet", provider="github-copilot", cost=Cost(), context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
32
+ Model(id="claude-3.7-sonnet", name="Claude 3.7 Sonnet", provider="github-copilot", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
33
+ Model(id="gemini-2.0-flash-001", name="Gemini 2.0 Flash", provider="github-copilot", cost=Cost(), context_window=1_000_000, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
34
+ Model(id="grok-3", name="Grok 3", provider="github-copilot", cost=Cost(), context_window=131_072, input=_TEXT, output=_TEXT),
35
+ # OpenAI (API key)
36
+ Model(id="gpt-5.5", name="GPT-5.5", provider="openai", cost=Cost(input=5.0, output=30.0, cache_read=0.50), thinking=True, context_window=1_050_000, input=_TEXT_IMAGE, output=_TEXT),
37
+ Model(id="gpt-5.4", name="GPT-5.4", provider="openai", cost=Cost(input=2.5, output=15.0, cache_read=0.25), thinking=True, context_window=1_000_000, input=_TEXT_IMAGE, output=_TEXT),
38
+ Model(id="gpt-5.4-mini", name="GPT-5.4 Mini", provider="openai", cost=Cost(input=0.75, output=4.5, cache_read=0.075), thinking=True, context_window=1_000_000, input=_TEXT_IMAGE, output=_TEXT),
39
+ # Anthropic (API key)
40
+ Model(id="claude-opus-4-7", name="Claude Opus 4.7", provider="anthropic", cost=Cost(input=15.0, output=75.0, cache_read=1.5, cache_write=3.75), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
41
+ Model(id="claude-sonnet-4-6", name="Claude Sonnet 4.6", provider="anthropic", cost=Cost(input=3.0, output=15.0, cache_read=0.30, cache_write=3.75), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
42
+ Model(id="claude-haiku-4-5-20251001", name="Claude Haiku 4.5", provider="anthropic", cost=Cost(input=0.80, output=4.0, cache_read=0.08, cache_write=1.0), context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
43
+ # NVIDIA NIM
44
+ Model(id="nvidia/llama-3.3-nemotron-super-49b-v1.5", name="Nemotron Super 49B v1.5", provider="nvidia", cost=Cost(), thinking=True, context_window=128_000, input=_TEXT, output=_TEXT),
45
+ Model(id="meta/llama-3.3-70b-instruct", name="Llama 3.3 70B Instruct", provider="nvidia", cost=Cost(), context_window=128_000, input=_TEXT, output=_TEXT),
46
+ Model(id="meta/llama-3.1-8b-instruct", name="Llama 3.1 8B Instruct", provider="nvidia", cost=Cost(), context_window=128_000, input=_TEXT, output=_TEXT),
47
+ Model(id="qwen/qwen3-next-80b-a3b-thinking", name="Qwen3 Next 80B Thinking", provider="nvidia", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
48
+ Model(id="qwen/qwen3-next-80b-a3b-instruct", name="Qwen3 Next 80B Instruct", provider="nvidia", cost=Cost(), context_window=131_072, input=_TEXT, output=_TEXT),
49
+ Model(id="qwen/qwen3.5-397b-a17b", name="Qwen3.5 397B A17B", provider="nvidia", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
50
+ Model(id="qwen/qwen3.5-122b-a10b", name="Qwen3.5 122B A10B", provider="nvidia", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
51
+ Model(id="qwen/qwen3-coder-480b-a35b-instruct", name="Qwen3 Coder 480B", provider="nvidia", cost=Cost(), context_window=256_000, input=_TEXT, output=_TEXT),
52
+ Model(id="deepseek-ai/deepseek-v4-pro", name="DeepSeek V4 Pro", provider="nvidia", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
53
+ Model(id="deepseek-ai/deepseek-v4-flash", name="DeepSeek V4 Flash", provider="nvidia", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
54
+ Model(id="z-ai/glm-5.1", name="GLM-5.1", provider="nvidia", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
55
+ Model(id="mistralai/mistral-medium-3.5-128b", name="Mistral Medium 3.5 128B", provider="nvidia", cost=Cost(), context_window=128_000, input=_TEXT, output=_TEXT),
56
+ Model(id="mistralai/mistral-small-4-119b-2603", name="Mistral Small 4 119B", provider="nvidia", cost=Cost(), context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
57
+ Model(id="google/gemma-4-31b-it", name="Gemma 4 31B IT", provider="nvidia", cost=Cost(), context_window=131_072, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
58
+ Model(id="minimaxai/minimax-m2.7", name="MiniMax M2.7", provider="nvidia", cost=Cost(), context_window=131_072, input=_TEXT, output=_TEXT),
59
+ Model(id="moonshotai/kimi-k2.6", name="Kimi K2.6", provider="nvidia", cost=Cost(), context_window=131_072, input=_TEXT_IMAGE, output=_TEXT),
60
+ Model(id="nvidia/nemotron-3-nano-omni-30b-a3b-reasoning", name="Nemotron 3 Nano Omni", provider="nvidia", cost=Cost(), context_window=131_072, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
61
+ Model(id="nvidia/nemotron-3-super-120b-a12b", name="Nemotron 3 Super 120B", provider="nvidia", cost=Cost(), context_window=1_000_000, input=_TEXT, output=_TEXT),
62
+ # Groq (caps max_completion_tokens at 8192)
63
+ Model(id="openai/gpt-oss-120b", name="GPT-OSS 120B", provider="groq", cost=Cost(input=0.15, output=0.60), thinking=True, context_window=131_072, max_tokens=8192, input=_TEXT, output=_TEXT),
64
+ Model(id="openai/gpt-oss-20b", name="GPT-OSS 20B", provider="groq", cost=Cost(input=0.075, output=0.30), thinking=True, context_window=131_072, max_tokens=8192, input=_TEXT, output=_TEXT),
65
+ Model(id="qwen/qwen3-32b", name="Qwen3 32B", provider="groq", cost=Cost(input=0.29, output=0.59), thinking=True, context_window=131_072, max_tokens=8192, input=_TEXT, output=_TEXT),
66
+ Model(id="llama-3.3-70b-versatile", name="Llama 3.3 70B", provider="groq", cost=Cost(input=0.59, output=0.79), context_window=131_072, max_tokens=8192, input=_TEXT, output=_TEXT),
67
+ Model(id="llama-3.1-8b-instant", name="Llama 3.1 8B Instant", provider="groq", cost=Cost(input=0.05, output=0.08), context_window=131_072, max_tokens=8192, input=_TEXT, output=_TEXT),
68
+ Model(id="meta-llama/llama-4-scout-17b-16e-instruct", name="Llama 4 Scout 17Bx16E", provider="groq", cost=Cost(input=0.11, output=0.34), context_window=131_072, max_tokens=8192, input=_TEXT_IMAGE, output=_TEXT),
69
+ # Perplexity
70
+ Model(id="perplexity/sonar", name="Sonar", provider="perplexity", cost=Cost(input=1.0, output=1.0), context_window=128_000, input=_TEXT, output=_TEXT),
71
+ Model(id="perplexity/sonar-pro", name="Sonar Pro", provider="perplexity", cost=Cost(input=3.0, output=15.0), context_window=200_000, input=_TEXT, output=_TEXT),
72
+ Model(id="perplexity/sonar-reasoning-pro", name="Sonar Reasoning Pro", provider="perplexity", cost=Cost(input=2.0, output=8.0), thinking=True, context_window=128_000, input=_TEXT, output=_TEXT),
73
+ Model(id="perplexity/sonar-deep-research", name="Sonar Deep Research", provider="perplexity", cost=Cost(input=2.0, output=8.0), thinking=True, context_window=128_000, input=_TEXT, output=_TEXT),
74
+ # xAI
75
+ Model(id="grok-4.3", name="Grok 4.3", provider="xai", cost=Cost(input=1.25, output=2.50, cache_read=0.20), thinking=True, context_window=1_000_000, input=_TEXT_IMAGE, output=_TEXT),
76
+ Model(id="grok-build-0.1", name="Grok Build 0.1", provider="xai", cost=Cost(input=1.00, output=2.00, cache_read=0.20), thinking=True, context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
77
+ # AWS Bedrock
78
+ Model(id="openai.gpt-oss-120b", name="GPT-OSS 120B", provider="bedrock", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
79
+ Model(id="openai.gpt-oss-20b", name="GPT-OSS 20B", provider="bedrock", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
80
+ Model(id="anthropic.claude-opus-4-7", name="Claude Opus 4.7", provider="bedrock", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT, api="anthropic_messages", base_url="https://bedrock-mantle.us-east-1.api.aws/anthropic"),
81
+ Model(id="anthropic.claude-sonnet-4-6", name="Claude Sonnet 4.6", provider="bedrock", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT, api="anthropic_messages", base_url="https://bedrock-mantle.us-east-1.api.aws/anthropic"),
82
+ # Kimi / Moonshot
83
+ Model(id="kimi-k2.6", name="Kimi K2.6", provider="kimi", cost=Cost(input=0.95, output=4.0, cache_read=0.16), thinking=True, context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
84
+ Model(id="kimi-k2.5", name="Kimi K2.5", provider="kimi", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
85
+ Model(id="kimi-k2-thinking", name="Kimi K2 Thinking", provider="kimi", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT, output=_TEXT),
86
+ Model(id="moonshot-v1-128k", name="Moonshot v1 128K", provider="kimi", cost=Cost(), context_window=128_000, input=_TEXT, output=_TEXT),
87
+ Model(id="moonshot-v1-128k-vision-preview", name="Moonshot v1 128K Vision", provider="kimi", cost=Cost(), context_window=128_000, input=_TEXT_IMAGE, output=_TEXT),
88
+ # MiniMax
89
+ Model(id="MiniMax-M2.7", name="MiniMax M2.7", provider="minimax", cost=Cost(), thinking=True, context_window=204_800, max_tokens=196_608, input=_TEXT, output=_TEXT),
90
+ Model(id="MiniMax-M2.7-highspeed", name="MiniMax M2.7 Highspeed", provider="minimax", cost=Cost(), thinking=True, context_window=204_800, max_tokens=196_608, input=_TEXT, output=_TEXT),
91
+ Model(id="MiniMax-M2.5", name="MiniMax M2.5", provider="minimax", cost=Cost(), thinking=True, context_window=204_800, max_tokens=196_608, input=_TEXT, output=_TEXT),
92
+ Model(id="MiniMax-M2.1", name="MiniMax M2.1", provider="minimax", cost=Cost(), thinking=True, context_window=204_800, max_tokens=196_608, input=_TEXT, output=_TEXT),
93
+ # DeepSeek
94
+ Model(id="deepseek-v4-pro", name="DeepSeek V4 Pro", provider="deepseek", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
95
+ Model(id="deepseek-v4-flash", name="DeepSeek V4 Flash", provider="deepseek", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
96
+ Model(id="deepseek-chat", name="DeepSeek Chat", provider="deepseek", cost=Cost(), context_window=1_000_000, input=_TEXT, output=_TEXT),
97
+ Model(id="deepseek-reasoner", name="DeepSeek Reasoner", provider="deepseek", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
98
+ # Kilo Code Gateway
99
+ Model(id="kilo-auto/frontier", name="Kilo Auto Frontier", provider="kilocode", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
100
+ Model(id="kilo-auto/balanced", name="Kilo Auto Balanced", provider="kilocode", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
101
+ Model(id="kilo-auto/free", name="Kilo Auto Free", provider="kilocode", cost=Cost(), thinking=True, context_window=128_000, input=_TEXT, output=_TEXT),
102
+ Model(id="kilo-auto/small", name="Kilo Auto Small", provider="kilocode", cost=Cost(), context_window=128_000, input=_TEXT, output=_TEXT),
103
+ Model(id="anthropic/claude-sonnet-4.6", name="Claude Sonnet 4.6", provider="kilocode", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT_IMAGE, output=_TEXT),
104
+ Model(id="deepseek/deepseek-v3.2", name="DeepSeek V3.2", provider="kilocode", cost=Cost(), thinking=True, context_window=131_072, input=_TEXT, output=_TEXT),
105
+ Model(id="moonshotai/kimi-k2.5", name="Kimi K2.5", provider="kilocode", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT, output=_TEXT),
106
+ Model(id="minimax/minimax-m2.7", name="MiniMax M2.7", provider="kilocode", cost=Cost(), thinking=True, context_window=204_800, input=_TEXT, output=_TEXT),
107
+ # Mistral
108
+ Model(id="mistral-large-latest", name="Mistral Large 3", provider="mistral", cost=Cost(input=0.50, output=1.50), context_window=262_144, input=_TEXT_IMAGE, output=_TEXT),
109
+ Model(id="mistral-medium-latest", name="Mistral Medium 3.5", provider="mistral", cost=Cost(input=0.40, output=2.0), context_window=131_072, input=_TEXT_IMAGE, output=_TEXT),
110
+ Model(id="mistral-small-latest", name="Mistral Small 4", provider="mistral", cost=Cost(input=0.10, output=0.30), thinking=True, context_window=131_072, input=_TEXT_IMAGE, output=_TEXT),
111
+ Model(id="magistral-medium-latest", name="Magistral Medium 1.2", provider="mistral", cost=Cost(input=2.0, output=5.0), thinking=True, context_window=131_072, input=_TEXT_IMAGE, output=_TEXT),
112
+ Model(id="devstral-latest", name="Devstral 2", provider="mistral", cost=Cost(input=0.40, output=2.0), context_window=262_144, input=_TEXT, output=_TEXT),
113
+ Model(id="codestral-latest", name="Codestral", provider="mistral", cost=Cost(input=0.30, output=0.90), context_window=262_144, input=_TEXT, output=_TEXT),
114
+ # Ollama
115
+ Model(id="deepseek-v4-pro:cloud", name="DeepSeek V4 Pro Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
116
+ Model(id="deepseek-v4-flash:cloud", name="DeepSeek V4 Flash Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=1_000_000, input=_TEXT, output=_TEXT),
117
+ Model(id="deepseek-v3.2:cloud", name="DeepSeek V3.2 Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=160_000, input=_TEXT, output=_TEXT),
118
+ Model(id="gemma4:31b-cloud", name="Gemma 4 31B Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT_IMAGE_VIDEO, output=_TEXT),
119
+ Model(id="glm-5.1:cloud", name="GLM 5.1 Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=198_000, input=_TEXT, output=_TEXT),
120
+ Model(id="minimax-m2.7:cloud", name="MiniMax M2.7 Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=200_000, input=_TEXT, output=_TEXT),
121
+ Model(id="kimi-k2.6:cloud", name="Kimi K2.6 Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
122
+ Model(id="qwen3.5:397b-cloud", name="Qwen 3.5 397B Cloud", provider="ollama", cost=Cost(), thinking=True, context_window=256_000, input=_TEXT_IMAGE, output=_TEXT),
123
+ # OpenRouter
124
+ Model(id='qwen/qwen3.7-max', name='Qwen: Qwen3.7 Max', provider='openrouter', cost=Cost(input=2.5, output=7.5, cache_read=0.0, cache_write=3.125), thinking=True, context_window=1000000, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
125
+ Model(id='x-ai/grok-build-0.1', name='xAI: Grok Build 0.1', provider='openrouter', cost=Cost(input=1.0, output=2.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=256000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
126
+ Model(id='google/gemini-3.5-flash', name='Google: Gemini 3.5 Flash', provider='openrouter', cost=Cost(input=1.5, output=9.0, cache_read=0.15, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video, Modality.Audio], output=[Modality.Text], api=None, base_url=None, voices=[]),
127
+ Model(id='anthropic/claude-opus-4.7-fast', name='Anthropic: Claude Opus 4.7 (Fast)', provider='openrouter', cost=Cost(input=30.0, output=150.0, cache_read=3.0, cache_write=37.5), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
128
+ Model(id='perceptron/perceptron-mk1', name='Perceptron: Perceptron Mk1', provider='openrouter', cost=Cost(input=0.15, output=1.5, cache_read=0.0, cache_write=0.0), thinking=True, context_window=32768, max_tokens=8192, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
129
+ Model(id='inclusionai/ring-2.6-1t', name='inclusionAI: Ring-2.6-1T', provider='openrouter', cost=Cost(input=0.075, output=0.625, cache_read=0.015, cache_write=0.0), thinking=True, context_window=262144, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
130
+ Model(id='google/gemini-3.1-flash-lite', name='Google: Gemini 3.1 Flash Lite', provider='openrouter', cost=Cost(input=0.25, output=1.5, cache_read=0.024999999999999998, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video, Modality.Audio], output=[Modality.Text], api=None, base_url=None, voices=[]),
131
+ Model(id='baidu/cobuddy:free', name='Baidu Qianfan: CoBuddy (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
132
+ Model(id='openai/gpt-chat-latest', name='OpenAI: GPT Chat Latest', provider='openrouter', cost=Cost(input=5.0, output=30.0, cache_read=0.5, cache_write=0.0), thinking=False, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
133
+ Model(id='x-ai/grok-4.3', name='xAI: Grok 4.3', provider='openrouter', cost=Cost(input=1.25, output=2.5, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=1000000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
134
+ Model(id='ibm-granite/granite-4.1-8b', name='IBM: Granite 4.1 8B', provider='openrouter', cost=Cost(input=0.049999999999999996, output=0.09999999999999999, cache_read=0.049999999999999996, cache_write=0.0), thinking=False, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
135
+ Model(id='mistralai/mistral-medium-3-5', name='Mistral: Mistral Medium 3.5', provider='openrouter', cost=Cost(input=1.5, output=7.5, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
136
+ Model(id='openrouter/owl-alpha', name='Owl Alpha', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048756, max_tokens=262144, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
137
+ Model(id='nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free', name='NVIDIA: Nemotron 3 Nano Omni (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=256000, max_tokens=65536, input=[Modality.Text, Modality.Audio, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
138
+ Model(id='poolside/laguna-xs.2:free', name='Poolside: Laguna XS.2 (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
139
+ Model(id='poolside/laguna-m.1:free', name='Poolside: Laguna M.1 (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
140
+ Model(id='~anthropic/claude-haiku-latest', name='Anthropic Claude Haiku Latest', provider='openrouter', cost=Cost(input=1.0, output=5.0, cache_read=0.09999999999999999, cache_write=1.25), thinking=True, context_window=200000, max_tokens=64000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
141
+ Model(id='~openai/gpt-mini-latest', name='OpenAI GPT Mini Latest', provider='openrouter', cost=Cost(input=0.75, output=4.5, cache_read=0.075, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
142
+ Model(id='~google/gemini-pro-latest', name='Google Gemini Pro Latest', provider='openrouter', cost=Cost(input=2.0, output=12.0, cache_read=0.19999999999999998, cache_write=0.375), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Audio, Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
143
+ Model(id='~moonshotai/kimi-latest', name='MoonshotAI Kimi Latest', provider='openrouter', cost=Cost(input=0.73, output=3.49, cache_read=0.25, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262142, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
144
+ Model(id='~google/gemini-flash-latest', name='Google Gemini Flash Latest', provider='openrouter', cost=Cost(input=1.5, output=9.0, cache_read=0.15, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video, Modality.Audio], output=[Modality.Text], api=None, base_url=None, voices=[]),
145
+ Model(id='~anthropic/claude-sonnet-latest', name='Anthropic Claude Sonnet Latest', provider='openrouter', cost=Cost(input=3.0, output=15.0, cache_read=0.3, cache_write=3.75), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
146
+ Model(id='~openai/gpt-latest', name='OpenAI GPT Latest', provider='openrouter', cost=Cost(input=5.0, output=30.0, cache_read=0.5, cache_write=0.0), thinking=True, context_window=1050000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
147
+ Model(id='qwen/qwen3.5-plus-20260420', name='Qwen: Qwen3.5 Plus 2026-04-20', provider='openrouter', cost=Cost(input=0.3, output=1.7999999999999998, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1000000, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
148
+ Model(id='qwen/qwen3.6-flash', name='Qwen: Qwen3.6 Flash', provider='openrouter', cost=Cost(input=0.1875, output=1.125, cache_read=0.0, cache_write=0.234375), thinking=True, context_window=1000000, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
149
+ Model(id='qwen/qwen3.6-35b-a3b', name='Qwen: Qwen3.6 35B A3B', provider='openrouter', cost=Cost(input=0.15, output=1.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262140, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
150
+ Model(id='qwen/qwen3.6-max-preview', name='Qwen: Qwen3.6 Max Preview', provider='openrouter', cost=Cost(input=1.04, output=6.24, cache_read=0.0, cache_write=1.3), thinking=True, context_window=262144, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
151
+ Model(id='qwen/qwen3.6-27b', name='Qwen: Qwen3.6 27B', provider='openrouter', cost=Cost(input=0.3, output=3.1999999999999997, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262144, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
152
+ Model(id='openai/gpt-5.5-pro', name='OpenAI: GPT-5.5 Pro', provider='openrouter', cost=Cost(input=30.0, output=180.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1050000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
153
+ Model(id='openai/gpt-5.5', name='OpenAI: GPT-5.5', provider='openrouter', cost=Cost(input=5.0, output=30.0, cache_read=0.5, cache_write=0.0), thinking=True, context_window=1050000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
154
+ Model(id='deepseek/deepseek-v4-pro', name='DeepSeek: DeepSeek V4 Pro', provider='openrouter', cost=Cost(input=0.435, output=0.87, cache_read=0.003625, cache_write=0.0), thinking=True, context_window=1048576, max_tokens=384000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
155
+ Model(id='deepseek/deepseek-v4-flash:free', name='DeepSeek: DeepSeek V4 Flash (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1048576, max_tokens=384000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
156
+ Model(id='deepseek/deepseek-v4-flash', name='DeepSeek: DeepSeek V4 Flash', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.19999999999999998, cache_read=0.02, cache_write=0.0), thinking=True, context_window=1048576, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
157
+ Model(id='inclusionai/ling-2.6-1t', name='inclusionAI: Ling-2.6-1T', provider='openrouter', cost=Cost(input=0.075, output=0.625, cache_read=0.015, cache_write=0.0), thinking=False, context_window=262144, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
158
+ Model(id='tencent/hy3-preview', name='Tencent: Hy3 preview', provider='openrouter', cost=Cost(input=0.06599999999999999, output=0.26, cache_read=0.029, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262144, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
159
+ Model(id='xiaomi/mimo-v2.5-pro', name='Xiaomi: MiMo-V2.5-Pro', provider='openrouter', cost=Cost(input=1.0, output=3.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=1048576, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
160
+ Model(id='xiaomi/mimo-v2.5', name='Xiaomi: MiMo-V2.5', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.0, cache_read=0.08, cache_write=0.0), thinking=True, context_window=1048576, max_tokens=131072, input=[Modality.Text, Modality.Audio, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
161
+ Model(id='openai/gpt-5.4-image-2', name='OpenAI: GPT-5.4 Image 2', provider='openrouter', cost=Cost(input=8.0, output=15.0, cache_read=2.0, cache_write=0.0), thinking=True, context_window=272000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Image, Modality.Text], api=None, base_url=None, voices=[]),
162
+ Model(id='inclusionai/ling-2.6-flash', name='inclusionAI: Ling-2.6-flash', provider='openrouter', cost=Cost(input=0.01, output=0.03, cache_read=0.002, cache_write=0.0), thinking=False, context_window=262144, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
163
+ Model(id='~anthropic/claude-opus-latest', name='Anthropic: Claude Opus Latest', provider='openrouter', cost=Cost(input=5.0, output=25.0, cache_read=0.5, cache_write=6.25), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
164
+ Model(id='openrouter/pareto-code', name='Pareto Code Router', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=2000000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
165
+ Model(id='baidu/qianfan-ocr-fast', name='Baidu: Qianfan-OCR-Fast', provider='openrouter', cost=Cost(input=0.6799999999999999, output=2.81, cache_read=0.0, cache_write=0.0), thinking=True, context_window=65536, max_tokens=28672, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
166
+ Model(id='moonshotai/kimi-k2.6', name='MoonshotAI: Kimi K2.6', provider='openrouter', cost=Cost(input=0.73, output=3.49, cache_read=0.25, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262142, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
167
+ Model(id='anthropic/claude-opus-4.7', name='Anthropic: Claude Opus 4.7', provider='openrouter', cost=Cost(input=5.0, output=25.0, cache_read=0.5, cache_write=6.25), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
168
+ Model(id='anthropic/claude-opus-4.6-fast', name='Anthropic: Claude Opus 4.6 (Fast)', provider='openrouter', cost=Cost(input=30.0, output=150.0, cache_read=3.0, cache_write=37.5), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
169
+ Model(id='z-ai/glm-5.1', name='Z.ai: GLM 5.1', provider='openrouter', cost=Cost(input=0.98, output=3.08, cache_read=0.182, cache_write=0.0), thinking=True, context_window=202752, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
170
+ Model(id='google/gemma-4-26b-a4b-it:free', name='Google: Gemma 4 26B A4B (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=32768, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
171
+ Model(id='google/gemma-4-26b-a4b-it', name='Google: Gemma 4 26B A4B ', provider='openrouter', cost=Cost(input=0.06, output=0.33, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
172
+ Model(id='google/gemma-4-31b-it:free', name='Google: Gemma 4 31B (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=32768, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
173
+ Model(id='google/gemma-4-31b-it', name='Google: Gemma 4 31B', provider='openrouter', cost=Cost(input=0.12, output=0.37, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
174
+ Model(id='qwen/qwen3.6-plus', name='Qwen: Qwen3.6 Plus', provider='openrouter', cost=Cost(input=0.325, output=1.95, cache_read=0.0, cache_write=0.40625), thinking=True, context_window=1000000, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
175
+ Model(id='z-ai/glm-5v-turbo', name='Z.ai: GLM 5V Turbo', provider='openrouter', cost=Cost(input=1.2, output=4.0, cache_read=0.24, cache_write=0.0), thinking=True, context_window=202752, max_tokens=131072, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
176
+ Model(id='arcee-ai/trinity-large-thinking:free', name='Arcee AI: Trinity Large Thinking (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=80000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
177
+ Model(id='arcee-ai/trinity-large-thinking', name='Arcee AI: Trinity Large Thinking', provider='openrouter', cost=Cost(input=0.22, output=0.85, cache_read=0.06, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262144, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
178
+ Model(id='x-ai/grok-4.20-multi-agent', name='xAI: Grok 4.20 Multi-Agent', provider='openrouter', cost=Cost(input=2.0, output=6.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=2000000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
179
+ Model(id='x-ai/grok-4.20', name='xAI: Grok 4.20', provider='openrouter', cost=Cost(input=1.25, output=2.5, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=2000000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
180
+ Model(id='google/lyria-3-pro-preview', name='Google: Lyria 3 Pro Preview', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image], output=[Modality.Text, Modality.Audio], api=None, base_url=None, voices=[]),
181
+ Model(id='google/lyria-3-clip-preview', name='Google: Lyria 3 Clip Preview', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image], output=[Modality.Text, Modality.Audio], api=None, base_url=None, voices=[]),
182
+ Model(id='kwaipilot/kat-coder-pro-v2', name='Kwaipilot: KAT-Coder-Pro V2', provider='openrouter', cost=Cost(input=0.3, output=1.2, cache_read=0.06, cache_write=0.0), thinking=False, context_window=256000, max_tokens=80000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
183
+ Model(id='rekaai/reka-edge', name='Reka Edge', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.09999999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=16384, max_tokens=16384, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
184
+ Model(id='xiaomi/mimo-v2-omni', name='Xiaomi: MiMo-V2-Omni', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.0, cache_read=0.08, cache_write=0.0), thinking=True, context_window=262144, max_tokens=65536, input=[Modality.Text, Modality.Audio, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
185
+ Model(id='xiaomi/mimo-v2-pro', name='Xiaomi: MiMo-V2-Pro', provider='openrouter', cost=Cost(input=1.0, output=3.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=1048576, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
186
+ Model(id='minimax/minimax-m2.7', name='MiniMax: MiniMax M2.7', provider='openrouter', cost=Cost(input=0.27899999999999997, output=1.2, cache_read=0.0, cache_write=0.0), thinking=True, context_window=204800, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
187
+ Model(id='openai/gpt-5.4-nano', name='OpenAI: GPT-5.4 Nano', provider='openrouter', cost=Cost(input=0.19999999999999998, output=1.25, cache_read=0.02, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
188
+ Model(id='openai/gpt-5.4-mini', name='OpenAI: GPT-5.4 Mini', provider='openrouter', cost=Cost(input=0.75, output=4.5, cache_read=0.075, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
189
+ Model(id='mistralai/mistral-small-2603', name='Mistral: Mistral Small 4', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.015, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
190
+ Model(id='z-ai/glm-5-turbo', name='Z.ai: GLM 5 Turbo', provider='openrouter', cost=Cost(input=1.2, output=4.0, cache_read=0.24, cache_write=0.0), thinking=True, context_window=202752, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
191
+ Model(id='nvidia/nemotron-3-super-120b-a12b:free', name='NVIDIA: Nemotron 3 Super (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1000000, max_tokens=262144, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
192
+ Model(id='nvidia/nemotron-3-super-120b-a12b', name='NVIDIA: Nemotron 3 Super', provider='openrouter', cost=Cost(input=0.09, output=0.44999999999999996, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1000000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
193
+ Model(id='bytedance-seed/seed-2.0-lite', name='ByteDance Seed: Seed-2.0-Lite', provider='openrouter', cost=Cost(input=0.25, output=2.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=131072, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
194
+ Model(id='qwen/qwen3.5-9b', name='Qwen: Qwen3.5-9B', provider='openrouter', cost=Cost(input=0.04, output=0.15, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=81920, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
195
+ Model(id='openai/gpt-5.4-pro', name='OpenAI: GPT-5.4 Pro', provider='openrouter', cost=Cost(input=30.0, output=180.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1050000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
196
+ Model(id='openai/gpt-5.4', name='OpenAI: GPT-5.4', provider='openrouter', cost=Cost(input=2.5, output=15.0, cache_read=0.25, cache_write=0.0), thinking=True, context_window=1050000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
197
+ Model(id='inception/mercury-2', name='Inception: Mercury 2', provider='openrouter', cost=Cost(input=0.25, output=0.75, cache_read=0.024999999999999998, cache_write=0.0), thinking=True, context_window=128000, max_tokens=50000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
198
+ Model(id='openai/gpt-5.3-chat', name='OpenAI: GPT-5.3 Chat', provider='openrouter', cost=Cost(input=1.75, output=14.0, cache_read=0.175, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
199
+ Model(id='google/gemini-3.1-flash-lite-preview', name='Google: Gemini 3.1 Flash Lite Preview', provider='openrouter', cost=Cost(input=0.25, output=1.5, cache_read=0.024999999999999998, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video, Modality.Audio], output=[Modality.Text], api=None, base_url=None, voices=[]),
200
+ Model(id='bytedance-seed/seed-2.0-mini', name='ByteDance Seed: Seed-2.0-Mini', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.39999999999999997, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=131072, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
201
+ Model(id='google/gemini-3.1-flash-image-preview', name='Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)', provider='openrouter', cost=Cost(input=0.5, output=3.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=65536, input=[Modality.Image, Modality.Text], output=[Modality.Image, Modality.Text], api=None, base_url=None, voices=[]),
202
+ Model(id='qwen/qwen3.5-35b-a3b', name='Qwen: Qwen3.5-35B-A3B', provider='openrouter', cost=Cost(input=0.13899999999999998, output=1.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
203
+ Model(id='qwen/qwen3.5-27b', name='Qwen: Qwen3.5-27B', provider='openrouter', cost=Cost(input=0.195, output=1.56, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
204
+ Model(id='qwen/qwen3.5-122b-a10b', name='Qwen: Qwen3.5-122B-A10B', provider='openrouter', cost=Cost(input=0.26, output=2.08, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=262144, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
205
+ Model(id='qwen/qwen3.5-flash-02-23', name='Qwen: Qwen3.5-Flash', provider='openrouter', cost=Cost(input=0.065, output=0.26, cache_read=0.0, cache_write=0.08125), thinking=True, context_window=1000000, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
206
+ Model(id='liquid/lfm-2-24b-a2b', name='LiquidAI: LFM2-24B-A2B', provider='openrouter', cost=Cost(input=0.03, output=0.12, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
207
+ Model(id='google/gemini-3.1-pro-preview-customtools', name='Google: Gemini 3.1 Pro Preview Custom Tools', provider='openrouter', cost=Cost(input=2.0, output=12.0, cache_read=0.19999999999999998, cache_write=0.375), thinking=True, context_window=1048756, max_tokens=65536, input=[Modality.Text, Modality.Audio, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
208
+ Model(id='openai/gpt-5.3-codex', name='OpenAI: GPT-5.3-Codex', provider='openrouter', cost=Cost(input=1.75, output=14.0, cache_read=0.175, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
209
+ Model(id='aion-labs/aion-2.0', name='AionLabs: Aion-2.0', provider='openrouter', cost=Cost(input=0.7999999999999999, output=1.5999999999999999, cache_read=0.19999999999999998, cache_write=0.0), thinking=True, context_window=131072, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
210
+ Model(id='google/gemini-3.1-pro-preview', name='Google: Gemini 3.1 Pro Preview', provider='openrouter', cost=Cost(input=2.0, output=12.0, cache_read=0.19999999999999998, cache_write=0.375), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Audio, Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
211
+ Model(id='anthropic/claude-sonnet-4.6', name='Anthropic: Claude Sonnet 4.6', provider='openrouter', cost=Cost(input=3.0, output=15.0, cache_read=0.3, cache_write=3.75), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
212
+ Model(id='qwen/qwen3.5-plus-02-15', name='Qwen: Qwen3.5 Plus 2026-02-15', provider='openrouter', cost=Cost(input=0.26, output=1.56, cache_read=0.0, cache_write=0.325), thinking=True, context_window=1000000, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
213
+ Model(id='qwen/qwen3.5-397b-a17b', name='Qwen: Qwen3.5 397B A17B', provider='openrouter', cost=Cost(input=0.39, output=2.34, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
214
+ Model(id='minimax/minimax-m2.5:free', name='MiniMax: MiniMax M2.5 (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=204800, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
215
+ Model(id='minimax/minimax-m2.5', name='MiniMax: MiniMax M2.5', provider='openrouter', cost=Cost(input=0.15, output=1.15, cache_read=0.0, cache_write=0.0), thinking=True, context_window=204800, max_tokens=196608, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
216
+ Model(id='z-ai/glm-5', name='Z.ai: GLM 5', provider='openrouter', cost=Cost(input=0.6, output=1.92, cache_read=0.12, cache_write=0.0), thinking=True, context_window=202752, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
217
+ Model(id='qwen/qwen3-max-thinking', name='Qwen: Qwen3 Max Thinking', provider='openrouter', cost=Cost(input=0.78, output=3.9, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
218
+ Model(id='anthropic/claude-opus-4.6', name='Anthropic: Claude Opus 4.6', provider='openrouter', cost=Cost(input=5.0, output=25.0, cache_read=0.5, cache_write=6.25), thinking=True, context_window=1000000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
219
+ Model(id='qwen/qwen3-coder-next', name='Qwen: Qwen3 Coder Next', provider='openrouter', cost=Cost(input=0.11, output=0.7999999999999999, cache_read=0.07, cache_write=0.0), thinking=False, context_window=262144, max_tokens=262144, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
220
+ Model(id='openrouter/free', name='Free Models Router', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=200000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
221
+ Model(id='stepfun/step-3.5-flash', name='StepFun: Step 3.5 Flash', provider='openrouter', cost=Cost(input=0.09, output=0.3, cache_read=0.02, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
222
+ Model(id='moonshotai/kimi-k2.5', name='MoonshotAI: Kimi K2.5', provider='openrouter', cost=Cost(input=0.39999999999999997, output=1.9, cache_read=0.09, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
223
+ Model(id='upstage/solar-pro-3', name='Upstage: Solar Pro 3', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.015, cache_write=0.0), thinking=True, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
224
+ Model(id='minimax/minimax-m2-her', name='MiniMax: MiniMax M2-her', provider='openrouter', cost=Cost(input=0.3, output=1.2, cache_read=0.03, cache_write=0.0), thinking=False, context_window=65536, max_tokens=2048, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
225
+ Model(id='writer/palmyra-x5', name='Writer: Palmyra X5', provider='openrouter', cost=Cost(input=0.6, output=6.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1040000, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
226
+ Model(id='liquid/lfm-2.5-1.2b-thinking:free', name='LiquidAI: LFM2.5-1.2B-Thinking (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
227
+ Model(id='liquid/lfm-2.5-1.2b-instruct:free', name='LiquidAI: LFM2.5-1.2B-Instruct (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
228
+ Model(id='openai/gpt-audio', name='OpenAI: GPT Audio', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Audio], output=[Modality.Text, Modality.Audio], api=None, base_url=None, voices=[]),
229
+ Model(id='openai/gpt-audio-mini', name='OpenAI: GPT Audio Mini', provider='openrouter', cost=Cost(input=0.6, output=2.4, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Audio], output=[Modality.Text, Modality.Audio], api=None, base_url=None, voices=[]),
230
+ Model(id='z-ai/glm-4.7-flash', name='Z.ai: GLM 4.7 Flash', provider='openrouter', cost=Cost(input=0.06, output=0.39999999999999997, cache_read=0.01, cache_write=0.0), thinking=True, context_window=202752, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
231
+ Model(id='openai/gpt-5.2-codex', name='OpenAI: GPT-5.2-Codex', provider='openrouter', cost=Cost(input=1.75, output=14.0, cache_read=0.175, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
232
+ Model(id='bytedance-seed/seed-1.6-flash', name='ByteDance Seed: Seed 1.6 Flash', provider='openrouter', cost=Cost(input=0.075, output=0.3, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=32768, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
233
+ Model(id='bytedance-seed/seed-1.6', name='ByteDance Seed: Seed 1.6', provider='openrouter', cost=Cost(input=0.25, output=2.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=32768, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
234
+ Model(id='minimax/minimax-m2.1', name='MiniMax: MiniMax M2.1', provider='openrouter', cost=Cost(input=0.29, output=0.95, cache_read=0.03, cache_write=0.0), thinking=True, context_window=204800, max_tokens=196608, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
235
+ Model(id='z-ai/glm-4.7', name='Z.ai: GLM 4.7', provider='openrouter', cost=Cost(input=0.39999999999999997, output=1.75, cache_read=0.08, cache_write=0.0), thinking=True, context_window=202752, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
236
+ Model(id='google/gemini-3-flash-preview', name='Google: Gemini 3 Flash Preview', provider='openrouter', cost=Cost(input=0.5, output=3.0, cache_read=0.049999999999999996, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
237
+ Model(id='xiaomi/mimo-v2-flash', name='Xiaomi: MiMo-V2-Flash', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.3, cache_read=0.01, cache_write=0.0), thinking=True, context_window=262144, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
238
+ Model(id='nvidia/nemotron-3-nano-30b-a3b:free', name='NVIDIA: Nemotron 3 Nano 30B A3B (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=256000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
239
+ Model(id='nvidia/nemotron-3-nano-30b-a3b', name='NVIDIA: Nemotron 3 Nano 30B A3B', provider='openrouter', cost=Cost(input=0.049999999999999996, output=0.19999999999999998, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=228000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
240
+ Model(id='openai/gpt-5.2-chat', name='OpenAI: GPT-5.2 Chat', provider='openrouter', cost=Cost(input=1.75, output=14.0, cache_read=0.175, cache_write=0.0), thinking=False, context_window=128000, max_tokens=32000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
241
+ Model(id='openai/gpt-5.2-pro', name='OpenAI: GPT-5.2 Pro', provider='openrouter', cost=Cost(input=21.0, output=168.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
242
+ Model(id='openai/gpt-5.2', name='OpenAI: GPT-5.2', provider='openrouter', cost=Cost(input=1.75, output=14.0, cache_read=0.175, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
243
+ Model(id='mistralai/devstral-2512', name='Mistral: Devstral 2 2512', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.0, cache_read=0.04, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
244
+ Model(id='relace/relace-search', name='Relace: Relace Search', provider='openrouter', cost=Cost(input=1.0, output=3.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=256000, max_tokens=128000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
245
+ Model(id='z-ai/glm-4.6v', name='Z.ai: GLM 4.6V', provider='openrouter', cost=Cost(input=0.3, output=0.8999999999999999, cache_read=0.049999999999999996, cache_write=0.0), thinking=True, context_window=131072, max_tokens=24000, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
246
+ Model(id='nex-agi/deepseek-v3.1-nex-n1', name='Nex AGI: DeepSeek V3.1 Nex N1', provider='openrouter', cost=Cost(input=0.135, output=0.5, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=163840, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
247
+ Model(id='essentialai/rnj-1-instruct', name='EssentialAI: Rnj 1 Instruct', provider='openrouter', cost=Cost(input=0.15, output=0.15, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
248
+ Model(id='openrouter/bodybuilder', name='Body Builder (beta)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
249
+ Model(id='openai/gpt-5.1-codex-max', name='OpenAI: GPT-5.1-Codex-Max', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
250
+ Model(id='amazon/nova-2-lite-v1', name='Amazon: Nova 2 Lite', provider='openrouter', cost=Cost(input=0.3, output=2.5, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1000000, max_tokens=65535, input=[Modality.Text, Modality.Image, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
251
+ Model(id='mistralai/ministral-14b-2512', name='Mistral: Ministral 3 14B 2512', provider='openrouter', cost=Cost(input=0.19999999999999998, output=0.19999999999999998, cache_read=0.02, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
252
+ Model(id='mistralai/ministral-8b-2512', name='Mistral: Ministral 3 8B 2512', provider='openrouter', cost=Cost(input=0.15, output=0.15, cache_read=0.015, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
253
+ Model(id='mistralai/ministral-3b-2512', name='Mistral: Ministral 3 3B 2512', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.09999999999999999, cache_read=0.01, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
254
+ Model(id='mistralai/mistral-large-2512', name='Mistral: Mistral Large 3 2512', provider='openrouter', cost=Cost(input=0.5, output=1.5, cache_read=0.049999999999999996, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
255
+ Model(id='arcee-ai/trinity-mini', name='Arcee AI: Trinity Mini', provider='openrouter', cost=Cost(input=0.045, output=0.15, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
256
+ Model(id='deepseek/deepseek-v3.2-speciale', name='DeepSeek: DeepSeek V3.2 Speciale', provider='openrouter', cost=Cost(input=0.28700000000000003, output=0.431, cache_read=0.058, cache_write=0.0), thinking=True, context_window=163840, max_tokens=163840, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
257
+ Model(id='deepseek/deepseek-v3.2', name='DeepSeek: DeepSeek V3.2', provider='openrouter', cost=Cost(input=0.252, output=0.378, cache_read=0.0252, cache_write=0.0), thinking=True, context_window=131072, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
258
+ Model(id='prime-intellect/intellect-3', name='Prime Intellect: INTELLECT-3', provider='openrouter', cost=Cost(input=0.19999999999999998, output=1.1, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
259
+ Model(id='anthropic/claude-opus-4.5', name='Anthropic: Claude Opus 4.5', provider='openrouter', cost=Cost(input=5.0, output=25.0, cache_read=0.5, cache_write=6.25), thinking=True, context_window=200000, max_tokens=64000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
260
+ Model(id='allenai/olmo-3-32b-think', name='AllenAI: Olmo 3 32B Think', provider='openrouter', cost=Cost(input=0.15, output=0.5, cache_read=0.0, cache_write=0.0), thinking=True, context_window=65536, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
261
+ Model(id='google/gemini-3-pro-image-preview', name='Google: Nano Banana Pro (Gemini 3 Pro Image Preview)', provider='openrouter', cost=Cost(input=2.0, output=12.0, cache_read=0.19999999999999998, cache_write=0.375), thinking=True, context_window=65536, max_tokens=32768, input=[Modality.Image, Modality.Text], output=[Modality.Image, Modality.Text], api=None, base_url=None, voices=[]),
262
+ Model(id='deepcogito/cogito-v2.1-671b', name='Deep Cogito: Cogito v2.1 671B', provider='openrouter', cost=Cost(input=1.25, output=1.25, cache_read=0.0, cache_write=0.0), thinking=True, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
263
+ Model(id='openai/gpt-5.1', name='OpenAI: GPT-5.1', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.13, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
264
+ Model(id='openai/gpt-5.1-chat', name='OpenAI: GPT-5.1 Chat', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
265
+ Model(id='openai/gpt-5.1-codex', name='OpenAI: GPT-5.1-Codex', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
266
+ Model(id='openai/gpt-5.1-codex-mini', name='OpenAI: GPT-5.1-Codex-Mini', provider='openrouter', cost=Cost(input=0.25, output=2.0, cache_read=0.03, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
267
+ Model(id='moonshotai/kimi-k2-thinking', name='MoonshotAI: Kimi K2 Thinking', provider='openrouter', cost=Cost(input=0.6, output=2.5, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
268
+ Model(id='amazon/nova-premier-v1', name='Amazon: Nova Premier 1.0', provider='openrouter', cost=Cost(input=2.5, output=12.5, cache_read=0.625, cache_write=0.0), thinking=False, context_window=1000000, max_tokens=32000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
269
+ Model(id='perplexity/sonar-pro-search', name='Perplexity: Sonar Pro Search', provider='openrouter', cost=Cost(input=3.0, output=15.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=200000, max_tokens=8000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
270
+ Model(id='mistralai/voxtral-small-24b-2507', name='Mistral: Voxtral Small 24B 2507', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.3, cache_read=0.01, cache_write=0.0), thinking=False, context_window=32000, max_tokens=16384, input=[Modality.Text, Modality.Audio], output=[Modality.Text], api=None, base_url=None, voices=[]),
271
+ Model(id='openai/gpt-oss-safeguard-20b', name='OpenAI: gpt-oss-safeguard-20b', provider='openrouter', cost=Cost(input=0.075, output=0.3, cache_read=0.037, cache_write=0.0), thinking=True, context_window=131072, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
272
+ Model(id='nvidia/nemotron-nano-12b-v2-vl:free', name='NVIDIA: Nemotron Nano 12B 2 VL (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=128000, max_tokens=128000, input=[Modality.Image, Modality.Text, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
273
+ Model(id='minimax/minimax-m2', name='MiniMax: MiniMax M2', provider='openrouter', cost=Cost(input=0.255, output=1.0, cache_read=0.03, cache_write=0.0), thinking=True, context_window=204800, max_tokens=196608, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
274
+ Model(id='qwen/qwen3-vl-32b-instruct', name='Qwen: Qwen3 VL 32B Instruct', provider='openrouter', cost=Cost(input=0.10400000000000001, output=0.41600000000000004, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=32768, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
275
+ Model(id='ibm-granite/granite-4.0-h-micro', name='IBM: Granite 4.0 Micro', provider='openrouter', cost=Cost(input=0.017, output=0.112, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131000, max_tokens=131000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
276
+ Model(id='microsoft/phi-4-mini-instruct', name='Microsoft: Phi 4 Mini Instruct', provider='openrouter', cost=Cost(input=0.08, output=0.35, cache_read=0.08, cache_write=0.0), thinking=False, context_window=131072, max_tokens=128000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
277
+ Model(id='openai/gpt-5-image-mini', name='OpenAI: GPT-5 Image Mini', provider='openrouter', cost=Cost(input=2.5, output=2.0, cache_read=0.25, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Image, Modality.Text], api=None, base_url=None, voices=[]),
278
+ Model(id='anthropic/claude-haiku-4.5', name='Anthropic: Claude Haiku 4.5', provider='openrouter', cost=Cost(input=1.0, output=5.0, cache_read=0.09999999999999999, cache_write=1.25), thinking=True, context_window=200000, max_tokens=64000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
279
+ Model(id='qwen/qwen3-vl-8b-thinking', name='Qwen: Qwen3 VL 8B Thinking', provider='openrouter', cost=Cost(input=0.117, output=1.365, cache_read=0.0, cache_write=0.0), thinking=True, context_window=256000, max_tokens=32768, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
280
+ Model(id='qwen/qwen3-vl-8b-instruct', name='Qwen: Qwen3 VL 8B Instruct', provider='openrouter', cost=Cost(input=0.08, output=0.5, cache_read=0.0, cache_write=0.0), thinking=False, context_window=256000, max_tokens=32768, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
281
+ Model(id='openai/gpt-5-image', name='OpenAI: GPT-5 Image', provider='openrouter', cost=Cost(input=10.0, output=10.0, cache_read=1.25, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Image, Modality.Text], api=None, base_url=None, voices=[]),
282
+ Model(id='openai/o3-deep-research', name='OpenAI: o3 Deep Research', provider='openrouter', cost=Cost(input=10.0, output=40.0, cache_read=2.5, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
283
+ Model(id='openai/o4-mini-deep-research', name='OpenAI: o4 Mini Deep Research', provider='openrouter', cost=Cost(input=2.0, output=8.0, cache_read=0.5, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
284
+ Model(id='nvidia/llama-3.3-nemotron-super-49b-v1.5', name='NVIDIA: Llama 3.3 Nemotron Super 49B V1.5', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.39999999999999997, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
285
+ Model(id='baidu/ernie-4.5-21b-a3b-thinking', name='Baidu: ERNIE 4.5 21B A3B Thinking', provider='openrouter', cost=Cost(input=0.07, output=0.28, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
286
+ Model(id='google/gemini-2.5-flash-image', name='Google: Nano Banana (Gemini 2.5 Flash Image)', provider='openrouter', cost=Cost(input=0.3, output=2.5, cache_read=0.03, cache_write=0.08333333333333334), thinking=False, context_window=32768, max_tokens=32768, input=[Modality.Image, Modality.Text], output=[Modality.Image, Modality.Text], api=None, base_url=None, voices=[]),
287
+ Model(id='qwen/qwen3-vl-30b-a3b-thinking', name='Qwen: Qwen3 VL 30B A3B Thinking', provider='openrouter', cost=Cost(input=0.13, output=1.56, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=32768, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
288
+ Model(id='qwen/qwen3-vl-30b-a3b-instruct', name='Qwen: Qwen3 VL 30B A3B Instruct', provider='openrouter', cost=Cost(input=0.13, output=0.52, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=32768, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
289
+ Model(id='openai/gpt-5-pro', name='OpenAI: GPT-5 Pro', provider='openrouter', cost=Cost(input=15.0, output=120.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
290
+ Model(id='z-ai/glm-4.6', name='Z.ai: GLM 4.6', provider='openrouter', cost=Cost(input=0.43, output=1.74, cache_read=0.08, cache_write=0.0), thinking=True, context_window=202752, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
291
+ Model(id='anthropic/claude-sonnet-4.5', name='Anthropic: Claude Sonnet 4.5', provider='openrouter', cost=Cost(input=3.0, output=15.0, cache_read=0.3, cache_write=3.75), thinking=True, context_window=1000000, max_tokens=64000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
292
+ Model(id='deepseek/deepseek-v3.2-exp', name='DeepSeek: DeepSeek V3.2 Exp', provider='openrouter', cost=Cost(input=0.27, output=0.41, cache_read=0.0, cache_write=0.0), thinking=True, context_window=163840, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
293
+ Model(id='thedrummer/cydonia-24b-v4.1', name='TheDrummer: Cydonia 24B V4.1', provider='openrouter', cost=Cost(input=0.3, output=0.5, cache_read=0.15, cache_write=0.0), thinking=False, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
294
+ Model(id='relace/relace-apply-3', name='Relace: Relace Apply 3', provider='openrouter', cost=Cost(input=0.85, output=1.25, cache_read=0.0, cache_write=0.0), thinking=False, context_window=256000, max_tokens=128000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
295
+ Model(id='google/gemini-2.5-flash-lite-preview-09-2025', name='Google: Gemini 2.5 Flash Lite Preview 09-2025', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.39999999999999997, cache_read=0.01, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65535, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
296
+ Model(id='qwen/qwen3-vl-235b-a22b-thinking', name='Qwen: Qwen3 VL 235B A22B Thinking', provider='openrouter', cost=Cost(input=0.26, output=2.6, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=32768, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
297
+ Model(id='qwen/qwen3-vl-235b-a22b-instruct', name='Qwen: Qwen3 VL 235B A22B Instruct', provider='openrouter', cost=Cost(input=0.19999999999999998, output=0.88, cache_read=0.11, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
298
+ Model(id='qwen/qwen3-max', name='Qwen: Qwen3 Max', provider='openrouter', cost=Cost(input=0.78, output=3.9, cache_read=0.156, cache_write=0.975), thinking=False, context_window=262144, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
299
+ Model(id='qwen/qwen3-coder-plus', name='Qwen: Qwen3 Coder Plus', provider='openrouter', cost=Cost(input=0.65, output=3.25, cache_read=0.13, cache_write=0.8125), thinking=False, context_window=1000000, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
300
+ Model(id='openai/gpt-5-codex', name='OpenAI: GPT-5 Codex', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
301
+ Model(id='deepseek/deepseek-v3.1-terminus', name='DeepSeek: DeepSeek V3.1 Terminus', provider='openrouter', cost=Cost(input=0.27, output=0.95, cache_read=0.13, cache_write=0.0), thinking=True, context_window=163840, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
302
+ Model(id='alibaba/tongyi-deepresearch-30b-a3b', name='Tongyi DeepResearch 30B A3B', provider='openrouter', cost=Cost(input=0.09, output=0.44999999999999996, cache_read=0.09, cache_write=0.0), thinking=True, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
303
+ Model(id='qwen/qwen3-coder-flash', name='Qwen: Qwen3 Coder Flash', provider='openrouter', cost=Cost(input=0.195, output=0.975, cache_read=0.039, cache_write=0.24375), thinking=False, context_window=1000000, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
304
+ Model(id='qwen/qwen3-next-80b-a3b-thinking', name='Qwen: Qwen3 Next 80B A3B Thinking', provider='openrouter', cost=Cost(input=0.0975, output=0.78, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
305
+ Model(id='qwen/qwen3-next-80b-a3b-instruct:free', name='Qwen: Qwen3 Next 80B A3B Instruct (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
306
+ Model(id='qwen/qwen3-next-80b-a3b-instruct', name='Qwen: Qwen3 Next 80B A3B Instruct', provider='openrouter', cost=Cost(input=0.09, output=1.1, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
307
+ Model(id='qwen/qwen-plus-2025-07-28:thinking', name='Qwen: Qwen Plus 0728 (thinking)', provider='openrouter', cost=Cost(input=0.26, output=0.78, cache_read=0.0, cache_write=0.325), thinking=True, context_window=1000000, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
308
+ Model(id='qwen/qwen-plus-2025-07-28', name='Qwen: Qwen Plus 0728', provider='openrouter', cost=Cost(input=0.26, output=0.78, cache_read=0.0, cache_write=0.325), thinking=False, context_window=1000000, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
309
+ Model(id='nvidia/nemotron-nano-9b-v2:free', name='NVIDIA: Nemotron Nano 9B V2 (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
310
+ Model(id='nvidia/nemotron-nano-9b-v2', name='NVIDIA: Nemotron Nano 9B V2', provider='openrouter', cost=Cost(input=0.04, output=0.16, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
311
+ Model(id='moonshotai/kimi-k2-0905', name='MoonshotAI: Kimi K2 0905', provider='openrouter', cost=Cost(input=0.6, output=2.5, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
312
+ Model(id='qwen/qwen3-30b-a3b-thinking-2507', name='Qwen: Qwen3 30B A3B Thinking 2507', provider='openrouter', cost=Cost(input=0.08, output=0.39999999999999997, cache_read=0.08, cache_write=0.0), thinking=True, context_window=131072, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
313
+ Model(id='nousresearch/hermes-4-70b', name='Nous: Hermes 4 70B', provider='openrouter', cost=Cost(input=0.13, output=0.39999999999999997, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
314
+ Model(id='nousresearch/hermes-4-405b', name='Nous: Hermes 4 405B', provider='openrouter', cost=Cost(input=1.0, output=3.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
315
+ Model(id='deepseek/deepseek-chat-v3.1', name='DeepSeek: DeepSeek V3.1', provider='openrouter', cost=Cost(input=0.21, output=0.7899999999999999, cache_read=0.13, cache_write=0.0), thinking=True, context_window=163840, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
316
+ Model(id='openai/gpt-4o-audio-preview', name='OpenAI: GPT-4o Audio', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Audio, Modality.Text], output=[Modality.Text, Modality.Audio], api=None, base_url=None, voices=[]),
317
+ Model(id='mistralai/mistral-medium-3.1', name='Mistral: Mistral Medium 3.1', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.0, cache_read=0.04, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
318
+ Model(id='baidu/ernie-4.5-21b-a3b', name='Baidu: ERNIE 4.5 21B A3B', provider='openrouter', cost=Cost(input=0.07, output=0.28, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=8000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
319
+ Model(id='baidu/ernie-4.5-vl-28b-a3b', name='Baidu: ERNIE 4.5 VL 28B A3B', provider='openrouter', cost=Cost(input=0.14, output=0.56, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=8000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
320
+ Model(id='z-ai/glm-4.5v', name='Z.ai: GLM 4.5V', provider='openrouter', cost=Cost(input=0.6, output=1.7999999999999998, cache_read=0.11, cache_write=0.0), thinking=True, context_window=65536, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
321
+ Model(id='ai21/jamba-large-1.7', name='AI21: Jamba Large 1.7', provider='openrouter', cost=Cost(input=2.0, output=8.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=256000, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
322
+ Model(id='openai/gpt-5-chat', name='OpenAI: GPT-5 Chat', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
323
+ Model(id='openai/gpt-5', name='OpenAI: GPT-5', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
324
+ Model(id='openai/gpt-5-mini', name='OpenAI: GPT-5 Mini', provider='openrouter', cost=Cost(input=0.25, output=2.0, cache_read=0.024999999999999998, cache_write=0.0), thinking=True, context_window=400000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
325
+ Model(id='openai/gpt-5-nano', name='OpenAI: GPT-5 Nano', provider='openrouter', cost=Cost(input=0.049999999999999996, output=0.39999999999999997, cache_read=0.01, cache_write=0.0), thinking=True, context_window=400000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
326
+ Model(id='openai/gpt-oss-120b:free', name='OpenAI: gpt-oss-120b (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
327
+ Model(id='openai/gpt-oss-120b', name='OpenAI: gpt-oss-120b', provider='openrouter', cost=Cost(input=0.039, output=0.18, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
328
+ Model(id='openai/gpt-oss-20b:free', name='OpenAI: gpt-oss-20b (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
329
+ Model(id='openai/gpt-oss-20b', name='OpenAI: gpt-oss-20b', provider='openrouter', cost=Cost(input=0.03, output=0.14, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
330
+ Model(id='anthropic/claude-opus-4.1', name='Anthropic: Claude Opus 4.1', provider='openrouter', cost=Cost(input=15.0, output=75.0, cache_read=1.5, cache_write=18.75), thinking=True, context_window=200000, max_tokens=32000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
331
+ Model(id='mistralai/codestral-2508', name='Mistral: Codestral 2508', provider='openrouter', cost=Cost(input=0.3, output=0.8999999999999999, cache_read=0.03, cache_write=0.0), thinking=False, context_window=256000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
332
+ Model(id='qwen/qwen3-coder-30b-a3b-instruct', name='Qwen: Qwen3 Coder 30B A3B Instruct', provider='openrouter', cost=Cost(input=0.07, output=0.27, cache_read=0.0, cache_write=0.0), thinking=False, context_window=160000, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
333
+ Model(id='qwen/qwen3-30b-a3b-instruct-2507', name='Qwen: Qwen3 30B A3B Instruct 2507', provider='openrouter', cost=Cost(input=0.09, output=0.3, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=262144, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
334
+ Model(id='z-ai/glm-4.5', name='Z.ai: GLM 4.5', provider='openrouter', cost=Cost(input=0.6, output=2.2, cache_read=0.11, cache_write=0.0), thinking=True, context_window=131072, max_tokens=98304, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
335
+ Model(id='z-ai/glm-4.5-air:free', name='Z.ai: GLM 4.5 Air (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=96000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
336
+ Model(id='z-ai/glm-4.5-air', name='Z.ai: GLM 4.5 Air', provider='openrouter', cost=Cost(input=0.13, output=0.85, cache_read=0.024999999999999998, cache_write=0.0), thinking=True, context_window=131072, max_tokens=98304, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
337
+ Model(id='qwen/qwen3-235b-a22b-thinking-2507', name='Qwen: Qwen3 235B A22B Thinking 2507', provider='openrouter', cost=Cost(input=0.14950000000000002, output=1.495, cache_read=0.0, cache_write=0.0), thinking=True, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
338
+ Model(id='z-ai/glm-4-32b', name='Z.ai: GLM 4 32B ', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.09999999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
339
+ Model(id='qwen/qwen3-coder:free', name='Qwen: Qwen3 Coder 480B A35B (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048576, max_tokens=262000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
340
+ Model(id='qwen/qwen3-coder', name='Qwen: Qwen3 Coder 480B A35B', provider='openrouter', cost=Cost(input=0.22, output=1.7999999999999998, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048576, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
341
+ Model(id='bytedance/ui-tars-1.5-7b', name='ByteDance: UI-TARS 7B ', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.19999999999999998, cache_read=0.09999999999999999, cache_write=0.0), thinking=False, context_window=128000, max_tokens=2048, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
342
+ Model(id='google/gemini-2.5-flash-lite', name='Google: Gemini 2.5 Flash Lite', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.39999999999999997, cache_read=0.01, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65535, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
343
+ Model(id='qwen/qwen3-235b-a22b-2507', name='Qwen: Qwen3 235B A22B Instruct 2507', provider='openrouter', cost=Cost(input=0.071, output=0.09999999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
344
+ Model(id='switchpoint/router', name='Switchpoint Router', provider='openrouter', cost=Cost(input=0.85, output=3.4, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
345
+ Model(id='moonshotai/kimi-k2', name='MoonshotAI: Kimi K2 0711', provider='openrouter', cost=Cost(input=0.5700000000000001, output=2.3, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
346
+ Model(id='mistralai/devstral-medium', name='Mistral: Devstral Medium', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.0, cache_read=0.04, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
347
+ Model(id='mistralai/devstral-small', name='Mistral: Devstral Small 1.1', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.3, cache_read=0.01, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
348
+ Model(id='cognitivecomputations/dolphin-mistral-24b-venice-edition:free', name='Venice: Uncensored (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
349
+ Model(id='tencent/hunyuan-a13b-instruct', name='Tencent: Hunyuan A13B Instruct', provider='openrouter', cost=Cost(input=0.14, output=0.5700000000000001, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
350
+ Model(id='morph/morph-v3-large', name='Morph: Morph V3 Large', provider='openrouter', cost=Cost(input=0.8999999999999999, output=1.9, cache_read=0.0, cache_write=0.0), thinking=False, context_window=262144, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
351
+ Model(id='morph/morph-v3-fast', name='Morph: Morph V3 Fast', provider='openrouter', cost=Cost(input=0.7999999999999999, output=1.2, cache_read=0.0, cache_write=0.0), thinking=False, context_window=81920, max_tokens=38000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
352
+ Model(id='baidu/ernie-4.5-vl-424b-a47b', name='Baidu: ERNIE 4.5 VL 424B A47B ', provider='openrouter', cost=Cost(input=0.42, output=1.25, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
353
+ Model(id='baidu/ernie-4.5-300b-a47b', name='Baidu: ERNIE 4.5 300B A47B ', provider='openrouter', cost=Cost(input=0.28, output=1.1, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=12000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
354
+ Model(id='mistralai/mistral-small-3.2-24b-instruct', name='Mistral: Mistral Small 3.2 24B', provider='openrouter', cost=Cost(input=0.075, output=0.19999999999999998, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
355
+ Model(id='minimax/minimax-m1', name='MiniMax: MiniMax M1', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.2, cache_read=0.0, cache_write=0.0), thinking=True, context_window=1000000, max_tokens=40000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
356
+ Model(id='google/gemini-2.5-flash', name='Google: Gemini 2.5 Flash', provider='openrouter', cost=Cost(input=0.3, output=2.5, cache_read=0.03, cache_write=0.08333333333333334), thinking=True, context_window=1048576, max_tokens=65535, input=[Modality.Image, Modality.Text, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
357
+ Model(id='google/gemini-2.5-pro', name='Google: Gemini 2.5 Pro', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.375), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
358
+ Model(id='openai/o3-pro', name='OpenAI: o3 Pro', provider='openrouter', cost=Cost(input=20.0, output=80.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
359
+ Model(id='google/gemini-2.5-pro-preview', name='Google: Gemini 2.5 Pro Preview 06-05', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.375), thinking=True, context_window=1048576, max_tokens=65536, input=[Modality.Image, Modality.Text, Modality.Audio], output=[Modality.Text], api=None, base_url=None, voices=[]),
360
+ Model(id='deepseek/deepseek-r1-0528', name='DeepSeek: R1 0528', provider='openrouter', cost=Cost(input=0.5, output=2.1500000000000004, cache_read=0.35, cache_write=0.0), thinking=True, context_window=163840, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
361
+ Model(id='anthropic/claude-opus-4', name='Anthropic: Claude Opus 4', provider='openrouter', cost=Cost(input=15.0, output=75.0, cache_read=1.5, cache_write=18.75), thinking=True, context_window=200000, max_tokens=32000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
362
+ Model(id='anthropic/claude-sonnet-4', name='Anthropic: Claude Sonnet 4', provider='openrouter', cost=Cost(input=3.0, output=15.0, cache_read=0.3, cache_write=3.75), thinking=True, context_window=1000000, max_tokens=64000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
363
+ Model(id='google/gemma-3n-e4b-it', name='Google: Gemma 3n 4B', provider='openrouter', cost=Cost(input=0.06, output=0.12, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
364
+ Model(id='mistralai/mistral-medium-3', name='Mistral: Mistral Medium 3', provider='openrouter', cost=Cost(input=0.39999999999999997, output=2.0, cache_read=0.04, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
365
+ Model(id='google/gemini-2.5-pro-preview-05-06', name='Google: Gemini 2.5 Pro Preview 05-06', provider='openrouter', cost=Cost(input=1.25, output=10.0, cache_read=0.125, cache_write=0.375), thinking=True, context_window=1048576, max_tokens=65535, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
366
+ Model(id='arcee-ai/spotlight', name='Arcee AI: Spotlight', provider='openrouter', cost=Cost(input=0.18, output=0.18, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=65537, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
367
+ Model(id='arcee-ai/maestro-reasoning', name='Arcee AI: Maestro Reasoning', provider='openrouter', cost=Cost(input=0.8999999999999999, output=3.3000000000000003, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=32000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
368
+ Model(id='arcee-ai/virtuoso-large', name='Arcee AI: Virtuoso Large', provider='openrouter', cost=Cost(input=0.75, output=1.2, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=64000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
369
+ Model(id='arcee-ai/coder-large', name='Arcee AI: Coder Large', provider='openrouter', cost=Cost(input=0.5, output=0.7999999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
370
+ Model(id='meta-llama/llama-guard-4-12b', name='Meta: Llama Guard 4 12B', provider='openrouter', cost=Cost(input=0.18, output=0.18, cache_read=0.0, cache_write=0.0), thinking=False, context_window=163840, max_tokens=16384, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
371
+ Model(id='qwen/qwen3-30b-a3b', name='Qwen: Qwen3 30B A3B', provider='openrouter', cost=Cost(input=0.09, output=0.44999999999999996, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=20000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
372
+ Model(id='qwen/qwen3-8b', name='Qwen: Qwen3 8B', provider='openrouter', cost=Cost(input=0.049999999999999996, output=0.39999999999999997, cache_read=0.049999999999999996, cache_write=0.0), thinking=True, context_window=131072, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
373
+ Model(id='qwen/qwen3-14b', name='Qwen: Qwen3 14B', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.24, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131702, max_tokens=40960, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
374
+ Model(id='qwen/qwen3-32b', name='Qwen: Qwen3 32B', provider='openrouter', cost=Cost(input=0.08, output=0.28, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
375
+ Model(id='qwen/qwen3-235b-a22b', name='Qwen: Qwen3 235B A22B', provider='openrouter', cost=Cost(input=0.45499999999999996, output=1.8199999999999998, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
376
+ Model(id='openai/o4-mini-high', name='OpenAI: o4 Mini High', provider='openrouter', cost=Cost(input=1.1, output=4.4, cache_read=0.275, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
377
+ Model(id='openai/o3', name='OpenAI: o3', provider='openrouter', cost=Cost(input=2.0, output=8.0, cache_read=0.5, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
378
+ Model(id='openai/o4-mini', name='OpenAI: o4 Mini', provider='openrouter', cost=Cost(input=1.1, output=4.4, cache_read=0.275, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
379
+ Model(id='openai/gpt-4.1', name='OpenAI: GPT-4.1', provider='openrouter', cost=Cost(input=2.0, output=8.0, cache_read=0.5, cache_write=0.0), thinking=False, context_window=1047576, max_tokens=16384, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
380
+ Model(id='openai/gpt-4.1-mini', name='OpenAI: GPT-4.1 Mini', provider='openrouter', cost=Cost(input=0.39999999999999997, output=1.5999999999999999, cache_read=0.09999999999999999, cache_write=0.0), thinking=False, context_window=1047576, max_tokens=32768, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
381
+ Model(id='openai/gpt-4.1-nano', name='OpenAI: GPT-4.1 Nano', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.39999999999999997, cache_read=0.024999999999999998, cache_write=0.0), thinking=False, context_window=1047576, max_tokens=32768, input=[Modality.Image, Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
382
+ Model(id='alfredpros/codellama-7b-instruct-solidity', name='AlfredPros: CodeLLaMa 7B Instruct Solidity', provider='openrouter', cost=Cost(input=0.7999999999999999, output=1.2, cache_read=0.0, cache_write=0.0), thinking=False, context_window=4096, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
383
+ Model(id='meta-llama/llama-4-maverick', name='Meta: Llama 4 Maverick', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048576, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
384
+ Model(id='meta-llama/llama-4-scout', name='Meta: Llama 4 Scout', provider='openrouter', cost=Cost(input=0.08, output=0.3, cache_read=0.0, cache_write=0.0), thinking=False, context_window=10000000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
385
+ Model(id='deepseek/deepseek-chat-v3-0324', name='DeepSeek: DeepSeek V3 0324', provider='openrouter', cost=Cost(input=0.19999999999999998, output=0.77, cache_read=0.135, cache_write=0.0), thinking=False, context_window=163840, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
386
+ Model(id='openai/o1-pro', name='OpenAI: o1-pro', provider='openrouter', cost=Cost(input=150.0, output=600.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
387
+ Model(id='mistralai/mistral-small-3.1-24b-instruct', name='Mistral: Mistral Small 3.1 24B', provider='openrouter', cost=Cost(input=0.351, output=0.5549999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=128000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
388
+ Model(id='google/gemma-3-4b-it', name='Google: Gemma 3 4B', provider='openrouter', cost=Cost(input=0.04, output=0.08, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
389
+ Model(id='google/gemma-3-12b-it', name='Google: Gemma 3 12B', provider='openrouter', cost=Cost(input=0.04, output=0.13, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
390
+ Model(id='cohere/command-a', name='Cohere: Command A', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=256000, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
391
+ Model(id='openai/gpt-4o-mini-search-preview', name='OpenAI: GPT-4o-mini Search Preview', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
392
+ Model(id='openai/gpt-4o-search-preview', name='OpenAI: GPT-4o Search Preview', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
393
+ Model(id='rekaai/reka-flash-3', name='Reka Flash 3', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.19999999999999998, cache_read=0.0, cache_write=0.0), thinking=True, context_window=65536, max_tokens=65536, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
394
+ Model(id='google/gemma-3-27b-it', name='Google: Gemma 3 27B', provider='openrouter', cost=Cost(input=0.08, output=0.16, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
395
+ Model(id='thedrummer/skyfall-36b-v2', name='TheDrummer: Skyfall 36B V2', provider='openrouter', cost=Cost(input=0.55, output=0.7999999999999999, cache_read=0.25, cache_write=0.0), thinking=False, context_window=32768, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
396
+ Model(id='perplexity/sonar-reasoning-pro', name='Perplexity: Sonar Reasoning Pro', provider='openrouter', cost=Cost(input=2.0, output=8.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
397
+ Model(id='perplexity/sonar-pro', name='Perplexity: Sonar Pro', provider='openrouter', cost=Cost(input=3.0, output=15.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=200000, max_tokens=8000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
398
+ Model(id='perplexity/sonar-deep-research', name='Perplexity: Sonar Deep Research', provider='openrouter', cost=Cost(input=2.0, output=8.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
399
+ Model(id='google/gemini-2.0-flash-lite-001', name='Google: Gemini 2.0 Flash Lite', provider='openrouter', cost=Cost(input=0.075, output=0.3, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1048576, max_tokens=8192, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
400
+ Model(id='mistralai/mistral-saba', name='Mistral: Saba', provider='openrouter', cost=Cost(input=0.19999999999999998, output=0.6, cache_read=0.02, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
401
+ Model(id='meta-llama/llama-guard-3-8b', name='Llama Guard 3 8B', provider='openrouter', cost=Cost(input=0.48400000000000004, output=0.03, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=131072, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
402
+ Model(id='openai/o3-mini-high', name='OpenAI: o3 Mini High', provider='openrouter', cost=Cost(input=1.1, output=4.4, cache_read=0.55, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
403
+ Model(id='google/gemini-2.0-flash-001', name='Google: Gemini 2.0 Flash', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.39999999999999997, cache_read=0.024999999999999998, cache_write=0.08333333333333334), thinking=False, context_window=1000000, max_tokens=8192, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text], api=None, base_url=None, voices=[]),
404
+ Model(id='aion-labs/aion-1.0', name='AionLabs: Aion-1.0', provider='openrouter', cost=Cost(input=4.0, output=8.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
405
+ Model(id='aion-labs/aion-1.0-mini', name='AionLabs: Aion-1.0-Mini', provider='openrouter', cost=Cost(input=0.7, output=1.4, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
406
+ Model(id='aion-labs/aion-rp-llama-3.1-8b', name='AionLabs: Aion-RP 1.0 (8B)', provider='openrouter', cost=Cost(input=0.7999999999999999, output=1.5999999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
407
+ Model(id='qwen/qwen2.5-vl-72b-instruct', name='Qwen: Qwen2.5 VL 72B Instruct', provider='openrouter', cost=Cost(input=0.25, output=0.75, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
408
+ Model(id='qwen/qwen-plus', name='Qwen: Qwen-Plus', provider='openrouter', cost=Cost(input=0.26, output=0.78, cache_read=0.052000000000000005, cache_write=0.325), thinking=False, context_window=1000000, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
409
+ Model(id='openai/o3-mini', name='OpenAI: o3 Mini', provider='openrouter', cost=Cost(input=1.1, output=4.4, cache_read=0.55, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
410
+ Model(id='mistralai/mistral-small-24b-instruct-2501', name='Mistral: Mistral Small 3', provider='openrouter', cost=Cost(input=0.049999999999999996, output=0.08, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
411
+ Model(id='deepseek/deepseek-r1-distill-qwen-32b', name='DeepSeek: R1 Distill Qwen 32B', provider='openrouter', cost=Cost(input=0.29, output=0.29, cache_read=0.0, cache_write=0.0), thinking=True, context_window=128000, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
412
+ Model(id='perplexity/sonar', name='Perplexity: Sonar', provider='openrouter', cost=Cost(input=1.0, output=1.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=127072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
413
+ Model(id='deepseek/deepseek-r1-distill-llama-70b', name='DeepSeek: R1 Distill Llama 70B', provider='openrouter', cost=Cost(input=0.7, output=0.7999999999999999, cache_read=0.0, cache_write=0.0), thinking=True, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
414
+ Model(id='deepseek/deepseek-r1', name='DeepSeek: R1', provider='openrouter', cost=Cost(input=0.7, output=2.5, cache_read=0.0, cache_write=0.0), thinking=True, context_window=163840, max_tokens=16000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
415
+ Model(id='minimax/minimax-01', name='MiniMax: MiniMax-01', provider='openrouter', cost=Cost(input=0.19999999999999998, output=1.1, cache_read=0.0, cache_write=0.0), thinking=False, context_window=1000192, max_tokens=1000192, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
416
+ Model(id='microsoft/phi-4', name='Microsoft: Phi 4', provider='openrouter', cost=Cost(input=0.065, output=0.14, cache_read=0.0, cache_write=0.0), thinking=False, context_window=16384, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
417
+ Model(id='sao10k/l3.1-70b-hanami-x1', name='Sao10K: Llama 3.1 70B Hanami x1', provider='openrouter', cost=Cost(input=3.0, output=3.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=16000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
418
+ Model(id='deepseek/deepseek-chat', name='DeepSeek: DeepSeek V3', provider='openrouter', cost=Cost(input=0.32, output=0.8899999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=163840, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
419
+ Model(id='sao10k/l3.3-euryale-70b', name='Sao10K: Llama 3.3 Euryale 70B', provider='openrouter', cost=Cost(input=0.65, output=0.75, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
420
+ Model(id='openai/o1', name='OpenAI: o1', provider='openrouter', cost=Cost(input=15.0, output=60.0, cache_read=7.5, cache_write=0.0), thinking=True, context_window=200000, max_tokens=100000, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
421
+ Model(id='cohere/command-r7b-12-2024', name='Cohere: Command R7B (12-2024)', provider='openrouter', cost=Cost(input=0.0375, output=0.15, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
422
+ Model(id='meta-llama/llama-3.3-70b-instruct:free', name='Meta: Llama 3.3 70B Instruct (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
423
+ Model(id='meta-llama/llama-3.3-70b-instruct', name='Meta: Llama 3.3 70B Instruct', provider='openrouter', cost=Cost(input=0.09999999999999999, output=0.32, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
424
+ Model(id='amazon/nova-lite-v1', name='Amazon: Nova Lite 1.0', provider='openrouter', cost=Cost(input=0.06, output=0.24, cache_read=0.0, cache_write=0.0), thinking=False, context_window=300000, max_tokens=5120, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
425
+ Model(id='amazon/nova-micro-v1', name='Amazon: Nova Micro 1.0', provider='openrouter', cost=Cost(input=0.035, output=0.14, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=5120, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
426
+ Model(id='amazon/nova-pro-v1', name='Amazon: Nova Pro 1.0', provider='openrouter', cost=Cost(input=0.7999999999999999, output=3.1999999999999997, cache_read=0.0, cache_write=0.0), thinking=False, context_window=300000, max_tokens=5120, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
427
+ Model(id='openai/gpt-4o-2024-11-20', name='OpenAI: GPT-4o (2024-11-20)', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=1.25, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
428
+ Model(id='mistralai/mistral-large-2411', name='Mistral Large 2411', provider='openrouter', cost=Cost(input=2.0, output=6.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
429
+ Model(id='mistralai/mistral-large-2407', name='Mistral Large 2407', provider='openrouter', cost=Cost(input=2.0, output=6.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
430
+ Model(id='mistralai/pixtral-large-2411', name='Mistral: Pixtral Large 2411', provider='openrouter', cost=Cost(input=2.0, output=6.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
431
+ Model(id='qwen/qwen-2.5-coder-32b-instruct', name='Qwen2.5 Coder 32B Instruct', provider='openrouter', cost=Cost(input=0.66, output=1.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
432
+ Model(id='thedrummer/unslopnemo-12b', name='TheDrummer: UnslopNemo 12B', provider='openrouter', cost=Cost(input=0.39999999999999997, output=0.39999999999999997, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
433
+ Model(id='anthropic/claude-3.5-haiku', name='Anthropic: Claude 3.5 Haiku', provider='openrouter', cost=Cost(input=0.7999999999999999, output=4.0, cache_read=0.08, cache_write=1.0), thinking=False, context_window=200000, max_tokens=8192, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
434
+ Model(id='anthracite-org/magnum-v4-72b', name='Magnum v4 72B', provider='openrouter', cost=Cost(input=3.0, output=5.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=2048, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
435
+ Model(id='qwen/qwen-2.5-7b-instruct', name='Qwen: Qwen2.5 7B Instruct', provider='openrouter', cost=Cost(input=0.04, output=0.09999999999999999, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
436
+ Model(id='inflection/inflection-3-productivity', name='Inflection: Inflection 3 Productivity', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8000, max_tokens=1024, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
437
+ Model(id='inflection/inflection-3-pi', name='Inflection: Inflection 3 Pi', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8000, max_tokens=1024, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
438
+ Model(id='thedrummer/rocinante-12b', name='TheDrummer: Rocinante 12B', provider='openrouter', cost=Cost(input=0.16999999999999998, output=0.43, cache_read=0.0, cache_write=0.0), thinking=False, context_window=32768, max_tokens=32768, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
439
+ Model(id='meta-llama/llama-3.2-11b-vision-instruct', name='Meta: Llama 3.2 11B Vision Instruct', provider='openrouter', cost=Cost(input=0.245, output=0.245, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
440
+ Model(id='meta-llama/llama-3.2-1b-instruct', name='Meta: Llama 3.2 1B Instruct', provider='openrouter', cost=Cost(input=0.027, output=0.201, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=60000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
441
+ Model(id='meta-llama/llama-3.2-3b-instruct:free', name='Meta: Llama 3.2 3B Instruct (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
442
+ Model(id='meta-llama/llama-3.2-3b-instruct', name='Meta: Llama 3.2 3B Instruct', provider='openrouter', cost=Cost(input=0.0509, output=0.335, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=80000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
443
+ Model(id='qwen/qwen-2.5-72b-instruct', name='Qwen2.5 72B Instruct', provider='openrouter', cost=Cost(input=0.36, output=0.39999999999999997, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
444
+ Model(id='cohere/command-r-08-2024', name='Cohere: Command R (08-2024)', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
445
+ Model(id='cohere/command-r-plus-08-2024', name='Cohere: Command R+ (08-2024)', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
446
+ Model(id='sao10k/l3.1-euryale-70b', name='Sao10K: Llama 3.1 Euryale 70B v2.2', provider='openrouter', cost=Cost(input=0.85, output=0.85, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
447
+ Model(id='nousresearch/hermes-3-llama-3.1-70b', name='Nous: Hermes 3 70B Instruct', provider='openrouter', cost=Cost(input=0.3, output=0.3, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
448
+ Model(id='nousresearch/hermes-3-llama-3.1-405b:free', name='Nous: Hermes 3 405B Instruct (free)', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
449
+ Model(id='nousresearch/hermes-3-llama-3.1-405b', name='Nous: Hermes 3 405B Instruct', provider='openrouter', cost=Cost(input=1.0, output=1.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
450
+ Model(id='sao10k/l3-lunaris-8b', name='Sao10K: Llama 3 8B Lunaris', provider='openrouter', cost=Cost(input=0.04, output=0.049999999999999996, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8192, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
451
+ Model(id='openai/gpt-4o-2024-08-06', name='OpenAI: GPT-4o (2024-08-06)', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=1.25, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
452
+ Model(id='meta-llama/llama-3.1-70b-instruct', name='Meta: Llama 3.1 70B Instruct', provider='openrouter', cost=Cost(input=0.39999999999999997, output=0.39999999999999997, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
453
+ Model(id='meta-llama/llama-3.1-8b-instruct', name='Meta: Llama 3.1 8B Instruct', provider='openrouter', cost=Cost(input=0.02, output=0.049999999999999996, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
454
+ Model(id='mistralai/mistral-nemo', name='Mistral: Mistral Nemo', provider='openrouter', cost=Cost(input=0.02, output=0.03, cache_read=0.0, cache_write=0.0), thinking=False, context_window=131072, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
455
+ Model(id='openai/gpt-4o-mini-2024-07-18', name='OpenAI: GPT-4o-mini (2024-07-18)', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.075, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
456
+ Model(id='openai/gpt-4o-mini', name='OpenAI: GPT-4o-mini', provider='openrouter', cost=Cost(input=0.15, output=0.6, cache_read=0.075, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
457
+ Model(id='google/gemma-2-27b-it', name='Google: Gemma 2 27B', provider='openrouter', cost=Cost(input=0.65, output=0.65, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8192, max_tokens=2048, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
458
+ Model(id='sao10k/l3-euryale-70b', name='Sao10k: Llama 3 Euryale 70B v2.1', provider='openrouter', cost=Cost(input=1.48, output=1.48, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8192, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
459
+ Model(id='nousresearch/hermes-2-pro-llama-3-8b', name='NousResearch: Hermes 2 Pro - Llama-3 8B', provider='openrouter', cost=Cost(input=0.14, output=0.14, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8192, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
460
+ Model(id='openai/gpt-4o', name='OpenAI: GPT-4o', provider='openrouter', cost=Cost(input=2.5, output=10.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
461
+ Model(id='openai/gpt-4o-2024-05-13', name='OpenAI: GPT-4o (2024-05-13)', provider='openrouter', cost=Cost(input=5.0, output=15.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4096, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
462
+ Model(id='meta-llama/llama-3-70b-instruct', name='Meta: Llama 3 70B Instruct', provider='openrouter', cost=Cost(input=0.51, output=0.74, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8192, max_tokens=8000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
463
+ Model(id='meta-llama/llama-3-8b-instruct', name='Meta: Llama 3 8B Instruct', provider='openrouter', cost=Cost(input=0.04, output=0.04, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8192, max_tokens=8192, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
464
+ Model(id='mistralai/mixtral-8x22b-instruct', name='Mistral: Mixtral 8x22B Instruct', provider='openrouter', cost=Cost(input=2.0, output=6.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=False, context_window=65536, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
465
+ Model(id='microsoft/wizardlm-2-8x22b', name='WizardLM-2 8x22B', provider='openrouter', cost=Cost(input=0.62, output=0.62, cache_read=0.0, cache_write=0.0), thinking=False, context_window=65536, max_tokens=8000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
466
+ Model(id='openai/gpt-4-turbo', name='OpenAI: GPT-4 Turbo', provider='openrouter', cost=Cost(input=10.0, output=30.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4096, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
467
+ Model(id='anthropic/claude-3-haiku', name='Anthropic: Claude 3 Haiku', provider='openrouter', cost=Cost(input=0.25, output=1.25, cache_read=0.03, cache_write=0.3), thinking=False, context_window=200000, max_tokens=4096, input=[Modality.Text, Modality.Image], output=[Modality.Text], api=None, base_url=None, voices=[]),
468
+ Model(id='mistralai/mistral-large', name='Mistral Large', provider='openrouter', cost=Cost(input=2.0, output=6.0, cache_read=0.19999999999999998, cache_write=0.0), thinking=False, context_window=128000, max_tokens=16384, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
469
+ Model(id='openai/gpt-3.5-turbo-0613', name='OpenAI: GPT-3.5 Turbo (older v0613)', provider='openrouter', cost=Cost(input=1.0, output=2.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=4095, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
470
+ Model(id='openai/gpt-4-turbo-preview', name='OpenAI: GPT-4 Turbo Preview', provider='openrouter', cost=Cost(input=10.0, output=30.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
471
+ Model(id='openrouter/auto', name='Auto Router', provider='openrouter', cost=Cost(input=0.0, output=0.0, cache_read=0.0, cache_write=0.0), thinking=True, context_window=2000000, max_tokens=16384, input=[Modality.Text, Modality.Image, Modality.Audio, Modality.Video], output=[Modality.Text, Modality.Image], api=None, base_url=None, voices=[]),
472
+ Model(id='openai/gpt-4-1106-preview', name='OpenAI: GPT-4 Turbo (older v1106)', provider='openrouter', cost=Cost(input=10.0, output=30.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=128000, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
473
+ Model(id='mistralai/mistral-7b-instruct-v0.1', name='Mistral: Mistral 7B Instruct v0.1', provider='openrouter', cost=Cost(input=0.11, output=0.19, cache_read=0.0, cache_write=0.0), thinking=False, context_window=4096, max_tokens=2824, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
474
+ Model(id='openai/gpt-3.5-turbo-instruct', name='OpenAI: GPT-3.5 Turbo Instruct', provider='openrouter', cost=Cost(input=1.5, output=2.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=4095, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
475
+ Model(id='openai/gpt-3.5-turbo-16k', name='OpenAI: GPT-3.5 Turbo 16k', provider='openrouter', cost=Cost(input=3.0, output=4.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=16385, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
476
+ Model(id='mancer/weaver', name='Mancer: Weaver (alpha)', provider='openrouter', cost=Cost(input=0.75, output=1.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8000, max_tokens=2000, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
477
+ Model(id='undi95/remm-slerp-l2-13b', name='ReMM SLERP 13B', provider='openrouter', cost=Cost(input=0.44999999999999996, output=0.65, cache_read=0.0, cache_write=0.0), thinking=False, context_window=6144, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
478
+ Model(id='gryphe/mythomax-l2-13b', name='MythoMax 13B', provider='openrouter', cost=Cost(input=0.06, output=0.06, cache_read=0.0, cache_write=0.0), thinking=False, context_window=4096, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
479
+ Model(id='openai/gpt-4-0314', name='OpenAI: GPT-4 (older v0314)', provider='openrouter', cost=Cost(input=30.0, output=60.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8191, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
480
+ Model(id='openai/gpt-3.5-turbo', name='OpenAI: GPT-3.5 Turbo', provider='openrouter', cost=Cost(input=0.5, output=1.5, cache_read=0.0, cache_write=0.0), thinking=False, context_window=16385, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
481
+ Model(id='openai/gpt-4', name='OpenAI: GPT-4', provider='openrouter', cost=Cost(input=30.0, output=60.0, cache_read=0.0, cache_write=0.0), thinking=False, context_window=8191, max_tokens=4096, input=[Modality.Text], output=[Modality.Text], api=None, base_url=None, voices=[]),
482
+ ]