Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsJul 28, 2026·3 min de lecture

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.

Prêt pour agents

Installation agent prête

Cet actif peut être installé après choix du runtime, vérification du plan et exécution de la commande adaptée.

Native · 98/100Policy : autoriser
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
Pluto.jl Guide
Commande d'installation directe
npx -y tokrepo@latest install f2b88eb9-8ac6-11f1-9bc6-00163e2b0d79 --target codex

À exécuter après confirmation du plan en 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

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires