diff options
| author | David Hill <[email protected]> | 2025-11-10 13:44:12 +0000 |
|---|---|---|
| committer | David Hill <[email protected]> | 2025-11-10 13:44:12 +0000 |
| commit | c6e830c954418808dc39284a1c073aa63a6d4d21 (patch) | |
| tree | 9c3052e0509115188768a553c0be5a8441ebdd96 /packages/web/src | |
| parent | 7088bfabd773e2f076aab1c9d2468c04feff0570 (diff) | |
| parent | fc78c28df64383a9f99382093f61fc28caf6569f (diff) | |
| download | opencode-c6e830c954418808dc39284a1c073aa63a6d4d21.tar.gz opencode-c6e830c954418808dc39284a1c073aa63a6d4d21.zip | |
Merge branch 'dev' of https://github.com/sst/opencode into dev
Diffstat (limited to 'packages/web/src')
| -rw-r--r-- | packages/web/src/content/docs/1-0.mdx | 3 | ||||
| -rw-r--r-- | packages/web/src/content/docs/cli.mdx | 12 | ||||
| -rw-r--r-- | packages/web/src/content/docs/formatters.mdx | 2 | ||||
| -rw-r--r-- | packages/web/src/content/docs/index.mdx | 30 | ||||
| -rw-r--r-- | packages/web/src/content/docs/permissions.mdx | 1 | ||||
| -rw-r--r-- | packages/web/src/content/docs/providers.mdx | 56 | ||||
| -rw-r--r-- | packages/web/src/content/docs/troubleshooting.mdx | 2 | ||||
| -rw-r--r-- | packages/web/src/content/docs/zen.mdx | 10 | ||||
| -rw-r--r-- | packages/web/src/styles/custom.css | 29 |
9 files changed, 104 insertions, 41 deletions
diff --git a/packages/web/src/content/docs/1-0.mdx b/packages/web/src/content/docs/1-0.mdx index 49db53d72..6737482a7 100644 --- a/packages/web/src/content/docs/1-0.mdx +++ b/packages/web/src/content/docs/1-0.mdx @@ -16,13 +16,14 @@ The new TUI works like the old one since it connects to the same opencode server You should not be autoupgraded to 1.0 if you are currently using a previous version. However some older versions of OpenCode always grab latest. - To upgrade manually, run + ```bash $ opencode upgrade 1.0.0 ``` To downgrade back to 0.x, run + ```bash $ opencode upgrade 0.15.31 ``` diff --git a/packages/web/src/content/docs/cli.mdx b/packages/web/src/content/docs/cli.mdx index 1312442d6..083db369b 100644 --- a/packages/web/src/content/docs/cli.mdx +++ b/packages/web/src/content/docs/cli.mdx @@ -184,6 +184,16 @@ This is useful for scripting, automation, or when you want a quick answer withou opencode run Explain the use of context in Go ``` +You can also attach to a running `opencode serve` instance to avoid MCP server cold boot times on every run: + +```bash +# Start a headless server in one terminal +opencode serve + +# In another terminal, run commands that attach to it +opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" +``` + #### Flags | Flag | Short | Description | @@ -197,6 +207,8 @@ opencode run Explain the use of context in Go | `--file` | `-f` | File(s) to attach to message | | `--format` | | Format: default (formatted) or json (raw JSON events) | | `--title` | | Title for the session (uses truncated prompt if no value provided) | +| `--attach` | | Attach to a running opencode server (e.g., http://localhost:4096) | +| `--port` | | Port for the local server (defaults to random port) | --- diff --git a/packages/web/src/content/docs/formatters.mdx b/packages/web/src/content/docs/formatters.mdx index 8853ca334..9fc41a53d 100644 --- a/packages/web/src/content/docs/formatters.mdx +++ b/packages/web/src/content/docs/formatters.mdx @@ -21,9 +21,11 @@ OpenCode comes with several built-in formatters for popular languages and framew | clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file | | ktlint | .kt, .kts | `ktlint` command available | | ruff | .py, .pyi | `ruff` command available with config | +| uv | .py, .pyi | `uv` command available | | rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available | +| air | .R | `air` command available | So if your project has `prettier` in your `package.json`, OpenCode will automatically use it. diff --git a/packages/web/src/content/docs/index.mdx b/packages/web/src/content/docs/index.mdx index f6d2b3129..20c0d2f99 100644 --- a/packages/web/src/content/docs/index.mdx +++ b/packages/web/src/content/docs/index.mdx @@ -41,28 +41,36 @@ You can also install it with the following commands: - **Using Node.js** - <Tabs> + <Tabs> + <TabItem label="npm"> - ```bash - npm install -g opencode-ai - ``` - </TabItem> - <TabItem label="Bun"> + ```bash + npm install -g opencode-ai + ``` + + </TabItem> + + <TabItem label="Bun"> ```bash bun install -g opencode-ai ``` - </TabItem> - <TabItem label="pnpm"> + + </TabItem> + + <TabItem label="pnpm"> ```bash pnpm install -g opencode-ai ``` - </TabItem> - <TabItem label="Yarn"> + + </TabItem> + + <TabItem label="Yarn"> ```bash yarn global add opencode-ai ``` + </TabItem> - </Tabs> +</Tabs> - **Using Homebrew on macOS and Linux** diff --git a/packages/web/src/content/docs/permissions.mdx b/packages/web/src/content/docs/permissions.mdx index 4579c2127..a0ba5d5d9 100644 --- a/packages/web/src/content/docs/permissions.mdx +++ b/packages/web/src/content/docs/permissions.mdx @@ -187,4 +187,3 @@ permission: Only analyze code and suggest changes. ``` - diff --git a/packages/web/src/content/docs/providers.mdx b/packages/web/src/content/docs/providers.mdx index 41e6308f7..6a7520e56 100644 --- a/packages/web/src/content/docs/providers.mdx +++ b/packages/web/src/content/docs/providers.mdx @@ -301,6 +301,42 @@ Or if you already have an API key, you can select **Manually enter API Key** and --- +### Deep Infra + +1. Head over to the [Deep Infra dashboard](https://deepinfra.com/dash), create an account, and generate an API key. + +2. Run `opencode auth login` and select **Deep Infra**. + + ```bash + $ opencode auth login + + ┌ Add credential + │ + ◆ Select provider + │ ● Deep Infra + │ ... + └ + ``` + +3. Enter your Deep Infra API key. + + ```bash + $ opencode auth login + + ┌ Add credential + │ + ◇ Select provider + │ Deep Infra + │ + ◇ Enter your API key + │ _ + └ + ``` + +4. Run the `/models` command to select a model. + +--- + ### Fireworks AI 1. Head over to the [Fireworks AI console](https://app.fireworks.ai/), create an account, and click **Create API Key**. @@ -482,7 +518,6 @@ To use Google Vertex AI with OpenCode: 4. Run the `/models` command to select a model like _Kimi-K2-Instruct_ or _GLM-4.6_. - --- ### LM Studio @@ -935,9 +970,9 @@ You can use any OpenAI-compatible provider with opencode. Most modern AI provide ##### Example -Here's an example setting the `apiKey` and `headers` options. +Here's an example setting the `apiKey`, `headers`, and model `limit` options. -```json title="opencode.json" {9,11} +```json title="opencode.json" {9,11,17-20} { "$schema": "https://opencode.ai/config.json", "provider": { @@ -953,7 +988,11 @@ Here's an example setting the `apiKey` and `headers` options. }, "models": { "my-model-name": { - "name": "My Model Display Name" + "name": "My Model Display Name", + "limit": { + "context": 200000, + "output": 65536 + } } } } @@ -961,7 +1000,14 @@ Here's an example setting the `apiKey` and `headers` options. } ``` -We are setting the `apiKey` using the `env` variable syntax, [learn more](/docs/config#env-vars). +Configuration details: + +- **apiKey**: Set using `env` variable syntax, [learn more](/docs/config#env-vars). +- **headers**: Custom headers sent with each request. +- **limit.context**: Maximum input tokens the model accepts. +- **limit.output**: Maximum tokens the model can generate. + +The `limit` fields allow OpenCode to understand how much context you have left. Standard providers pull these from models.dev automatically. --- diff --git a/packages/web/src/content/docs/troubleshooting.mdx b/packages/web/src/content/docs/troubleshooting.mdx index fb8e964ba..d38b892fc 100644 --- a/packages/web/src/content/docs/troubleshooting.mdx +++ b/packages/web/src/content/docs/troubleshooting.mdx @@ -90,8 +90,8 @@ If you encounter `ProviderModelNotFoundError` you are most likely incorrectly referencing a model somewhere. Models should be referenced like so: `<providerId>/<modelId>` - Examples: + - `openai/gpt-4.1` - `openrouter/google/gemini-2.5-flash` - `opencode/kimi-k2` diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index d2da4a51c..6c9b9fb88 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -75,6 +75,7 @@ You can also access our models through the following API endpoints. | Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Code Fast 1 | grok-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | The [model id](/docs/config/#models) in your OpenCode config uses the format `opencode/<model-id>`. For example, for GPT 5 Codex, you would @@ -117,8 +118,8 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | GLM 4.6 | $0.60 | $2.20 | $0.10 | - | | Kimi K2 | $0.60 | $2.50 | $0.36 | - | | Qwen3 Coder 480B | $0.45 | $1.50 | - | - | -| Grok Code Fast 1 | Free | Free | - | - | -| Code Supernova | Free | Free | - | - | +| Grok Code Fast 1 | Free | Free | Free | - | +| Big Pickle | Free | Free | Free | - | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | @@ -138,7 +139,7 @@ Credit card fees are passed along at cost; we don't charge anything beyond that. The free models: - Grok Code Fast 1 is currently free on OpenCode for a limited time. The xAI team is using this time to collect feedback and improve Grok Code. -- Code Supernova is a stealth model that's free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. +- Big Pickle is a stealth model that's free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. :::tip Subscription plans and a free tier are coming soon. @@ -153,8 +154,7 @@ Subscription plans and a free tier are coming soon. All our models are hosted in the US. Our providers follow a zero-retention policy and do not use your data for model training, with the following exceptions: - Grok Code Fast 1: During its free period, collected data may be used to improve Grok Code. -- Code Supernova: During its free period, collected data may be used to improve - the model. +- Big Pickle: During its free period, collected data may be used to improve the model. - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Requests are retained for 30 days in accordance with [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/styles/custom.css b/packages/web/src/styles/custom.css index e947f1f18..648176e42 100644 --- a/packages/web/src/styles/custom.css +++ b/packages/web/src/styles/custom.css @@ -30,8 +30,6 @@ --sl-color-divider: var(--sl-color-gray-5); } - - body { color: var(--color-text) !important; font-size: 14px !important; @@ -60,7 +58,6 @@ body { --color-border-weak: hsl(0, 4%, 23%); --color-icon: hsl(10, 3%, 43%); - } } @@ -145,7 +142,7 @@ a[aria-current="page"] { font-weight: 600 !important; } -ul.top-level a[aria-current="page"] > span { +ul.top-level a[aria-current="page"] > span { color: var(--color-text-strong) !important; } @@ -163,7 +160,6 @@ ul.top-level a[aria-current="page"] > span { font-weight: 600 !important; } - .top-level li a { border-radius: 0; width: 100%; @@ -221,13 +217,16 @@ site-search > button span { } } - - site-search > button > kbd { font-size: 14px !important; } -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { color: var(--color-text-strong) !important; } @@ -263,7 +262,8 @@ strong { font-weight: 500 !important; } -ul, ol { +ul, +ol { list-style: none !important; padding: 0 !important; } @@ -280,7 +280,8 @@ ul, ol { color: var(--color-text-strong) !important; } -body > .page > header, :root[data-has-sidebar] body > .page > header { +body > .page > header, +:root[data-has-sidebar] body > .page > header { background: var(--color-background) !important; padding: 24px !important; } @@ -303,7 +304,6 @@ body > .page > header, :root[data-has-sidebar] body > .page > header { max-width: 100% !important; } - nav.sidebar .sl-container ul li a, div.right-sidebar .sl-container ul li a { padding: 4px 24px !important; @@ -317,7 +317,7 @@ div.right-sidebar .sl-container ul li a:hover { background: var(--color-background-weak); @media (prefers-color-scheme: dark) { - background: var(--color-background-weak) + background: var(--color-background-weak); } } @@ -326,14 +326,12 @@ div.right-sidebar .sl-container ul li ul li { padding: 4px 12px 0 12px !important; } - nav.sidebar .sl-container ul li a[aria-current="true"], div.right-sidebar .sl-container ul li a[aria-current="true"] { color: var(--color-text-strong) !important; opacity: 100%; } - h2#starlight__on-this-page { font-size: 14px !important; color: var(--color-text-strong) !important; @@ -375,7 +373,6 @@ nav.sidebar ul.top-level > li > details > summary .group-label > span { .expressive-code { margin: 0.75rem 0 3rem 0 !important; border-radius: 6px; - } .expressive-code figure { @@ -386,8 +383,6 @@ nav.sidebar ul.top-level > li > details > summary .group-label > span { box-shadow: none; } - - @media (prefers-color-scheme: dark) { .shiki, .shiki span { |
