Warp CLI > Using the agent
Input and editing in the Warp CLI
# Input and editing in the Warp CLI import { VARS } from '@data/vars'; The {VARS.WARP_CLI} input is a multiline editor for prompts and shell commands. It combines readline-style editing with inline menus for slash commands, history, and completions, plus mouse support, image attachments, and voice input. This page covers how to compose and edit input. For the complete list of flags, slash commands, and keyboard shortcuts, see the [{VARS.WARP_CLI} reference](/cli/reference/). ## Editing basics The input accepts multiple lines and soft-wraps long lines to your terminal width. It grows up to six rows tall, then scrolls. * **Submit** - Press `Enter` to send a prompt to the agent or run a shell command. * **Insert a newline** - Press `Ctrl+J`, or `Shift+Enter` in terminals that support distinguishing it. `Alt+Enter` also works. * **Edit with readline-style keys** - The editor supports familiar bindings such as `Ctrl+A` and `Ctrl+E` (start and end of line), `Ctrl+W` (delete the previous word), `Ctrl+K` and `Ctrl+U` (delete to the end or start of the line), `Ctrl+Y` (reinsert the last deleted text), and `Ctrl+Z` (undo). The full editing and selection table is in the [keyboard shortcuts reference](/cli/reference/#keyboard-shortcuts). ## Slash commands Type `/` at the start of an empty input to open the slash command menu. The menu filters as you type, and entries for toggles and pickers show their current state, for example `/theme (currently auto: Dark)` or `/auto-approve (currently off)`. 1. Type `/` followed by part of a command name. 2. Press `↑` or `↓` to change the selection. 3. Press `Enter` to run the selected command, or `Esc` to close the menu. When a command takes an argument, the input shows a ghost-text argument hint after the full command name, for example `/theme <auto|light|dark>`. Type the argument after the command name, then press `Enter`. Your [skills](/cli/context/) also appear in the slash command menu, so you can invoke a skill by typing `/` followed by its name. The full command table is in the [slash commands reference](/cli/reference/#slash-commands). ## Prompt history Press `↑` with the cursor on the first row of the input to open your input history. * **What's listed** - In agent mode, the menu lists your previous prompts and shell commands together. Shell command entries carry a `!` prefix. In [shell mode](/cli/shell-commands/), the menu lists commands only. * **Filter** - Keep typing to filter the list. * **Preview and accept** - The highlighted entry previews directly in the input. Press `Enter` to keep it, then edit or submit it as usual. * **Dismiss** - Press `Esc` to close the menu and restore what you were typing. Pressing `↓` past the newest entry does the same. ## Tab completions In [shell mode](/cli/shell-commands/), press `Tab` to complete the command you're typing, including file and directory paths. * If exactly one completion matches, the {VARS.WARP_CLI} applies it immediately. * If several completions match, the {VARS.WARP_CLI} inserts the longest shared prefix and opens a completion menu. Press `Tab` or `↓` to move through the suggestions, `Enter` to accept the selected one, or `Esc` to dismiss the menu. ## Mouse support The {VARS.WARP_CLI} runs in your terminal, but the input is fully mouse-aware: * **Position the cursor** - Click anywhere in the input to move the cursor there. * **Select text** - Drag to select. Double-click selects a word, and triple-click selects a line. * **Scroll** - Use the scroll wheel to scroll the input viewport or the conversation transcript. * **Click controls** - Interactive elements such as the **Voice** footer entry and the attachment bar controls respond to clicks. ## Selection and clipboard * **Highlight to copy** - Finishing a mouse selection in the input or the [conversation transcript](/cli/agent-conversations/) automatically copies it, and the footer briefly shows "copied to clipboard". * **Keyboard selection** - Extend the selection with `Shift` plus the arrow keys, or select everything with `Ctrl+Shift+A`. Copy with `Ctrl+Shift+C` and cut with `Ctrl+X`. * **Paste** - Press `Ctrl+V` or `Ctrl+Shift+V` (also `Alt+V` on Windows). Your terminal's own paste shortcut works as well. :::note Copying works over SSH: on remote sessions the {VARS.WARP_CLI} writes the clipboard through the OSC 52 escape sequence (including tmux passthrough), so your local clipboard receives the text when your terminal supports OSC 52. ::: ## Attach images Attach images to a prompt so the agent can analyze them: * **Paste an image** - Copy an image to your clipboard and press `Ctrl+V`. * **Paste or drop a file path** - Paste the path to an image file, or drag the file onto your terminal window so its path lands in the input. Absolute paths, paths relative to the working directory, and `~` paths all resolve. Supported formats are PNG, JPEG, GIF, and WebP. Attaching an image locks the input to agent mode, since images are sent to the agent rather than the shell. Attached images appear in an attachment bar above the input: 1. Press `Tab` to focus the attachment bar. 2. Press `←` and `→` (or `Tab` and `Shift+Tab`) to move between attachments. 3. Press `Backspace` to remove the selected attachment. 4. Press `Esc` or `Enter` to return focus to the input. ## Voice input Dictate prompts instead of typing them: 1. Start listening with `Ctrl+S`, the `/voice` slash command, or by clicking **Voice** in the footer. The footer shows **Listening** while recording. 2. Speak your prompt. 3. Press `Enter`, or click the footer entry again, to stop recording. The footer shows **Transcribing**, and the transcribed text lands in the input so you can review and edit it before submitting. Press `Esc` while transcription is in progress to cancel it. `/voice` clears the input before recording; `Ctrl+S` keeps what you've already typed. Voice input in the {VARS.WARP_CLI} uses the same transcription service as the Warp app. See [voice input for agents](/agent-platform/local-agents/interacting-with-agents/voice/) for microphone setup, privacy, and usage limits. ## Keyboard hints and the shortcuts menu The {VARS.WARP_CLI} surfaces its shortcuts contextually, so you rarely need to memorize them: * **Placeholder hints** - An empty input shows ghost-text hints for the current state, for example "Ask the agent anything • ? for shortcuts • ! for shell mode • / for commands" in agent mode, or "Run a shell command • ? for shortcuts • esc for agent mode" in shell mode. While a long-running command owns the input, the hint row shows "ctrl-c to interrupt". * **Shortcuts menu** - Type `?` in an empty input to open a shortcuts overview. Its contents adapt to what you're doing: agent mode lists the menu triggers and input history, shell mode shows how to return to agent mode, and extra sections appear during multi-agent sessions or agent-controlled terminal use. Press `Esc`, or just start typing, to close it. ## Related pages * [{VARS.WARP_CLI} reference](/cli/reference/) - Flags, environment variables, slash commands, and keyboard shortcuts. * [Shell commands in the {VARS.WARP_CLI}](/cli/shell-commands/) - Shell mode, natural language detection, and long-running commands. * [Agent conversations in the {VARS.WARP_CLI}](/cli/agent-conversations/) - The transcript, tool calls, and diffs.Tell me about this feature: https://docs.warp.dev/cli/input-and-editing/Compose prompts and commands in the Warp CLI input editor with slash commands, history, completions, mouse support, images, and voice input.
The Warp CLI input is a multiline editor for prompts and shell commands. It combines readline-style editing with inline menus for slash commands, history, and completions, plus mouse support, image attachments, and voice input. This page covers how to compose and edit input. For the complete list of flags, slash commands, and keyboard shortcuts, see the Warp CLI reference.
Editing basics
Section titled “Editing basics”The input accepts multiple lines and soft-wraps long lines to your terminal width. It grows up to six rows tall, then scrolls.
- Submit - Press
Enterto send a prompt to the agent or run a shell command. - Insert a newline - Press
Ctrl+J, orShift+Enterin terminals that support distinguishing it.Alt+Enteralso works. - Edit with readline-style keys - The editor supports familiar bindings such as
Ctrl+AandCtrl+E(start and end of line),Ctrl+W(delete the previous word),Ctrl+KandCtrl+U(delete to the end or start of the line),Ctrl+Y(reinsert the last deleted text), andCtrl+Z(undo).
The full editing and selection table is in the keyboard shortcuts reference.
Slash commands
Section titled “Slash commands”Type / at the start of an empty input to open the slash command menu. The menu filters as you type, and entries for toggles and pickers show their current state, for example /theme (currently auto: Dark) or /auto-approve (currently off).
- Type
/followed by part of a command name. - Press
↑or↓to change the selection. - Press
Enterto run the selected command, orEscto close the menu.
When a command takes an argument, the input shows a ghost-text argument hint after the full command name, for example /theme <auto|light|dark>. Type the argument after the command name, then press Enter.
Your skills also appear in the slash command menu, so you can invoke a skill by typing / followed by its name.
The full command table is in the slash commands reference.
Prompt history
Section titled “Prompt history”Press ↑ with the cursor on the first row of the input to open your input history.
- What’s listed - In agent mode, the menu lists your previous prompts and shell commands together. Shell command entries carry a
!prefix. In shell mode, the menu lists commands only. - Filter - Keep typing to filter the list.
- Preview and accept - The highlighted entry previews directly in the input. Press
Enterto keep it, then edit or submit it as usual. - Dismiss - Press
Escto close the menu and restore what you were typing. Pressing↓past the newest entry does the same.
Tab completions
Section titled “Tab completions”In shell mode, press Tab to complete the command you’re typing, including file and directory paths.
- If exactly one completion matches, the Warp CLI applies it immediately.
- If several completions match, the Warp CLI inserts the longest shared prefix and opens a completion menu. Press
Tabor↓to move through the suggestions,Enterto accept the selected one, orEscto dismiss the menu.
Mouse support
Section titled “Mouse support”The Warp CLI runs in your terminal, but the input is fully mouse-aware:
- Position the cursor - Click anywhere in the input to move the cursor there.
- Select text - Drag to select. Double-click selects a word, and triple-click selects a line.
- Scroll - Use the scroll wheel to scroll the input viewport or the conversation transcript.
- Click controls - Interactive elements such as the Voice footer entry and the attachment bar controls respond to clicks.
Selection and clipboard
Section titled “Selection and clipboard”- Highlight to copy - Finishing a mouse selection in the input or the conversation transcript automatically copies it, and the footer briefly shows “copied to clipboard”.
- Keyboard selection - Extend the selection with
Shiftplus the arrow keys, or select everything withCtrl+Shift+A. Copy withCtrl+Shift+Cand cut withCtrl+X. - Paste - Press
Ctrl+VorCtrl+Shift+V(alsoAlt+Von Windows). Your terminal’s own paste shortcut works as well.
Attach images
Section titled “Attach images”Attach images to a prompt so the agent can analyze them:
- Paste an image - Copy an image to your clipboard and press
Ctrl+V. - Paste or drop a file path - Paste the path to an image file, or drag the file onto your terminal window so its path lands in the input. Absolute paths, paths relative to the working directory, and
~paths all resolve.
Supported formats are PNG, JPEG, GIF, and WebP. Attaching an image locks the input to agent mode, since images are sent to the agent rather than the shell.
Attached images appear in an attachment bar above the input:
- Press
Tabto focus the attachment bar. - Press
←and→(orTabandShift+Tab) to move between attachments. - Press
Backspaceto remove the selected attachment. - Press
EscorEnterto return focus to the input.
Voice input
Section titled “Voice input”Dictate prompts instead of typing them:
- Start listening with
Ctrl+S, the/voiceslash command, or by clicking Voice in the footer. The footer shows Listening while recording. - Speak your prompt.
- Press
Enter, or click the footer entry again, to stop recording. The footer shows Transcribing, and the transcribed text lands in the input so you can review and edit it before submitting.
Press Esc while transcription is in progress to cancel it. /voice clears the input before recording; Ctrl+S keeps what you’ve already typed.
Voice input in the Warp CLI uses the same transcription service as the Warp app. See voice input for agents for microphone setup, privacy, and usage limits.
Keyboard hints and the shortcuts menu
Section titled “Keyboard hints and the shortcuts menu”The Warp CLI surfaces its shortcuts contextually, so you rarely need to memorize them:
- Placeholder hints - An empty input shows ghost-text hints for the current state, for example “Ask the agent anything • ? for shortcuts • ! for shell mode • / for commands” in agent mode, or “Run a shell command • ? for shortcuts • esc for agent mode” in shell mode. While a long-running command owns the input, the hint row shows “ctrl-c to interrupt”.
- Shortcuts menu - Type
?in an empty input to open a shortcuts overview. Its contents adapt to what you’re doing: agent mode lists the menu triggers and input history, shell mode shows how to return to agent mode, and extra sections appear during multi-agent sessions or agent-controlled terminal use. PressEsc, or just start typing, to close it.
Related pages
Section titled “Related pages”- Warp CLI reference - Flags, environment variables, slash commands, and keyboard shortcuts.
- Shell commands in the Warp CLI - Shell mode, natural language detection, and long-running commands.
- Agent conversations in the Warp CLI - The transcript, tool calls, and diffs.