Harness session capture/rehydration/feedback LLM-Wiki released v0.16.0, adding a compact read-only query protocol and token benchmarks across multiple AI agent runtimes including Claude Code and OpenAI Codex. The tool provides LLM-compiled knowledge bases with automated session capture, feedback curation, and thesis-driven research capabilities. ██╗ ██╗ ███╗ ███╗ ██╗ ██╗██╗██╗ ██╗██╗ ██║ ██║ ████╗ ████║ ██║ ██║██║██║ ██╔╝██║ ██║ ██║ ██╔████╔██║ ██║ █╗ ██║██║█████╔╝ ██║ ██║ ██║ ██║╚██╔╝██║ ██║███╗██║██║██╔═██╗ ██║ ███████╗███████╗██║ ╚═╝ ██║ ╚███╔███╔╝██║██║ ██╗██║ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝╚═╝ ╚═╝╚═╝ LLM-compiled knowledge bases for any AI agent. Parallel multi-agent research, collector catalogs, automated session capture, feedback curation, thesis-driven investigation, source ingestion, wiki compilation, truth-seeking audits, querying, and artifact generation. Ships as a Claude Code plugin, an OpenAI Codex plugin, an OpenCode instruction file, or a portable AGENTS.md for any other LLM agent. Obsidian-compatible. Install install · Quick Start quick-start · Sessions session-memory · Commands commands · How It Works how-it-works · Research Modes research-modes · Thesis Research thesis-driven-research · Query Depths query-depths · Linking linking-works-everywhere · Obsidian obsidian-integration · Architecture claude-first-multi-runtime · Nono Sandbox nono-sandbox-permissions · Upgrade upgrade · Changelog changelog · Credits credits v0.16.0 — Query Lite and token benchmarks. Adds a compact read-only query protocol across Claude Code, Codex, Pi, DS4, OpenCode, and portable agents; reduces Claude /wiki:query instructions by 72.54%; adds explicit $wiki-query , read-only Pi launchers, static context budgets, corpus-identity gates, and reproducible Codex/Claude/DS4 benchmark lanes. OpenCode live-model behavior remains best effort. v0.15.0 — Topic guides. Reframes schema.md as a human-owned topic guide, adds the friendlier llm-wiki schema adopt helper, keeps schema migrate --apply as a compatibility alias, and updates librarian docs to talk about conventions proposals instead of database-style schema migrations. v0.14.0 — Default topic guides. Adds advisory schema.md by default, safe adoption helpers for older wikis, proposal-only librarian convention updates, deterministic docs/lint checks, and clarifies the optional index/server layer as a rebuildable non-authoritative cache. v0.12.0 — Feedback curator. Captures high-signal corrections, preferences, approvals, and plan acceptance as redacted feedback candidates under HUB/.sessions/feedback/ ; ignores generic acknowledgements; adds review/manual-capture/promotion workflows; and keeps promotion into topic raw/notes/ explicit. v0.11.1 — Session helper compatibility. Small hotfix so automated session capture works on Python 3.9/macOS system Python as well as newer Python runtimes. v0.11.0 — Automated session capture. Default-on redacted checkpoints under HUB/.sessions/ , opt-out via session disable , compact context rehydration, explicit digest promotion, and a tested Codex hook bundle. Claude Code native plugin : claude plugin install wiki@llm-wiki OpenAI Codex marketplace plugin : Install from GitHub: codex plugin marketplace add nvk/llm-wiki codex plugin add wiki@llm-wiki Start a new Codex thread, then use @wiki or type $ to select wiki-query Install from a local checkout with the managed bootstrap helper: ./scripts/bootstrap-codex-plugin.sh --scope user --verify Or register the local checkout manually: codex plugin marketplace add /absolute/path/to/llm-wiki codex plugin add wiki@llm-wiki Canonical explicit invocation: $wiki-query "What does the wiki say about hardware wallet threat models?" @wiki research "hardware wallet threat models" @wiki collect "bitcoin memes" --wiki memes-bitcoin @wiki ingest https://example.com/article @wiki audit --project coldcard-threat-model @wiki session status @wiki feedback list --unpromoted @wiki session disable optional opt-out @wiki ll "codex plugin install gotchas" Upgrade: codex plugin marketplace upgrade llm-wiki codex plugin add wiki@llm-wiki Remove: codex plugin remove wiki@llm-wiki codex plugin marketplace remove llm-wiki Troubleshooting: codex plugin marketplace add registers the catalog; codex plugin add wiki@llm-wiki installs and enables the cached plugin non-interactively.- Open /hooks to review and trust the bundled hooks if you want automated session capture. The @wiki skill works without hook trust. $wiki-query is the small, explicit, read-only skill for lookups. In Codex CLI/IDE, type $ or open /skills and select it. It never activates implicitly or changes wiki files. @wiki is the full research and maintenance entry point. Natural-language wiki requests can still auto-activate it.- Restart Codex after changing config if an existing session does not pick up the new plugin state. - If you run Codex under a sandbox wrapper like nono , see Nono Sandbox Permissions nono-sandbox-permissions — Codex needs r+w to $HOME/.codex for plugin install. OpenCode instruction file : Add to your opencode.json project-level or ~/.config/opencode/.opencode.json for global : { "instructions": "https://raw.githubusercontent.com/nvk/llm-wiki/master/plugins/llm-wiki-opencode/skills/wiki-manager/SKILL.md" , "permission": { "external directory": { "~/.config/llm-wiki/ ": "allow", "~/Library/Mobile Documents/com~apple~CloudDocs/wiki/ ": "allow" } } } OpenCode fetches the URL fresh on every session start — no manual updates needed. If you prefer a local copy instead: curl -sL https://raw.githubusercontent.com/nvk/llm-wiki/master/plugins/llm-wiki-opencode/skills/wiki-manager/SKILL.md ~/.config/opencode/AGENTS.md For a smaller read-only setup, use the best-effort query preset instead: { "instructions": "https://raw.githubusercontent.com/nvk/llm-wiki/master/plugins/llm-wiki-opencode/skills/wiki-query/SKILL.md" } The OpenCode profile is sync- and budget-tested, but not tied to one model, so it does not have a provider-specific live quality gate. Treat it as a portable best-effort preset and keep OpenCode's write and shell permissions disabled for query-only sessions. The external directory permission is required because the wiki hub lives outside the project directory. Set the paths to match your hub location. Alternatively, use --local mode .wiki/ in the project to skip permissions entirely. Web search requires export OPENCODE ENABLE EXA=1 . Pi skill file, best for local models : Pi's minimal system prompt leaves room for on-demand wiki workflows on local models. Load the full skill for research and write-capable maintenance: pi --skill path/to/llm-wiki/plugins/llm-wiki-opencode/skills/wiki-manager/SKILL.md Invoke it as /skill:wiki-manager , or let Pi load it when the request clearly matches its description. For fast read-only queries with Pi's currently configured provider, use the generic launcher. It disables discovery and write tools and loads the compact shared query protocol: ./scripts/pi-wiki-query For DS4, the provider-specific launcher additionally creates an isolated Pi state directory and pins the local model settings: ./scripts/pi-ds4-wiki-query Set PI CLI , DS4 BASE URL , or LLM WIKI PI DS4 STATE DIR only when your local setup differs from the defaults. Both launchers accept --dry-run to show the exact command. The equivalent generic Pi settings are: pi \ --append-system-prompt path/to/llm-wiki/profiles/query-lite/SKILL.md \ --tools read,grep,find,ls \ --no-extensions --no-skills --no-prompt-templates --no-themes The DS4 query profile is intentionally unable to write. Switch to the full skill for ingest, research, compile, lint, or other mutating workflows. See profiles/ds4/README.md /nvk/llm-wiki/blob/master/profiles/ds4/README.md and the reproducible DS4 lane. /nvk/llm-wiki/blob/master/benchmarks/README.md benchmarks/README.md Any LLM Agent portable instruction file : Read-only queries: small default cp profiles/query-lite/SKILL.md ~/your-project/AGENTS.md Research and maintenance: complete protocol cp AGENTS.md ~/your-project/AGENTS.md The query-lite profile works with agents that can read and search files. The root AGENTS.md contains the complete write-capable protocol for agents that can also edit files and search the web. Claude Code is the principal user. Keep one shared behavior layer and thin packaging layers per runtime: claude-plugin/ is the primary distribution target and UX surface. claude-plugin/skills/wiki-manager/ is the behavioral source of truth. plugins/llm-wiki/skills/wiki/ is the generated Codex packaging target behind @wiki . claude-plugin/skills/wiki-manager/references/query-lite.md is the canonical read-only query protocol. profiles/query-lite/SKILL.md and generated wiki-query skills expose that protocol without the full research context. plugins/llm-wiki-opencode/ is the OpenCode and Pi packaging target. .agents/plugins/marketplace.json makes the Codex plugin installable from this repo. AGENTS.md is the portable single-file protocol for any other LLM agent. Query and research presets: | Client | Read-only query path | Full research path | Validation | |---|---|---|---| | Claude Code | /wiki:query command plus shared query protocol | Native plugin skill and commands | Deterministic fixtures plus live Sonnet/Opus runs | | Codex | Explicit-only $wiki-query ~2.8 KB | @wiki ~11.7 KB before lazy references | Deterministic fixtures plus app-server live runs | | Pi / DS4 | scripts/pi-wiki-query , or the isolated DS4 launcher, with read-only tools ~2.8 KB profile | pi --skill .../wiki-manager/SKILL.md | Deterministic fixtures plus exact DS4 provider-payload measurement | | OpenCode | wiki-query/SKILL.md ~2.8 KB | wiki-manager/SKILL.md ~25.2 KB | Static budgets and generated-package sync; live model is best effort | | Any agent | Copy profiles/query-lite/SKILL.md ~2.8 KB | Copy root AGENTS.md ~51.2 KB | Static budgets | Sizes are checked-in UTF-8 bytes, not provider token estimates. Use query mode for lookups, evidence checks, lists, and inventory status. Use the full profile for research, ingestion, compilation, lint fixes, or any workflow that writes. Both runtime mirrors are generated, not hand-maintained. Rebuild from the Claude source of truth: ./scripts/sync-codex-plugin.sh regenerates plugins/llm-wiki/ ./scripts/sync-opencode-plugin.sh regenerates plugins/llm-wiki-opencode/ ./scripts/sync-query-lite-profile.sh regenerates profiles/query-lite/ Each sync script: - copies claude-plugin/skills/wiki-manager/SKILL.md into the target tree and reapplies a small list of runtime-specific wording patches - copies references/ from the Claude source — references are runtime-neutral and shared verbatim previously a symlink, now a real copy so Codex marketplace caching works - generates compact wiki-query packages from the canonical query-lite reference - Codex only recreates agents/openai.yaml for Codex UI metadata and syncs the plugin version Drift is caught by ./tests/test-codex-sync.sh and ./tests/test-opencode-sync.sh , which run the sync scripts and fail with self-healing fix instructions if the generated directories differ from HEAD . Practical rule: design workflows first for Claude commands and behavior, but keep the underlying knowledge model and references runtime-neutral. Runtime wrappers adapt invocation and metadata, not wiki logic. If you run any AI coding agent inside a nono https://github.com/always-further/nono sandbox, the wiki needs filesystem access beyond the default profile. { "extends": "claude-code", "policy": { "add allow read": "$HOME/.config/llm-wiki" , "add allow readwrite": "$HOME/Library/Mobile Documents/com~apple~CloudDocs/wiki" } } Replace "extends": "claude-code" with "opencode" for OpenCode. Codex needs r+w to its own $HOME/.codex directory for plugin install, marketplace cache, state, and skill registration: { "extends": "codex", "policy": { "add allow read": "$HOME/.config/llm-wiki" , "add allow readwrite": "$HOME/.codex", "$HOME/Library/Mobile Documents/com~apple~CloudDocs/wiki" } } | Path | Access | Purpose | |---|---|---| $HOME/.config/llm-wiki | read | Hub path config — checked first during resolution v0.4.2+ | | Wiki data dir | readwrite | The wiki itself — use the actual path, not $HOME/wiki see below | $HOME/.codex | readwrite | Codex only — plugin cache, skills, state, marketplace temp files | Hub resolution checks ~/.config/llm-wiki/config.json first and only falls back to ~/wiki when no config exists. If your wiki lives on iCloud or any non-default path, set the config and you don't need $HOME/wiki in the sandbox at all: Set once — agents will resolve from config, never touch ~/wiki /wiki config hub-path "~/Library/Mobile Documents/com~apple~CloudDocs/wiki" Use a portable hub path with ~ for iCloud-shared hubs. Older configs may contain resolved path ; llm-wiki treats it as a fallback cache because an absolute /Users/