Each of these tools has its own key for the things you do dozens of times an hour: stopping it, starting a new line, switching mode. Moving between them, the keys you already know do something else. This page puts one action at a time side by side, so the differences show.
6 tools12 actionsChecked 25 September 2026
Every key below comes from the row on that tool's own page on this site, which names the vendor documentation it was checked against. Where a line says there is no key, the tool's documentation, as read on 25 September 2026, gives none; where one says the action does not apply, the tool works differently and the line says how.
Showing the Windows keyboard. Showing the Mac keyboard.
Stop it mid-answer
Claude Code and Gemini CLI both give this a key, and they chose different ones: Esc in Claude Code, which keeps the work done so far, and Ctrl+C in Gemini CLI. Do not carry the second habit across, because in Codex CLI Ctrl+C closes the whole session. Cursor cancels a reply with the keys that also reject a diff. The documentation for Codex CLI, Copilot and Devin Desktop names no key for stopping a turn at all.
Claude Code Interrupt Claude mid-answer without losing the work so far. The one to learn. It stops the current response or tool call so you can redirect, and sends anything you had queued next. On a permission prompt it declines.WinEscEscapeMacescEscape
Codex CLI OpenAI's list of CLI shortcuts has no key for stopping a turn. Its Ctrl+C closes the session.No key listed
Gemini CLI Cancel the request, clear the input, or quit. Google lists all three for Ctrl+C: it cancels a request that is running, clears text in the input, and quits the CLI when the input is empty.WinCtrlControl plusCMac⌃Control plusC
Cursor Cancel the reply while it is being written. The same keys reject a whole diff.WinCtrlControl plusShift plusBackspaceMac⇧Shift plus⌘Command plus⌫Delete
Copilot No key in VS Code's documentation. Stop and Send, on the Send button's menu, cancels the request and sends a new message.No key listed
Devin Desktop No key in Devin Desktop's documentation for stopping Devin Local, its agent.No key listed
Start a new line without sending
This one catches people out, because Enter is the key that hands your message over. Only Claude Code and Gemini CLI document a way round it, and they agree on the keys: Shift+Enter, which depends on the terminal passing it through, Ctrl+J, and a backslash typed just before Enter. The other four document no key for a new line in the message.
Claude Code New line, where the terminal supports it. Native in iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal and Windows Terminal.WinShift plusEnterMac⇧Shift plus↩Return
Claude Code New line, using a control sequence. Works everywhere, with no configuration.WinCtrlControl plusJMac⌃Control plusJ
Claude Code New line, in any terminal.Win\BackslashthenEnterMac\Backslashthen↩Return
Codex CLI OpenAI's list of CLI shortcuts has no key for a new line.No key listed
Gemini CLI Start a new line without sending. Not in macOS Terminal, and in Windows Terminal only from version 1.25, Google says. Ctrl+Enter, Alt+Enter and Ctrl+J do the same, and so does Cmd+Enter on a Mac.WinShift plusEnterMac⇧Shift plus↩Return
Gemini CLI Start a new line at the end of a line. A backslash at the end of the line, then Enter. It keeps single-line mode.Win\BackslashthenEnterMac\Backslashthen↩Return
Cursor No key in Cursor's list. Enter queues the message and Ctrl+Enter sends it.No key listed
Copilot VS Code's documentation gives Enter to send and no key for a new line in the chat input.No key listed
Devin Desktop No key in Devin Desktop's documentation for a new line in the message box. Its release notes give Shift+Enter only while you change a command on a permission request.No key listed
Switch mode
Five of the six have a key for this, and they split cleanly by kind. The three terminal tools use Shift+Tab. Cursor and Copilot use Ctrl+full stop, or Cmd+full stop on a Mac, and Cursor answers to Shift+Tab as well. Devin Desktop's documentation gives no key for the modes of Devin Local, its only agent since Cascade was removed in September 2026, and points to slash commands such as /plan instead. What is being switched differs more than the keys do: in Claude Code and Gemini CLI it is how much the agent may do before asking, with plan mode among the choices; in Codex CLI it is plan mode alone; in Cursor and Copilot it is the mode or agent the chat runs as.
Claude Code Cycle the permission modes. Alt+M on Windows where the runtime does not enable VT input.WinShift plusTabMac⇧Shift plus⇥Tab
Codex CLI Switch plan mode on or off. From OpenAI's best-practices guide, which gives /plan as the other way. In plan mode Codex gathers context and asks clarifying questions before it starts implementing.WinShift plusTabMac⇧Shift plus⇥Tab
Gemini CLI Cycle the approval modes. Default (asks first), auto-edit (approves edits) and plan (read-only). Plan is skipped while the agent is busy. Google notes it does not work in Windows Terminal on Node 20 and earlier versions of Node 22.WinShift plusTabMac⇧Shift plus⇥Tab
Cursor Rotate between the agent modes. In the chat box.WinShift plusTabMac⇧Shift plus⇥Tab
Cursor Open the mode menu.WinCtrlControl plus.Full stopMac⌘Command plus.Full stop
Copilot Switch agent. Opens the agent picker in the chat input, where modes such as Plan are chosen.WinCtrlControl plus.Full stopMac⌘Command plus.Full stop
Devin Desktop No key in Devin Desktop's documentation for Devin Local's modes. Its Devin Local page points to the slash commands that switch them, such as /plan.No key listed
Switch model
Half of the tools give changing the model a key. Claude Code uses Alt+P, which on a Mac needs Option set as Meta in the terminal. Cursor has two, which its list calls looping between the AI models and the model toggle. Copilot opens a picker with Ctrl+Alt+full stop, one modifier away from its agent picker. Codex CLI, Gemini CLI and Devin Desktop do it with a typed command, /model, instead of a key, and Devin Desktop also has a model selector in the message box.
Claude Code Switch model. On a Mac this needs Option set as Meta in the terminal.WinAlt plusPMac⌥Option plusP
Codex CLI No key. The /model command chooses the model, and the reasoning effort where there is a choice.No key listed
Gemini CLI No key. The /model command opens a dialog to choose the model.No key listed
Cursor Loop through the AI models. VS Code gives these keys to commenting out a line; Cursor's list gives them to this.WinCtrlControl plus/SlashMac⌘Command plus/Slash
Cursor Toggle the model.WinCtrlControl plusAlt plus/SlashMac⌥Option plus⌘Command plus/Slash
Copilot Switch model. Opens the language model picker.WinCtrlControl plusAlt plus.Full stopMac⌥Option plus⌘Command plus.Full stop
Devin Desktop No key in Devin Desktop's documentation. The model is chosen from the model selector in the message box, or with the /model command.No key listed
Say something while it is working
You rarely have to wait for a turn to finish, but the keys disagree about what happens to what you type. In Claude Code and Cursor, Enter queues the message until the agent can take it. Codex CLI reverses that: Enter adds your words to the turn already running, and Tab is what holds them for the next one. Gemini CLI queues with Tab. Claude Code and Cursor also let you send at once, with Ctrl+Enter. Devin Desktop gives a key only for sessions of Devin, its cloud agent, and there Ctrl+Enter, or Cmd+Enter on a Mac, does the opposite: it holds the message in a queue on the server.
Claude Code Queue a message while Claude works. It waits above the input box instead of interrupting. A message reaches Claude as soon as its running tool calls finish; commands wait for the end of the turn.WinEnterMac↩Return
Claude Code Send what you queued now. Ctrl+X then Ctrl+S works in any terminal. Ctrl+Enter needs one that reports extended keys, and Claude Code v2.1.275 or later.WinCtrlControl plusEnterorCtrlControl plusXthenCtrlControl plusSMac⌃Control plus↩Returnor⌃Control plusXthen⌃Control plusS
Codex CLI Add new instructions to the turn that is running. OpenAI calls this steering. Use it to change direction or add a detail Codex is missing, without stopping it.WinEnterMac↩Return
Codex CLI Queue a follow-up for the next turn. A prompt, a slash command or a shell command all queue the same way. A queued slash command is only read when it runs, so its menu or error appears after the current turn.WinTabMac⇥Tab
Gemini CLI Queue the prompt to run after the current task. While a task is running.WinTabMac⇥Tab
Cursor Queue the message. The default. Ctrl+Enter, or Cmd+Enter on a Mac, sends it straight away instead.WinEnterMac↩Return
Copilot No keys in VS Code's documentation. Add to Queue, Steer with Message and Stop and Send are choices on the Send button's menu.No key listed
Devin Desktop Queue a message in a Devin cloud session. Queues it on the server rather than sending it, so it survives a reload and shows in the web app too.WinCtrlControl plusEnterMac⌘Command plus↩Return
Take a suggestion as you type
Tab, wherever there is something to take. In the three editors that is the dimmed code ahead of the cursor. In Claude Code and Gemini CLI it takes a completion offered in the prompt itself. Cursor, Copilot and Devin Desktop also take a suggestion one word at a time, with Ctrl and the right arrow, or Cmd and the right arrow on a Mac.
Claude Code Accept the autocomplete suggestion. On most permission prompts, with Yes or No focused, Tab opens a box for a comment on your answer instead.WinTabMac⇥Tab
Codex CLI No key in OpenAI's list of CLI shortcuts.No key listed
Gemini CLI Accept the inline suggestion.WinTaborEnterMac⇥Tabor↩Return
Cursor Accept the suggestion. Only in the editor. In the chat box, Tab moves to the next message.WinTabMac⇥Tab
Cursor Accept just the next word of it.WinCtrlControl plus→Right arrowMac⌘Command plus→Right arrow
Copilot Accept the suggestion. The dimmed ghost text that appears as you type.WinTabMac⇥Tab
Copilot Accept only the next word of it. Microsoft says this takes the next word or the next line.WinCtrlControl plus→Right arrowMac⌘Command plus→Right arrow
Devin Desktop Accept just the next word of it. The Tab page gives Cmd+Right, and the Autocomplete page says to use Ctrl in place of Cmd on Windows and Linux.WinCtrlControl plus→Right arrowMac⌘Command plus→Right arrow
Turn a suggestion down
Esc, in all three editors. Cursor's and Devin Desktop's documentation add that simply typing on turns a suggestion down too, and Devin Desktop's that moving away without accepting it does the same.
Claude Code A terminal tool: nothing is suggested in the code.Does not apply
Codex CLI A terminal tool: nothing is suggested in the code.Does not apply
Gemini CLI A terminal tool: nothing is suggested in the code.Does not apply
Cursor Reject the suggestion. Or keep typing.WinEscEscapeMacescEscape
Copilot Dismiss the suggestion.WinEscEscapeMacescEscape
Devin Desktop Cancel the suggestion. It also disappears if you keep typing or move away without accepting it.WinEscEscapeMacescEscape
Accept or reject the agent's changes
Only Cursor and Devin Desktop give these keys, and they give the same ones: Ctrl+Enter to accept, Ctrl+Shift+Backspace to reject, with Cmd in place of Ctrl on a Mac. In Devin Desktop they belong to Command, its inline edit; Devin Local, its agent, asks before it edits as often as its permission rules say. Copilot's Keep and Undo are buttons. The terminal tools ask before they change a file, as often as the mode you chose allows, so the answer to a change is given there.
Claude Code Asks before it edits, as often as the permission mode says. Esc declines on a permission prompt.Does not apply
Codex CLI Asks before it edits, as often as its permission settings allow. /permissions changes them.Does not apply
Gemini CLI Asks before it edits in the default approval mode. In auto-edit mode it approves edits itself.Does not apply
Cursor Accept the whole diff. While you are typing in the chat box, the same keys send the message straight away instead.WinCtrlControl plusEnterMac⌘Command plus↩Return
Cursor Reject the whole diff. The same keys cancel a reply that is still being written.WinCtrlControl plusShift plusBackspaceMac⇧Shift plus⌘Command plus⌫Delete
Copilot Keep and Undo are buttons in the editor, with no keys in VS Code's documentation.No key listed
Devin Desktop Accept the generated code.WinCtrlControl plusEnterMac⌘Command plus↩Return
Devin Desktop Reject the generated code.WinCtrlControl plusShift plusBackspaceMac⇧Shift plus⌘Command plus⌫Delete
Find something you asked before
Ctrl+R in all three terminal tools, the key a shell uses for the same job, so a habit from bash or zsh carries straight over. Cursor searches past conversations from its Agents Window, with Ctrl+K, or Cmd+K on a Mac. Copilot's key does something different: it steps back through the prompts of the conversation in front of you. Devin Desktop's release notes give the up arrow in the message box, which steps back through your earlier prompts one at a time, with no search.
Claude Code Search back through command history.WinCtrlControl plusRMac⌃Control plusR
Codex CLI Search your earlier prompts. Enter uses the match, Esc gives up.WinCtrlControl plusRMac⌃Control plusR
Gemini CLI Search back through the history. Enter sends the selected match; Tab accepts a suggestion while searching.WinCtrlControl plusRMac⌃Control plusR
Cursor Search your past agent conversations. In the Agents Window, where these keys open the command palette. In the editor they edit the selection instead.WinCtrlControl plusKMac⌘Command plusK
Copilot Go to the previous prompt.WinCtrlControl plusAlt plus↑Up arrowMac⌥Option plus⌘Command plus↑Up arrow
Devin Desktop Step back through your earlier prompts. In the message box, with Down to come forward again. From the release notes of 3.8.20, 21 August 2026.Win↑Up arrowMac↑Up arrow
Write a long prompt in a real editor
Ctrl+G in all three terminal tools. A long prompt is easier to write in a text editor than on a terminal line, and each of them opens the prompt in one. Codex CLI uses the editor named in VISUAL, or in EDITOR, and returns the text to the prompt when you save and close it.
Claude Code Open the prompt in your editor.WinCtrlControl plusGorCtrlControl plusXthenCtrlControl plusEMac⌃Control plusGor⌃Control plusXthen⌃Control plusE
Codex CLI Write the prompt in your own editor. Opens the editor named in VISUAL, or in EDITOR when VISUAL is not set. Save and close it to bring the text back to the composer before sending.WinCtrlControl plusGMac⌃Control plusG
Gemini CLI Write the prompt in an external editor. Also opens a plan in the editor when one is shown.WinCtrlControl plusGorCtrlControl plusShift plusGMac⌃Control plusGor⌃Control plus⇧Shift plusG
Cursor An editor already: the chat sits beside the code.Does not apply
Copilot An editor already: the chat sits beside the code.Does not apply
Devin Desktop An editor already: the chat sits beside the code.Does not apply
Run a shell command yourself
An exclamation mark at the start of the prompt, in four of the six, and it does something slightly different in each. Claude Code runs the command and hands Claude the output. Codex CLI runs it under the session's approval and sandbox settings. Gemini CLI switches the prompt into a shell mode until you leave it. Copilot runs it at once, without asking, and only in Agent Host sessions.
Claude Code Run a shell command and hand Claude the output. At the start of the prompt.Win!Mac!
Codex CLI Run a shell command yourself. At the start of a line. It runs under the session's current approval and sandbox settings.Win!Mac!
Gemini CLI Enter or leave shell mode. On an empty prompt.Win!Mac!
Copilot Run a terminal command from the chat. The first character of the message, followed by the command. Only in Agent Host sessions. It runs at once, without going to the agent or asking for approval.Win!Mac!
Devin Desktop No key in Devin Desktop's documentation. Its release notes mention ! shell commands for Devin Local without describing them. Command, with Ctrl+I in the terminal, writes a command from a description.No key listed
Point it at a file
The at sign in Claude Code, Codex CLI, Gemini CLI, Cursor and Devin Desktop, typed into the prompt and followed by a file's name or path. Gemini CLI reads the file's content into the prompt, and a folder's files with it. Copilot uses the hash sign for files, symbols and tools, and keeps the at sign for chat participants such as @terminal.
Claude Code Mention a file path, with completion.Win@Mac@
Codex CLI Search for a file and add its path to the prompt. Searches the files in the workspace.Win@Mac@
Gemini CLI Put a file's content into the prompt. Followed by a path, as in @src/app.ts. A folder's path reads the files in it and its subfolders, leaving out files Git ignores.Win@Mac@
Cursor Add a file to the context. Typed in the chat box.Win@Mac@
Copilot Add context, or name a tool. Typed in the chat input, followed by a file, symbol or tool.Win#Mac#
Devin Desktop Mention a file, a folder or the terminal. Typed in the message box, where it opens the mention menu. Skills and rules are in it too.Win@Mac@
How this page is kept
These tools change their keys more often than any other software on this site, so this page is only as good as the last time each tool's page was checked. Each tool page gives its own date and the documentation it was checked against, and when a key changes, the correction is listed on the corrections page with the day it was made.
Two things are deliberately left out. Commands you type, such as /model, appear only where a tool has no key for the action. And the editor keys Cursor inherits from VS Code are on the VS Code page rather than here.
To learn the ones you use, the practice drill asks for these tools' keys, wherever a browser can see them, and waits for you to press them.