{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://xsyetopz.github.io/claude-code-docs/schemas/claude-code-keybindings.json",
  "title": "Claude Code keybindings.json (Claude Code 2.1.311)",
  "$comment": "For ~/.claude/keybindings.json. Generated from Claude Code 2.1.311 by calling the zod v4 toJSONSchema embedded in the binary on its own validator (method A, runtime export). Do not edit by hand: run \"bun run schemas\".",
  "type": "object",
  "properties": {
    "$schema": {
      "description": "JSON Schema URL for editor validation",
      "type": "string"
    },
    "$docs": {
      "description": "Documentation URL",
      "type": "string"
    },
    "bindings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "context": {
            "type": "string",
            "enum": [
              "Global",
              "Chat",
              "Autocomplete",
              "Confirmation",
              "Help",
              "ProactivityMenu",
              "Transcript",
              "HistorySearch",
              "Task",
              "ThemePicker",
              "Settings",
              "Tabs",
              "Attachments",
              "Footer",
              "AbovePrompt",
              "AbovePromptInput",
              "AbovePromptSelect",
              "Pane",
              "PaneField",
              "MessageSelector",
              "DiffDialog",
              "DiffPanel",
              "FeedbackSurvey",
              "ModelPicker",
              "EffortSlider",
              "Select",
              "Plugin",
              "Scroll",
              "Agents"
            ],
            "description": "UI context where these bindings apply. Global bindings work everywhere."
          },
          "bindings": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "description": "Keystroke pattern (e.g., \"ctrl+k\", \"shift+tab\")"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "app:interrupt",
                    "app:exit",
                    "app:toggleTodos",
                    "app:toggleTranscript",
                    "app:toggleBrief",
                    "app:toggleReplTab",
                    "app:toggleDiffNoiseFilter",
                    "app:diffFileListUp",
                    "app:diffFileListDown",
                    "app:toggleDiffPreSession",
                    "app:cycleDiffBase",
                    "app:toggleTerminal",
                    "app:redraw",
                    "app:openArtifact",
                    "strip:jump1",
                    "strip:jump2",
                    "strip:jump3",
                    "strip:jump4",
                    "strip:jump5",
                    "strip:jump6",
                    "strip:jump7",
                    "strip:jump8",
                    "strip:jump9",
                    "strip:next",
                    "strip:previous",
                    "strip:tabNext",
                    "strip:tabPrevious",
                    "strip:viewAll",
                    "strip:toggle",
                    "strip:new",
                    "history:search",
                    "history:previous",
                    "history:next",
                    "chat:cancel",
                    "chat:killAgents",
                    "chat:cycleMode",
                    "chat:cycleProactivity",
                    "chat:attentionUp",
                    "chat:attentionDown",
                    "chat:modelPicker",
                    "chat:increaseEffort",
                    "chat:decreaseEffort",
                    "chat:fastMode",
                    "chat:defaultToNewerModel",
                    "chat:thinkingToggle",
                    "chat:workflowKeywordToggle",
                    "chat:submit",
                    "chat:queueSubmit",
                    "chat:sendNow",
                    "chat:newline",
                    "chat:undo",
                    "chat:externalEditor",
                    "chat:stash",
                    "chat:imagePaste",
                    "chat:clearInput",
                    "chat:clearScreen",
                    "autocomplete:accept",
                    "autocomplete:dismiss",
                    "autocomplete:previous",
                    "autocomplete:next",
                    "confirm:yes",
                    "confirm:no",
                    "confirm:previous",
                    "confirm:next",
                    "confirm:nextField",
                    "confirm:previousField",
                    "confirm:cycleMode",
                    "confirm:toggle",
                    "tabs:next",
                    "tabs:previous",
                    "transcript:toggleShowAll",
                    "transcript:exit",
                    "historySearch:next",
                    "historySearch:accept",
                    "historySearch:cancel",
                    "historySearch:execute",
                    "historySearch:cycleScope",
                    "task:background",
                    "theme:toggleSyntaxHighlighting",
                    "theme:editCustom",
                    "help:dismiss",
                    "proactivityMenu:previousMode",
                    "proactivityMenu:nextMode",
                    "attachments:next",
                    "attachments:previous",
                    "attachments:remove",
                    "attachments:exit",
                    "footer:up",
                    "footer:down",
                    "footer:next",
                    "footer:previous",
                    "footer:openSelected",
                    "footer:clearSelection",
                    "footer:close",
                    "footer:dismiss",
                    "abovePrompt:toggle",
                    "abovePrompt:focus",
                    "abovePrompt:next",
                    "abovePrompt:previous",
                    "abovePrompt:press",
                    "abovePrompt:leave",
                    "abovePrompt:highlightNext",
                    "abovePrompt:highlightPrevious",
                    "pane:scrollUp",
                    "pane:scrollDown",
                    "pane:pageUp",
                    "pane:pageDown",
                    "pane:top",
                    "pane:bottom",
                    "pane:grow",
                    "pane:shrink",
                    "pane:close",
                    "pane:next",
                    "pane:previous",
                    "diff:dismiss",
                    "diff:previousSource",
                    "diff:nextSource",
                    "diff:back",
                    "diff:previousFile",
                    "diff:nextFile",
                    "feedbackSurvey:bad",
                    "feedbackSurvey:fine",
                    "feedbackSurvey:good",
                    "modelPicker:decreaseEffort",
                    "modelPicker:increaseEffort",
                    "modelPicker:thisSessionOnly",
                    "effortSlider:decreaseEffort",
                    "effortSlider:increaseEffort",
                    "effortSlider:toggleUltracode",
                    "effortSlider:thisSessionOnly",
                    "select:next",
                    "select:previous",
                    "select:pageUp",
                    "select:pageDown",
                    "select:first",
                    "select:last",
                    "select:accept",
                    "select:cancel",
                    "plugin:toggle",
                    "plugin:install",
                    "plugin:favorite",
                    "plugin:cycleMarketplace",
                    "permission:toggleDebug",
                    "settings:search",
                    "settings:retry",
                    "settings:periodDay",
                    "settings:periodWeek",
                    "settings:fixUsage",
                    "settings:sortByTokens",
                    "voice:pushToTalk",
                    "scroll:pageUp",
                    "scroll:pageDown",
                    "scroll:lineUp",
                    "scroll:lineDown",
                    "scroll:top",
                    "scroll:bottom",
                    "scroll:halfPageUp",
                    "scroll:halfPageDown",
                    "scroll:fullPageUp",
                    "scroll:fullPageDown",
                    "selection:copy",
                    "selection:clear",
                    "selection:extendLeft",
                    "selection:extendRight",
                    "selection:extendUp",
                    "selection:extendDown",
                    "selection:extendLineStart",
                    "selection:extendLineEnd",
                    "agents:switchView",
                    "agents:togglePin",
                    "agents:find",
                    "agents:nextGroup",
                    "agents:previousGroup",
                    "agents:rename",
                    "agents:setGroup",
                    "messageSelector:up",
                    "messageSelector:down",
                    "messageSelector:top",
                    "messageSelector:bottom",
                    "messageSelector:select",
                    "diff:viewDetails"
                  ]
                },
                {
                  "type": "string",
                  "pattern": "^command:[a-zA-Z0-9:\\-_]+$",
                  "description": "Command binding (e.g., \"command:help\", \"command:compact\"). Executes the slash command as if typed."
                },
                {
                  "type": "null",
                  "description": "Set to null to unbind a default shortcut"
                }
              ],
              "description": "Action to trigger, command to invoke, or null to unbind"
            },
            "description": "Map of keystroke patterns to actions"
          }
        },
        "required": ["context", "bindings"],
        "description": "A block of keybindings for a specific context"
      },
      "description": "Array of keybinding blocks by context"
    }
  },
  "required": ["bindings"],
  "description": "Claude Code keybindings configuration. Customize keyboard shortcuts by context."
}
