anomalyco / anomalyco/opencode

plugin_enabled tui.json option is undocumented

Open
#45,233 0 comments 0 reactions 1 assignee View on GitHub

@kommander is already working on this.

Since Aug 26, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Description

plugin_enabled is the only tui.json option with no documentation anywhere.

It is in the schema (packages/tui/src/config/index.tsx:66):

plugin_enabled: Schema.optional(Schema.Record(Schema.String, Schema.Boolean)),

and read at runtime (packages/opencode/src/plugin/tui/runtime.ts:478):

function pluginEnabledState(state: RuntimeState, config: TuiConfig.Resolved) {
  return {
    ...readPluginEnabledMap(config.plugin_enabled),
    ...readPluginEnabledMap(state.api.kv.get(KV_KEY, {})),
  }
}

I checked all twelve tui.json keys against the docs — theme, keybinds, plugin, leader_timeout, attention, prompt, scroll_speed, scroll_acceleration, diff_style, cursor and mouse are all covered. Only plugin_enabled appears in no .mdx file, so this is an isolated gap rather than a general one.

One behaviour worth documenting alongside it, visible in the snippet above: the KV store is spread after the config, so a plugin toggled from the command palette overrides whatever tui.json says, permanently, until it is toggled back. Someone who sets "plugin_enabled": { "x": false } after having toggled x on in the UI will find the config apparently ignored. That precedence looks deliberate — the runtime toggle is the more recent user intent — but it is surprising enough to be worth a sentence in the docs.

(While checking this I noticed plugin and prompt are in the tui.json schema but not in the Options list in tui.mdx either, though plugin is covered in the plugins docs. I left those alone since I have not traced their behaviour.)

Operating System

Windows 11 (documentation)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.