What it gives you
- Manual by default: no watcher, no hook, and no schedule until you enable one, and discovery plus a dry run show what an import would write before it writes anything
- A separate archive: the archive config and its named index only open together, so your curated search, gno update, and gno serve never read session turns unless you add the archive collection to them yourself
- Who said what: speakers come from the harness's own structure, assistant turns stay labelled as assistant output, and a typed message that imitates a role stays quoted text of the real speaker
- One provenance line per turn with the source, the native locator, and the turn ID, cited by gno:// URI like any other record
- Filter by harness, project, speaker, or session kind with ordinary flags such as --author human, --category harness/codex, and --tags-all project/api
- Tool calls and results, reasoning blocks, injected instructions, and compaction summaries are left out, as are prompts of programmatic runs, since a program may have written them
- Credential redaction runs before anything is persisted, and you can add exact strings that must never appear. Redaction is best effort, so keep the archive local_only until you have reviewed it
- Incremental reruns skip unchanged sessions, and every import returns a receipt that reports partial outcomes with counts and reason codes; receipts carry no session content or host paths
- Codex and Claude Code parsers were checked against real local stores (Codex CLI 0.58 to 0.156.1, Claude Code 2.1.2xx); OpenClaw (v2026.9.6) and Hermes (v0.19.0 schema) were verified on synthetic fixtures only
- Opt-in automation per profile: a Claude Code SessionEnd hook, verified with Claude Code 2.1.280, or an elapsed-cadence schedule marks work pending, and gno daemon on the archive imports it through the same importer
- GNO never installs or starts a service, gno serve never runs schedules, and Codex, OpenClaw, and Hermes have no hook: import them by hand or on a daemon schedule
- Nothing from a session becomes a remembered fact on its own; record a decision with gno remember and point its source at the turn
- The same archive on MCP (gno_sessions_status, gno_sessions_import behind --enable-write), REST under /api/sessions, the SDK, and a /sessions page in the Web UI