Calepin

Computational Notebooks and Static Websites in

calepin compile notebook.typcalepin compile website/

Computational notebooks

Write in Typst, execute code, and see results inline. Perfect for data analysis, reports, and publications with reproducible outputs, in the spirit of literate programming.

  • Typst-native authoring
  • Executable code chunks
  • Inline results and plots
  • Python, R, Julia, Bash, and all Jupyter kernels
  • Export to HTML and PDF
Calepin notebook screenshot

Static website generator

Build multi-page websites from Typst with ease. Great for docs, portfolios, and project sites.

  • Themes, templates and layouts
  • Reusable web components
  • Fast incremental builds
  • Live preview
  • Multi-lingual support
  • Blog listings and feeds
  • Search
  • …and much more!
Calepin website screenshot

Pure Typst

Write notebooks in pure Typst, a simple, consistent, powerful, and elegant typesetting system. There is no special file format; notebooks and websites are just standard .typ documents. You do not need to “declare” your markup as Typst using special “fences.” Calepin does not push your text through a lossy Pandoc translation layer, and you do not need to learn yet another ad hoc markdown variant.

Editor integration

Write, execute, preview, and publish Calepin documents without leaving your editor. Install the Calepin extension from the VS Code Marketplace, or from Open VSX for Cursor, Positron, and other VSX-compatible editors.

A simple computational notebook

#import "/.calepin/calepin.typ" as calepin

#calepin.setup(
  echo: true,
  results: "verbatim",
)

#let py = calepin.inline.with("python")

```python
x = 41
print(x + 1)
```

Variables are persistent across chunks:

```python
print(x + 2)
```

The inline answer is #py[`print(40 + 2)`].

Etymology and pronunciation

Calepin comes from the French word for “notebook.” You should, of course, feel free to say it however you like. The closest English sounds might be “cal-huh-pan,” with “cal” as in “calendar,” and “pan” like the cooking instrument. (The French would pronounce that last syllable more nasally, with a silent “n”.)