Maintain running cozy containers without recreating them.
Rebuilding a sandbox means re-authenticating Claude and losing session state. This toolkit updates modules, syncs repos, and persists shell history inside a live container — so you don't have to rebuild.
Symlinked at ~/toolkit.nu inside the container and auto-activated via Nushell hooks.
Pulls the latest changes for a predefined set of Nushell module repos under ~/repos/. Handles branch switching, dirty working tree detection, and converting vendored directories to proper git repos.
use toolkit.nu; toolkit sync-repos # skip repos with local changes
use toolkit.nu; toolkit sync-repos -f # force: discard local changes and switch branchesIdempotent initialization of multi-repo workspaces. Discovers git subdirectories, registers them as git submodules, generates .gitmodules and .gitignore. Safe to re-run after adding new directories.
use toolkit.nu; toolkit mount initSets git config --global safe.directory '*' — intentional for sandboxed environments where file ownership differs from the container user.
Exports Nushell's SQLite history database to a timestamped .nuon file. Reads the database directly, so it works from any context (interactive shell, scripts, nu -c).
use toolkit.nu; toolkit history export # default: ~/workspace/mounted/sandbox-state/history-<timestamp>.nuon
use toolkit.nu; toolkit history export ./my-history.nuon # custom pathImports history records from a .nuon file back into the SQLite database. Without a path, picks the most recent history-*.nuon file in sandbox-state/ by name. Deduplicates incoming rows and skips entries already present in the database.
use toolkit.nu; toolkit history import # from latest export
use toolkit.nu; toolkit history import ./my-history.nuon # from specific file