Viewing Shortcuts
Access the keyboard shortcuts reference:- Press
Ctrl/Cmd+Shift+Hto open the hotkeys menu - View shortcuts directly in the settings menu (⚙️ → Hotkeys)
Essential Shortcuts
These shortcuts work in both default and vim modes:Cell Operations
| Action | Shortcut (Mac) | Shortcut (Windows/Linux) |
|---|---|---|
| Run cell | Cmd+Enter | Ctrl+Enter |
| Run cell and create below | Shift+Enter | Shift+Enter |
| Create cell below | Cmd+B | Ctrl+B |
| Create cell above | Cmd+Shift+B | Ctrl+Shift+B |
| Delete cell | Cmd+Backspace | Ctrl+Backspace |
| Move cell up | Cmd+Shift+Up | Ctrl+Shift+Up |
| Move cell down | Cmd+Shift+Down | Ctrl+Shift+Down |
| Focus cell above | Ctrl+Up | Ctrl+Up |
| Focus cell below | Ctrl+Down | Ctrl+Down |
Code Editing
| Action | Shortcut (Mac) | Shortcut (Windows/Linux) |
|---|---|---|
| Format cell | Cmd+Shift+F | Ctrl+Shift+F |
| Trigger completion | Tab or Cmd+Space | Tab or Ctrl+Space |
| AI assistance | Cmd+Shift+E | Ctrl+Shift+E |
| Find and replace | Cmd+F | Ctrl+F |
| Go to definition | F12 or Cmd+Click | F12 or Ctrl+Click |
| Undo | Cmd+Z | Ctrl+Z |
| Redo | Cmd+Shift+Z | Ctrl+Shift+Z |
Global Actions
| Action | Shortcut (Mac) | Shortcut (Windows/Linux) |
|---|---|---|
| Save notebook | Cmd+S | Ctrl+S |
| Command palette | Cmd+K | Ctrl+K |
| Run all stale cells | Cmd+Shift+R | Ctrl+Shift+R |
| Interrupt execution | Cmd+I | Ctrl+I |
| Toggle sidebar | Cmd+\ | Ctrl+\ |
| Toggle terminal | Cmd+J | Ctrl+J |
| Show help | Cmd+Shift+H | Ctrl+Shift+H |
Vim Mode
marimo supports vim keybindings for modal editing, bringing familiar vim workflows to notebook editing.Enabling Vim Mode
Via UI:- Open settings (⚙️)
- Navigate to “Keymap” tab
- Select “vim” preset
marimo.toml
Vim Mode Basics
Vim mode provides three modes:- Normal mode: Navigate and manipulate cells (press
Escto enter) - Insert mode: Edit cell content (press
i,a,o, etc. to enter) - Visual mode: Select text (press
vin normal mode)
Vim Keybindings
When vim mode is enabled: Normal mode (cell navigation):| Key | Action |
|---|---|
j | Focus cell below |
k | Focus cell above |
dd | Delete cell |
yy | Copy cell |
p | Paste cell below |
o | Create cell below and enter insert mode |
O | Create cell above and enter insert mode |
Shift+J | Move cell down |
Shift+K | Move cell up |
gg | Go to first cell |
G | Go to last cell |
Ctrl+D | Scroll down |
Ctrl+U | Scroll up |
- Standard vim editing commands work within cells
Escreturns to normal modeCtrl+[also exits to normal mode
venters character-wise visual modeVenters line-wise visual modeCtrl+Venters block visual mode
Custom vimrc
Load custom vim keybindings from a vimrc file:pyproject.toml
marimo.toml
.vimrc
Not all vim features are supported. marimo implements core vim navigation and editing commands optimized for notebook workflows.
Custom Keybindings
Customize any shortcut to match your preferences.Via Settings Menu
- Open settings (⚙️)
- Navigate to “Hotkeys” tab
- Click on a shortcut to edit
- Press your desired key combination
- Save changes

Via Configuration File
Edit keybindings in yourmarimo.toml:
marimo.toml
- Use
+to combine modifier keys - Modifiers:
Cmd,Ctrl,Shift,Alt - Use
Cmdon Mac,Ctrlon Windows/Linux - Special keys:
Enter,Space,Escape,Tab,Backspace,Delete - Arrow keys:
Up,Down,Left,Right - Function keys:
F1,F2, …,F12
Available Actions
Here are all customizable keyboard shortcuts:Cell Actions
Cell Actions
| Action | Default (Mac) | Default (Win/Linux) | Description |
|---|---|---|---|
cell.run | Cmd+Enter | Ctrl+Enter | Execute cell |
cell.runAndNewBelow | Shift+Enter | Shift+Enter | Run and create below |
cell.runAndNewAbove | - | - | Run and create above |
cell.createBelow | Cmd+B | Ctrl+B | New cell below |
cell.createAbove | Cmd+Shift+B | Ctrl+Shift+B | New cell above |
cell.delete | Cmd+Backspace | Ctrl+Backspace | Delete cell |
cell.moveUp | Cmd+Shift+Up | Ctrl+Shift+Up | Move cell up |
cell.moveDown | Cmd+Shift+Down | Ctrl+Shift+Down | Move cell down |
cell.moveLeft | Cmd+Shift+Left | Ctrl+Shift+Left | Move to left column |
cell.moveRight | Cmd+Shift+Right | Ctrl+Shift+Right | Move to right column |
cell.focusUp | Ctrl+Up | Ctrl+Up | Focus cell above |
cell.focusDown | Ctrl+Down | Ctrl+Down | Focus cell below |
cell.sendToTop | - | - | Move to top |
cell.sendToBottom | - | - | Move to bottom |
cell.format | Cmd+Shift+F | Ctrl+Shift+F | Format code |
cell.aiCompletion | Cmd+Shift+E | Ctrl+Shift+E | AI assistance |
cell.hideCode | - | - | Toggle code visibility |
cell.viewAsMarkdown | - | - | Render as markdown |
cell.fold | - | - | Fold cell |
cell.unfold | - | - | Unfold cell |
cell.splitCell | - | - | Split cell at cursor |
cell.complete | Tab, Cmd+Space | Tab, Ctrl+Space | Trigger completion |
cell.findAndReplace | Cmd+F | Ctrl+F | Find and replace |
cell.goToDefinition | F12 | F12 | Go to definition |
cell.cellActions | - | - | Open cell actions |
cell.undo | Cmd+Z | Ctrl+Z | Undo |
cell.redo | Cmd+Shift+Z | Ctrl+Shift+Z | Redo |
cell.selectNextOccurrence | Cmd+D | Ctrl+D | Multi-cursor select |
Global Actions
Global Actions
| Action | Default (Mac) | Default (Win/Linux) | Description |
|---|---|---|---|
global.save | Cmd+S | Ctrl+S | Save notebook |
global.commandPalette | Cmd+K | Ctrl+K | Open command palette |
global.runStale | Cmd+Shift+R | Ctrl+Shift+R | Run stale cells |
global.interrupt | Cmd+I | Ctrl+I | Interrupt execution |
global.toggleSidebar | Cmd+\ | Ctrl+\ | Toggle sidebar |
global.toggleTerminal | Cmd+J | Ctrl+J | Toggle terminal |
global.showHelp | Cmd+Shift+H | Ctrl+Shift+H | Show shortcuts |
global.formatAll | - | - | Format all cells |
global.foldCode | - | - | Fold all cells |
global.unfoldCode | - | - | Unfold all cells |
global.hideCode | - | - | Hide all code |
global.focusTop | - | - | Focus first cell |
global.focusBottom | - | - | Focus last cell |
global.toggleMinimap | - | - | Toggle dataflow minimap |
global.toggleLanguage | - | - | Switch cell language |
Completion Actions
Completion Actions
| Action | Default | Description |
|---|---|---|
completion.moveUp | Up, Ctrl+P | Previous suggestion |
completion.moveDown | Down, Ctrl+N | Next suggestion |
Markdown Actions
Markdown Actions
| Action | Default (Mac) | Default (Win/Linux) | Description |
|---|---|---|---|
markdown.bold | Cmd+B | Ctrl+B | Bold text |
markdown.italic | Cmd+I | Ctrl+I | Italic text |
markdown.code | Cmd+E | Ctrl+E | Inline code |
markdown.link | Cmd+K | Ctrl+K | Insert link |
markdown.orderedList | - | - | Ordered list |
markdown.unorderedList | - | - | Unordered list |
markdown.blockquote | - | - | Blockquote |
Productivity Tips
Master the command palette
Master the command palette
The command palette (
Cmd/Ctrl+K) provides quick access to all marimo actions:- Search for commands by name
- See keyboard shortcuts for each command
- Execute commands without remembering shortcuts
- Filter by category (cell, global, etc.)
- Type “format” to find formatting commands
- Type “run” to see execution options
- Type “fold” for code folding actions
Use multi-cursor editing
Use multi-cursor editing
Select multiple occurrences with
Cmd/Ctrl+D:- Place cursor on a variable name
- Press
Cmd/Ctrl+Dto select next occurrence - Continue pressing to select more occurrences
- Edit all at once
Cmd/Ctrl+Shift+L selects all occurrences at onceNavigate with cell focus shortcuts
Navigate with cell focus shortcuts
Combine shortcuts for workflows
Combine shortcuts for workflows
Create efficient workflows by chaining shortcuts:Add and run new cell:
Cmd/Ctrl+B(create below)- Type code
Shift+Enter(run and create next)
- Write initial code
Cmd/Ctrl+Shift+E(AI refactor)- Review and accept
Cmd/Ctrl+Shift+F(format all)Cmd/Ctrl+S(save)
Customize for your workflow
Customize for your workflow
Adapt shortcuts to match your most common actions:
marimo.toml
Conflicting Shortcuts
marimo detects and warns about conflicting keybindings:
- marimo shows a warning banner
- Click “View conflicts” to see which shortcuts conflict
- Reassign one of the conflicting shortcuts
- Conflicts are automatically resolved
Platform-Specific Behavior
marimo adapts shortcuts to your platform:macOS
Cmdis the primary modifier (Command/⌘)Ctrlused for navigation (Ctrl+Up/Down)- Some shortcuts also work with
Ctrlfor compatibility
Windows/Linux
Ctrlis the primary modifier- Windows:
Altbehaves likeOptionon Mac - Linux: Follows standard Linux desktop conventions
Auto-Detection
marimo automatically detects your platform and shows the appropriate shortcuts in the UI and help menu.Resetting Shortcuts
Restore default shortcuts: Reset individual shortcuts:- Open settings → Hotkeys
- Click the shortcut you want to reset
- Press the reset button
marimo.toml
[keymap] section to restore all defaults.
Accessibility
marimo provides keyboard accessibility features:- Full keyboard navigation: All features accessible without a mouse
- Screen reader support: Proper ARIA labels on interactive elements
- Focus indicators: Visual feedback for keyboard focus
- Skip links: Jump to main content quickly
If you encounter accessibility issues, please report them on GitHub or reach out on Discord.
Troubleshooting
Shortcuts not working
Shortcuts not working
Possible causes:
- Browser conflicts: Some browsers capture certain shortcuts
- Solution: Use marimo desktop app or try different browser
- OS shortcuts: Operating system may capture shortcuts
- Solution: Customize conflicting shortcuts in marimo
- Extension conflicts: Browser extensions may intercept shortcuts
- Solution: Disable extensions or use different shortcuts
- Open command palette (
Cmd/Ctrl+K) - Search for the action
- See if shortcut is listed
- Try executing from palette instead
Vim mode not responding
Vim mode not responding
Check configuration:Reload the page after changing vim mode settings.Ensure you’re in the correct mode:
- Press
Escto enter normal mode - Look for mode indicator (if visible)
- Try basic commands:
j,k,dd
Custom shortcuts not saving
Custom shortcuts not saving
Check file permissions:Ensure you have write permissions.Verify syntax:Restart marimo after manual config edits.
Related Documentation
- Vim Keybindings - Detailed vim mode documentation
- Configuration - Keymap configuration options
- Hotkeys Guide - Additional hotkey information
- Code Completion - Completion shortcuts