Reference
Keyboard & Command Reference
Every keyboard shortcut, slash command, and rebindable action in Bodega One - verified against the source as of beta.26. Open the in-app cheat sheet at any time with Ctrl+/.
Global shortcuts
These work from any screen, including when focus is inside an input.
| Keys | Action |
|---|---|
Ctrl+1 |
Switch to Chat mode |
Ctrl+2 |
Switch to Code mode |
Ctrl+, |
Toggle Settings panel |
Ctrl+Shift+P |
Command Palette |
Ctrl+/ |
Keyboard Shortcuts overlay |
Ctrl+B |
Toggle primary sidebar (chat session list in Chat mode; file tree in Code mode) |
Esc |
Dismiss the topmost open overlay - Command Palette → Quick File Open → Go to Line → Shortcuts overlay → Context Inspector → secondary panel |
Ctrl+B does different things depending on mode. In Chat mode it toggles the session list; in Code mode it toggles the file tree. These are the same physical shortcut bound to different actions.
Code mode: AI panel shortcuts
Open specific AI panels in Code mode. All five shortcuts open the Bodega Panel if it's closed, then activate the right tab. They have no effect in Chat mode.
| Keys | Panel |
|---|---|
Ctrl+L |
Agent panel (full coding agent, all 24 tools) |
Ctrl+Shift+R |
Research panel (read-only; web search + codebase analysis) |
Ctrl+Shift+E |
Debug panel (read-only; stack trace, blame, call path analysis) |
Ctrl+Shift+A |
Advisor panel (read-only; architecture advice) |
Ctrl+Shift+I |
Context tab inside the Bodega Panel |
Ctrl+Shift+B |
Toggle the entire Bodega Panel (right-hand AI column) open/closed |
Ctrl+Shift+D |
Toggle Changes panel (Code mode) / Toggle Context Inspector (Chat mode) |
Ctrl+Shift+E opens the Debug panel - not the file explorer. The file explorer has no dedicated shortcut; use Ctrl+B to toggle it.
Code mode: editor shortcuts
Files and tabs
| Keys | Action |
|---|---|
Ctrl+S |
Save current file |
Ctrl+W |
Close active editor tab (prompts on unsaved changes) |
Ctrl+Tab |
Next editor tab |
Ctrl+Shift+Tab |
Previous editor tab |
Ctrl+\ |
Toggle split editor (single ↔ split-right) |
Search and navigation
| Keys | Action |
|---|---|
Ctrl+P |
Quick File Open (fuzzy file finder) |
Ctrl+G |
Go to Line |
Ctrl+F |
Find in current file |
Ctrl+Alt+F |
Find and Replace |
Ctrl+Shift+F |
Toggle Fleet panel / open search across project files |
Ctrl+D |
Select next occurrence |
Alt+← |
Navigate back in file history |
Alt+→ |
Navigate forward in file history |
AI editing
| Keys | Action |
|---|---|
Ctrl+K |
Toggle Inline Command Bar (AI prompt to edit selected code) |
Ctrl+Shift+K |
Fix Selected Code (inline fix on current selection) |
Git and source control
| Keys | Action |
|---|---|
Ctrl+Shift+G |
Toggle Git panel |
Alt+B |
Toggle git blame annotations |
Formatting and diagnostics
| Keys | Action |
|---|---|
Shift+Alt+F |
Format Document |
F8 |
Go to Next Error |
Shift+F8 |
Go to Previous Error |
Ctrl+P only works in Code mode. Ctrl+F and Ctrl+Alt+F are Monaco native overlays - not intercepted by the app shell. Ctrl+H (Find and Replace) is the default Monaco binding on Windows but collides with "Hide Application" on macOS; use Ctrl+Alt+F instead for consistency across platforms.
Fleet: background session shortcuts
Fleet shortcuts only fire in Code mode unless noted.
| Keys | Action |
|---|---|
Ctrl+Shift+F |
Toggle Fleet panel |
Ctrl+Shift+N |
New background session (Code mode) / New chat session (Chat mode) |
Ctrl+Alt+N |
New background session (Code mode) / New chat session (Chat mode) |
Ctrl+Alt+1 – Ctrl+Alt+9 |
Switch to fleet session N |
Ctrl+Shift+W |
Close active fleet session (with confirmation) |
Ctrl+W closes an editor tab. Ctrl+Shift+W closes the active fleet session - the extra Shift is intentional to prevent accidental session termination.
FIM autocomplete (ghost text)
Fill-in-the-Middle completions appear as inline ghost text in the Monaco editor while you type.
| Keys | Action |
|---|---|
Tab |
Accept the full suggestion |
Ctrl+Right |
Accept one word at a time |
Esc |
Dismiss without accepting |
Completions trigger automatically after a short debounce. The FIM model is auto-detected from installed models; assign a specific model at Settings → Models → My Models → FIM.
Models with native FIM tokens: qwen2.5-coder, codellama, deepseek-coder, codestral, starcoder, starcoder2, codegemma, stable-code. qwen3-coder uses prompt-injection fallback.
Tab and Ctrl+Right only accept ghost text when a suggestion is visible. When no suggestion is shown, Tab inserts a literal tab.
Terminal shortcuts
Panel control (work from any focus point)
| Keys | Action |
|---|---|
| `Ctrl+`` | Toggle terminal panel open/closed |
| `Ctrl+Shift+`` | Maximize / restore terminal panel |
Ctrl+Shift+T |
Open a new terminal tab (opens the terminal if closed) |
When the terminal has focus
| Keys | Action |
|---|---|
Ctrl+F |
Open terminal output search bar |
Ctrl+I |
Toggle AI Assist overlay (command generator) |
Ctrl+↑ |
Jump to previous command block (OSC 133 semantic marker) |
Ctrl+↓ |
Jump to next command block |
Inside the AI Assist overlay (Ctrl+I)
| Keys | Action |
|---|---|
Enter |
Run the generated command |
Tab |
Enter edit mode to modify the command before running |
Esc |
Close overlay without running |
↑ / ↓ |
Browse last 10 generated commands |
Ctrl+F in the terminal opens terminal output search - distinct from Ctrl+Shift+F (project file search). Ctrl+I and block-navigation only fire when the terminal has focus. The AI Assist generator scopes commands to the current working directory.
Slash commands - built-in
Type / in any chat or AI panel input. A autocomplete menu appears with all available commands.
| Command | What it does |
|---|---|
/export |
Export the current conversation as a Markdown file (Chat mode only; opens a native save dialog) |
/clear |
Clears the input field |
/help |
List the available slash commands (shown in a toast). |
/mode ask|plan|act |
Set the Agent panel's permission mode. Only affects the Agent panel - Research, Debug, and Advisor are always read-only. |
/compact |
Summarize older conversation history to free context space. Works in both Chat and Code mode. Shows a toast with the count of messages summarized. |
/preview [url] |
Open the Preview tab. No argument opens the port picker (3000 / 5173 / 8080 / 4200). /preview localhost:5173 jumps straight to that URL. |
/map |
Open the Bodega Map (file-dependency graph for the open project). Respects the ui.code_map_enabled setting. |
/reset and /model are not registered commands. Typing them shows a toast listing the actual available commands (the same list /help prints).
/export shows an info toast instead of exporting when used in Code mode.
Slash commands - skill triggers
Ten built-in skills ship as SKILL.md files. Their triggers pass through to the backend LLM as structured workflow invocations - they're not handled client-side.
| Trigger | What it does |
|---|---|
/commit |
Stage changes and create a conventional git commit (requires shell tool; runs git status → diff → add → commit) |
/debug |
Trace an error, find root cause, suggest fix |
/docs |
Write or update documentation for selected code |
/explain |
Explain what selected code does |
/generate |
Generate code from a description |
/perf |
Profile and identify performance bottlenecks |
/refactor |
Clean up and restructure code |
/review |
Code review with Critical / Warnings / Suggestions breakdown (one file at a time, most recently changed) |
/security |
Scan for security issues |
/test |
Generate tests for selected code |
Skill triggers load from the backend on startup. Disabling a skill in Settings → Extensions → Skills removes its trigger from the autocomplete list. You can define custom skills there too; user-created skills live in ~/.bodega/skills/<name>/SKILL.md.
/review (the skill) is distinct from the Git panel "Review" button. The skill reads a recent project file; the button reviews the current git diff using your LLM.
Command Palette
- Press
Ctrl+Shift+Pto open. - Type any part of the action name - fuzzy matching works. For example,
ter maxmatches "Toggle Terminal Maximize". - Press
Enteror click an action to execute.Esccloses without acting.
Actions grouped by category:
- Navigation: Switch to Chat Mode (
Ctrl+1), Switch to Code Mode (Ctrl+2), Toggle Settings Panel (Ctrl+,), Show Usage Panel, Show Agents Panel - Terminal: Toggle Terminal (
Ctrl+\``), Toggle Terminal Maximize (Ctrl+Shift+`), New Terminal Tab (Ctrl+Shift+T`) - View: Toggle Sidebar (
Ctrl+B), Reload Window (Ctrl+R), Show Keyboard Shortcuts (Ctrl+/) - Panels: Debug Panel (
Ctrl+Shift+E) - Editor: Toggle File Explorer (
Ctrl+Shift+B), Close Active Editor Tab (Ctrl+W), Go to Line (Ctrl+G), Toggle Split Editor (Ctrl+\\) - Search: Search in Files (
Ctrl+Shift+F), Go to File... (Ctrl+P) - Source Control: Open Source Control (
Ctrl+Shift+G)
The Command Palette lists "Focus File Explorer" as Ctrl+Shift+B (toggle Bodega Panel). Ctrl+Shift+E is Debug Panel, not File Explorer - an older label that was corrected in a post-beta.23 audit.
Rebinding shortcuts
18 shortcuts can be rebound and saved persistently.
- Go to Settings → Workspace → Keybindings. (This section only appears when Show advanced settings is enabled in the Settings sidebar.)
- Filter the list by action name or current key combination.
- Click any shortcut badge. It pulses with "Press keys..."
- Press the combination you want. If it conflicts with another bound action, a toast names the conflict and cancels capture.
- Press
Escto cancel without changing. - To restore a default: hover the entry and click Reset.
Custom bindings are saved to the editor.keybindings setting as JSON. Changes require an app restart to take full effect.
Rebindable shortcuts by category:
| Category | Shortcuts |
|---|---|
| Navigation | Switch to Chat, Switch to Code, Toggle Settings, Toggle Sidebar, Command Palette, Quick Open File, Keyboard Shortcuts |
| Editor | Save File, Close Tab, Go to Line, Format Document, Next Error, Previous Error, Search in Files, Toggle Changes |
| Terminal | Toggle Terminal, Maximize Terminal, New Terminal Tab |
| Git | Toggle Git Panel |
Shortcuts handled at the OS level (Ctrl+C, Ctrl+V) cannot be remapped.
Git panel: AI code review (beta.26)
The Git panel has a Review button that sends the current diff to your LLM and returns a structured review grouped under Critical / High / Suggestions headings.
- Open the Git panel with
Ctrl+Shift+Gor click the branch name in the status bar. - Click Review (in the panel header actions row, next to Generate and Stage All).
- Review output appears inline above the file list. Dismiss it with the X button.
The review uses the model assigned to the explain role (the same model used for code explanations in the editor). Large diffs are capped at 14,000 characters; a truncation note appears in the output if the diff is cut.
When the working tree is dirty, the review covers staged + unstaged changes (the pre-commit case). When the working tree is clean, it falls back to the branch-vs-base diff (the PR scope).
Requires an open project folder. Returns an error if the folder isn't a git repository or has no changes.
Claude Fast Mode (beta.26)
Fast Mode disables extended thinking on Anthropic Claude models globally. It does not change the model - it removes the extended thinking overhead so responses come back faster.
Enable: the Fast toggle in the message composer (next to the reasoning control; shown only for Claude models).
The per-message reasoning control in the composer pill still wins. If you set reasoning to Low / Medium / High for a specific message, that overrides Fast Mode for that message only.
Fast Mode has no effect on non-Claude models. The setting key is llm.claude_fast_mode (boolean, default false).
Custom agents (beta.26)
You can define named agents with a custom system prompt, pinned model, tool allowlist, read-only filesystem flag, and iteration cap.
Create an agent:
- Go to Settings → AI → Custom Agents. (Requires Show advanced settings.)
- Click New Agent.
- Fill in: name, optional description, system prompt, model override (blank = active model), tool allowlist, read-only filesystem toggle, max iterations.
Activate an agent:
- In Code mode, the Agent panel header shows a profile picker (robot icon with the current agent name).
- Click it to see a dropdown with Default and your custom agents.
- Select one - it applies to the next message and persists until you switch back to Default.
- The picker is hidden when you have no custom agents.
The tool allowlist narrows available tools - it cannot grant access to tools not available to the default agent. Custom agents are distinct from the built-in skills (/commit, /debug, etc.), which are managed via Settings → Extensions → Skills.
ACP server: Bodega as an agent (beta.26)
Bodega One can run as an ACP (Agent Client Protocol) server so external editors - like Zed - can drive it as an AI agent over stdio.
Start the server:
bodega --acp
Bodega starts in headless JSON-RPC mode on stdio. No Electron window appears.
Protocol methods: initialize (advertises capabilities + tool list), session/new (creates a session, confines the working directory), session/prompt (runs one agentic turn), session/cancel.
Connecting external ACP agents to Fleet (Claude Code, Gemini CLI, Codex, Cursor): Settings → Extensions → ACP Agents. Each agent needs its binary installed and an API key (or login auth for Cursor). The section shows install hints and key fields for each supported agent.
CWD confinement is enforced - session/new validates that the requested working directory is within your allowed projects directory. Claude Code requires an interactive /login before use outside of Bodega; authenticate once before running Fleet.
Managed embedding server + GGUF picker (beta.26)
Bodega can manage the llama-server --embedding process automatically (port 8081), and the Embeddings settings show a dropdown of your installed GGUFs so you don't have to type a path.
Set up managed embeddings:
- Go to Settings → Models and scroll to the Codebase Embeddings section (or search "embeddings").
- Select llama.cpp as the provider.
- Enable Let Bodega manage the embedding server.
- Pick a GGUF from the dropdown - it lists everything installed via Models → llama.cpp → Discover. Or type a manual path in the text field below.
- Set the port (default 8081).
Bodega starts the server lazily on the first index build. If the model path is empty with managed mode on, Bodega points at any server you're already running.
Recommended embedding models: nomic-embed-text, BGE series.
The llama.cpp binary must be installed (Settings → Models → llama.cpp) for managed mode to work. The embedding server (port 8081) and the chat llama-server (port 8080) are separate processes.
Bodega Map
Bodega Map is an interactive dependency graph of your codebase. Nodes are files; edges are imports. It runs in Code mode only.
Open the Map:
- Activity Bar (left sidebar) → Map icon
- Command Palette → "Open Codebase Map"
- Type
/mapin any AI panel input
Requires the Dockview layout engine (Settings → Layout → Dockview). In Legacy layout, the Map falls back to an editor tab.
Interactions:
- Click a node to open the detail drawer (imports, exports, relationships).
- Explain this module in the drawer - your LLM writes a plain-English summary, cached by file content hash.
- Toolbar model picker - choose which model writes explanations (blank = active model).
- Generate Map button - bulk-explains all visible files (4 concurrently, with live progress and a cancel button).
- Ask the Map bar at the bottom - free-form questions answered via RAG over your codebase embeddings.
Staleness: amber dots on nodes mean the cached explanation is out of date (file content changed since last generation). The drawer badge shows the stale count.
"Ask the Map" uses two models: a chat model for the answer and an embeddings model for retrieval. Configure the embeddings model at Settings → Models → Codebase Embeddings. The first question triggers the index build, which may take a few seconds.
What the in-app cheat sheet covers
Press Ctrl+/ to open the Keyboard Shortcuts overlay. It shows four groups: General, Terminal, Editor (Code Mode), and Fleet - Background Sessions.
The overlay does not list AI panel shortcuts (Ctrl+L, Ctrl+Shift+R/E/A/I), slash commands, or rebindable shortcuts - those are covered here and in Settings → Workspace → Keybindings.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Ctrl+1 | Switch to Chat mode |
| Ctrl+2 | Switch to Code mode |
| Ctrl+, | Toggle Settings panel |
| Ctrl+Shift+P | Command Palette |
| Ctrl+/ | Keyboard Shortcuts overlay |
| Ctrl+B | Toggle primary sidebar (chat list in Chat; file tree in Code) |
| Ctrl+Shift+B | Toggle Bodega Panel (right-hand AI column, Code mode) |
| Esc | Dismiss topmost overlay or panel |
| Ctrl+L | Open Agent panel (Code mode) |
| Ctrl+Shift+R | Open Research panel (Code mode) |
| Ctrl+Shift+E | Open Debug panel (Code mode) |
| Ctrl+Shift+A | Open Advisor panel (Code mode) |
| Ctrl+Shift+I | Switch to Context tab in Bodega Panel (Code mode) |
| Ctrl+Shift+D | Toggle Changes panel (Code) / Context Inspector (Chat) |
| Ctrl+S | Save current file |
| Ctrl+W | Close active editor tab |
| Ctrl+Tab | Next editor tab |
| Ctrl+Shift+Tab | Previous editor tab |
| Ctrl+\ | Toggle split editor |
| Ctrl+P | Quick File Open (Code mode) |
| Ctrl+G | Go to Line (Code mode) |
| Ctrl+F | Find in current file / terminal output search (when terminal focused) |
| Ctrl+Alt+F | Find and Replace |
| Ctrl+Shift+F | Toggle Fleet panel |
| Ctrl+D | Select next occurrence |
| Alt+← | Navigate back in file history |
| Alt+→ | Navigate forward in file history |
| Ctrl+K | Toggle Inline Command Bar |
| Ctrl+Shift+K | Fix Selected Code |
| Ctrl+Shift+G | Toggle Git panel |
| Alt+B | Toggle git blame annotations |
| Shift+Alt+F | Format Document |
| F8 | Go to Next Error |
| Shift+F8 | Go to Previous Error |
| Ctrl+` | Toggle terminal panel |
| Ctrl+Shift+` | Maximize / restore terminal panel |
| Ctrl+Shift+T | New terminal tab |
| Ctrl+I | Toggle terminal AI Assist overlay (terminal focus required) |
| Ctrl+↑ | Jump to previous command block (terminal focus required) |
| Ctrl+↓ | Jump to next command block (terminal focus required) |
| Tab | Accept full FIM ghost text suggestion |
| Ctrl+Right | Accept FIM suggestion one word at a time |
| Ctrl+Shift+N | New background session (Code) / New chat session (Chat) |
| Ctrl+Alt+N | New background session (Code) / New chat session (Chat) |
| Ctrl+Alt+1..9 | Switch to fleet session N |
| Ctrl+Shift+W | Close active fleet session |
This page mirrors the in-app docs hub for app version 1.0.0-beta.26.1. Found something unclear or out of date? Tell us on Discord. New here? Download the free beta and follow along.