Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
5397cab
feat: add experimental.skip_models_fetch setting to allowdisabling au…
ariane-emory Dec 4, 2025
ccdffcd
refactor: try to make it a bit cleaner by inlining a called-only-once…
ariane-emory Dec 4, 2025
e24b760
refactor: these tests are probably overkill.
ariane-emory Dec 4, 2025
1b4b91b
fix: whoops, don't nuke that whole file, just resync it with dev\!
ariane-emory Dec 4, 2025
6137fcd
refactor: some better variable names.
ariane-emory Dec 4, 2025
0acbbfe
refacter: cleaner structure.
ariane-emory Dec 4, 2025
886a467
tidy: revert needless change.
ariane-emory Dec 4, 2025
cff883a
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 4, 2025
2b58cf6
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 5, 2025
6e61de8
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 5, 2025
cb7ef2e
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 6, 2025
f922123
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 6, 2025
0289a44
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 7, 2025
8a1acac
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 7, 2025
e5f4352
Merge upstream/dev
ariane-emory Dec 7, 2025
c3c3c68
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 8, 2025
4abcf47
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 8, 2025
0d0be0d
Fix TypeScript error: remove cacheKey from FileContents interface usage
ariane-emory Dec 8, 2025
5d46cd3
fix: revert damaged file
ariane-emory Dec 8, 2025
bbc6dc4
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 9, 2025
9bb450a
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 9, 2025
be1978f
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 9, 2025
82c4bbf
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 10, 2025
5e712a1
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 10, 2025
add9ab1
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 10, 2025
31608d2
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 10, 2025
6eae918
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 10, 2025
285d9c1
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 10, 2025
49819d8
Fix type error: useKittyKeyboard should be boolean
ariane-emory Dec 10, 2025
82eacda
Merge remote-tracking branch 'upstream/dev' into feat/skip-models-fet…
ariane-emory Dec 10, 2025
6700db5
fix: uncorrupt
ariane-emory Dec 11, 2025
9da1e7b
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 11, 2025
395f692
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 11, 2025
f30867e
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 13, 2025
1937927
Merge dev branch into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 17, 2025
46ee336
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 17, 2025
e223d6a
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 18, 2025
ed304c1
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 19, 2025
247897e
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 19, 2025
fac4c2c
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 20, 2025
06a7c23
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 20, 2025
9e74a61
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 20, 2025
d4e779c
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 21, 2025
d97c309
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 21, 2025
5672ef3
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 22, 2025
9df2c59
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 23, 2025
73e79dc
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 23, 2025
415dfc5
Merge branch 'feat/skip-models-fetch-setting-take-6' of github.com:ar…
ariane-emory Dec 23, 2025
fe6b6f2
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 23, 2025
b9b2084
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 23, 2025
903bff6
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 23, 2025
3876ce3
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 23, 2025
c8fbdd8
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 24, 2025
2e71e46
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 24, 2025
7c6d91a
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 24, 2025
a4616d7
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 24, 2025
7660915
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 25, 2025
e541291
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 25, 2025
86666d7
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 25, 2025
b0f5e29
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 27, 2025
7c1aa60
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 27, 2025
81d321b
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 28, 2025
0e76155
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 28, 2025
07bf044
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 28, 2025
aab1b75
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 29, 2025
f0d9815
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 30, 2025
c1327f0
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Dec 31, 2025
908676a
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 1, 2026
b8e1ace
Reapply "fix(tui): don't show 'Agent not found' toast for subagents (…
rekram1-node Jan 1, 2026
19af938
chore: generate
actions-user Jan 1, 2026
1b7ca13
fix(app): update primitive colors
adamdotdevin Jan 1, 2026
a7e4539
fix(app): update primitive colors
adamdotdevin Jan 1, 2026
788cec2
fix(util): checksum defensiveness
adamdotdevin Jan 1, 2026
534cd0a
fix(util): checksum defensiveness
adamdotdevin Jan 1, 2026
fa8532a
feat(app): context window window
adamdotdevin Jan 1, 2026
c8b87ef
release: v1.0.223
Jan 1, 2026
ff3aa63
ignore: update download stats 2026-01-01
actions-user Jan 1, 2026
64d005f
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 1, 2026
04e1a46
Merge branch 'feat/skip-models-fetch-setting-take-6' of github.com:ar…
ariane-emory Jan 1, 2026
1d8b588
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 1, 2026
1a11ef8
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 2, 2026
6e7f817
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 3, 2026
507f5a7
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 3, 2026
37dac2e
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 4, 2026
19e80d6
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 4, 2026
440bda9
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 4, 2026
4e17d95
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 5, 2026
648e466
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 5, 2026
3cfec96
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 5, 2026
ce986e0
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 5, 2026
23a0fe6
Merge branch 'dev' into feat/skip-models-fetch-setting-take-6
ariane-emory Jan 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/opencode/src/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -959,6 +959,10 @@ export namespace Config {
.array(z.string())
.optional()
.describe("Tools that should only be available to primary agents."),
skip_models_refresh: z
.boolean()
.optional()
.describe("Skip automatic fetching of model information from models.dev on startup and timer"),
continue_loop_on_deny: z.boolean().optional().describe("Continue the agent loop when a tool call is denied"),
mcp_timeout: z
.number()
Expand Down
19 changes: 16 additions & 3 deletions packages/opencode/src/provider/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import path from "path"
import z from "zod"
import { data } from "./models-macro" with { type: "macro" }
import { Installation } from "../installation"
import { Config } from "../config/config"
import { Flag } from "../flag/flag"

export namespace ModelsDev {
const log = Log.create({ service: "models.dev" })
const filepath = path.join(Global.Path.cache, "models.json")
let timerSetup = false

export const Model = z.object({
id: z.string(),
Expand Down Expand Up @@ -76,7 +78,20 @@ export namespace ModelsDev {
export type Provider = z.infer<typeof Provider>

export async function get() {
refresh()
const globalConfig = await Config.global()

// Setup timer and immediate refresh only if not skipping refresh
if (!globalConfig.experimental?.skip_models_refresh) {
// Setup timer only once
if (!timerSetup) {
timerSetup = true
setInterval(() => ModelsDev.refresh(), 60 * 1000 * 60).unref()
}

// Trigger immediate refresh
refresh()
}

const file = Bun.file(filepath)
const result = await file.json().catch(() => {})
if (result) return result as Record<string, Provider>
Expand All @@ -103,5 +118,3 @@ export namespace ModelsDev {
if (result && result.ok) await Bun.write(file, await result.text())
}
}

setInterval(() => ModelsDev.refresh(), 60 * 1000 * 60).unref()
4 changes: 4 additions & 0 deletions packages/sdk/js/src/gen/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1369,6 +1369,10 @@ export type Config = {
* Tools that should only be available to primary agents.
*/
primary_tools?: Array<string>
/**
* Skip automatic fetching of model information from models.dev on startup and timer
*/
skip_models_refresh?: boolean
}
}

Expand Down
4 changes: 4 additions & 0 deletions packages/sdk/js/src/v2/gen/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1671,6 +1671,10 @@ export type Config = {
* Tools that should only be available to primary agents.
*/
primary_tools?: Array<string>
/**
* Skip automatic fetching of model information from models.dev on startup and timer
*/
skip_models_refresh?: boolean
/**
* Continue the agent loop when a tool call is denied
*/
Expand Down