From 2ca118db59f9beda1a30ae7fe8b2ae67e0738133 Mon Sep 17 00:00:00 2001 From: René Date: Mon, 15 Dec 2025 15:32:06 +0100 Subject: docs: Fix Wakatime repository link in ecosystem.mdx (#5552) Co-authored-by: Github Action --- packages/web/src/content/docs/ecosystem.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/web/src/content') diff --git a/packages/web/src/content/docs/ecosystem.mdx b/packages/web/src/content/docs/ecosystem.mdx index c62f12cb3..6a3119549 100644 --- a/packages/web/src/content/docs/ecosystem.mdx +++ b/packages/web/src/content/docs/ecosystem.mdx @@ -27,7 +27,7 @@ You can also check out [awesome-opencode](https://github.com/awesome-opencode/aw | [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Optimize token usage by pruning obsolete tool outputs | | [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Add native websearch support for supported providers with Google grounded style | | [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Enables AI agents to run background processes in a PTY, send interactive input to them. | -| [opencode-wakatime](https://github.com/angrister/opencode-wakatime) | Track OpenCode usage with Wakatime | +| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Track OpenCode usage with Wakatime | | [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Clean up markdown tables produced by LLMs | | [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Background agents, pre-built LSP/AST/MCP tools, curated agents, Claude Code compatible | -- cgit v1.2.3 From 683059018326e3cc5a77c31eb87c3302472789d9 Mon Sep 17 00:00:00 2001 From: Nalin Singh <38408670+nalin-singh@users.noreply.github.com> Date: Mon, 15 Dec 2025 22:22:16 +0530 Subject: feat: add F# language server support (#5549) --- packages/opencode/src/lsp/server.ts | 40 +++++++++++++++++++++++++++++++++++ packages/web/src/content/docs/lsp.mdx | 1 + 2 files changed, 41 insertions(+) (limited to 'packages/web/src/content') diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index e3e3fdf7d..bd959184b 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -610,6 +610,46 @@ export namespace LSPServer { }, } + export const FSharp: Info = { + id: "fsharp", + root: NearestRoot([".sln", ".fsproj", "global.json"]), + extensions: [".fs", ".fsi", ".fsx", ".fsscript"], + async spawn(root) { + let bin = Bun.which("fsautocomplete", { + PATH: process.env["PATH"] + ":" + Global.Path.bin, + }) + if (!bin) { + if (!Bun.which("dotnet")) { + log.error(".NET SDK is required to install fsautocomplete") + return + } + + if (Flag.OPENCODE_DISABLE_LSP_DOWNLOAD) return + log.info("installing fsautocomplete via dotnet tool") + const proc = Bun.spawn({ + cmd: ["dotnet", "tool", "install", "fsautocomplete", "--tool-path", Global.Path.bin], + stdout: "pipe", + stderr: "pipe", + stdin: "pipe", + }) + const exit = await proc.exited + if (exit !== 0) { + log.error("Failed to install fsautocomplete") + return + } + + bin = path.join(Global.Path.bin, "fsautocomplete" + (process.platform === "win32" ? ".exe" : "")) + log.info(`installed fsautocomplete`, { bin }) + } + + return { + process: spawn(bin, { + cwd: root, + }), + } + }, + } + export const SourceKit: Info = { id: "sourcekit-lsp", extensions: [".swift", ".objc", "objcpp"], diff --git a/packages/web/src/content/docs/lsp.mdx b/packages/web/src/content/docs/lsp.mdx index 236b4db82..ad2085d81 100644 --- a/packages/web/src/content/docs/lsp.mdx +++ b/packages/web/src/content/docs/lsp.mdx @@ -22,6 +22,7 @@ OpenCode comes with several built-in LSP servers for popular languages: | elixir-ls | .ex, .exs | `elixir` command available | | zls | .zig, .zon | `zig` command available | | csharp | .cs | `.NET SDK` installed | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` installed | | vue | .vue | Auto-installs for Vue projects | | rust | .rs | `rust-analyzer` command available | | clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Auto-installs for C/C++ projects | -- cgit v1.2.3 From c3b3b133b0b405a4cad700e57194620f653ee215 Mon Sep 17 00:00:00 2001 From: Jay V Date: Mon, 15 Dec 2025 15:44:41 -0500 Subject: docs: make project names clickable links in ecosystem documentation --- packages/web/src/content/docs/ecosystem.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'packages/web/src/content') diff --git a/packages/web/src/content/docs/ecosystem.mdx b/packages/web/src/content/docs/ecosystem.mdx index 6a3119549..8f75f5aeb 100644 --- a/packages/web/src/content/docs/ecosystem.mdx +++ b/packages/web/src/content/docs/ecosystem.mdx @@ -35,12 +35,12 @@ You can also check out [awesome-opencode](https://github.com/awesome-opencode/aw ## Projects -| Name | Description | -| --------------------------------------------------------------------------------- | ---------------------------------------------------------- | -| kimaki (https://github.com/remorses/kimaki) | Discord bot to control OpenCode sessions, built on the SDK | -| opencode.nvim (https://github.com/NickvanDyke/opencode.nvim) | Neovim plugin for editor-aware prompts, built on the API | -| portal (https://github.com/hosenur/portal) | Mobile-first web UI for OpenCode over Tailscale/VPN | -| opencode plugin template (https://github.com/zenobi-us/opencode-plugin-template/) | Template for building OpenCode plugins | +| Name | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| [kimaki](https://github.com/remorses/kimaki) | Discord bot to control OpenCode sessions, built on the SDK | +| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Neovim plugin for editor-aware prompts, built on the API | +| [portal](https://github.com/hosenur/portal) | Mobile-first web UI for OpenCode over Tailscale/VPN | +| [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | Template for building OpenCode plugins | --- -- cgit v1.2.3 From 0beccc406e450d0ffce3c9d105c3813bc9b24d45 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 16:01:35 -0600 Subject: docs: enabled_providers docs section (#5586) Co-authored-by: opencode-agent[bot] Co-authored-by: rekram1-node Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> --- packages/web/src/content/docs/config.mdx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'packages/web/src/content') diff --git a/packages/web/src/content/docs/config.mdx b/packages/web/src/content/docs/config.mdx index 82ea391e8..302d79d17 100644 --- a/packages/web/src/content/docs/config.mdx +++ b/packages/web/src/content/docs/config.mdx @@ -367,6 +367,25 @@ The `disabled_providers` option accepts an array of provider IDs. When a provide --- +### Enabled providers + +You can specify an allowlist of providers through the `enabled_providers` option. When set, only the specified providers will be enabled and all others will be ignored. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "enabled_providers": ["anthropic", "openai"] +} +``` + +This is useful when you want to restrict OpenCode to only use specific providers rather than disabling them one by one. + +:::note +If a provider appears in both `enabled_providers` and `disabled_providers`, the `disabled_providers` takes priority for backwards compatibility. +::: + +--- + ## Variables You can use variable substitution in your config files to reference environment variables and file contents. -- cgit v1.2.3 From 34024c2504d1bdb105e217f5351fd1cb5d7b50a9 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:04:47 -0600 Subject: docs: models --refresh flag in cli.mdx (#5596) Co-authored-by: opencode-agent[bot] Co-authored-by: rekram1-node --- packages/web/src/content/docs/cli.mdx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'packages/web/src/content') diff --git a/packages/web/src/content/docs/cli.mdx b/packages/web/src/content/docs/cli.mdx index 64e11ff56..777d377a7 100644 --- a/packages/web/src/content/docs/cli.mdx +++ b/packages/web/src/content/docs/cli.mdx @@ -161,13 +161,32 @@ opencode github run List all available models from configured providers. ```bash -opencode models +opencode models [provider] ``` This command displays all models available across your configured providers in the format `provider/model`. This is useful for figuring out the exact model name to use in [your config](/docs/config/). +You can optionally pass a provider ID to filter models by that provider. + +```bash +opencode models anthropic +``` + +#### Flags + +| Flag | Description | +| ----------- | ------------------------------------------------------------ | +| `--refresh` | Refresh the models cache from models.dev | +| `--verbose` | Use more verbose model output (includes metadata like costs) | + +Use the `--refresh` flag to update the cached model list. This is useful when new models have been added to a provider and you want to see them in OpenCode. + +```bash +opencode models --refresh +``` + --- ### run -- cgit v1.2.3