Uh oh!
There was an error while loading. Please reload this page.
feat(tui): make the mouse disablable (#6824, #7926) - #13748
Conversation
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
The following comment was made by an LLM, it may be inaccurate: Based on the search results, I found one potentially related PR: PR #6329: feat(tui): add disable_mouse option for Linux right-click paste support This appears to be directly related to the current PR #13748. It also adds a feature to disable mouse functionality in the TUI, specifically for Linux right-click paste support. It may already implement the mouse disabling configuration that PR #13748 is addressing, and could be a duplicate or supersede this work. |
blackheaven
commented
Feb 15, 2026
Not really, think one disable the mouse all along, not just the paste |
TheOutdoorProgrammer
commented
Mar 4, 2026
I pray to the gods this gets added. 🙏 |
e76f9ea to
c9af50bCompareblackheaven
commented
Mar 8, 2026
Rebased and tested! |
omiinaya
commented
Mar 24, 2026
PLEASE. The mouse issues are INFURIATING. |
miikkamakela-into
commented
Mar 24, 2026
Would be a good addition. 🙏🏻 |
luispabon
commented
Mar 24, 2026
Please. I don't understand who thought that messing with the mouse by default with no way to disable that was a good idea. |
c9af50b to
1f81fa7Compareblackheaven
commented
Mar 24, 2026
Can I have a review, please? /cc @adamdotdevin |
1f81fa7 to
acdf6bbCompareacdf6bb to
d967c84Comparekommander
commented
Apr 5, 2026
The configs are now separated and TUI config now only lives in the Given that is fixed I'd be happy to bring that setting in. |
blackheaven
commented
Apr 5, 2026
@kommander hre we are! |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
rekram1-node
commented
Apr 6, 2026
I cant wait to see what disablable means |
| Legacy `theme`, `keybinds`, and `tui` keys in `opencode.json` are deprecated and automatically migrated when possible. | ||
| [Learn more about TUI configuration here](/docs/tui#configure). |
* refactor(init): tighten AGENTS guidance (anomalyco#20422) * refactor(shell): use Effect ChildProcess for shell command execution (anomalyco#20494) * refactor: use Effect services instead of async facades in provider, auth, and file (anomalyco#20480) * chore: generate * chore: update nix node_modules hashes * Update VOUCHED list anomalyco#20482 (comment) * test(app): migrate more e2e suites to isolated backend (anomalyco#20505) * fix(account): coalesce concurrent console token refreshes (anomalyco#20503) * test(app): fix isolated backend follow-ups (anomalyco#20513) * wip: zen * refactor: replace BunProc with Npm module using @npmcli/arborist (anomalyco#18308) Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> * zen: sync * fix: normalize filepath in FileTime to prevent Windows path mismatch (anomalyco#20367) Co-authored-by: JosXa <info@josxa.dev> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> * resolve subpath only packages for plugins (anomalyco#20555) * Fix selection expansion by retaining focused input selections during global key events (anomalyco#20205) * feat: add new provider plugin hook for resolving models and sync models from github models endpoint (falls back to models.dev) (anomalyco#20533) * fix(tui): apply scroll configuration uniformly across all scrollboxes (anomalyco#14735) * chore(tui): clean up scroll config follow-up (anomalyco#20561) * fix(opencode): batch snapshot revert without reordering (anomalyco#20564) * fix(test): auto-acknowledge tool-result follow-ups in mock LLM server (anomalyco#20528) * chore: generate * refactor: add Effect-returning versions of MessageV2 functions (anomalyco#20374) * refactor(bash): use Effect ChildProcess for bash tool execution (anomalyco#20496) * chore: generate * Refactor plugin/config loading, add theme-only plugin package support (anomalyco#20556) * fix(test): use effect helper in snapshot race test (anomalyco#20567) * refactor(revert): yield SessionSummary.Service directly (anomalyco#20541) * fix: show model display name in message footer and transcript (anomalyco#20539) * flock npm.add (anomalyco#20557) * fix(account): refresh console tokens before expiry (anomalyco#20558) * chore: add User-Agent headers for Cloudflare providers (anomalyco#20538) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(build): replace require() with dynamic import() in cross-spawn-spawner (anomalyco#20580) * chore: generate * tui: add consent dialog when sharing for the first time (anomalyco#20525) * test(app): block real llm calls in e2e prompts (anomalyco#20579) * refactor(instruction): migrate to Effect service pattern (anomalyco#20542) * fix(cli): use simple logo in CLI (anomalyco#20585) * fix(core): prevent agent loop from stopping after tool calls with OpenAI-compatible providers (anomalyco#14973) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> * fix(session): compaction agent responds in same language as conversation (anomalyco#20581) Co-authored-by: Aaron Zhu <aaron@Aarons-MacBook-Air.local> * refactor(account): share token freshness helper (anomalyco#20591) * fix(cli): restore colored help logo (anomalyco#20592) * feat(opencode): Add Venice AI package as dependency (anomalyco#20570) * chore: generate * cli: update usage exceeded error * chore: update nix node_modules hashes * fix(node): set OPENCODE_CHANNEL during build (anomalyco#20616) * zen: friendly trial ended message * refactor: simplify solid reactivity across app and web (anomalyco#20497) * use solid-primitives/resize-observer across web code (anomalyco#20613) * cleanup event listeners with solid-primitives/event-listener (anomalyco#20619) * chore: update nix node_modules hashes * refactor: split up models.dev and config model definitions to prevent coupling (anomalyco#20605) * chore: generate * feat: add optional messageID to ShellInput (anomalyco#20657) * chore: generate * ignore: fix typecheck in dev (anomalyco#20702) * fix(format): use biome format instead of check to prevent import removal (anomalyco#20545) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * tweak: add abort signal timeout to the github copilot model fetch to prevent infinite blocking (anomalyco#20705) * Add MiMo-V2 models to Go UI and docs (anomalyco#20709) * refactor(format): update formatter interface to return command from enabled() (anomalyco#20703) * app: unify auto scroll ref handling (anomalyco#20716) * go: add mimo * electron: add basic context menu for inspect element (anomalyco#20723) * feat: add macOS managed preferences support for enterprise MDM deployments (anomalyco#19178) Co-authored-by: Lenny Vaknine <lvaknine@gitlab.com> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * chore: generate * feat(acp): Add messageID and emit user_message_chunk on prompt/command (anomalyco#18625) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * chore: generate * test(app): add a golden path for mocked e2e prompts (anomalyco#20593) * chore: update nix node_modules hashes * docs(effect): refresh migration status (anomalyco#20665) * test(opencode): remove temporary e2e url repro (anomalyco#20729) * refactor(app): unexport internal e2e helpers (anomalyco#20730) * test(app): emit junit artifacts for playwright (anomalyco#20732) * refactor(todo): effectify session todo (anomalyco#20595) * Adds TUI prompt traits, refs, and plugin slots (anomalyco#20741) * chore: update nix node_modules hashes * dialog aware prompt cursor (anomalyco#20753) * fix(opencode): honor model limit.input overrides (anomalyco#16306) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * refactor(effect): prune unused facades (anomalyco#20748) * fix: rm dynamic part from bash tool description again to restore cache hits across projects (anomalyco#20771) * refactor(share): effectify share next (anomalyco#20596) * fix: call models.dev once instead of twice on start (anomalyco#20765) * fix: prevent Tool.define() wrapper accumulation on object-defined tools (anomalyco#16952) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: generate * add automatic heap snapshots for high-memory cli processes (anomalyco#20788) * feat: Send x-session-affinity and x-parent-session-id headers (anomalyco#20744) * fix(sdk): handle Windows opencode spawn and shutdown (anomalyco#20772) * chore: update nix node_modules hashes * electron: better menus (anomalyco#20878) * fix(core): fix restoring earlier messages in a reverted chain (anomalyco#20780) * fix(session): delay jump-to-bottom button (anomalyco#20853) * fix(prompt): unmount model controls in shell mode (anomalyco#20886) * fix(session): disable todo dock auto-scroll (anomalyco#20840) * feat(ui): redesign modified files section in session turn (anomalyco#20348) Co-authored-by: David Hill <iamdavidhill@gmail.com> * fix(app): hide default session timestamps (anomalyco#20892) * refactor(effect): resolve built tools through the registry (anomalyco#20787) * fix: restore prompt focus after footer selection (anomalyco#20841) * feat: restore git-backed review modes (anomalyco#20845) * chore: generate * fix(app): show correct submit icon when typing follow up * chore(app): remove queued follow-ups for now * refactor(effect): build todowrite tool from Todo service (anomalyco#20789) Co-authored-by: Juan Pablo Carranza Hurtado <52012198+jpcarranza94@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * test(ci): publish unit reports in actions (anomalyco#20547) * chore: rm models snapshot (anomalyco#20929) * notes on v2 (anomalyco#20941) * chore: generate * refactor(provider): stop custom loaders using facades (anomalyco#20776) Co-authored-by: luanweslley77 <213105503+luanweslley77@users.noreply.github.com> * perf(opencode): batch snapshot diffFull blob reads (anomalyco#20752) Co-authored-by: Nate Williams <50088025+natewill@users.noreply.github.com> * fix(ci): create JUnit output dirs before tests (anomalyco#20959) * release: v1.3.14 * refactor: remove redundant Kimi skill section (anomalyco#20393) Co-authored-by: dongyuxin <dongyuxin@dev.dongyuxin.msh-dev.svc.cluster.local> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(npm): Arborist reify fails on compiled binary — Bun pre-resolves node-gyp path at build time (anomalyco#21040) * release: v1.3.15 * fix: ensure reasoning tokens arent double counted when calculating usage (anomalyco#21047) * feat(tui): show console-managed providers (anomalyco#20956) * refactor(effect): move read tool onto defineEffect (anomalyco#21016) * chore: generate * fix(tui): only show org switch affordances when useful (anomalyco#21054) * chore: generate * test: add regression test for double counting bug (anomalyco#21053) * doc: udpate doc * tweak: add newline between <content> and first line of read tool output to prevent confusion (anomalyco#21070) * fix(plugin): parse package specifiers with npm-package-arg and sanitize win32 cache paths (anomalyco#21135) * chore: update nix node_modules hashes * feat(tui): make the mouse disablable (anomalyco#6824, anomalyco#7926) (anomalyco#13748) * fix(core): implement proper configOptions for acp (anomalyco#21134) * fix: pass both 'openai' and 'azure' providerOptions keys for @ai-sdk/azure (anomalyco#20272) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(tui): default Ctrl+Z to undo on Windows (anomalyco#21138) * release: v1.3.16 * zen: remove header check * zen: normalize ipv6 * fix: show clear error when Cloudflare provider env vars are missing (anomalyco#20399) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> * fix(tui): revert kitty keyboard events workaround on windows (anomalyco#20180) * release: v1.3.17 * fix(lsp): MEMORY LEAK: ensure typescript server uses native project config (anomalyco#19953) * chore: generate * docs: update Cloudflare provider setup to reflect /connect prompt flow (anomalyco#20589) * refactor: replace Bun.serve with Node http.createServer in OAuth handlers (anomalyco#18327) Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com> * upgrade opentui to 0.1.97 (anomalyco#21137) * refactor(server): replace Bun serve with Hono node adapters (anomalyco#18335) Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> * chore: update nix node_modules hashes * tweak: ensure copilot anthropic models have same reasoning effort model as copilot cli, also fix qwen incorrectly having variants (anomalyco#21212) * tweak: adjust chat.params hook to allow altering of the maxOutputTokens (anomalyco#21220) * tweak: move the max token exclusions to plugins @rekram1-node (anomalyco#21225) * fix: bump openrouter ai sdk pkg to fix openrouter issues (anomalyco#21242) --------- Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com> Co-authored-by: Kit Langton <kit.langton@gmail.com> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Dax <mail@thdxr.com> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> Co-authored-by: Joscha Götzer <joscha.goetzer@gmail.com> Co-authored-by: JosXa <info@josxa.dev> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Sebastian <hasta84@gmail.com> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: MC <mchen@cloudflare.com> Co-authored-by: Valentin Vivaldi <valentin.vivaldi@etendo.software> Co-authored-by: Aaron Zhu <139607425+aaron-he-zhu@users.noreply.github.com> Co-authored-by: Aaron Zhu <aaron@Aarons-MacBook-Air.local> Co-authored-by: dpuyosa <dpuyosa@users.noreply.github.com> Co-authored-by: Brendan Allan <brendonovich@outlook.com> Co-authored-by: Noam Bressler <noamzbr@gmail.com> Co-authored-by: Burak Yigit Kaya <byk@sentry.io> Co-authored-by: Jack <jack@anoma.ly> Co-authored-by: Lenny Vaknine <lenny.vaknine@gmail.com> Co-authored-by: Lenny Vaknine <lvaknine@gitlab.com> Co-authored-by: ykswang <ykswang@users.noreply.github.com> Co-authored-by: Juan Pablo Carranza Hurtado <52012198+jpcarranza94@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Kevin Flansburg <kevin.flansburg@gmail.com> Co-authored-by: Nate Williams <50088025+natewill@users.noreply.github.com> Co-authored-by: David Hill <iamdavidhill@gmail.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: luanweslley77 <213105503+luanweslley77@users.noreply.github.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Yuxin Dong <yxdong9805@gmail.com> Co-authored-by: dongyuxin <dongyuxin@dev.dongyuxin.msh-dev.svc.cluster.local> Co-authored-by: Gautier DI FOLCO <gautier.difolco@gmail.com> Co-authored-by: George Harker <george@georgeharker.com> Co-authored-by: Corné Steenhuis <cornesteenhuis@hotmail.com> Co-authored-by: Derek Barrera <derekbarrera@gmail.com>
Closes#752. Triage of OpenCode v1.3.13 -> v1.14.20 (~21 releases across v1.3.14-17, v1.4.0-11, v1.14.17-20; v1.5-v1.13 don't exist - re-versioning artifact) surfaced ONE structural change agnix needs to absorb: OpenCode v1.3.16 added the `tui.mouse: bool` config key to disable terminal mouse capture (PR anomalyco/opencode#13748). Without this fix, agnix would false-positive OC-TUI-001 (unknown TUI key) on any current OpenCode config that includes `{"tui": {"mouse": false}}`. Added `"mouse"` to `KNOWN_TUI_KEYS` in `crates/agnix-core/src/schemas/opencode.rs` plus two regression tests (mouse: false, mouse: true) asserting OC-TUI-001 doesn't fire. Other inspected upstream changes that need NO agnix changes: - MCP `oauth_redirect_uri` (v1.4.3): optional sub-field, OC-CFG-012 only checks required client_id + authorization_url - `compaction.autocontinue` (v1.4.4): optional sub-field, OC-CFG-009 only checks compaction.reserved - `compaction.preserve_recent_tokens` (v1.14.19): rename of an optional sub-field, agnix doesn't enforce sub-key list - LLM Gateway provider (v1.4.9): provider names not allowlisted by agnix - SDK breaking change v1.4.0 (UserMessage.variant -> .model): not a config schema change - All TUI/desktop/SDK fixes in v1.14.17-20: runtime/UI only Documentation: - Bumped verified_on to 2026-04-22 for all 46 OC-* rules in knowledge-base/rules.json (+ synced crates/agnix-rules/rules.json) - Bumped RESEARCH-TRACKING.md "Last Reviewed" for OpenCode from 2026-02-05 to 2026-04-22 - Regenerated website/docs/rules/generated/*.md via the docs script (forced by docs_website_parity test) Note: As of v1.14.x upstream `config.ts` deprecates the in-config `tui` block in favour of a separate `tui.json` file. agnix's TUI validator continues to help users on v1.3-v1.4 and users who keep the deprecated form. Migrating to validate `tui.json` is a future enhancement. Verified locally: - cargo clippy --workspace --all-targets --all-features -- -D warnings clean - cargo test -p agnix-core --lib: 3446 passed (+2 new regression tests) - cargo test -p agnix-rules --tests: 47 + 4 parity tests pass - cargo fmt --all clean
What does this PR do?
Closes#6824 and #7926
I have added a way to disable mouse all along:
How did you verify your code works?
I have opened it with
bun dev .and the env variable.