Skip to content

Author with agents ​

manim-marimo ships an agent skill beside marimo-studio's. A coding agent reads both, writes the notebook's computation in marimo cells, writes the scenes and the page, renders them in Studio, and checks the movies.

Paste this request into Claude Code, Codex, or another terminal agent, from the folder of a notebook set up for manim-marimo:

text
Read the marimo-studio and manim-marimo skills with
`uvx --with manim-marimo agent-plugins read <name>`,
then create a notebook that explains Fourier series and an Animation view
that draws a square wave from rotating vectors.

agent-plugins prints a skill that a Python package ships. marimo-studio's skill covers connecting to the running notebook, creating views, building, and browser checks. manim-marimo's skill adds the scene contract: literal reads, renderable defaults, one scene per file, and how to verify a rendered movie.

What the agent works with ​

SourceTeaches
agent-plugins read marimo-studioNotebook pairing, view creation, builds, preview URLs, browser checks
agent-plugins read manim-marimoScene reads, defaults, render hosts, quality, render diagnostics
AGENTS.md in the view projectThe files of this view and who owns what

Studio shows AGENTS.md in Source, so the agent and the author read the same instructions.

Point at a shape with Lens ​

Lens lets you select part of Studio's preview and attach a note for the agent. Add it to the notebook's dependencies, then restart Studio:

python
# dependencies = [
#     "manim-marimo[render]",
#     "marimo-lens>=0.2.4",
# ]

Preview shows a Lens dock. Click Select and click a shape in the movie, such as one person in the epidemic example. The selection names the shape, dot: Dot, the read it shows, such as people[17], the scene line that created it, and the notebook cell that computed the read. Targets follow the shapes as the movie plays, so pause on the frame you mean.

Lens in Studio's preview, with one person of the epidemic selected and a note for the agent asking who infected them

Then ask:

Use Lens to address my current selection in this Studio view.

Create the view from code ​

Inside notebook code mode, an agent creates the view from the provider's starter:

python
import marimo_studio

workspace = marimo_studio.agent.current_workspace()
view = await workspace.create_view("animation", starter="manim-marimo/manim:default")
await view.build()
print(await view.preview_url(runtime="server"))

Diagnostics an agent repairs ​

Inspection and builds report problems at the author's source line, so an agent can open the file and fix it:

CodeMeaning
manim-read-dynamicA read's target is not a string literal
manim-scene-missingA render host names a scene file that does not exist
manim-source-invalidA Python file in the project does not parse
manim-render-failedThe scene raised, either in the build check or in a render

Provider reference lists every code.