AI Session System
NIIA reads the durable session formats produced by AI coding CLIs and presents them through one local command surface. The provider remains the owner of its transcript; NIIA provides discovery, indexing, search, and continuation. Documents NIIA 0.9.41.Supported session families
Availability depends on which tools are installed and which local session sources exist on the current machine.
Discover recent sessions
session read commands for the discovered identifiers.
Read one session
session read addresses a provider session directly. It does not require the cross-session search index to be current.
Index and search across sessions
session search queries the indexed session corpus. Re-run niia index --sessions when newly created conversations must become searchable.
Entry witness vs provider transcript
The self-drive witness and the session corpus are different evidence surfaces.niia gauge records the rung, signals, [NEXT] promise, provider brand, and
transcript path supplied by the hook in gauge.json; it does not copy the
transcript into the witness. niia finish adds finish.json, and
niia audit-entry writes audit-report.json beside it.
The pointer and the witness are also separate. Only a hook-carried session id
may move the repository’s atomic current pointer. A benchmark that uses
--session <id> can update its own witness without redirecting a later bare
niia finish away from the live interactive session.
For an ad-hoc or benchmark run that has no hook event, pass the transcript
before the trailing task text:
audit-entry can inspect it. It does
not import the provider transcript into the NIIA session corpus.
The current audit reader understands Claude JSONL and ad-hoc transcript paths.
A Codex hook can still create and carry the gauge witness, but transcript-level
Codex audit is returned as SUSPENDED until a Codex reader ships. A suspended
audit is neither a pass nor a violation. It also does not fall back to the
cross-provider session search index and pretend that indexed snippets prove
event order.
See work-entry self-drive for the
promise-derived audit classes and witness storage paths.
Continue in a real terminal
Session memory and PTY control are separate layers. A historical transcript can be readable even when the original process is gone; a visible terminal can be stale even when its last frame still looks valid.Screen answer vs provider answer
Assertions, not sleeps
expect-*, step, and scenario turn missing output, failed guards, and timeouts into non-zero exits. This makes terminal automation an assertable workflow instead of a sequence of arbitrary sleeps.
Raw-mode Enter
Interactive terminal applications commonly expect carriage return:\r for Enter. A plain newline may not submit input in a raw-mode application.
Privacy boundary
- Session parsing is local-first and does not require proxying a model API.
- Each provider owns its own credentials and subscription.
- Remote recall or synchronization is explicit; local session discovery alone does not publish a transcript.
- A transcript being readable does not authorize OS control, remote execution, or MCP access.