Every action in the 100xprompt terminal - starting a session, switching models, compacting the conversation, scrolling history - is bound to a keyboard shortcut, and every one of those shortcuts is yours to change. Set them once in 100xprompt.json and they follow you into every project.

Understand the leader key

Most shortcuts are built on a leader key: a single prefix you press first, then follow with one more key to trigger an action. This keeps the fast, single-stroke keys free for typing while giving you a whole namespace of two-stroke commands that never collide with normal input. The default leader is ctrl+x. So the default binding <leader>n means “press ctrl+x, release, then press n” to start a new session. Bindings that use the literal token <leader> inherit whatever you set the leader to - change the leader once and every leader-based shortcut moves with it.

Remap an action

Suppose the default new-session chord fights your muscle memory and you want your own. All keyboard customization lives under the keybinds object in 100xprompt.json. Each entry maps an action name to the key (or keys) that trigger it. List only the actions you want to change - everything you leave out keeps its default.
{
  "$schema": "https://100xprompt.com/config.json",
  "keybinds": {
    "leader": "ctrl+x",
    "session_new": "<leader>n",
    "model_list": "<leader>m",
    "session_compact": "<leader>c"
  }
}
A few rules worth knowing:
  • Multiple keys, one action. Separate alternatives with a comma to bind several shortcuts to the same action. For example, the default exit binding is ctrl+c,ctrl+d,<leader>q - any of the three works.
  • <leader> is a live token. Use it anywhere in a binding and it expands to your current leader key, so rebinding the leader updates every leader chord at once.
  • Disable a binding with none. Set any action to "none" to unbind it entirely. Several actions ship unbound (none) by default and become available the moment you assign them a key.
Tips:
  • Set your keybinds in your global 100xprompt.json so your muscle memory travels with you into every project.
  • Reserve project-level config for team-shared settings like permissions and MCP servers.
  • Bind an alternative rather than replacing a default - a comma-separated list keeps both.

Browse the shortcut categories

The bindings group into a handful of areas - session control, navigation, models and agents, and prompt editing. This map shows the shape of what’s remappable.

Reach for the common bindings

These are the shortcuts you’ll use most. Where a default begins with <leader>, press your leader key first (default ctrl+x), then the key shown.
ActionConfig keyDefault bindingWhat it does
New sessionsession_new<leader>nStart a fresh session
List sessionssession_list<leader>lOpen the session picker
Compact sessionsession_compact<leader>cSummarize and shrink the conversation
Export sessionsession_export<leader>xSend the session to your editor
Session timelinesession_timeline<leader>gShow the session timeline
Interruptsession_interruptescapeStop the current response
Send task to backgroundtask_backgroundctrl+bMove a running task to the background
List modelsmodel_list<leader>mOpen the model picker
Next recent modelmodel_cycle_recentf2Switch to your next recent model
List agentsagent_list<leader>aOpen the agent picker
Cycle agentagent_cycletabSwitch to the next agent
Cycle permission modepermission_mode_cycle<leader>pRotate default → acceptEdits → auto → plan
List commandscommand_listctrl+pOpen the command palette
List themestheme_list<leader>tOpen the theme picker
Open editoreditor_open<leader>eCompose your prompt in an external editor
Toggle sidebarsidebar_togglectrl+l or <leader>sShow or hide the sidebar
Copy messagemessages_copy<leader>yCopy the focused message
Undo messagemessages_undo<leader>uUndo the last message
Redo messagemessages_redo<leader>rRedo an undone message
Page up / downmessages_page_up / messages_page_downpageup / pagedownScroll the transcript by a page
First / last messagemessages_first / messages_lastctrl+g / endJump to the top or bottom
Submit promptinput_submitreturnSend the current prompt
Insert newlineinput_newlineshift+return (among others)Add a line break without submitting
Exitapp_exitctrl+c, ctrl+d, or <leader>qQuit 100xprompt
This table covers the shortcuts most people customize. There are many more fine-grained bindings - especially for cursor motion and text editing inside the prompt - and every one of them is a key under keybinds that you can override the same way.

Put it together

Here’s a compact setup that moves the leader key to ctrl+a, disables a binding, and stacks two shortcuts onto one action:
{
  "$schema": "https://100xprompt.com/config.json",
  "keybinds": {
    "leader": "ctrl+a",
    "session_new": "<leader>n",
    "session_compact": "<leader>c",
    "model_list": "<leader>m,f3",
    "messages_copy": "none"
  }
}
With this config, ctrl+a becomes the leader, both <leader>m and f3 open the model list, and the message-copy shortcut is turned off.

Terminal

Get to know the terminal interface these shortcuts drive.

Settings & Configuration

See how keybinds fits alongside every other option in 100xprompt.json.