Help topics

One workbook, multiple runtimes

Languages and packages

  • Free + Pro
  • Android
  • Web/PWA (Free)
  • Windows preview
  • Verified: Free 1.3.2 · Pro 1.3.0

Supported languages

ChoiceRuntime or purposeFirst thing to try
PythonPyodideprint(2 ** 10)
RwebRmean(c(2, 4, 8))
SWI-Prologswipl-wasmmember(X, [red, blue]).
BashBrush shellprintf 'hello\n'
JavaScriptBrowser runtime[1, 2, 3].map(x => x * x)
LuaFengariprint(2 ^ 10)
TypRTyped R compiled to RInstall an example workbook first
ClojureScriptScittle(map #(* % %) [1 2 3])
MarkdownRendered text and math## Notes

Use Menu → Languages (or Languages & modes in Pro) to hide choices you do not use. Hiding a language does not unload a runtime that is already in memory.

Python packages

Install compatible packages from a Python cell:

%pip install package-name

Pure-Python packages work directly. Packages with native extensions need WebAssembly-compatible wheels.

R packages

Use install.packages() or SciREPL’s %install helper. Only packages available for webR/WebAssembly can load. A package’s first installation may take time; later sessions can reuse cached assets.

Catalogue workbooks and bundles

Browse Packages, Bundles & Workbooks reads a verified SciREPL Catalog channel. Stable and release channels use static descriptors rather than GitHub API calls. A bundle can install workbooks, data, modules, and compatible WebAssembly assets together.

Catalogue integrity verifies the downloaded descriptor and archive; it does not make arbitrary notebook code safe. Inspect unfamiliar cells before running them.

Cross-language data

Use SharedVFS for ordinary files and Notebook VFS for cell source/output. This is usually clearer than copying large values through the clipboard. See Files, import, and export.