Keyboard Shortcuts
✓ Fresh · 2026-02-24Complete reference for all keyboard shortcuts and editor features in Pi.
Global Shortcuts
| Binding | Action |
|---|---|
| Ctrl+C | Clear the editor input |
| Ctrl+C (twice) | Quit Pi entirely |
| Escape | Cancel / abort current operation |
| Escape (twice) | Open /tree session navigator |
| Ctrl+L | Open model selector |
| Ctrl+P | Cycle to next scoped model |
| Shift+Ctrl+P | Cycle to previous scoped model |
| Shift+Tab | Cycle through thinking levels |
| Ctrl+O | Collapse / expand tool output |
| Ctrl+T | Collapse / expand thinking blocks |
Editor Features
File References with @
Type @ in the editor to trigger fuzzy file search. Pi scans the current project directory and lets you select files to include as context:
@src/index.ts # reference a specific file
@package.json # include config filesTab completes partial file paths.
Multiline Input
| Platform | Shortcut |
|---|---|
| macOS / Linux | Shift+Enter |
| Windows Terminal | Ctrl+Enter |
Image Input
- Ctrl+V to paste images from clipboard
- Drag and drop image files into the terminal (supported terminals)
Shell Commands
Execute bash commands directly from the Pi editor:
| Syntax | Behavior |
|---|---|
!command | Run command, send output to the LLM as context |
!!command | Run command, display output but do NOT send to LLM |
Examples:
!git status # runs git status, sends output to LLM
!!cat package.json # shows file contents without sending to LLM
!ls -la src/ # list directory, LLM sees the outputMessage Queue Shortcuts
While the agent is actively working, you can queue messages:
| Binding | Action |
|---|---|
| Enter | Submit a steering message (interrupts after current tool) |
| Alt+Enter | Submit a follow-up message (delivered when agent finishes) |
| Escape | Abort and restore queued messages to editor |
| Alt+Up | Retrieve queued messages back to editor |
See Message Queue for full details.
Customizing Keybindings
Override any keybinding by editing:
~/.pi/agent/keybindings.jsonThe file maps key combinations to actions. Changes take effect after restarting Pi or running /reload.