Repository navigation
Releases: okuyam2y/opencode-nofc
Release list
v2026.10.10 (v1.18.35)
What's New
- Session identity headers on new sessions: upstream's session identity headers are now sent from this fork's request path as well, so providers that group requests by session receive them consistently.
Fixes
- Upstream rebase to v1.18.35: includes upstream's fix that drops image formats xAI rejects (anything other than PNG/JPEG/WebP) from tool results instead of failing the whole request, the
@ai-sdk/xai3.0.139 andgitlab-ai-provider6.19.0 bumps, and assorted console/stats/docs updates. - The fork's
[exit_code=N]prefix for failed shell commands is kept alongside the new image filter.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.35.
v2026.10.02 (v1.18.33)
What's New
- Request timeouts now come from upstream's shared timeout layer (upstream #51549): upstream moved the header, SSE-idle and total request timeouts into one shared fetch function, which now also covers Cloudflare AI Gateway models. This fork's request-body adjustments (
useMaxCompletionTokens,dropReasoningEffortWithTools) now run in front of that function instead of the fork carrying its own copy of the timeout logic, so future upstream timeout fixes apply here as well. Defaults and behavior are unchanged.
Fixes
- Thinking budget is no longer doubled by the fork's raised output cap: the fork raises the output-token cap to 65,536 so long replies are not cut off, but upstream derives reasoning budgets from the same constant. On models whose output limit exceeds 32,000, the thinking budget had silently doubled (high 16,000 → 32,000, max 31,999 → 63,999). The reasoning ceiling is now held at upstream's value; the output cap is unchanged. Models with an output limit of 32,000 or less were never affected.
- Upstream rebase to v1.18.33 (+122 commits since v1.18.30): Go and Go Plus plans and limits in the console, daily model rankings in stats, credential redaction in
debug config, a shared browser opener for opencode and the TUI, npm entrypoint resolution under Node, summarized adaptive thinking requests, Bedrock tool-image hoisting limited to the models that need it, and web documentation updates.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.33.
v2026.09.10-2 (v1.18.30)
What's New
- Astra system prompt for gpt-6 models (upstream #48057): model IDs containing
gpt-6now use the Astra prompt. In this fork the branch assigns to the prompt list rather than returning early, so gpt-6 still receives the tool-parser guidance the fork injects at the end of prompt selection.
Fixes
- Upstream rebase to v1.18.30 (+6 commits): console Go inference routing, web documentation i18n, and version sync.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.30.
v2026.09.10 (v1.18.29)
Fixes
- Amazon Bedrock model ID resolution (upstream): ARN model IDs are now passed through untouched instead of receiving a cross-region prefix, and the DeepSeek rule is narrowed from
deepseektodeepseek.r1so other DeepSeek models are no longer prefixed. - Web documentation i18n: the
gopages are translated across 17 languages (upstream).
Upstream rebase #136 — 4 commits, no version bump. Still based on upstream opencode v1.18.29.
Note on npm
opencode-ai-nofc@1.18.29 was published with the 2026-09-08 build and has not been republished: upstream did not bump the version in this range, and npm does not allow overwriting a published version. The binaries attached below are the only artifacts carrying the Bedrock fix above. Installing from npm will pick it up at the next upstream version bump.
Install
Download a binary below, or install the previous build from npm:
npx opencode-ai-nofcnpm install -g opencode-ai-nofc
opencodeBased on upstream opencode v1.18.29.
v2026.09.08 (v1.18.29)
What's New
No new fork features in this release. This is a pure upstream-tracking release.
Fixes
- Upstream rebase to v1.18.29 (from v1.18.27, absorbing 51 upstream commits across two rebases).
All 222 fork patches were replayed unchanged — the normalized fork diff is byte-identical
before and after the rebase, so no fork hunk was superseded upstream.
Notable upstream changes that reach this fork:
provider/transform.ts: GitLab reasoning variants now map toreasoningEffortfor GPT
families and adaptive thinking for Claude families, instead of being dropped.plugin/openai/codex.ts: the Codex model filter compares GPT versions by major and minor,
so integer versions such asgpt-6are no longer rejected by the version regex.plugin/github-copilot/copilot.ts: sends anX-Interaction-Idheader carrying the session id.- Provider SDK bumps:
@ai-sdk/openai3.0.84 → 3.0.88,@ai-sdk/azure3.0.88 → 3.0.93,
gitlab-ai-provider6.13.0 → 6.15.0.
There are no architecture changes and no breaking changes on the code paths this fork uses.
Verification
- Type check 30/30 (all cache misses, actually executed)
- Upstream-touched tests: 6 of 7 green; the seventh has the same 11 pre-existing failures
before and after the rebase, with an identical failing-test-name set - Session hot path
test/session/: 770 tests across 37 files, identical failing-test-name
set before and after - Unreachable-layer guard: 8 pass
- Full-platform build with version and TUI smoke tests passing
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.29.
v2026.09.03 (v1.18.27)
What's New
- Anthropic thinking block binding: requests to Claude 5.1 and newer now ask the API to drop
thinking blocks whose conversation prefix no longer matches, instead of failing the whole request.
opencode re-renders parts of that prefix between turns (system prompt, tool list, compaction), so
without this a long session could start rejecting requests outright. Mythos 5.1 is excluded because
it does not run the check. Blocks the API drops are reported in a warning log.- Opt out per model, agent or variant with
thinking.blockBinding: false
(reasoningConfig.blockBinding: falseon Bedrock).
- Opt out per model, agent or variant with
- Five-minute defaults for both stream timeouts:
headerTimeoutnow defaults to 300000 ms
alongsidechunkTimeout, so a gateway that accepts a connection and then never sends headers no
longer hangs the session. Either can still be disabled withfalse, and anything you set in
opencode.jsontakes precedence over a provider preset.
Fixes
- Upstream rebase to v1.18.27 (from v1.18.25):
- SSE reader cancellation no longer produces an unhandled rejection when the stream errors at the
same moment the timeout fires. - Azure model discovery removed upstream; it no longer writes to stdout.
apply_patchomits an empty move path.- Tool-call logging no longer resets
time.startincorrectly. - Bedrock SDK accepts a
nonereasoning effort.
- SSE reader cancellation no longer produces an unhandled rejection when the stream errors at the
- Generated v2 SDK types now include
dropReasoningEffortWithTools, which the config schema has
accepted for a while but the published types never exposed.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.27.
v2026.08.29 (v1.18.25)
What's New
A fork-side fix this time, found by the multi-model review that runs over every
rebase integration.
- A broken legacy
compaction.tail_tokensvalue no longer takes the whole
config file down. The fork carries a shim that maps that deprecated key onto
preserve_recent_tokens, which upstream renamed it to.preserve_recent_tokens
is validated as a non-negative integer, so the shim was promoting a key the
schema ignores today into one it checks — and a config holdingtail_tokens: -1
(or1.5, or"20000") was rejected outright. For the global config that meant
falling back to defaults with one line in the log. Without the shim the same
value is simply an unknown key and is ignored, so the migration was leaving
legacy users worse off than not migrating at all. The value is now migrated only
when it is a non-negative integer, and otherwise dropped with a warning naming
the file and the value.
Fixes
-
Upstream rebase to v1.18.25 (18 commits on top of the 17 already carried
since v1.18.23). What reaches the CLI:- v2-shaped config files load under v1. Upstream added a compatibility
layer that projects supported v2 keys down to v1 and reports unsupported
ones as diagnostics instead of failing. Config load and both global-update
paths now run through one shared decode step. - Global config updates preserve the file's original shape. A settings
write no longer rewrites a v2-shaped file into v1 form. A side effect worth
knowing: a deprecated key stays on disk and is migrated again on every load
rather than being rewritten once. - Azure CLI authentication is supported, and Azure auth no longer depends
on Bun being present. - Bedrock reasoning that cannot be replayed is filtered before caching.
The rest are console, stats and docs changes that do not affect the CLI.
- v2-shaped config files load under v1. Upstream added a compatibility
-
All 172 local patches replayed. One conflict, in the config layer, where
upstream's new decode step and the fork's legacy-key migration touched the same
three call sites; upstream's structure was adopted and the fork's file-path
argument threaded through it. The fork's diff against its base came out
byte-identical before and after the rebase for 520 of the 523 files it touches,
including the session and tool hot paths, so nothing was silently dropped. -
The load-path migration and the deprecation warning's file path are now pinned
by tests. That argument is the point this fork has to re-resolve on every
upstream rebase, and a wrong resolution passed both the type check and the
suite before.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.25.
v2026.08.26 (v1.18.23)
What's New
Nothing on the fork side this time. This is a straight upstream refresh: the
tool-calling middleware, the streaming tag filter, the SSE chunk timeout and the
rest of the fork's behaviour are unchanged from v1.18.22.
Fixes
-
Upstream rebase to v1.18.23 (16 commits). Two of them reach the CLI:
- Legacy database migration history is recovered instead of erroring.
Installs whose Drizzle journal predates the named-column schema used to hit
a bare "no such column" failure while seeding the new migration table. The
seeding path now detects which shape the old table has and reconstructs the
ids from the recorded timestamps. - Non-native Cloudflare AI Gateway providers are routed through the REST
API. The compat gateway route rejects third-party upstreams outright, so
those requests now go to the catalog-aware endpoint and stay bound to the
gateway.
The rest are console, docs and locale changes that do not affect the CLI:
checkout session rate limiting, focus restoration in stacked dialogs,
archived sessions leaving the home list immediately, a quota usage breakdown,
and the usual inference header and model listing refreshes. - Legacy database migration history is recovered instead of erroring.
-
All 167 local patches replayed with no conflicts. The fork's diff against its
base came out byte-identical before and after the rebase for the session and
tool hot paths, so nothing was silently dropped in the merge.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.23.
v2026.08.25 (v1.18.22)
What's New
X-Session-Idis now sent to providers. Upstream sendsx-session-affinityandX-Session-Idtogether to non-opencode providers, but the second half of that pair lives in a file this fork does not execute — so this fork had never sentX-Session-Idto any provider. The header the fork actually builds now carries both.- The parent-session header reaches opencode providers too. Upstream moved
x-parent-session-idout of the non-opencode branch so every provider receives it, and again did so only in the copy this fork does not run. The fork's request builder now makes the same move.
Fixes
- Upstream rebase to v1.18.22 (from v1.18.21):
- Anthropic model ids reach the Cloudflare AI Gateway as native dashed slugs (
claude-haiku-4-5) rather than the dotted catalog form - GitHub PAT tokens take a distinct app-token exchange path
- Console pricing and request-body handling split out with tests; workspace unblock action added
- Model catalog and documentation refreshes across all locales
- Anthropic model ids reach the Cloudflare AI Gateway as native dashed slugs (
- The silent-divergence guard shipped last release now covers four files instead of one. Two more upstream layers turned out to be in the same position as
src/session/llm/ai-sdk.ts—llm/native-request.tsandllm/native-runtime.ts, the native stack upstream is actively building, plusllm/request.ts. All are byte-identical to upstream and unreachable from this fork's rewrittenllm.ts, so upstream changes merge cleanly and do nothing. That pattern had already cost two fixes. One table now drives a content pin, a deleted-file check and a reference scan across all four, so a change to any of them fails loudly instead of being absorbed.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.22.
v2026.08.23 (v1.18.21)
What's New
- Network errors that used to end a turn silently are now retried. Some gateways end a stream with
finish_reason: "network_error"instead of raising. Nothing treated that as a failure, so the turn finished as an ordinary success: empty answer, no retry, no error. It is now surfaced as a retryable stream failure and rejoins the existing retry path. - A step whose tools already ran is billed and settled even when the stream dies. Retrying after a tool has executed would re-run its side effects, so the turn continues instead — but until now that step's tokens went uncounted and it left no step boundary behind. It is now billed through the same per-turn correction and overflow check as a normal finish, and writes the same step-finish record.
- Title generation no longer fails loudly or silently. A failed stream used to kill the background title task with an unhandled defect; the first fix traded that for total silence. Failures are now logged and the session simply keeps its default title.
Fixes
- Upstream rebase to v1.18.21 (from v1.18.16), covering two upstream releases:
- Cloudflare AI Gateway now routes OpenAI and Anthropic through their native passthrough APIs
- Google Vertex multi-region requests route through REP endpoints
- New Cerebras provider plugin
- Broader retry matching —
network_errorvariants, "try again later" and at-capacity messages — and unrecognized stream errors now default to retryable - Retry backoff gained jitter and a five-attempt ceiling
- Model catalog and documentation refreshes across all locales
- Guard against a class of silent divergence: this fork does not route through upstream's LLM event normalization layer, so fixes landing in
src/session/llm/ai-sdk.tshave no effect here while the file stays identical to upstream and merges cleanly. A test now fails if that file changes at all, or if anything starts calling into it.
Install
Try without installing:
npx opencode-ai-nofcInstall globally:
npm install -g opencode-ai-nofc
opencodeOr download binaries below.
Based on upstream opencode v1.18.21.