{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://opencode.ai/v2/cli.json",
  "type": "object",
  "properties": {
    "$schema": {
      "anyOf": [{ "type": "string" }, { "type": "null" }],
      "description": "JSON Schema for CLI configuration"
    },
    "theme": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": { "anyOf": [{ "type": "string" }, { "type": "null" }], "description": "Theme name" },
            "mode": {
              "anyOf": [{ "type": "string", "enum": ["system", "dark", "light"] }, { "type": "null" }],
              "description": "Color mode; 'system' follows the terminal"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Color theme settings"
    },
    "keybinds": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "leader": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Leader key for keybind combinations"
            },
            "app.exit": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Exit the application"
            },
            "app.clear": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Clear the screen in mini"
            },
            "app.debug": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle debug panel"
            },
            "app.console": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle console"
            },
            "app.scrap": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open scrap screen"
            },
            "app.toggle.animations": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle animations"
            },
            "app.toggle.file_context": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle file context"
            },
            "app.toggle.diffwrap": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle diff wrapping"
            },
            "app.toggle.paste_summary": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle paste summary"
            },
            "command.palette.show": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List available commands"
            },
            "help.show": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open help dialog"
            },
            "docs.open": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open documentation"
            },
            "opencode.settings": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open settings"
            },
            "server.pair": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Pair device"
            },
            "service.restart": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Restart service"
            },
            "location.reload": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Reload configuration"
            },
            "diff.open": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open diff viewer"
            },
            "diff.close": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Close diff viewer"
            },
            "diff.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move diff viewer down"
            },
            "diff.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move diff viewer up"
            },
            "diff.page.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Page diff viewer down"
            },
            "diff.page.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Page diff viewer up"
            },
            "diff.half_page.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll diff viewer down half a page"
            },
            "diff.half_page.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll diff viewer up half a page"
            },
            "diff.first": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go to the start of the diff"
            },
            "diff.last": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go to the end of the diff"
            },
            "diff.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Deprecated: file tree is mouse-controlled"
            },
            "diff.expand": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Deprecated: file tree is mouse-controlled"
            },
            "diff.expand_all": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Deprecated: file tree is mouse-controlled"
            },
            "diff.collapse": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Deprecated: file tree is mouse-controlled"
            },
            "diff.switch_focus": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Deprecated: keyboard navigation always controls the diff"
            },
            "diff.next_hunk": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Jump to next diff hunk"
            },
            "diff.previous_hunk": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Jump to previous diff hunk"
            },
            "diff.next_file": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Jump to next diff file"
            },
            "diff.previous_file": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Jump to previous diff file"
            },
            "diff.toggle_file_tree": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle diff viewer file tree"
            },
            "diff.single_patch": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle single patch view"
            },
            "diff.switch_source": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch diff viewer source"
            },
            "diff.toggle_view": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle diff viewer split or unified view"
            },
            "diff.mark_reviewed": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle selected diff file reviewed"
            },
            "diff.help": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Show more diff viewer shortcuts"
            },
            "prompt.editor": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open external editor"
            },
            "theme.switch": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List available themes"
            },
            "theme.switch_mode": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch between light and dark theme mode"
            },
            "theme.mode.lock": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Lock or unlock theme mode"
            },
            "session.sidebar.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle sidebar"
            },
            "pane.focus.left": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Focus session pane"
            },
            "pane.focus.right": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Focus right pane"
            },
            "terminal.select": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select terminal"
            },
            "terminal.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle terminal pane"
            },
            "terminal.close": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Close terminal pane"
            },
            "session.toggle.scrollbar": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle session scrollbar"
            },
            "opencode.status": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "View status"
            },
            "opencode.debug": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "View debug info"
            },
            "session.export": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Export session to editor"
            },
            "session.copy": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Copy session transcript"
            },
            "session.copy.id": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Copy session ID"
            },
            "session.move": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Manage workspaces"
            },
            "session.new": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Create a new session"
            },
            "session.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List all sessions"
            },
            "open.menu": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open recent sessions and projects"
            },
            "session.tab.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to next open session tab"
            },
            "session.tab.previous": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to previous open session tab"
            },
            "session.tab.history.back": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go back in session tab history"
            },
            "session.tab.history.forward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go forward in session tab history"
            },
            "session.tab.next_unread": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to next unread session tab"
            },
            "session.tab.previous_unread": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to previous unread session tab"
            },
            "session.tab.close": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Close current session tab"
            },
            "session.tab.reopen": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Reopen last closed session tab"
            },
            "session.timeline": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Show session timeline"
            },
            "session.fork": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Fork session from message"
            },
            "session.rename": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Rename session"
            },
            "session.delete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete session"
            },
            "session.share": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Share current session"
            },
            "session.unshare": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Unshare current session"
            },
            "session.interrupt": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Interrupt current session"
            },
            "session.background": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Background blocking session tools"
            },
            "session.compact": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Compact the session"
            },
            "session.aside": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Ask a side question"
            },
            "session.cd": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Change working directory"
            },
            "session.queued_prompts": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Manage queued prompts"
            },
            "queued_prompt.delete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete queued prompt"
            },
            "session.toggle.exploration_grouping": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle related tool call grouping"
            },
            "session.verbosity.cycle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Cycle transcript verbosity"
            },
            "session.child.first": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle subagent picker"
            },
            "session.child.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go to next child session"
            },
            "session.child.previous": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go to previous child session"
            },
            "session.parent": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Go to parent session"
            },
            "session.pin.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Pin or unpin session in the session list"
            },
            "session.quick_switch.1": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 1"
            },
            "session.quick_switch.2": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 2"
            },
            "session.quick_switch.3": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 3"
            },
            "session.quick_switch.4": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 4"
            },
            "session.quick_switch.5": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 5"
            },
            "session.quick_switch.6": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 6"
            },
            "session.quick_switch.7": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 7"
            },
            "session.quick_switch.8": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 8"
            },
            "session.quick_switch.9": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session in quick slot 9"
            },
            "session.tab.select.1": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 1"
            },
            "session.tab.select.2": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 2"
            },
            "session.tab.select.3": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 3"
            },
            "session.tab.select.4": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 4"
            },
            "session.tab.select.5": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 5"
            },
            "session.tab.select.6": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 6"
            },
            "session.tab.select.7": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 7"
            },
            "session.tab.select.8": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 8"
            },
            "session.tab.select.9": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 9"
            },
            "session.tab.select.10": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch to session tab 10"
            },
            "stash.delete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete stash entry"
            },
            "model.dialog.provider": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open provider list from model dialog"
            },
            "model.dialog.favorite": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle model favorite status"
            },
            "model.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List available models"
            },
            "model.cycle_recent": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next recently used model"
            },
            "model.cycle_recent_reverse": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous recently used model"
            },
            "model.cycle_favorite": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next favorite model"
            },
            "model.cycle_favorite_reverse": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous favorite model"
            },
            "mcp.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List MCP servers"
            },
            "provider.connect": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Connect integration"
            },
            "agent.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List agents"
            },
            "agent.cycle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next agent"
            },
            "agent.cycle.reverse": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous agent"
            },
            "variant.cycle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Cycle model variants"
            },
            "variant.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List model variants"
            },
            "session.page.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll messages up by one page"
            },
            "session.page.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll messages down by one page"
            },
            "session.line.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll messages up by one line"
            },
            "session.line.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll messages down by one line"
            },
            "session.half.page.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll messages up by half page"
            },
            "session.half.page.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll messages down by half page"
            },
            "session.first": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to first message"
            },
            "session.last": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to last message"
            },
            "session.message.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to next message"
            },
            "session.message.previous": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to previous message"
            },
            "session.message.user.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to next user message"
            },
            "session.message.user.previous": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to previous user message"
            },
            "session.messages_last_user": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to last user message"
            },
            "messages.copy": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Copy message"
            },
            "session.undo": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Undo message"
            },
            "session.redo": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Redo message"
            },
            "session.toggle.thinking": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle thinking blocks visibility"
            },
            "prompt.submit": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Submit prompt"
            },
            "prompt.queue": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Queue prompt"
            },
            "prompt.editor_context.clear": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Clear editor context"
            },
            "prompt.images.view": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "View image attachments"
            },
            "prompt.skills": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open skill selector"
            },
            "prompt.stash": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Stash prompt"
            },
            "prompt.stash.pop": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Pop stashed prompt"
            },
            "prompt.stash.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "List stashed prompts"
            },
            "prompt.clear": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Clear input field"
            },
            "prompt.paste": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Paste from clipboard"
            },
            "input.submit": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Submit input"
            },
            "input.newline": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Insert newline in input"
            },
            "input.move.left": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move cursor left in input"
            },
            "input.move.right": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move cursor right in input"
            },
            "input.move.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move cursor up in input"
            },
            "input.move.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move cursor down in input"
            },
            "input.select.left": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select left in input"
            },
            "input.select.right": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select right in input"
            },
            "input.select.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select up in input"
            },
            "input.select.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select down in input"
            },
            "input.line.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to start of line in input"
            },
            "input.line.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to end of line in input"
            },
            "input.select.line.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select to start of line in input"
            },
            "input.select.line.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select to end of line in input"
            },
            "input.visual.line.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to start of visual line in input"
            },
            "input.visual.line.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to end of visual line in input"
            },
            "input.select.visual.line.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select to start of visual line in input"
            },
            "input.select.visual.line.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select to end of visual line in input"
            },
            "input.buffer.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to start of buffer in input"
            },
            "input.buffer.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to end of buffer in input"
            },
            "input.select.buffer.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select to start of buffer in input"
            },
            "input.select.buffer.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select to end of buffer in input"
            },
            "input.delete.line": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete line in input"
            },
            "input.delete.to.line.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete to end of line in input"
            },
            "input.delete.to.line.start": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete to start of line in input"
            },
            "input.backspace": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Backspace in input"
            },
            "input.delete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete character in input"
            },
            "input.undo": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Undo in input"
            },
            "input.redo": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Redo in input"
            },
            "input.word.forward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move word forward in input"
            },
            "input.word.backward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move word backward in input"
            },
            "input.select.word.forward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select word forward in input"
            },
            "input.select.word.backward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select word backward in input"
            },
            "input.delete.word.forward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete word forward in input"
            },
            "input.delete.word.backward": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete word backward in input"
            },
            "input.select.all": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select all in input"
            },
            "prompt.history.previous": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous history item"
            },
            "prompt.history.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next history item"
            },
            "composer.subagent.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous subagent"
            },
            "composer.subagent.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next subagent"
            },
            "composer.subagent.select": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Navigate to subagent"
            },
            "composer.subagent.interrupt": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Interrupt subagent"
            },
            "composer.shell.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous shell"
            },
            "composer.shell.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next shell"
            },
            "composer.shell.select": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "View shell output"
            },
            "composer.shell.kill": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Kill shell command"
            },
            "composer.terminal.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous terminal"
            },
            "composer.terminal.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next terminal"
            },
            "composer.terminal.select": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select terminal"
            },
            "dialog.select.prev": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to previous dialog item"
            },
            "dialog.select.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to next dialog item"
            },
            "dialog.select.page_up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move up one page in dialog"
            },
            "dialog.select.page_down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move down one page in dialog"
            },
            "dialog.select.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to first dialog item"
            },
            "dialog.select.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to last dialog item"
            },
            "dialog.select.submit": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Submit selected dialog item"
            },
            "dialog.prompt.submit": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Submit dialog prompt"
            },
            "dialog.integration.rename": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Rename integration account"
            },
            "dialog.integration.delete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete integration account"
            },
            "dialog.worktree.generate": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Generate worktree name"
            },
            "dialog.move_session.new": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "New worktree"
            },
            "dialog.move_session.move": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move session to worktree"
            },
            "dialog.move_session.delete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Delete worktree"
            },
            "dialog.move_session.refresh": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Refresh worktrees"
            },
            "prompt.autocomplete.prev": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to previous autocomplete item"
            },
            "prompt.autocomplete.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Move to next autocomplete item"
            },
            "prompt.autocomplete.hide": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Hide autocomplete"
            },
            "prompt.autocomplete.select": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Select autocomplete item"
            },
            "prompt.autocomplete.complete": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Complete autocomplete item"
            },
            "permission.prompt.fullscreen": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle permission prompt fullscreen"
            },
            "plugins.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle plugin"
            },
            "dialog.mcp.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle MCP server"
            },
            "dialog.plugins.error": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "View plugin error"
            },
            "dialog.plugins.install": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Install plugin from plugin dialog"
            },
            "dialog.plugins.update": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Update plugin from plugin dialog"
            },
            "dialog.plugins.check": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Check for plugin updates from plugin dialog"
            },
            "terminal.suspend": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Suspend terminal"
            },
            "terminal.title.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle terminal title"
            },
            "plugins.list": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Open plugin manager dialog"
            },
            "plugins.install": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Install plugin"
            },
            "which-key.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle which-key panel"
            },
            "which-key.layout.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Switch which-key layout"
            },
            "which-key.pending.toggle": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Toggle which-key pending preview"
            },
            "which-key.group.previous": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Previous which-key group"
            },
            "which-key.group.next": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Next which-key group"
            },
            "which-key.scroll.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll which-key up"
            },
            "which-key.scroll.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Scroll which-key down"
            },
            "which-key.page.up": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Page which-key up"
            },
            "which-key.page.down": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Page which-key down"
            },
            "which-key.home": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Jump to first which-key binding"
            },
            "which-key.end": {
              "anyOf": [{ "$ref": "#/$defs/TuiKeybind.BindingValue" }, { "type": "null" }],
              "description": "Jump to last which-key binding"
            }
          },
          "additionalProperties": false,
          "description": "TUI keybinding overrides"
        },
        { "type": "null" }
      ],
      "description": "Custom key bindings"
    },
    "plugins": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string" },
              {
                "type": "object",
                "properties": {
                  "package": { "type": "string", "description": "Plugin package name or path" },
                  "options": {
                    "anyOf": [{ "type": "object" }, { "type": "null" }],
                    "description": "Options passed to the plugin"
                  }
                },
                "required": ["package"],
                "additionalProperties": false
              }
            ]
          }
        },
        { "type": "null" }
      ],
      "description": "Ordered plugin enablement directives and external package declarations"
    },
    "leader": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "timeout": {
              "anyOf": [{ "type": "integer", "exclusiveMinimum": 0 }, { "type": "null" }],
              "description": "Time in milliseconds to wait for a key after the leader key"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Leader key behavior"
    },
    "scroll": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "speed": {
              "anyOf": [{ "type": "number", "minimum": 0.001 }, { "type": "null" }],
              "description": "Distance scrolled per input tick"
            },
            "acceleration": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Accelerate scrolling from repeated input"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Scrolling behavior"
    },
    "attention": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "notifications": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show system notifications"
            },
            "sound": { "anyOf": [{ "type": "boolean" }, { "type": "null" }], "description": "Play attention sounds" },
            "volume": {
              "anyOf": [{ "type": "number", "minimum": 0, "maximum": 1 }, { "type": "null" }],
              "description": "Attention sound volume from 0 to 1"
            },
            "sound_pack": {
              "anyOf": [{ "type": "string" }, { "type": "null" }],
              "description": "Active attention sound pack ID"
            },
            "sounds": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "default": { "type": "string" },
                    "question": { "type": "string" },
                    "permission": { "type": "string" },
                    "error": { "type": "string" },
                    "done": { "type": "string" },
                    "subagent_done": { "type": "string" }
                  },
                  "additionalProperties": false
                },
                { "type": "null" }
              ],
              "description": "Sound file overrides by attention event"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "System notification and sound settings"
    },
    "diffs": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "source": {
              "anyOf": [{ "$ref": "#/$defs/Vcs.Mode" }, { "type": "null" }],
              "description": "Initial diff source; defaults to 'branch' (branch and uncommitted changes)"
            },
            "wrap": {
              "anyOf": [{ "type": "string", "enum": ["word", "none"] }, { "type": "null" }],
              "description": "Line wrapping behavior in diff output"
            },
            "tree": { "anyOf": [{ "type": "boolean" }, { "type": "null" }], "description": "Show the diff file tree" },
            "single": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show only the selected file patch"
            },
            "view": {
              "anyOf": [{ "type": "string", "enum": ["auto", "split", "unified"] }, { "type": "null" }],
              "description": "Diff layout; 'auto' selects a layout from the available width"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Diff presentation settings"
    },
    "terminal": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "title": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Update the terminal window title"
            },
            "copy": {
              "anyOf": [{ "type": "string", "enum": ["manual", "select"] }, { "type": "null" }],
              "description": "Copy text manually or immediately after selecting it"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Terminal integration settings"
    },
    "prompt": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "editor": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Include the active editor file or selection as prompt context"
            },
            "paste": {
              "anyOf": [{ "type": "string", "enum": ["compact", "full"] }, { "type": "null" }],
              "description": "Display large pastes as compact placeholders or full text"
            },
            "image_preview": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show image attachment previews above the prompt input"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Prompt input behavior"
    },
    "session": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "sidebar": {
              "anyOf": [{ "type": "string", "enum": ["auto", "hide"] }, { "type": "null" }],
              "description": "Session sidebar visibility; 'auto' shows it when space permits"
            },
            "scrollbar": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show the session transcript scrollbar"
            },
            "thinking": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide model reasoning by default"
            },
            "grouping": {
              "anyOf": [{ "type": "string", "enum": ["auto", "none"] }, { "type": "null" }],
              "description": "Group related transcript items automatically or render each item separately"
            },
            "verbosity": {
              "anyOf": [{ "type": "string", "enum": ["low", "medium", "high"] }, { "type": "null" }],
              "description": "Transcript detail level: low summarizes each run of tools and thoughts, high opens exploration and instruction groups"
            },
            "image_preview": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show user attachment and tool-result images in the session transcript"
            },
            "tps": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show average tokens per second"
            },
            "markdown": {
              "anyOf": [{ "type": "string", "enum": ["source", "rendered"] }, { "type": "null" }],
              "description": "Show Markdown syntax markers or conceal them in rendered transcript content"
            },
            "new_location": {
              "anyOf": [{ "type": "string", "enum": ["launch", "inherit"] }, { "type": "null" }],
              "description": "Start new sessions in the TUI launch directory or inherit the active session location"
            },
            "permissions": {
              "anyOf": [{ "type": "string", "enum": ["prompt", "autoaccept"] }, { "type": "null" }],
              "description": "Prompt for permission requests or accept them automatically"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Session transcript presentation settings"
    },
    "tabs": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "mode": {
              "anyOf": [{ "type": "string", "enum": ["auto", "on", "off"] }, { "type": "null" }],
              "description": "Use session tabs always, never, or when the terminal environment supports them"
            },
            "enabled": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Legacy tab toggle; use mode instead"
            },
            "scope": {
              "anyOf": [{ "type": "string", "enum": ["global", "cwd"] }, { "type": "null" }],
              "description": "Share tabs globally or keep a separate set for each working directory"
            },
            "layout": {
              "anyOf": [{ "type": "string", "enum": ["horizontal", "vertical"] }, { "type": "null" }],
              "description": "Show tabs in a horizontal strip or vertical sidebar"
            },
            "indicators": {
              "anyOf": [{ "type": "string", "enum": ["status", "numbers"] }, { "type": "null" }],
              "description": "Show status icons or always show tab numbers"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Tab strip settings"
    },
    "mini": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "thinking": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide model reasoning"
            },
            "tools": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide tool calls and the assistant text that precedes them"
            },
            "shell_output": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide raw shell tool output"
            },
            "turn_summary": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide the agent, model, and duration summary in scrollback"
            },
            "footer": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide persistent activity, model, usage, and context details in the footer"
            },
            "splash": {
              "anyOf": [{ "type": "string", "enum": ["show", "hide"] }, { "type": "null" }],
              "description": "Show or hide the entry and exit splash banners"
            },
            "work_spinner": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "block-soft-slide",
                    "block-soft-sweep",
                    "block-low-comet",
                    "block-low-duet",
                    "block-shuttle",
                    "block-bridge",
                    "block-squeeze",
                    "small-toggle",
                    "square-toggle",
                    "grow-shrink",
                    "quadrant-orbit",
                    "crosshatch",
                    "density-wave",
                    "seed"
                  ]
                },
                { "type": "null" }
              ],
              "description": "Work spinner animation in the Mini footer (default: block-soft-slide)"
            },
            "mono": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Use monochrome ASCII output"
            },
            "replay": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Restore session history on resume and terminal resize"
            },
            "replay_limit": {
              "anyOf": [{ "type": "integer", "exclusiveMinimum": 0 }, { "type": "null" }],
              "description": "Maximum number of newest messages restored during replay"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Mini transcript presentation settings"
    },
    "debug": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "devtools": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show the DevTools debug bar"
            },
            "timing": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Show time-to-first-draw diagnostics"
            },
            "turn_tokens": {
              "anyOf": [
                { "anyOf": [{ "type": "boolean" }, { "type": "string", "enum": ["verbose"] }] },
                { "type": "null" }
              ],
              "description": "Show per-turn token usage diagnostics, optionally with tool call inputs"
            }
          },
          "additionalProperties": false
        },
        { "type": "null" }
      ],
      "description": "Debugging settings"
    },
    "experimental": {
      "anyOf": [{ "type": "object", "additionalProperties": { "type": "boolean" } }, { "type": "null" }],
      "description": "Experimental features that may change or be removed at any time"
    },
    "animations": {
      "anyOf": [{ "type": "boolean" }, { "type": "null" }],
      "description": "Enable interface animations"
    },
    "mouse": { "anyOf": [{ "type": "boolean" }, { "type": "null" }], "description": "Enable terminal mouse capture" },
    "cursor": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "style": {
              "anyOf": [{ "type": "string", "enum": ["block", "underline", "line", "default"] }, { "type": "null" }],
              "description": "Cursor shape. Use 'default' to preserve the terminal setting"
            },
            "blinking": {
              "anyOf": [{ "type": "boolean" }, { "type": "null" }],
              "description": "Whether the cursor blinks. Has no effect when style is 'default'"
            }
          },
          "additionalProperties": false,
          "description": "Terminal cursor settings"
        },
        { "type": "null" }
      ]
    }
  },
  "additionalProperties": false,
  "$defs": {
    "TuiKeybind.BindingValue": {
      "anyOf": [
        { "type": "boolean", "enum": [false] },
        { "type": "string", "enum": ["none"] },
        {
          "anyOf": [
            { "type": "string" },
            {
              "type": "object",
              "properties": {
                "name": { "type": "string" },
                "ctrl": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                "shift": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                "meta": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                "super": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                "hyper": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }
              },
              "required": ["name"],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "key": {
                  "anyOf": [
                    { "type": "string" },
                    {
                      "type": "object",
                      "properties": {
                        "name": { "type": "string" },
                        "ctrl": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                        "shift": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                        "meta": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                        "super": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                        "hyper": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }
                      },
                      "required": ["name"],
                      "additionalProperties": false
                    }
                  ]
                },
                "event": { "anyOf": [{ "type": "string", "enum": ["press", "release"] }, { "type": "null" }] },
                "preventDefault": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                "fallthrough": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }
              },
              "required": ["key"],
              "allOf": [{ "type": "object", "additionalProperties": {} }]
            }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string" },
              {
                "type": "object",
                "properties": {
                  "name": { "type": "string" },
                  "ctrl": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                  "shift": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                  "meta": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                  "super": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                  "hyper": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }
                },
                "required": ["name"],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "key": {
                    "anyOf": [
                      { "type": "string" },
                      {
                        "type": "object",
                        "properties": {
                          "name": { "type": "string" },
                          "ctrl": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                          "shift": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                          "meta": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                          "super": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                          "hyper": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }
                        },
                        "required": ["name"],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "event": { "anyOf": [{ "type": "string", "enum": ["press", "release"] }, { "type": "null" }] },
                  "preventDefault": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] },
                  "fallthrough": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }
                },
                "required": ["key"],
                "allOf": [{ "type": "object", "additionalProperties": {} }]
              }
            ]
          }
        }
      ]
    },
    "Vcs.Mode": { "type": "string", "enum": ["working", "branch", "committed"] }
  }
}
