diff --git a/README.md b/README.md index d39b9de..9bc6fa5 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ changes the current session; to change the default for every session, edit ### Change the default model -Edit `model` (and optionally `small_model`) in +Edit `model` (and optionally `agents.title.model`) in [`config/opencode/opencode.json`](config/opencode/opencode.json), then apply the change: @@ -67,13 +67,17 @@ needed. ### Register a new weave model -Add the model under `provider.weave.models` in `opencode.json`: +Add the model under `providers.weave.models` in `opencode.json`: ```json "provider": { "weave": { "models": { - "my-new-model": { "tools": true } + "my-new-model": { + "capabilities" { + "tools": true + } + } } } } @@ -118,17 +122,17 @@ name** from that stack's compose and `` is the container's *internal* port ### `opencode.json` keys -- **`model` / `small_model`** — default model and the model used for lighter - tasks. Both default to `weave/glm-5.2`. -- **`provider.weave`** — the weave provider, using the - `@ai-sdk/openai-compatible` adapter against `https://weave.redpencil.io/v1` +- **`model`** — default model. +- **`agents.title.model`** — model used to generate session titles (replaces deprecated `small_model`) +- **`providers.weave`** — the weave provider, using the + `@opencode/ai/providers/openai-compatible` adapter against `https://weave.redpencil.io/v1` with the key from `WEAVE_API_KEY`. -- **`provider.weave.models`** — the models offered in `/models`. -- **`lsp`** — language servers baked into the image: - `typescript-language-server` for TS/JS and `pyright` for Python. -- **`permission`** — set to `ask` for read, edit, bash, and external-directory +- **`providers.weave.models`** — the models offered in `/models`. +- **`permissions`** — set to `ask` for read, edit, bash, and external-directory actions, so opencode prompts before acting. +Check-out https://opencode.ai/v2/docs/config/ for more options. + ### Caveats - Copy from the TUI over Docker needs the `Shift`+click / `Ctrl`+`Shift`+`C` diff --git a/config/opencode/opencode.json b/config/opencode/opencode.json index 3be573a..0c58b87 100644 --- a/config/opencode/opencode.json +++ b/config/opencode/opencode.json @@ -1,75 +1,83 @@ { "$schema": "https://opencode.ai/config.json", "model": "weave/glm-5.3-flash", - "small_model": "weave/glm-5.3-flash", - "lsp": { - "typescript": { - "command": [ - "typescript-language-server", - "--stdio" - ], - "extensions": [ - ".ts", - ".tsx", - ".js", - ".jsx", - ".mjs", - ".cjs", - ".mts", - ".cts" - ] - }, - "pyright": { - "command": [ - "pyright-langserver", - "--stdio" - ], - "extensions": [ - ".py", - ".pyi" - ] + "agents": { + "title": { + "model": "weave/glm-5.3-flash" } }, - "provider": { + "providers": { "weave": { - "npm": "@ai-sdk/openai-compatible", - "options": { + "package": "@opencode/ai/providers/openai-compatible", + "settings": { "baseURL": "https://weave.redpencil.io/v1", "apiKey": "{env:WEAVE_API_KEY}" }, "models": { "kimi-K2.7-code": { - "tools": true + "capabilities": { + "tools": true + } }, "glm-5.3": { - "tools": true + "capabilities": { + "tools": true + } }, "glm-5.3-flash": { - "tools": true + "capabilities": { + "tools": true + } }, "mistral-glm-5.2": { - "tools": true, - "reasoning": true, - "options": { + "capabilities": { + "tools": true, + "reasoning": { + "supported": true + } + }, + "settings": { "reasoningEffort": "xhigh" } }, "devstral": { - "tools": true + "capabilities": { + "tools": true + } }, "local-qwen3.6:27b": { - "tools": true + "capabilities": { + "tools": true + } }, "mistral-medium": { - "tools": true + "capabilities": { + "tools": true + } } } } }, - "permission": { - "read": "ask", - "edit": "ask", - "bash": "ask", - "external_directory": "ask" - } -} + "permissions": [ + { + "action": "read", + "resource": "*", + "effect": "ask", + }, + { + "action": "edit", + "resource": "*", + "effect": "ask", + }, + { + "action": "shell", + "resource": "*", + "effect": "ask", + }, + { + "action": "external_directory", + "resource": "*", + "effect": "ask", + }, + ], +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a8787b5..078bffb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: opencode: - image: redpencil/opencode:0.0.2 + image: redpencil/opencode:feature-opencode-v2 volumes: - ./data/opencode/share:/root/.local/share/opencode - ./config/opencode/opencode.json:/root/.config/opencode/opencode.json