zuno session
Sessions are durable. Every prompt, tool result, and report that could change a model request is written to the local store, which means the store grows and eventually needs inspection and cleanup. zuno session is that surface: it lists what exists, prunes by age, deletes an exact session, and inspects narrowly provable legacy execution blocks.
By default listing is scoped to the current checkout and shows only root sessions. Child sessions created by delegation are hidden until you ask for them.
Synopsis
zuno session [OPTIONS] <COMMAND>Options
| Option | Description | Default |
|---|---|---|
-v, --version | Show the Zuno package version | |
--print-logs | Print logs to stderr in addition to the structured local log store | |
--log-level <LOG_LEVEL> | Set the minimum log level. Possible values: TRACE, DEBUG, INFO, WARN, ERROR | |
--sandbox <SANDBOX> | Select Shell confinement for this invocation. Possible values: read-only, workspace-write, danger-full-access | |
--sandbox-on-unavailable <ACTION> | Select what happens when confined Shell cannot be deployed. Possible values: deny, run-unconfined | deny |
--sandbox-backend <BACKEND> | Select the Shell execution backend for this invocation; native is not confinement. Possible values: auto, native | platform-dependent |
-h, --help | Print help (see a summary with -h) |
Subcommands
| Subcommand | Description |
|---|---|
list | |
prune | |
delete | |
repair | Inspect or repair one provable legacy false block |
help | Print this message or the help of the given subcommand(s) |
zuno session list
zuno session list [OPTIONS]| Option | Description | Default |
|---|---|---|
--all-projects | List sessions from every project, not just this checkout | |
-v, --version | Show the Zuno package version | |
--project <PATH|ID> | List one project, named by its id or its worktree path | |
--archived | Include archived sessions alongside the live ones | |
--print-logs | Print logs to stderr in addition to the structured local log store | |
--log-level <LOG_LEVEL> | Set the minimum log level. Possible values: TRACE, DEBUG, INFO, WARN, ERROR | |
--roots | Only root sessions. This is the default; pass --no-roots for children | |
--no-roots | Include child sessions, which are hidden by default | |
--sandbox <SANDBOX> | Select Shell confinement for this invocation. Possible values: read-only, workspace-write, danger-full-access | |
--sandbox-on-unavailable <ACTION> | Select what happens when confined Shell cannot be deployed. Possible values: deny, run-unconfined | deny |
--sandbox-backend <BACKEND> | Select the Shell execution backend for this invocation; native is not confinement. Possible values: auto, native | platform-dependent |
--sort <SORT> | Order by last activity or by creation time. Possible values: updated (time_updated, last activity; upstream's listGlobal order), created (time_created) | updated |
-n, --limit <LIMIT> | Limit to N sessions, most recent first. Defaults to 100. Alias: --max-count | |
--format <FORMAT> | Output format. Possible values: table, json | table |
-h, --help | Print help (see a summary with -h) |
zuno session prune
--older-than <DAYS> is required.
zuno session prune [OPTIONS] --older-than <DAYS>| Option | Description | Default |
|---|---|---|
--older-than <DAYS> | ||
-v, --version | Show the Zuno package version | |
--all-projects | ||
--print-logs | Print logs to stderr in addition to the structured local log store | |
--project <PATH|ID> | ||
--by <BY> | Possible values: updated, created | updated |
--log-level <LOG_LEVEL> | Set the minimum log level. Possible values: TRACE, DEBUG, INFO, WARN, ERROR | |
--archive | ||
--sandbox <SANDBOX> | Select Shell confinement for this invocation. Possible values: read-only, workspace-write, danger-full-access | |
--sandbox-on-unavailable <ACTION> | Select what happens when confined Shell cannot be deployed. Possible values: deny, run-unconfined | deny |
--sandbox-backend <BACKEND> | Select the Shell execution backend for this invocation; native is not confinement. Possible values: auto, native | platform-dependent |
--delete | ||
--include-shared | ||
--include-recent | ||
--force | ||
--yes | ||
--format <FORMAT> | Possible values: table, json | table |
-h, --help | Print help (see a summary with -h) |
zuno session delete
zuno session delete [OPTIONS] <SESSION_ID>| Argument | Description |
|---|---|
<SESSION_ID> |
Exactly one of the next two options is required. Deleting a session decides the fate of the Experience records derived from it, so the command refuses to guess.
| Option | Description | Default |
|---|---|---|
--keep-derived-experiences | Keep Experience records and detach them from the deleted session | |
--cleanup-derived-experiences | Prepare reviewed Memory and Skill revocations and forget derived Experience records | |
-v, --version | Show the Zuno package version | |
--print-logs | Print logs to stderr in addition to the structured local log store | |
--log-level <LOG_LEVEL> | Set the minimum log level. Possible values: TRACE, DEBUG, INFO, WARN, ERROR | |
--sandbox <SANDBOX> | Select Shell confinement for this invocation. Possible values: read-only, workspace-write, danger-full-access | |
--sandbox-on-unavailable <ACTION> | Select what happens when confined Shell cannot be deployed. Possible values: deny, run-unconfined | deny |
--sandbox-backend <BACKEND> | Select the Shell execution backend for this invocation; native is not confinement. Possible values: auto, native | platform-dependent |
-h, --help | Print help (see a summary with -h) |
zuno session repair
zuno session repair <SESSION_ID> --input <INPUT_ID> --dry-run
zuno session repair <SESSION_ID> --input <INPUT_ID> --apply --expected-revision <N>2
Inspection is the default. It opens an existing format-15 database read-only, without migration or model execution. --apply requires the inspected execution revision, conflicts with --dry-run, and requires exclusive offline database access.
| Option | Meaning |
|---|---|
--input <INPUT_ID> | Exact previously recorded input to inspect |
--dry-run | Inspect only; this is also the default |
--apply | Revalidate and apply the bounded native repair |
--expected-revision <N> | Positive execution revision required with --apply |
Only a consumed, recorded, never-applied ordinary user input whose structured event chain proves the legacy retry-to-blocked defect, or HTTP 400 reasoning_replay_context_mismatch from its audited recovery request inherited as a session block, is eligible. The latter requires the prior repair proof, matching native failure settlement and exact request/cycle provenance; a status code or rendered error alone is not proof. If further inputs inherited that same gate without executing, repair accepts up to 16 verified intermediate inputs. Every link must contain only the consecutive native admission, promotion, cycle, consumption, gate and receipt events. The report lists inheritedInputIds; they remain retained and are not requeued. Only the explicitly selected latest input is recovered, never deduplicated by text. Active execution, uncertain outcomes, real approval/Plan/authentication/budget/Goal gates, changed evidence, and ambiguous history are rejected. Close all Zuno hosts holding this database and back it up before applying; the command cannot waive these guards.
A successful apply queues one audited recovery control carrying the existing input ID. It does not requeue the consumed user row, replay failed tools, resume an old Goal, or prove provider application. Reopen the session through its normal native client to process that control; inspect its input receipt instead of resending text. See durable state for the ownership and recovery contract.
Examples
List the most recent root sessions for the current checkout.
zuno session listInclude child sessions and archived ones, as JSON, so a script can filter them.
zuno session list --no-roots --archived --format jsonSee what a 30-day cleanup would touch across every project, ordered by creation time, without deleting anything.
zuno session prune --older-than 30 --by created --all-projectsDelete one session by id, keeping the Experience records it produced.
zuno session delete ses_1a2b3c --keep-derived-experiencesForgetting the derived Experience records instead needs a live learning profile, so run it from the TUI and choose clean learning, or use ACP with cleanupDerivedExperiences=true. On the command line it succeeds only when the session subtree produced no Experience records at all.
zuno session delete ses_1a2b3c --cleanup-derived-experiences