Configs2026年7月28日·1 分钟阅读

Pluto.jl — Reactive Notebooks for Julia

Pluto.jl is a reactive notebook environment for the Julia programming language where changing any cell automatically re-runs all dependent cells. It stores notebooks as plain Julia source files, making them version-control friendly and reproducible.

Agent 就绪

Agent 可直接安装

这个资产可安装;Agent 先选择当前运行时、检查安装计划,再运行匹配命令。

Native · 98/100策略:允许
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:Established
入口
Pluto.jl Guide
直接安装命令
npx -y tokrepo@latest install f2b88eb9-8ac6-11f1-9bc6-00163e2b0d79 --target codex

先 dry-run 确认安装计划,再运行此命令。

Introduction

Pluto.jl is a lightweight reactive notebook for the Julia language created by Fons van der Plas. Unlike traditional notebooks where cells can be run in any order, Pluto tracks dependencies between cells and automatically re-executes downstream cells when an upstream value changes. Notebooks are stored as plain .jl files with cell markers, so they can be versioned with Git and executed as regular scripts.

What Pluto.jl Does

  • Provides a browser-based notebook UI for writing and running Julia code interactively
  • Tracks variable dependencies between cells and re-runs affected cells automatically on any edit
  • Stores notebooks as valid Julia source files (not JSON), enabling clean diffs and Git workflows
  • Supports interactive HTML widgets via PlutoUI for sliders, checkboxes, dropdowns, and file pickers
  • Exports notebooks as static HTML pages for sharing without a running Julia process

Architecture Overview

Pluto runs a local Julia-powered HTTP server that serves a React-based frontend. Each notebook gets its own Julia process with one module workspace, ensuring isolation. The reactive runtime builds a dependency graph by analyzing which variables each cell reads and writes. When a cell is edited, Pluto identifies the affected downstream cells and re-evaluates them in topological order. Cell outputs are rendered as HTML via Julia's display system.

Self-Hosting & Configuration

  • Requires Julia 1.6 or later; install Pluto with Pkg.add("Pluto")
  • Launch with Pluto.run(port=1234) to specify a custom port
  • Set Pluto.run(launch_browser=false) for headless or remote server usage
  • Use PlutoSliderServer.jl to deploy notebooks as interactive web pages
  • Configure notebook-level package environments with the built-in Pkg integration (each notebook manages its own dependencies)

Key Features

  • Reactivity ensures the notebook state is always consistent; no hidden state or stale cells
  • One-definition-per-cell rule prevents variable shadowing and makes dependency tracking reliable
  • Built-in package management records exact versions per notebook for full reproducibility
  • PlutoUI provides interactive widgets that bind directly to Julia variables
  • Live docs panel shows docstrings and method signatures as you type

Comparison with Similar Tools

  • Jupyter Notebook — supports many languages but allows out-of-order execution and stores JSON; Pluto enforces reactivity and uses plain source files
  • Marimo (Python) — shares the reactive notebook philosophy for Python; Pluto is the Julia-native equivalent with deeper Julia integration
  • Jupyter Lab — a full IDE experience with extensions; Pluto is intentionally minimal and opinionated for reproducibility
  • Quarto — focuses on publishing documents from notebooks; Pluto focuses on interactive exploration with static HTML export
  • Observable (JavaScript) — reactive notebooks for the web; Pluto brings the same paradigm to scientific computing in Julia

FAQ

Q: Can Pluto handle long-running computations? A: Yes. Pluto shows a progress indicator and you can interrupt cells. For heavy workloads, wrap expensive code in functions and cache results manually.

Q: Does Pluto support all Julia packages? A: Yes. Any registered or unregistered Julia package works in Pluto. Each notebook manages its own Pkg environment.

Q: Can I convert Jupyter notebooks to Pluto? A: There is no automatic converter, but since Pluto files are plain Julia, you can copy code cells and restructure them. The one-definition-per-cell rule may require splitting some cells.

Q: Is Pluto suitable for teaching? A: Pluto was designed with education in mind. Reactivity means students see immediate feedback, and the reproducible file format simplifies grading and sharing.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产