
marimo CLI 完全指南从 edit 到 export 的命令行工具箱【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimomarimo 是一个以纯 Python 文件形式存储、支持响应式执行与 SQL 查询的交互式笔记本框架而marimo命令行工具则是驱动这一切的入口。本文以仓库内 docs/cli.md 生成的 CLI 参考文档为主线结合 marimo/_cli/cli.py 及其子命令源码系统梳理marimo全部命令、参数与底层实现帮助你从双击图标升级为终端驱动的完整工作流编辑、运行、转换、导出、检查与配置。一、命令总览与全局选项marimoCLI 基于 Click 构建入口定义于 marimo/_cli/cli.py顶层命令组包含以下子命令命令作用marimo edit创建或编辑笔记本启动可交互的编辑服务器marimo new创建空白笔记本或用 AI 从提示词生成笔记本marimo run以只读应用模式运行笔记本marimo tutorial打开内置教程marimo recover从 JSON 恢复文件还原笔记本marimo convert将 Jupyter / Markdown / Python 脚本转换为 marimo 笔记本marimo export导出为 HTML、脚本、Markdown、ipynb、PDF、WASM HTMLmarimo config查看与描述配置marimo check静态检查与格式化 marimo 文件marimo development开发者工具OpenAPI、进程管理、预览等marimo shell-completion安装 bash/zsh/fish 自动补全marimo env打印环境信息所有命令共享四个全局选项源码见 marimo/_cli/cli.py-l, --log-level日志级别取DEBUG/INFO/WARN/ERROR/CRITICAL默认WARN-q, --quiet抑制标准输出-y, --yes对所有提示自动回答 yes便于非交互式运行-d, --development-mode开发模式会开启 DEBUG 日志并启用服务器自动重载。此外可通过--version查看版本号-h / --help查看帮助。查看版本会直接输出纯版本号如0.x.x方便脚本解析。二、marimo edit创建与编辑笔记本marimo edit是日常使用频率最高的命令用法marimo edit # 启动 marimo 笔记本服务器 marimo edit notebook.py # 创建或编辑 notebook.py marimo edit . # 以当前目录为工作区启动 cat notebook.py | marimo edit # 支持 Unix 管道风格从源码看edit 的实现 会依次完成从 stdin 读取内容Unix 管道、校验文件名、创建不存在的空文件、检查模块正确性、解析沙箱模式、检查共享内存可用性最后调用start()启动SessionMode.EDIT模式的服务器。常用参数参数默认值说明-p, --port自动分配绑定端口--host127.0.0.1绑定主机部署到公网时改为0.0.0.0--headlessFalse不自动打开浏览器--watchFalse监听文件变化在其他编辑器中保存后自动重载代码--base-url服务器基础路径必须以/开头且不能以/结尾例如/marimo--proxyNone反向代理地址若与--base-url路径冲突会直接报错校验逻辑见 cli_validators.py--token / --no-token启用会话式身份认证不设密码时自动生成随机 token--token-passwordNone指定认证 token 密码--token-password-fileNone从文件读取 token 密码传-表示从 stdin 读取与--token-password互斥--allow-originsNone允许的 CORS 来源可重复传入*表示全部--sandbox / --no-sandbox自动在隔离环境中运行依赖通过 PEP 723 内联元数据跟踪并自动安装要求安装 uv--trusted / --untrusted自动--untrusted时在 Docker 容器中运行远程托管的笔记本--timeoutNone全局超时无连接达到指定分钟数后关闭服务器浮点数--session-ttlNoneWebSocket 断开后等待多少秒关闭会话None表示不自动关闭--skew-protection / --no-skew-protection启用版本错位保护中间件防止前后端版本不一致引发问题--skip-update-checkFalse跳过新版本检查也可用环境变量MARIMO_SKIP_UPDATE_CHECK1关闭特殊工作模式从 URL 打开若NAME是 URLmarimo 会先把笔记本下载到临时文件再打开编辑目录传入目录会启动多文件工作区配合--sandbox时为每个笔记本创建独立 venv多文件沙箱要求安装pyzmq否则会提示marimo[sandbox]共享内存检查编辑模式依赖进程间共享内存若不可用会给出错误提示如 Docker 中需挂载/dev/shm并建议改用marimo run。三、marimo new新建与 AI 生成笔记本marimo new用于创建笔记本或借助 AI 从提示词生成marimo new # 创建空白笔记本 marimo new prompt.txt # 从文件中的提示词生成 marimo new Plot an interactive 3D surface with matplotlib. cat prompt.txt | marimo new # 支持从 stdin 读取提示词无提示词时启动EmptyWorkspace的编辑服务器有提示词时实现 会调用marimo._ai.text_to_notebook生成笔记本内容写入临时.py文件并注册atexit清理支持--port、--host、--headless、--token、--base-url、--sandbox、--timeout等与edit一致的参数。四、marimo run以只读应用模式运行marimo run把笔记本当作只读应用发布用户无法编辑代码适合分享与部署marimo run notebook.py marimo run folder another_folder # 多文件 / 画廊模式 marimo run app.py -- --arg value # 向笔记本传递 CLI 参数关键参数参数默认值说明--include-codeFalse是否把源码发送给客户端。默认不发送浏览器中无法查看代码--session-ttl120WebSocket 断开后等待秒数再关闭会话--watchFalse监听文件变化并重载应用安装 watchdog 时用它否则每秒轮询一次--check / --no-check启用运行前是否做静态检查多文件模式下显式指定--check会报错--show-tracebacks / --no-show-tracebacks自动异常时是否在弹窗中显示详细回溯--execute-opengraph-generatorsFalse对受信任的笔记本执行 OpenGraph 元数据生成器--redirect-console-to-browserFalse把控制台日志重定向到浏览器控制台--sandbox自动与edit相同的隔离执行语义run支持同时传入多个路径纯文件列表或目录会进入画廊模式FixedFilesWorkspace单一目录配合--watch则使用DirectoryWorkspace以便动态反映文件增删。多笔记本运行同样需要pyzmq。--之后的所有内容会原样传给笔记本通过parse_args解析后注入cli_args例如marimo run app.py -- --arg value中--arg value会成为笔记本的参数。五、marimo tutorial与marimo recover教程marimo tutorial intro marimo tutorial --help # 列出全部教程tutorial接收内置教程名称在tutorial_order中定义把教程模板写入临时文件后以编辑模式打开。恢复崩溃丢失的笔记本当前端与内核断开时marimo 会把未保存的单元格变更自动保存为 JSON 恢复文件。recover将该 JSON 还原为.py笔记本源码并打印到 stdoutmarimo recover notebook_recovery.json recovered_notebook.py实现上直接调用codegen.recover见 marimo/_ast/codegen.py。六、marimo convert导入既有笔记本convert支持三种输入格式实现见 marimo/_cli/convert/commands.py.ipynbJupyter 笔记本本地或 GitHub 托管转换时剥离输出.md/.qmd仅转换带{python}代码围栏的代码块.py若已是合法 marimo 笔记本则跳过否则按 py:percent 格式转换需要 jupytext保留顶层注释与 docstring。marimo convert your_nb.ipynb -o your_nb.py marimo convert your_nb.md -o your_nb.py marimo convert script.py -o your_nb.py不传-o时转换结果打印到 stdout可组合全局选项marimo -q -y convert script.py -o your_nb.py转换后建议marimo edit your_nb.py打开检查。注意由于 marimo 是响应式执行模型跨单元格修改变量的代码如多个单元格中修改同一个 DataFrame可能需要重构。七、marimo export导出与发布导出命令组由 marimo/_cli/export/commands.py 定义共 8 个子命令。导出时可通过--传递 CLI 参数给笔记本用--watch监听变更自动重新导出-f / --force强制覆盖已存在的输出文件否则会交互式询问。HTMLmarimo export html notebook.py -o notebook.html--include-code / --no-include-code默认包含是否把代码嵌入 HTML-o, --output不传时 HTML 打印到 stdout执行全部单元格后生成静态 HTML是发布到任意静态托管的常用方式。脚本marimo export script notebook.py -o notebook.script.py按拓扑序把笔记本拍平成单一 Python 脚本。包含顶层async代码的笔记本无法导出为脚本会抛出UnsupportedAsyncCodeError。Markdownmarimo export md notebook.py -o notebook.md导出为代码围栏式 Markdown 文档。--flavor指定 Markdown 风味取值见MarkdownFlavorName省略时由输出文件扩展名推断。Jupytermarimo export ipynb notebook.py -o notebook.ipynb--sorttopological默认或top-down排序单元格--include-outputs / --no-include-outputs默认关闭运行笔记本并把输出写入 ipynb需要安装nbformat。PDFmarimo export pdf notebook.py -o notebook.pdf--include-outputs / --include-inputs控制是否运行并包含输出、是否包含代码输入--webpdf / --no-webpdf默认用 Chromium 的 WebPDF 导出关闭时先尝试 pandoc TeX失败再回退 WebPDF--rasterize-outputs默认开启把 marimo 部件 HTML 与 Vega 输出栅格化为 PNG 回退--raster-scale为栅格截图缩放因子1.0–4.0默认 4.0--raster-server可选static默认更快或live输出依赖实时 Python 连接时使用--asslides推荐--as导出预设slides生成 reveal.js 幻灯片风格 PDF依赖nbformat、nbconvert栅格化还需要playwright缺失时会提示安装命令。WASMmarimo export html-wasm notebook.py -o notebook.wasm.html--moderun只读或edit可编辑必填--show-coderun 模式下是否默认显示代码--execute / --no-execute执行笔记本并内嵌输出作为预览与--watch互斥执行前还会用MW前缀规则做 WASM 兼容性 lint--include-cloudflare同时生成 Cloudflare Worker 配置index.js与wrangler.jsonc便于部署导出产物在浏览器中用 Pyodide 运行完全自包含但必须通过 HTTP 服务访问file://无法运行生成目录中还会写入.nojekyll文件避免 GitHub Pages 干扰资源解析本地预览可用python -m http.server --directory out_dir。八、marimo config配置管理配置命令组marimo/_cli/config/commands.py包含marimo config show # 显示当前生效配置 marimo config describe # 打印全部配置项的文档show先确保用户配置存在然后展示两部分——来自最近pyproject.toml的项目级覆盖如有与用户级配置均以高亮 TOML 输出并标注来源路径describe通过反射遍历marimo._config.config.MarimoConfig的类型注解与 docstring递归打印所有配置选项的类型与说明是编写配置文件的权威参考。九、marimo check静态检查与格式化marimo check # 检查当前目录**/*.py、**/*.md、**/*.qmd marimo check notebook.py --fix # 自动修复 marimo check . --strict # 有警告即以非零退出码退出 marimo check --format json # 输出 JSON 诊断结果 marimo check --select MB,MR001 # 仅启用指定规则/前缀 marimo check --ignore MF004,MF007参数说明实现见 marimo/_cli/cli.py 的check命令--fix原地修复文件--unsafe-fixes启用可能改变代码行为的修复如删除空单元格--strict存在修复或问题时返回非零退出码CI 友好-v / -q是否打印详细消息默认详细JSON 格式下输出始终走 stdout--ignore-scripts忽略无法识别为 marimo 笔记本的文件--format full | json诊断输出格式--select/--ignore按规则码或前缀如MB、MR001、MF004覆盖配置逗号分隔。命令结束后会汇总Updated N files./Found N issues.并依据错误或--strict决定退出码。规则体系详见 marimo/_lint 目录与 docs/guides/lint_rules 文档。十、其他实用命令环境信息marimo env以 JSON 打印系统环境信息Python 版本、操作系统、依赖状态等排查问题时首选。Shell 自动补全marimo shell-completion根据$SHELL环境变量判断 shell输出对应的补全启用命令bash 写入.bashrczsh 写入.zshrcfish 写入.config/fish/completions/marimo.fish不支持的 shell 会报错。开发者工具marimo development隐藏命令组marimo development openapi打印完整 OpenAPI schema由msgspec与 Starlette 的SchemaGenerator动态生成见 marimo/_cli/development/commands.pymarimo development ps list/marimo development ps killall列出 / 杀掉本机所有 marimo 进程依赖 psutilmarimo development inline-packages用启发式方法从文件 import 推断 PyPI 包名并执行uv add --script内联到 PEP 723 元数据要求 uv标准库模块会被过滤marimo development print-routes打印服务器全部路由marimo development preview file.py --port 8080运行笔记本并把输出渲染为静态 HTML在本地 HTTP 服务器上预览。十一、非交互式与脚本化使用建议结合全局选项marimo可以完全融入 CI/CD 与自动化流程# 静默检查 严格退出码 marimo -q check . --strict # 转换 自动确认覆盖 marimo -y convert nb.ipynb -o nb.py # 一键导出部署产物 marimo export html-wasm nb.py -o dist/ --mode run --execute -f # 只读运行并指定端口 marimo run --port 8080 --headless --no-token app.py关键约束提醒--token-password-file -会占用 stdin与管道输入互斥export --watch必须搭配-o指定输出文件pdf的栅格化选项要求--include-outputsWASM 导出产物必须经 HTTP 服务访问。理解这些边界就能把marimo的编辑、运行、转换、检查、导出能力串联成一条完整的自动化流水线。【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考