Scrydon
SDKsPacks & Authoring SDK

Notebooks in packs

Ship ready-made marimo notebooks with your pack — users add them to a workspace from Analytics → Notebooks with one click.

Packs can include marimo notebooks as first-class content. A pack-shipped notebook appears in Analytics → Notebooks → From pack for every organization that installs the pack; adding it copies the notebook into the current workspace, where it behaves exactly like a user-created notebook (open, edit, governed scrydon SDK access).

Typical uses: a quickstart tour of the pack's data model, an analysis template over the pack's data sources, or a governed write-back walkthrough.

Bundle layout

Each notebook is one subdirectory in the pack bundle:

my-pack/
  manifest.json               # pack manifest — declares the notebook entries
  notebooks-quickstart/
    manifest.json             # notebook content manifest
    notebook.py               # the marimo notebook (≤ 1 MB)
  notebooks-writeback-demo/
    manifest.json
    notebook.py

Declare each notebook in the pack manifest's contents:

{
  "contents": [
    { "kind": "notebook", "path": "notebooks-quickstart", "required": true },
    { "kind": "notebook", "path": "notebooks-writeback-demo", "required": false }
  ]
}

The notebook kind is repeatable — ship as many notebooks as you like.

The notebook content manifest

notebooks-<slug>/manifest.json:

{
  "slug": "quickstart",
  "name": "Lakehouse quickstart",
  "description": "Read a managed table, run an analysis, and publish the result back."
}
FieldRequiredConstraints
slugyeskebab-case, 1–100 chars — stable identity for the notebook within the pack
nameyes1–200 chars — shown in the From pack picker
descriptionnoup to 2000 chars — shown under the name

notebook.py must be a valid marimo notebook file of at most 1 MB.

What happens at install

Installing the pack does not put notebooks into anyone's workspace. The install stores each notebook.py in organization-scoped storage and lists the notebook in the org's pack catalog. Users then pull the ones they want:

  1. Analytics → Notebooks → From pack lists every notebook from the org's installed packs.
  2. Add copies the file into the current workspace environment and creates a workspace notebook entry.
  3. From there it's a normal notebook — the pack is not consulted again, and later pack updates don't overwrite a user's copy.

Adding the same pack notebook twice is idempotent: the existing workspace copy is returned instead of a duplicate.

Writing pack notebooks that travel well

  • Use the scrydon SDK for all data access (tables, knowledge, llm) — never hard-code URLs or credentials. See Marimo notebooks.
  • Resolve tables by their logical names (the names your pack's data sources create) so the notebook works in any org that installed the pack.
  • Guard optional integrations: llm.complete raises LlmNotConfiguredError when the org has no LLM integration — catch it and degrade gracefully.
On this page

On this page