Skip to content

[FEATURE]: User-configurable widget ordering for plugin sidebar panels #14858

Closed

Description

@js-krinay

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

This builds on #5971 (Plugin API for custom sidebar panels). That issue proposes the core API for plugins to register sidebar panels — this issue focuses specifically on giving users control over widget display order and visibility from opencode.json.

Problem

Once multiple plugins register sidebar panels (#5971), users have no way to:

  • Reorder widgets (e.g., pin git status above build watcher)
  • Hide noisy widgets without uninstalling the plugin
  • Override plugin-provided defaults per-project

Proposal

Add a widget key to opencode.json following the existing Record<string, ...> pattern used by mcp, agent, and lsp:

{
  "$schema": "https://opencode.ai/config.json",
  "widget": {
    "opencode-skills-tracker:skills": { "order": 1 },
    "opencode-git-status:git": { "order": 2 },
    "opencode-git-status:stash": { "enabled": false }
  }
}

Config schema

// Addition to Config.Info in packages/opencode/src/config/config.ts
widget: z
  .record(
    z.string(),
    z.object({
      order: z.number().optional(),
      enabled: z.boolean().optional(),
    }),
  )
  .optional(),

Resolution

  1. Plugin provides default order via the sidebar hook from Plugin API for custom sidebar panels #5971
  2. User config order overrides the plugin value
  3. User config enabled: false excludes the widget from broadcast

Config merging follows the same deep-merge behavior as mcp/agent — project config overrides global config.

Discovery

Users need to know available widget IDs. These could be shown on the /status page (which already lists MCP, LSP, and plugin info).

Related issues

Full technical RFC with implementation details: docs/rfcs/sidebar-plugin-api.md (in this repo, if merged)

Activity

  1. added
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    needs:complianceThis means the issue will auto-close after 2 hours.
    on Feb 24, 2026
  2. changed the title [-][FEATURE]: Plugin Sidebar Widget API — Declarative Widgets for TUI & Web[/-] [+][FEATURE]: User-configurable widget ordering for plugin sidebar panels[/+] on Feb 24, 2026
  3. github-actions commented on Feb 24, 2026

    @github-actions
    Contributor

    Thanks for updating the issue! It now meets the contributing guidelines and has been marked compliant.

  4. js-krinay commented on Feb 24, 2026

    @js-krinay
    Author

    Closing — the core sidebar panel API is already tracked in #5971. The user-configurable ordering idea can be proposed as a follow-up once #5971 lands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

coreAnything pertaining to core functionality of the application (opencode server stuff)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions