Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
0.14.11 source code.tar.gz | 2025-07-15 | 123.5 MB | |
0.14.11 source code.zip | 2025-07-15 | 125.1 MB | |
README.md | 2025-07-15 | 9.8 kB | |
Totals: 3 Items | 248.7 MB | 0 |
This release adds command mode for cell navigation and a redesigned data editor. It also includes a breaking change to keyboard shortcuts. See full release notes below.
✨ Highlights
⌨️ Command mode
Many of you have told us that command mode was the one feature you missed most from Jupyter. We heard you, and we've built it into marimo.
Command mode lets you work at the cell level — navigating between cells, creating new ones, and applying operations to multiple cells at once. Press Escape
to enter command mode (the cell border turns blue), and press Enter
to return to edit mode.
Navigation and cell management:
- ↓
/↑
- Move between cells
- Enter
- Edit the selected cell
- a
/b
- Add a new cell above/below
- c
/v
- Copy and paste cells
- s
- Save notebook
- Ctrl/Cmd + ↑/↓
- Jump to top/bottom of notebook
- Shift + Enter
- Run cell and advance to next
Multi-cell selection:
- Shift + ↑/↓
- Select multiple cells
- Apply operations to all selected cells at once (hide, delete, disable, etc.)
For vim users:
When vim keybindings are enabled, command mode feels natural with familiar navigation:
- j
/k
- Move down/up
- gg
/G
- Jump to first/last cell
- Shift + j/k
- Extend selection
📊 Revamped data editor
The data editor plugin (mo.ui.data_editor
and mo.ui.dataframe
) has been totally upgraded.
Direct editing: - Paste from clipboard - Copy data from Excel or other sources and paste into cells - Column operations - Add, rename, or delete columns - Row deletion - Remove rows - No more limits - The 1000-row restriction is gone
Transformations: - Null value filtering - Filter by null/non-null values - Duplicate handling - Remove duplicates with control over which records to keep - Live updates - See changes as you edit - Improved performance - Upgraded grid engine handles large datasets
These improvements make the data editor feel more like a spreadsheet when you need it, while maintaining dataframe operations.
🚨 Breaking changes
- Remove Alt-` for completions (#5609)
Why this change: The Alt + ` shortcut for triggering code completions conflicted with system shortcuts on several platforms, particularly on macOS where it's used for window switching. This caused frustration for users who couldn't access completions reliably.
What to use instead: Code completions now work automatically as you type, providing a smoother experience. If you need to manually trigger completions, use Ctrl + Space
(or Cmd + Space
on macOS if not reserved by Spotlight), which is the standard shortcut across most code editors.
🔬 Preview features
- Add
ty
LSP (#5302)
✨ Enhancements
- Allow auto download to be configured globally (#5647)
- Add vim bindings for top/bottom cell navigation:
gg
andG
(#5636) - Better ollama configuration (#5644)
- Absolute positioning of button and enable select all rows (#5643)
- Data editor plugin v2 (#5514)
- Multi-cell selection (#5633)
- Use "i" to focus a cell from command mode when in vim keymap (#5632)
- Propagate
Ctrl+[
asEscape
to enter command mode with vim keybindings (#5635) - Start markdown cells with hidden code (#5627)
- Navigation, copy/paste, new cells hotkeys when on a cell (#5620)
- Better focus navigation between cell and cell-editor (#5614)
- Feat/add force capability on export (#5610)
- style/fix: add form tooltip inline for mo.dataframe (#5600)
- Set
scrollToView
to smooth (#5604) - Add default_table_max_columns to user config (#5598)
- Autofocus generate with AI (#5592)
- Add quick actions to change cell output area (#5596)
- Scroll table with keyboard navigation (#5595)
- Configurable skew protection in create_asgi_app, default False (#5585)
- Display failed connection information + more graceful backoff. (#5584)
- Gracefully handle BaseExceptions from downstream df libraries (#5576)
- Show additional loading indicator after 5 seconds (#5580)
- Remove title for table cell (#5574)
- Allow select on table cells (#5565)
- fix/improvement: add cursor introspection for dbapi spec (#5557)
- Add null and non-null filter for dataframes (#5548)
- Don't auto scroll when sending cell to top/bottom from menu (#5544)
- Add tool-chaining, send back signature (anthropic), add tool ui in chat-panel (#5469)
- Use upstream signature formatting code for pylsp (#5214)
- Remove duplicate import in
data_explorer
docs (#5060) - Build plots and charts from tables, with Python code generation (#5452)
- Add chart builder / chart-to-cell functionality within table (#5392)
🐛 Bug fixes
- Lsp syncing fixes for hover and completion (#5637)
- Enable cache decoration on class methods (#5630)
- Variable kwargs did not invalidate cache (#5613)
- Fix handling of class attribute references for reactive variables (#5616)
- Patch matplotlib interactive to not steal focus on mount (#5586)
- Rename dataframe transforms (#5599)
- Fix overflow on footer styles (#5593)
- Expand checks around decorated functions to enable functools usage (#5582)
- Cast elements in list of enums to string for polars (#5572)
- Detect datetime and handle timezones for pandas (#5573)
- Make reactivity options in footer responsive for small screen widths (#5563)
- Opening a notebook from the sidebar when in a subpath (#5561)
- Fix deepcopy in from_anywidget.py (#5134)
📚 Documentation
- Explain the difference between gho and ghp tokens (#5639)
- Update cell docstring to better express current abillities (#5607)
- Docs for Windsurf upgrade (#5587)
- Add table panels and chart builder docs (#5533)
📝 Other changes
- DRY up logic between vim keymap 'i' binding (#5645)
- consolidate / cleanup cell keyboard props (#5631)
New Contributors
- @jmsmdy made their first contribution in #5134
- @rubiagatra made their first contribution in #5610
- @YDX-2147483647 made their first contribution in #5639
Full Changelog: https://github.com/marimo-team/marimo/compare/0.14.10...0.14.11