Repository navigation
v0.1.0 - initial public release
First release: a DSH port of OpenClaw's openclaw-notebook-tools (MIT).
Nine cell-aware Jupyter notebook tools, zero runtime dependencies, node: builtins only.
Tools
| Tool | Writes | Purpose |
|---|---|---|
notebook_create |
yes | Create a notebook from structured cells |
notebook_read |
no | Structured read, optionally with outputs |
notebook_list_cells |
no | Cheap index: id, type, preview, counts |
notebook_search |
no | Find cells by text or regex |
notebook_validate |
no | Validate structure and report facts |
notebook_edit_cell |
yes | Replace a cell's source / type |
notebook_insert_cell |
yes | Insert a new cell at a position |
notebook_delete_cell |
yes | Delete a cell by id or index |
notebook_clear_outputs |
yes | Clear outputs (all or one cell) |
Semantics
- Atomic saves — 1-space indent, sibling temp file,
fsync,rename. A killed process cannot leave a half-written notebook, and temp files never land in the system temp directory. - Cell ids over indexes — reads always return an
id; missing ids are backfilled in memory and persisted on the next save (bumpingnbformat_minorto 5). - Editing a code cell clears its
outputsandexecution_count. - Stale-edit guards —
expected_source_sha256/expected_file_mtime_msfail before any write; mtime comparison tolerates sub-millisecond jitter. - Source on disk is a string array (one element per line, trailing newline preserved).
- nbformat 4 only. No kernel execution, ever.
Install
dsh plugin --profile desktop add --config.minimumReleaseAge=0 <path-or-tarball>
Then restart DSH: the cordis.patch.yml row is composed at boot. The companion skill lives at skill/notebook-tools/SKILL.md — copy it into <DSH_HOME>\skills\ and DSH hot-reloads it.
Verification
61 node:test assertions plus an end-to-end pass in a live DSH session covering all nine tools, both stale guards, and output clearing on disk.
Credits
Upstream tool surface, behavioral spec, and companion skill by Kittipos Sirivongrungson (Lightbridge-KS/openclaw-notebook-tools, MIT). This port re-implements the behavior for the DSH plugin host. LICENSE carries both copyright notices.