No more notification sounds after upgrading to OpenCode V2: the opencode-notifier delivery trap

I use Paseo as a shell, connecting to a local opencode serve, and don't run the TUI in a terminal. After migrating OpenCode from v1 to v2 on October 1, opencode-notifier stopped making any sound: the plugin logs showed it loaded successfully, and system volume was normal. Digging through the 0.6.0 source made it clear—the V2 server hardcodes delivery to "command", forcibly turning off all sound and popup notifications and leaving only a custom command outlet, while the sounds were moved to the TUI component that I don't load at all.

Tools

Configuring thinking-effort switching after hooking the GOAT plan up to opencode

The previous post on the goat setup missed one piece: models like deepseek-v4-flash couldn't pick a thinking depth in /models. Digging in, it turned out the GOAT plan does support it — the problem was that the hand-written models in the custom provider were missing a reasoning capability declaration, so opencode's variant generation logic stopped them at the door. In the end I added reasoning:true to every model under goat and goat-zdr, and testing showed no side effects.

Tools

Wiring the CommandCode goat plan into opencode: two-step setup + a zdr custom request header

I bought CommandCode's goat plan and wanted to use it as my main plan in opencode. The whole integration takes just two steps: first /connect to save the API key, then declare the provider in opencode.json. The goat plan requires an x-cmd-zdr: 1 header on every request, and testing confirmed you can add that in the config too.

Tools

OpenClaw Browser configuration guide

OpenClaw Browser supports three modes: openclaw-managed (standalone instance), remote (remote CDP), existing-session (takes over the user's Chrome); grant the agent tool permissions via alsoAllow: [browser]

Tools