Pi’s default mode is an interactive TUI (terminal user interface). When you runDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/earendil-works/pi/llms.txt
Use this file to discover all available pages before exploring further.
pi without flags, you land in this interface. Understanding the layout and controls will help you work more efficiently.
Layout
The interface is organized top-to-bottom:- Startup header — shows shortcuts (
/hotkeysfor all), loadedAGENTS.mdfiles, prompt templates, skills, and extensions - Messages — your messages, assistant responses, tool calls and results, notifications, errors, and extension UI
- Editor — where you type; the border color indicates the current thinking level
- Footer — working directory, session name, total token/cache usage, cost, context usage, and current model
/settings panel or custom UI from extensions.
Editor
On Windows Terminal, use
Ctrl+Enter instead of Shift+Enter to insert a new line.| Feature | How |
|---|---|
| File reference | Type @ to fuzzy-search project files |
| Path completion | Tab to complete paths |
| Multi-line input | Shift+Enter to insert a new line |
| Paste images | Ctrl+V (or Alt+V on Windows), or drag onto the terminal |
| Run a command and send output to LLM | !command |
| Run a command without sending output | !!command |
Commands
Type/ in the editor to open the command palette. Extensions can register custom commands, skills appear as /skill:name, and prompt templates expand via /templatename.
| Command | Description |
|---|---|
/login, /logout | OAuth authentication |
/model | Switch models |
/scoped-models | Enable or disable models for Ctrl+P cycling |
/settings | Thinking level, theme, message delivery, transport |
/resume | Pick from previous sessions |
/new | Start a new session |
/name <name> | Set the session display name |
/session | Show session info (file, ID, messages, tokens, cost) |
/tree | Jump to any point in the session and continue from there |
/fork | Create a new session from a previous user message |
/clone | Duplicate the current active branch into a new session |
/compact [prompt] | Manually compact context; optional custom instructions |
/copy | Copy the last assistant message to clipboard |
/export [file] | Export the session to an HTML file |
/share | Upload as a private GitHub gist with a shareable HTML link |
/reload | Reload keybindings, extensions, skills, prompts, and context files |
/hotkeys | Show all keyboard shortcuts |
/changelog | Display version history |
/quit | Quit Pi |
Keyboard shortcuts
Run/hotkeys inside Pi for the full list. All shortcuts can be customized in ~/.pi/agent/keybindings.json.
| Key | Action |
|---|---|
Ctrl+C | Clear the editor |
Ctrl+C twice | Quit |
Escape | Cancel or abort the current operation |
Escape twice | Open /tree |
Ctrl+L | Open the model selector |
Ctrl+P | Cycle scoped models forward |
Shift+Ctrl+P | Cycle scoped models backward |
Shift+Tab | Cycle the thinking level |
Ctrl+O | Collapse or expand tool output |
Ctrl+T | Collapse or expand thinking blocks |
Ctrl+G | Open in external editor ($VISUAL or $EDITOR) |
Ctrl+Z | Suspend to background (Linux/macOS; not available on native Windows) |
Thinking level cycling
PressShift+Tab to cycle the thinking level: off → minimal → low → medium → high → xhigh → off. The editor border changes color to reflect the active level. You can also set a default level with defaultThinkingLevel in settings.
Message queue
You can submit messages while the agent is actively working. Pi queues them and delivers them in order.| Key | Behavior |
|---|---|
Enter | Queue a steering message — delivered after the current tool calls finish |
Alt+Enter | Queue a follow-up message — delivered only after the agent finishes all work |
Escape | Abort the current operation and restore queued messages to the editor |
Alt+Up | Retrieve queued messages back to the editor without sending |
On Windows Terminal,
Alt+Enter triggers fullscreen by default. Remap it in your terminal settings so Pi can receive the follow-up shortcut.steeringMode—"one-at-a-time"(default) or"all"(deliver all queued steering messages at once)followUpMode—"one-at-a-time"(default) or"all"(deliver all queued follow-ups at once)