Reference
Commands and keyboard shortcuts
All PiLot Studio commands, default keybindings, editor and Explorer menus, slash commands, and sidebar tab numbers.
Browse the wiki
PiLot Studio contributes commands to the Command Palette, the editor context menu, the Explorer context menu, and the Source Control title bar. It also registers a small set of sidebar shortcuts.
Default keybindings
On macOS, use Cmd instead of Ctrl. Some shortcuts only fire when the PiLot sidebar or an editor chat panel has focus; the condition is noted.
| Shortcut | Action | Focus condition |
|---|---|---|
Ctrl+Shift+Alt+P |
Open PiLot Studio | Anywhere |
Ctrl+Shift+I |
Focus chat input | Anywhere |
Ctrl+F |
Search the current chat | PiLot chat view or editor chat panel |
Ctrl+Shift+Alt+N |
New session | PiLot sidebar has focus |
Ctrl+Shift+; |
Toggle voice dictation | Anywhere |
Ctrl+Shift+A |
Add the current file to chat | PiLot sidebar has focus |
Ctrl+F is deliberately scoped. Outside the chat, VS Code's normal find still works.
Sidebar tab shortcuts
While focus is not inside a text field, the number keys switch panels:
| Key | Panel |
|---|---|
1 |
Conversation |
2 |
History |
3 |
Models |
4 |
Providers |
5 |
Capabilities |
6 |
Packages |
7 |
Skills |
8 |
System Prompt |
9 |
Preferences |
0 |
MCP Servers |
Escape closes dialogs, dropdowns, and the in-chat search bar. In the composer, Enter sends and Shift+Enter inserts a newline. F3 and Shift+F3 move through chat search matches.
Composer shortcuts
| Key | Action |
|---|---|
Enter |
Send the prompt. |
Shift+Enter |
New line. |
@ |
Open workspace file autocomplete. |
/ |
Open slash-command autocomplete. |
ArrowUp / ArrowDown |
Move through an open autocomplete. |
Tab or Enter |
Accept the highlighted autocomplete item. |
Escape |
Close autocomplete or search. |
Ctrl+F |
Open chat search. |
F3 / Shift+F3 |
Next / previous search match. |
Command Palette
Run these with View: Command Palette (Ctrl+Shift+P).
Chat and editor
| Command | ID |
|---|---|
| PiLot Studio: Open PiLot Studio | pi-agent.openPanel |
| PiLot Studio: New PiLot Session | pi-agent.newSession |
| PiLot Studio: Explain Code with PI | pi-agent.explainCode |
| PiLot Studio: Refactor Code with PI | pi-agent.refactorCode |
| PiLot Studio: Analyze Project with PI | pi-agent.analyzeProject |
| PiLot Studio: Focus Chat Input | pi-agent.focusInput |
| PiLot Studio: Search Chat History | pi-agent.searchChat |
| PiLot Studio: Edit Last Message | pi-agent.editLastMessage |
| PiLot Studio: Add File to Chat | pi-agent.addFileToChat |
| PiLot Studio: Attach Files to Chat | pi-agent.attachFile |
Models and providers
| Command | ID |
|---|---|
| PiLot Studio: Cycle Model | pi-agent.cycleModel |
| PiLot Studio: Cycle Thinking Level | pi-agent.cycleThinkingLevel |
| PiLot Studio: Open Settings | pi-agent.openSettings |
Sessions and windows
| Command | ID |
|---|---|
| PiLot Studio: Open Current Session in Editor | pi-agent.openCurrentSessionInEditor |
| PiLot Studio: New Chat in Editor | pi-agent.newChatInEditor |
Resources
| Command | ID |
|---|---|
| PiLot Studio: List Resources (Open Document) | pi-agent.listResources |
| PiLot Studio: Install Resource (Open Terminal)… | pi-agent.installResource |
| PiLot Studio: Remove Resource (Open Terminal)… | pi-agent.removeResource |
| PiLot Studio: Update Resources (Open Terminal) | pi-agent.updateResources |
| PiLot Studio: Manage Resources | pi-agent.manageResources |
The install/remove commands ask for a package source such as npm:my-package or a local path.
Voice, updates, and maintenance
| Command | ID |
|---|---|
| PiLot Studio: Toggle Dictation | pi-agent.toggleVoiceCapture |
| PiLot Studio: Toggle PI Light Mode (local LLMs) | pi-agent.toggleLightMode |
| PiLot Studio: Check for Updates | pi-agent.checkForUpdates |
| PiLot Studio: Show Diagnostics Log | pi-agent.showDiagnosticsLog |
| PiLot Studio: Export Diagnostics Log… | pi-agent.exportDiagnosticsLog |
| PiLot Studio: Rebuild Native Addons | pi-agent.rebuildNativeAddons |
| PiLot Studio: Generate Commit Message | pi-agent.generateCommitMessage |
Two additional commands are registered for internal use and normally invoked by the UI: pi-agent.navigateToSession and pi-agent.deleteSessions.
Context menus
Editor
- Explain Code with PI — appears when there is an editor selection. It sends the selected text with a language-tagged code block.
- Refactor Code with PI — same selection behavior, with a refactoring prompt.
- Add File to Chat — appears for
fileresources and inserts the file as an@mention.
Explorer
- Analyze Project with PI — appears on folders. It sends a prompt asking for the project structure, key files, technologies, and potential improvements.
Source Control
- Generate Commit Message — a sparkle button in the title bar of a Git repository. It drafts a message for staged changes and fills the commit box; it does not commit.
Slash commands
Slash commands are typed in the composer, not the Command Palette. The full list is in Chat, context, and editor actions. Built-ins cover navigation, export, compaction, naming, reloading resources, and opening panels. Skills use /skill:<name>; PI prompt templates use their own /name.
Customizing shortcuts
Open Code → Preferences → Keyboard Shortcuts and search for pi-agent. The contributed keybindings can be remapped like any VS Code command. The sidebar number keys and composer keys are handled inside the webview and are not separate VS Code keybindings.
Why a shortcut did nothing
- New session and Add file to chat require the PiLot sidebar to have focus.
- Chat search requires the chat view or an editor chat panel.
- Number keys are ignored while the cursor is inside an input, textarea, or contenteditable element.
- If another extension owns the same keybinding, VS Code shows both commands in the Keyboard Shortcuts editor; disable or remap one of them.
Something inaccurate or missing? Open an issue with the page title.