Skip to content

opencode: Model updates + fixes - #60526

Merged
benbrandt merged 10 commits into
zed-industries:mainfrom
Vlaaaaaaad:opencode-july-7
Jul 7, 2026
Merged

opencode: Model updates + fixes#60526
benbrandt merged 10 commits into
zed-industries:mainfrom
Vlaaaaaaad:opencode-july-7

Conversation

@Vlaaaaaaad

Copy link
Copy Markdown
Contributor

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:

  • 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 (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
  • enabled parallel tool calls by default. As per OpenCode developer on Discord, "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 #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:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content adheres to Zed's UI standards (UX/UI and icon guidelines)
  • Tests cover the new/changed behavior
  • 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 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
@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Jul 7, 2026

@benbrandt benbrandt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks as always 🙏🏻

@benbrandt
benbrandt enabled auto-merge July 7, 2026 10:06
@zed-industries-bot

Copy link
Copy Markdown
Contributor
Messages
📖

This PR includes links to the following GitHub Issues: #56869
If this PR aims to close an issue, please include a Closes #ISSUE line at the top of the PR body.

Generated by 🚫 dangerJS against 05d43d7

@benbrandt
benbrandt added this pull request to the merge queue Jul 7, 2026
Merged via the queue into zed-industries:main with commit 452e1cb Jul 7, 2026
34 checks passed
@Vlaaaaaaad
Vlaaaaaaad deleted the opencode-july-7 branch July 7, 2026 10:31
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants