Common seat tune-ups
Mouse junk, OpenClaude model pinning, dontAsk vs bypassPermissions, Notification wire, and turn caps — field fixes for day-to-day seats.
Goal#
Fix the recurring OpenClaude / OpenCode seat annoyances without digging through source. Community mirror: COMMON-SETTINGS.md on orchemax-orch.
OpenClaude model picker always snaps back (e.g. orchemax/pareto)#
Cause: ~/.openclaude/settings.json had env.OPENAI_MODEL pinned.
OpenClaude merges settings.env onto the process at startup, so that value
overrides the model field and the in-UI picker.
Fix: route the gateway in env, pick the model only via model:
{
"model": "orchemax/deepseek-v4.1-flash",
"env": {
"CLAUDE_CODE_USE_OPENAI": "1",
"OPENAI_BASE_URL": "http://127.0.0.1:8788/v1"
}
}
Do not put OPENAI_MODEL (or a pasted orch_gk_…) in env when you
launch with orch openclaude — the session injects the key, and
orch openclaude scrubs a persisted env.OPENAI_MODEL on launch.
No permission prompts (without silent MCP denials)#
defaultMode |
Asks? | What runs |
|---|---|---|
default |
Yes, often | You approve each sensitive tool |
acceptEdits |
Less | Edits auto; Bash/MCP may still ask |
dontAsk |
Never | Only permissions.allow — everything else is denied |
bypassPermissions / fullAccess |
Never | Tools run without prompting |
Under Orchemax, prefer bypassPermissions (workshop locks/guards still apply):
"permissions": {
"defaultMode": "bypassPermissions",
"allow": [
"mcp__orch__*",
"Bash(*)",
"Read(*)",
"Edit(*)",
"Write(*)",
"MultiEdit(*)"
]
}
dontAsk with a short allow-list is what produces
Permission to use mcp__orch__verify_status has been denied…. Always include
mcp__orch__*. orch guard wire --openclaude / --claude merges that rule
into the project settings block. Restart the seat after editing.
Mouse / focus garbage ([I[O, <35;…M)#
agents:
disable_mouse: true
Injects OPENCODE_DISABLE_MOUSE + CLAUDE_CODE_DISABLE_MOUSE. Tradeoff:
native terminal select works; in-TUI wheel scroll usually does not.
Opt out: ORCH_ENABLE_AGENT_MOUSE=1.
OpenClaude needs a reply — no desktop toast#
orch guard wire --openclaude
OpenClaude reads .openclaude/, not .claude/. Opening orch openclaude
also injects project .openclaude/settings.local.json. Prove the channel:
orch notify test --desktop.
OpenClaude stops at 50 turns#
openclaude --max-turns 0
# or OPENCLAUDE_MAX_TURNS=200
Or in orch.yaml:
agents:
interactive:
openclaude: openclaude --max-turns 0