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
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!
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 and evaluate Calepin documents without leaving your editor. The Calepin extension starts and stops watched code evaluation; use Tinymist or another extension independently for Typst language tooling and preview. Install Calepin from the VS Code Marketplace, or from Open VSX for Cursor, Positron, and other VSX-compatible editors. See Editor integration.
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”.)