SessionReviewer turns local Codex session history into a concise, editable project review. It helps you recover a project's goal, current stage, next action, risks, key decisions, evolution timeline, model usage, and cost without copying raw session logs into your notes.
Read the Chinese documentation
- Streams local Codex session JSONL through a bounded, allow-listed, and redacted evidence pipeline.
- Uses the SessionReviewer skill for semantic review while keeping deterministic parsing, validation, cursors, and writes in the local CLI.
- Stores human-readable project context in
docs/session-review/项目回顾.mdanddocs/session-review/项目历史.md. - Synchronizes editable project notes with a configured vault using a deterministic three-way merge.
- Provides a desktop project browser with evolution, decisions, risks, usage, pricing sources, and safe editing controls.
- Keeps machine-owned evidence, accounting, revisions, and synchronization metadata out of the human recovery view.
Raw session files stay on your computer. SessionReviewer does not modify the original JSONL files and does not require a separate OpenAI API key.
- macOS 13 or later on Intel or Apple Silicon
- Windows 10 22H2 or Windows 11 on x64
- Obsidian 1.8.7 or later for the desktop plugin
- Go 1.26 only when building the CLI from source
The desktop plugin is marked desktop-only because it invokes the local SessionReviewer CLI for validated status, synchronization, migration preview, and recovery actions.
Download main.js, manifest.json, and styles.css from GitHub Release 0.2.5. Place the three files in:
<Vault>/.obsidian/plugins/session-reviewer/
Enable SessionReviewer under Settings → Community plugins, then run SessionReviewer: Open project evolution from the command palette or select the history icon in the left ribbon.
In Settings → SessionReviewer CLI, enter the absolute path to a compatible session-reviewer executable and select Verify and save. The plugin only executes fixed, allow-listed CLI actions; it does not read executable paths or arbitrary arguments from Markdown.
Create a stable project mapping and review files:
session-reviewer init --project /path/to/project --vault /path/to/vault
session-reviewer init --project /path/to/project --vault /path/to/vault --writePreview synchronization without writing:
cd /path/to/project
session-reviewer sync --dry-run
session-reviewer sync status --jsonApply a real project-to-vault synchronization:
session-reviewer syncThe first command previews initialization. Adding --write creates the stable mapping and review files. Synchronization uses per-entity base snapshots so independent edits can merge while same-field conflicts remain explicit.
Prepare a bounded evidence packet:
session-reviewer prepare checkpoint \
--sessions-root "$HOME/.codex/sessions" \
--output ./evidence.jsonThe SessionReviewer skill converts the packet into a semantic proposal. Apply the validated proposal locally:
session-reviewer apply \
--proposal /path/to/proposal.json \
--evidence /path/to/evidence.json \
--project /path/to/projectAn accepted apply updates the machine ledger and the two human-readable project files before advancing the accepted cursor. Reapplying the same accepted proposal is idempotent.
go test ./...
go vet ./...
cd obsidian-plugin
npm ci
npm run checkRelease assets are reproducible and accompanied by SHA256SUMS. The GitHub Actions release workflow publishes the three standalone plugin files required by the Community directory, the plugin ZIP, and CLI archives for macOS and Windows.
SessionReviewer keeps raw session logs local, limits persisted evidence by role and size, applies post-truncation redaction, binds proposals to evidence digests and accepted revisions, and fails closed on modified machine ledgers or unresolved synchronization conflicts. Human-editable fields and machine-owned accounting or evidence fields remain separate.
Apache License 2.0. Copyright 2026 NeoMei and QUUKK.