Releases: marimo-team/marimo
0.3.10
What's Changed
Quality-of-life improvements to mo.ui.file
, and misc. bug fixes.
- fix: jedi stack overflow bug by @akshayka in #1066
- pip install openai in docs by @akshayka in #1068
- fix: sort routes in create_asgi_app by @mscolnick in #1067
- Better styling of file upload area by @akshayka in #1070
- fix: add mapping for cv2 module by @akshayka in #1074
- Fix: close pdb inputs after resolved by @akshayka in #1076
- improvement: mo.ui.file upload confirmation, removal by @akshayka in #1077
- chore: silence some type errors by @akshayka in #1079
- 0.3.10 by @akshayka in #1081
Full Changelog: 0.3.9...0.3.10
0.3.9
What's Changed
New Features!
- 🤖 AI Suggestions: Bring your own OpenAI API key to unlock AI-powered suggestions!
![image](https://private-user-images.githubusercontent.com/1994308/319445597-06c5be42-33f8-4277-99a9-abeb1c3c7401.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg5NTA3MjYsIm5iZiI6MTcxODk1MDQyNiwicGF0aCI6Ii8xOTk0MzA4LzMxOTQ0NTU5Ny0wNmM1YmU0Mi0zM2Y4LTQyNzctOTlhOS1hYmViMWMzYzc0MDEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjFUMDYxMzQ2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDYwY2JlY2IxZWRiZDBiZDM5MTYwY2IwNzg1Y2FkZjhhNWY3YjQ5MjRkMjUwOWU3YzVhMDU2NmVmZGU3ODc0ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.TS6qowKMfL35ezVyLMsmO8XXeAnVgCkM0h05pm2DFx4)
Get started by updating your ~/.marimo.toml
config file:
[ai.open_ai]
# Get your API key from https://platform.openai.com/account/api-keys
api_key = "sk-..."
# Choose a model, we recommend "gpt-3.5-turbo"
model = "gpt-3.5-turbo"
# Change the base_url if you are using a different OpenAI-compatible API
base_url = "https://api.openai.com"
Read the docs to learn more.
Lazy evaluation/rendering of components The new library function mo.lazy()
lets you defer the computation and rendering of components, especially useful if you have expensive components that are hidden by default (e.g., in a tab or accordion).
All changes
- chore(deps): update dependency typescript to ^5.4.3 by @renovate in #1044
- fix(deps): update dependency react-resizable-panels to v2.0.16 by @renovate in #1042
- chore(deps): update all eslint dependencies by @renovate in #1043
- fix: pyodide additional remounting by @mscolnick in #1046
- fix: dont allow renaming to '.' or '..', show dotfiles by @mscolnick in #1047
- fix: allow removing Grid layout by @mscolnick in #1048
- improvement: click hourglass to move view to current cell by @fuenfundachtzig in #1040
- feat: model/base-url settings for AI completion, bring out of experimental by @mscolnick in #1049
- feat: editor placeholder for AI prompt by @mscolnick in #1057
- feat: mo.lazy by @mscolnick in #1052
- fix: guard against modules that don't have a
__spec__
attr by @akshayka in #1058 - fix: set event loop policy in create_asgi_app by @akshayka in #1060
- chore(deps): update dependency vite to v5.1.7 [security] by @renovate in #1054
- fix: resuming when auto-instantiate is false by @akshayka in #1061
- improvement: update ai system prompt to be mpl aware by @akshayka in #1062
- 0.3.9 by @akshayka in #1063
Full Changelog: 0.3.8...0.3.9
0.3.8
What's Changed
Thanks @riyavsinha and @fuenfundachtzig for your contributions -- welcome to the marimo family!!
Highlights.
- 📦 Pixi support! This release adds support for installing packages using the Pixi package manager.
- 🌐 Query parameters! Use
mo.query_params()
to access the URL query parameters; this makes it possible to parametrize notebooks when sharing. - ⌨ Improved keyboard navigation! Open the cell menu with
Cmd/Ctrl+p
-- no mouse clicks required -- and useCmd/Ctrl+Shift+m
to toggle markdown view on and off.
All changes.
- fix: one source of truth for language adapter state by @mscolnick in #1027
- feat: allow deleting file from the file explorer by @mscolnick in #1023
- feat: add config actions to Command Pallete by @mscolnick in #1028
- fix: stale editor view in cell action buttons by @akshayka in #1029
- feat: enable toggling to md mode automatically via mod-shift-m by @riyavsinha in #1021
- fix: command palette shouldn't show NOOP-ed hotkeys by @akshayka in #1032
- feat: mo.query_params by @mscolnick in #1006
- avoid server error when encountering broken symlinks by @fuenfundachtzig in #1034
- feat: add pixi package manager by @akshayka in #1035
- 0.3.8 by @akshayka in #1036
New Contributors
- @riyavsinha made their first contribution in #1021
- @fuenfundachtzig made their first contribution in #1034
Full Changelog: 0.3.7...0.3.8
0.3.7
What's Changed
- fix local file reading for mo.audio by @akshayka in #1020
- improvement: Cmd+p to open cell actions , restore focus back to cell by @mscolnick in #1024
- feat: support media in file viewer, allow editing files by @mscolnick in #1022
- Remove accidental change to intro.py ... by @akshayka in #1025
- 0.3.7 by @akshayka in #1026
Full Changelog: 0.3.6...0.3.7
0.3.6
What's Changed
- improvement: update hash in url when running in wasm by @mscolnick in #1008
- fix: don't crash kernel when package managers are missing by @akshayka in #1009
- fix: package versions in envinfo by @akshayka in #1010
- improvement: add poetry as a package manager by @akshayka in #1011
- dont lock gh prs after merge by @akshayka in #1015
- fix: more defensive restart in wasm by @mscolnick in #1018
- send delete cell network request in cell action button by @akshayka in #1017
- 0.3.6 by @akshayka in #1019
Full Changelog: 0.3.5...0.3.6
0.3.5
What's Changed
This release includes contributions from several contributors -- thanks @wasimsandhu , @dmadisetti , and @deepyaman!
Highlights. This release includes a new public API for programmatically running multiple apps (in run
/read-only mode) -- this lets you create multi-page apps out of marimo notebooks, as well as seamlessly serve marimo apps as part of, eg, a larger FastAPI app.
Docs: https://docs.marimo.io/guides/deploying/programmatically.html
Example:
from typing import Annotated, Callable, Coroutine
from fastapi.responses import HTMLResponse, RedirectResponse
import marimo
from fastapi import FastAPI, Form, Request, Response
# Create a marimo asgi app
server = (
marimo.create_asgi_app()
.with_app(path="", root="./pages/index.py")
.with_app(path="/dashboard", root="./pages/dashboard.py")
.with_app(path="/sales", root="./pages/sales.py")
)
# Create a FastAPI app
app = FastAPI()
app.add_middleware(auth_middleware)
app.add_route("/login", my_login_route, methods=["POST"])
app.mount("/", server.build())
# Run the server
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
All changes.
- Deduplicate code completion form description field by @deepyaman in #991
- feat: Limit maximum selections in mo.ui.multiselect by @wasimsandhu in #996
- bug fix: support env / status without pip (#992) by @dmadisetti in #999
- fix(deps): update dependency katex to v0.16.10 [security] by @renovate in #1000
- improvement: use url hash instead of query param by @mscolnick in #1001
- feat: create_asgi_app to programatically run marimo apps by @mscolnick in #1002
- 0.3.5 by @akshayka in #1007
New Contributors
- @deepyaman made their first contribution in #991
- @wasimsandhu made their first contribution in #996
Full Changelog: 0.3.4...0.3.5
0.3.4
What's Changed
Highlights
Automatic package discovery and installation. marimo now automatically detects when you're missing packages in your Python environment, and gives you the option to install them using pip
, uv
, or rye
. When installation is successful, cells depending on the packages are automatically re-run!
marimo will alert you to missing packages:
and keeps you updated on installation progress:
This feature makes it really easy to get started with new notebooks and projects, especially when working in a fresh Python environment: just install packages as you go!
Visualize arrays and matrices with mo.image()
! mo.image()
can now visualize NumPy arrays, torch Tensors, and Scipy sparse matrices as images.
- fix: try to load worker from file, and fallback to inline by @mscolnick in #959
- fix: load worker from url again by @mscolnick in #960
- fix: update user config in wasm to fallback to config from html by @mscolnick in #967
- mo.image(): visualize NumPy array, torch.tensor, scipy.sparse matrix by @dmadisetti in #964
- [Snyk] Upgrade copilot-node-server from 1.19.2 to 1.20.1 by @mscolnick in #963
- feat: package installation from pypi by @akshayka in #961
- improvment: consistent error toasting on all request by @mscolnick in #969
- feat: configurable package manager + uv, rye support by @akshayka in #971
- fix: graceful shutdown for uvicorn==0.29.0 by @akshayka in #972
- improvements for running as a script by @akshayka in #973
- faq: document how to make marimo accessible on all network interfaces by @akshayka in #980
- Fix mpl interactive: remove asyncio.run() by @akshayka in #981
- tests: add data-testids to components by @mscolnick in #983
- feat: cell actions in the command-pallete by @mscolnick in #984
- improvement: configure package manager in the missing package alert by @akshayka in #985
- 0.3.4 by @akshayka in #986
New Contributors
- @dmadisetti made their first contribution in #964
Full Changelog: 0.3.3...0.3.4
0.3.3
What's Changed
Improvements and bug fixes
- improvement: patch urllib in bootstrap to support networking by @akshayka in #934
- dev release workflow for marimo python by @akshayka in #935
- dev release fixes by @akshayka in #936
- bump patch version for dev release by @akshayka in #937
- chore: add frontend dev release by @mscolnick in #939
- chore: add PR comment with dev url by @mscolnick in #940
- chore: pass marimo version to worker by @mscolnick in #941
- fix: add additional padding for scrollbar on resize by @mscolnick in #942
- fix: __ for cell names in marimo convert by @akshayka in #943
- fix: file upload should serialize raw bytes by @akshayka in #949
- chore: improves typings of webworker rpc by @mscolnick in #952
- fix: copy styles by @mscolnick in #953
- chore: fix comment on PR by @mscolnick in #954
- Revert "chore: improves typings of webworker rpc" by @mscolnick in #955
- Revert "Revert "chore: improves typings of webworker rpc"" by @mscolnick in #956
- 0.3.3 by @akshayka in #957
Full Changelog: 0.3.2...0.3.3
0.3.2
What's Changed
Bug fixes and improvements.
- improvement: patch
IPython.display.display
to callmo.output.append
by @akshayka in #919 - fix: pyodide interrupts by @akshayka in #921
- address review comments from previous pr by @akshayka in #922
- fix: fix keyboard controls with carousel by @mscolnick in #925
- fix: content layouting of elements in by @mscolnick in #926
- fix: render altair layered charts (dedupe selection params) by @mscolnick in #927
- fix: function calls in wasm, add error state to pyodide bootstrap by @mscolnick in #928
- fix: disable pdb patch in marimo run by @akshayka in #932
- 0.3.2 by @akshayka in #933
Full Changelog: 0.3.1...0.3.2
0.3.1
What's Changed
This release includes bug fixes.
- chore: _anywidget -> anywidget by @akshayka in #912
- fix: disable touch in carousel for UI element compatibility by @akshayka in #914
- fix: carousel global styles which fixes latex rendering by @mscolnick in #916
- fix: safari overflow on hover by @mscolnick in #917
- 0.3.1 by @akshayka in #918
Full Changelog: 0.3.0...0.3.1