You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Allow overriding model input limits for OpenAI long-context models #16298
I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
I would like opencode to support user-overridable input limits for OpenAI models such as gpt-5.4, or otherwise align its effective limits more closely with the official OpenAI model documentation.
Background
OpenAI documents gpt-5.4 as having a 1,050,000 token context window and 128,000 max output tokens.
In opencode, openai:gpt-5.4 currently appears to be loaded with:
context: 1,050,000
input: 272,000
output: 128,000
Because opencode's compaction logic prefers model.limit.input when it is present, long conversations may be compacted much earlier than users would expect from the official GPT-5.4 context window.
Requested enhancement
Please consider one of the following:
Allow provider.models.<model>.limit.input to be overridden in user config, and make sure that override is respected at runtime.
Add an explicit advanced setting to opt into the full documented long-context budget for supported models/providers.
Revisit the metadata source used for OpenAI GPT-5.x models so opencode does not enforce a much smaller effective input budget unless there is a confirmed upstream reason.
Why this would help
It would let advanced users fully use the long-context models they are already paying for.
It would reduce unnecessary early compaction and summarization.
It would make model behavior more predictable and closer to official provider documentation.
It would improve parity with OpenAI's own tooling, where client-side context budget is configurable.
Additional note
This request is not asking opencode to bypass any upstream provider limits. It is only asking for either:
more accurate defaults, or
a user-visible override for the client-side/model-metadata limit that opencode uses for compaction decisions.
If the current 272,000 input limit is intentional because of a known upstream constraint, documenting that clearly would also be very helpful.
I originally opened this as a feature request, but after tracing the implementation this looks more like a bug in the existing model override behavior.
Specifically, provider.models.<model>.limit.input is currently ignored in two places:
config validation does not allow partial limit overrides such as:
during provider model merging, limit.input is not preserved/applied at runtime.
This means model-level input limit overrides are ineffective even though model overrides already exist for other fields.
I'm preparing a small fix that:
allows partial limit overrides in config
preserves and applies limit.input at runtime
adds regression tests
Reacted by Raymel, Brendan Duke, Sergey Kostrukov, Jun Guo and Charles Pascoe
Activity
github-actions commentedon Mar 6, 2026
This issue might be a duplicate of existing issues. Please check:
Please review these issues to see if your request is already covered or can be addressed as part of an existing discussion.
ykswang commentedon Mar 6, 2026
I originally opened this as a feature request, but after tracing the implementation this looks more like a bug in the existing model override behavior.
Specifically,
provider.models.<model>.limit.inputis currently ignored in two places:limitoverrides such as:{ "provider": { "anthropic": { "models": { "claude-sonnet-4-20250514": { "limit": { "input": 123456 } } } } } }This means model-level input limit overrides are ineffective even though model overrides already exist for other fields.
I'm preparing a small fix that: