Skip to content

Conversation

@0xktn
Copy link

@0xktn 0xktn commented Jan 11, 2026

What does this PR do?

Adds support for customizable status hints in the TUI footer, allowing users to control which keybind hints are displayed.

Features:

  • New tui.status_hints config section with enabled flag and items array
  • Default hints: agent_cycle, variant_cycle (conditional), command_list
  • Conditional hint display (e.g., variant_cycle only shows when variants exist)
  • Users can customize which hints to show and their labels
  • Backwards compatible - uses defaults when not configured

Example Configuration:

{
  "tui": {
    "status_hints": {
      "enabled": true,
      "items": [
        { "keybind": "agent_cycle", "label": "switch agent" },
        { "keybind": "variant_cycle", "label": "switch variants", "when": "hasVariants" },
        { "keybind": "command_list", "label": "commands" }
      ]
    }
  }
}

This implementation follows the design proposed in issue #6240.

Closes #6240

How did you verify your code works?

  1. Built locally: Ran ./packages/opencode/script/build.ts --single to verify build success.
  2. Tested Defaults: Verified that running without config shows the default hints (Agent, Variant (if available), Commands).
  3. Tested Variant Logic: Verified variant_cycle hint appears only when a model with variants (e.g., antigravity-claude-opus-4-5-thinking) is selected, and hides for others.
  4. Tested Custom Config: Verified that OPENCODE_CONFIG with status_hints correctly changes the footer order and labels.

Add support for customizable status hints in the TUI footer, allowing users
to control which keybind hints are displayed.

Features:
- New tui.status_hints config section with enabled flag and items array
- Default hints: agent_cycle, variant_cycle (conditional), command_list
- Conditional hint display (e.g., variant_cycle only shows when variants exist)
- Users can customize which hints to show and their labels
- Backwards compatible - uses defaults when not configured

Example configuration:
{
  "tui": {
    "status_hints": {
      "enabled": true,
      "items": [
        { "keybind": "agent_cycle", "label": "switch agent" },
        { "keybind": "variant_cycle", "label": "switch variants", "when": "hasVariants" },
        { "keybind": "command_list", "label": "commands" }
      ]
    }
  }
}

This implementation follows the design proposed in:
anomalyco#6240 (comment)

Closes anomalyco#6240
@github-actions
Copy link
Contributor

The following comment was made by an LLM, it may be inaccurate:

No duplicate PRs found

0xktn added 2 commits January 11, 2026 13:22
Updates generated SDK types to include status_hints and removes 'any' usage in prompt component to satisfy type checker and style guide.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add hints toggle to declutter UI

1 participant