원클릭으로
configure-keybinds
Configuration for OpenCode keybinds - customizing keyboard shortcuts for the TUI and desktop app
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Configuration for OpenCode keybinds - customizing keyboard shortcuts for the TUI and desktop app
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Commands, man-style CLI flags, and Microsoft.WSL.Containers API for building/running Linux containers via wslc on Windows (no Docker Desktop required).
Run the Antigravity (Gemini) CLI agent harness via the agy binary. Includes interactive session control and exit handling.
Use this skill whenever you need to click, type, or navigate inside a browser window (Edge, Chrome, Firefox, etc.) but the computer-use MCP blocks interaction because the browser is granted at tier 'read'. This skill bypasses that restriction by injecting mouse and keyboard input at the Windows API level via PowerShell and user32.dll—the same technique that worked to navigate Edge to code.visualstudio.com. Trigger this skill any time you see the error 'granted at tier read — visible in screenshots only, no clicks or typing', or any time the user asks you to click or type in a browser and the Claude-in-Chrome extension is not connected.
Python SDK for programmatic control of GitHub Copilot CLI via JSON-RPC
Harden Windows Defender privacy settings for authorized pentest engagements. Disables telemetry uploads, sample submission, and cloud reporting to prevent leaking target info, credentials, and tooling to Microsoft. Includes exclusion management and post-engagement re-enablement.
Specification for building Model Context Protocol servers using Python
| name | configure/keybinds |
| description | Configuration for OpenCode keybinds - customizing keyboard shortcuts for the TUI and desktop app |
| author | Tim Sonner |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"developers","workflow":"configuration","language":"markdown"} |
Customize keyboard shortcuts in OpenCode's Terminal User Interface (TUI) and desktop application.
OpenCode allows you to customize keybinds through the tui.json configuration file. You can modify existing shortcuts, disable unwanted ones, and create custom keybindings to match your workflow preferences.
Keybinds are configured in tui.json with the following structure:
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
// ... other keybinds
}
}
OpenCode uses a leader key for most keybinds to avoid conflicts with terminal shortcuts. By default, ctrl+x is the leader key. Most actions require pressing the leader key first, then the shortcut. For example, to start a new session, press ctrl+x then n.
You can customize the leader key or choose not to use one, though using a leader key is recommended.
You can disable any keybind by setting its value to "none" in the configuration:
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
}
The OpenCode desktop app prompt input supports common Readline/Emacs-style shortcuts that are built-in and not configurable via tui.json:
| Shortcut | Action |
|---|---|
ctrl+a | Move to start of current line |
ctrl+e | Move to end of current line |
ctrl+b | Move cursor back one character |
ctrl+f | Move cursor forward one character |
alt+b | Move cursor back one word |
alt+f | Move cursor forward one word |
ctrl+d | Delete character under cursor |
ctrl+k | Kill to end of line |
ctrl+u | Kill to start of line |
ctrl+w | Kill previous word |
alt+d | Kill next word |
ctrl+t | Transpose characters |
ctrl+g | Cancel popovers / abort running response |
Some terminals don't send modifier keys with Enter by default. You may need to configure your terminal to send Shift+Enter as an escape sequence.
To configure Shift+Enter in Windows Terminal:
Open your settings.json at:
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
Add this to the root-level actions array:
"actions": [
{
"command": {
"action": "sendInput",
"input": "\u001b[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}
]
Add this to the root-level keybindings array:
"keybindings": [
{
"keys": "shift+enter",
"id": "User.sendInput.ShiftEnterCustom"
}
]
Save the file and restart Windows Terminal or open a new tab.
session_new - Create a new sessionsession_list - List sessionssession_timeline - View session timelinesession_fork - Fork a sessionsession_rename - Rename a sessionsession_share / session_unshare - Share/unshare sessionssession_interrupt - Interrupt current sessionsession_compact - Compact session viewsession_child_first / session_child_cycle / session_child_cycle_reverse / session_parent - Navigate between parent/child sessionsmessages_page_up / messages_page_down - Page through messagesmessages_line_up / messages_line_down - Move line by linemessages_half_page_up / messages_half_page_down - Half-page movementmessages_first / messages_last - Go to first/last messagemessages_next / messages_previous - Navigate between messagesmessages_copy - Copy selected messagemessages_undo / messages_redo / messages_last_user - Undo/redo actionsmessages_toggle_conceal - Toggle message concealmentmodel_list - List available modelsmodel_cycle_recent / model_cycle_recent_reverse - Cycle through recent modelsmodel_cycle_favorite / model_cycle_favorite_reverse - Cycle through favorite modelsagent_list - List available agentsagent_cycle / agent_cycle_reverse - Cycle through agentsinput_clear - Clear inputinput_paste - Paste into inputinput_submit - Submit input (Enter/Return)input_newline - Add newline (Shift+Enter, Ctrl+Enter, Alt+Enter, Ctrl+J)input_move_left/right/up/downinput_select_left/right/up/downinput_line_home/end, input_select_line_home/endinput_visual_line_home/end, input_select_visual_line_home/endinput_select_buffer_home/endinput_delete_line, input_delete_to_line_end/start, input_backspace, input_deleteinput_undo, input_redoinput_word_forward/backward, input_select_word_forward/backwardinput_delete_word_forward/backwardhistory_previous / history_next - Navigate command historyterminal_suspend - Suspend terminal (Ctrl+Z)terminal_title_toggle - Toggle terminal titletips_toggle - Show/hide tipsdisplay_thinking - Display thinking process{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+\\",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
"editor_open": "<leader>e"
}
}
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"messages_line_up": "k",
"messages_line_down": "j",
"messages_half_page_up": "ctrl+u",
"messages_half_page_down": "ctrl+d",
"messages_first": "g",
"messages_last": "G",
"session_child_first": "<leader>j",
"session_child_cycle": "l",
"session_child_cycle_reverse": "h",
"session_parent": "k"
}
}
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"input_clear": "ctrl+g",
"input_move_left": "ctrl+b",
"input_move_right": "ctrl+f",
"input_move_up": "ctrl+p",
"input_move_down": "ctrl+n",
"input_select_left": "meta+b",
"input_select_right": "meta+f",
"input_select_up": "meta+p",
"input_select_down": "meta+n",
"input_line_home": "ctrl+a",
"input_line_end": "ctrl+e"
}
}
By customizing keybinds, you can make OpenCode feel more natural and efficient for your specific workflow and editing preferences.