A Plainbook is a computational notebook, written in natural language rather than code.
Normally you would generate a notebook with AI and then keep the code, discarding the natural language that produced it. Plainbook keeps the language instead: the code is generated and executed automatically, and can be validated and tested through natural language and data inspection — no coding knowledge required. This lets you share your data analysis and science with a much wider audience, including people who don't know how to code.
Plainbooks resemble Jupyter notebooks, in that they combine instructions and results in a single shareable document. They differ in these ways:
- Linear semantics. Cells execute strictly in order — the same order in which a human reads the natural-language description of the computation.
- Dependency tracking. Code analysis determines what a change actually affects, so only a minimal portion of the Plainbook is regenerated or re-executed.
- Test cells. Plainbook lets you test that individual cells implement their natural language descriptions via natural-language tests and data inspection.
Linear semantics and dependency tracking are inspired by Marimo. The ability to test cells hinges on natural language and on the special snapshot-kernel underlying Plainbook.
The goal of the project is to replicate in natural language what made Jupyter so successful: sharing code and results together, so that any recipient can validate and modify what they receive. Recipients can check that the generated code implements the natural-language tasks, and can edit the Plainbook, regenerate the code, and rerun it — just as in Jupyter or Marimo.
pip install plainbookOnce installed, you can work on a Plainbook my_plainbook.plb via:
plainbook my_plainbook.plb- plainbook: The main Plainbook code base.
- snapshot-kernel: The kernel implementing state snapshotting on which Plainbook relies for execution.