opencode: Model updates + fixes - #60526
Merged
Merged
Conversation
This both adds nicer error messages and avoid issues like zed-industries#56869 (comment) For backwards compatibility and for a better UX, this was left optional and not made a required field. For better UX, multiple formatting options are supported (both openai_chat and open_ai_chat, for example)
As per [OpenCode developer on Discord](https://discord.com/channels/1391832426048651334/1471233160993050918/1472020924881702912), "almost all models worth using support parallel tool calling natively". Manual tests confirmed all OpenCode Go models support this correctly (and was enabled by default for all but 1 model)
Add support for zed-industries#58980 and zed-industries#59111 which disable the "Disable Thinking" button for models that don't support that (forces the button to always be "On" for models that are thinking-only)
NOT TESTED but matches the google_ai behavior
I didn't know if `none` was supported or not and, after testing, I can confirm it is supported. For clarity, I decided to also update the example list
benbrandt
enabled auto-merge
July 7, 2026 10:06
Contributor
jolutz
pushed a commit
to jolutz/zed
that referenced
this pull request
Aug 8, 2026
**TL;DR**: model updates + reasoning levels + fixes discovered when working on zed-industries#60373 # Objective Since the model auto-discovery PR was [cancelled](zed-industries#60373 (comment)), here is a manual model list update! I also copied the stand-alone bugfixes/enhancements from that PR. ## Solution A lot of manual work 😅 **OpenCode Zen**: - added Fable 5 and Sonnet 5 - added models that were previously only available on OpenCode Go: GLM 5.2, Kimi K2.7 Code, and Minimax M3 - added reasoning levels for all models. I started from the data on [`Models.dev`](https://models.dev) (the `/api.json` raw data), and then I matched that with what is shown in the OpenCode CLI and what I know to be true **OpenCode Go**: - added reasoning levels for GLM 5.2 **OpenCode in general**: - added `protocol` validation for the settings, by moving from a random `String` to an `enum`, for both nicer error messages (random strings or typos will get an error instead of using `openai_chat` by default) and to avoid issues like [folks saying non-existent protocols are a thing](zed-industries#56869 (comment)) - enabled parallel tool calls by default. As per [OpenCode developer on Discord](https://discord.com/channels/1391832426048651334/1471233160993050918/1472020924881702912), _"almost all models worth using support parallel tool calling natively"_. Manual tests confirmed all OpenCode Go models support this correctly (and was enabled by default on the OpenCode side for all but 1 model). I initially wanted to skip this from the release notes, but I added it so folks are aware of it in case any issues are caused by this being enabled for all models - allegedly fixed Google thinking since reasoning levels / thinking effort levels were added for Google models and an auto-checker LLM highlighted that was not properly configured - added support for the new-ish `supports_disabling_thinking` so thinking-only models don't get a no-impact toggle to disable thinking I have no idea if any of the Free models will disappear in 2 days or not, so I did not update those 🤷 (as per decision in zed-industries#56869 (comment)) ## Testing The Zen and Google changes were not tested as I don't have a Zen subscription and I stubbornly refuse to get one. The Free&Go changes were tested by running a "_rename this variable for me. add a function. delete the function_" test with a few different models. ## Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content adheres to Zed's UI standards ([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) and [icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md) guidelines) - [ ] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable --- Release Notes: - Agent: OpenCode settings now validate `protocol` values - Agent: OpenCode only shows the "Disable thinking" toggle if thinking can indeed be disabled/enabled - Agent: OpenCode models now enable parallel tool calls by default - Agent: Updated OpenCode Zen models (added Fable 5, Sonnet 5, GLM 5.2, Kimi K2.7 Code, and Minimax M3) - Agent: Added OpenCode Go GLM 5.2 reasoning effort levels - Agent: Added reasoning effort levels for all OpenCode Zen models - Agent: Fixed thinking for OpenCode Zen Google models
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR: model updates + reasoning levels + fixes discovered when working on #60373
Objective
Since the model auto-discovery PR was cancelled, here is a manual model list update! I also copied the stand-alone bugfixes/enhancements from that PR.
Solution
A lot of manual work 😅
OpenCode Zen:
Models.dev(the/api.jsonraw data), and then I matched that with what is shown in the OpenCode CLI and what I know to be trueOpenCode Go:
OpenCode in general:
protocolvalidation for the settings, by moving from a randomStringto anenum, for both nicer error messages (random strings or typos will get an error instead of usingopenai_chatby default) and to avoid issues like folks saying non-existent protocols are a thingsupports_disabling_thinkingso thinking-only models don't get a no-impact toggle to disable thinkingI have no idea if any of the Free models will disappear in 2 days or not, so I did not update those 🤷 (as per decision in #56869 (comment))
Testing
The Zen and Google changes were not tested as I don't have a Zen subscription and I stubbornly refuse to get one.
The Free&Go changes were tested by running a "rename this variable for me. add a function. delete the function" test with a few different models.
Self-Review Checklist:
Release Notes:
protocolvalues