{"slug": "show-hn-harness-session-memory-without-transcript-hoarding", "title": "Show HN: Harness session memory without transcript hoarding", "summary": "LLM Wiki, a new open-source tool released as a plugin for Claude Code, OpenAI Codex, and OpenCode, enables parallel multi-agent research and session memory without hoarding transcripts, using human-owned schema.md topic guides and plain Markdown output. The tool dispatches 5–10 agents across academic, technical, applied, news, and contrarian angles, with a --min-time 2h option for iterative rounds, and compiles sources into articles, reports, and study guides while keeping raw sources immutable.", "body_md": "### Research\n\n5–10 parallel agents search academic, technical, applied, news, and contrarian angles. `--min-time 2h`\n\nkeeps going in rounds, drilling into gaps each round finds.\n\n```\n██╗     ██╗     ███╗   ███╗    ██╗    ██╗██╗██╗  ██╗██╗\n██║     ██║     ████╗ ████║    ██║    ██║██║██║ ██╔╝██║\n██║     ██║     ██╔████╔██║    ██║ █╗ ██║██║█████╔╝ ██║\n██║     ██║     ██║╚██╔╝██║    ██║███╗██║██║██╔═██╗ ██║\n███████╗███████╗██║ ╚═╝ ██║    ╚███╔███╔╝██║██║  ██╗██║\n╚══════╝╚══════╝╚═╝     ╚═╝     ╚══╝╚══╝ ╚═╝╚═╝  ╚═╝╚═╝\n```\n\nParallel multi-agent research. Thesis-driven investigation. Source ingestion.\nWiki compilation. Concept → Idea → Project incubation. Human-owned topic guides. Session memory. Feedback curation.\nTopic archiving. Inventory tracking. Dataset manifests. Truth-seeking audits.\nToken-efficient read-only querying. Artifact generation. Ships as a\nClaude Code plugin, an OpenAI Codex plugin, an OpenCode instruction file, or a\nportable `AGENTS.md`\n\n. Obsidian-compatible.\n\nEvery run compounds. Sources become cross-referenced articles. Articles become reports, slide decks, study guides, playbooks, and implementation plans. Session digests keep the agent oriented without turning private chats into topic evidence.\n\nOne command spins up a topic wiki, dispatches up to ten agents,\ningests what's worth keeping, collects provenance-rich catalogs before tracking them, develops rough Ideas into approved Project briefs, archives old topics without deleting them, tracks durable follow-up state, indexes\nlarge datasets without copying them, captures redacted session context and feedback candidates without hoarding transcripts, compiles sources into articles, and\nhands you a deliverable built on top. Human-owned `schema.md`\n\ntopic guides keep local vocabulary and conventions explicit. All plain Markdown you own.\n\n5–10 parallel agents search academic, technical, applied, news, and contrarian angles. `--min-time 2h`\n\nkeeps going in rounds, drilling into gaps each round finds.\n\nStart from a claim. Agents split across supporting, opposing, mechanistic, meta, and adjacent angles. Output is a verdict — not a summary. Round two fights confirmation bias.\n\nURLs, files, PDFs, inbox drops, Git doc repos, MediaWiki dumps, message archives, and Wayback CDX snapshots. Raw sources stay immutable; articles synthesize on top.\n\nRegister explicitly trusted local research tools without publishing their code, credentials, corpora, or bulk results. Manifest handshakes, path scopes, timeouts, and artifact hashes keep execution reviewable; nothing is imported automatically.\n\nFind, dedupe, download bounded public media, and catalog discoverable artifacts, examples, memes, tools, entities, and source candidates. Captures aliases, found-in-context provenance, local asset paths, hashes, scale, media policy, and inventory fit.\n\nTrack durable things the wiki should remember: items, source candidates, corpora, entities, open questions, watch items, and next actions. Chat views default to compact tables.\n\nCapture a rough proposal without pretending it is a Project. Research it, challenge it, compare minimal and ideal versions, then explicitly promote an approved snapshot when you are ready to deliver.\n\nIndex large, external, mutable, or operational data with manifests, samples, profiles, and query recipes. The wiki becomes the interface; the data stays where it belongs.\n\nEvery new wiki gets a human-owned `schema.md`\n\ntopic guide for local vocabulary, relationships, source boundaries, and adoption notes. Older wikis can adopt one safely with `llm-wiki schema adopt`\n\n.\n\nMove whole topic wikis to `topics/.archive/`\n\n. Preserved knowledge stays structurally maintainable but out of default query, compile, research, collect, output, and maintenance context.\n\nRaw sources become synthesized articles with cross-references and confidence scores. Every directory has an `_index.md`\n\n— nothing is scanned blindly.\n\nFast, read-only, index-first answers with exact file citations and bounded searches. Claude uses `/wiki:query`\n\n, Codex gets explicit `$wiki-query`\n\n, and Pi/DS4 get isolated read-only launchers. The full workflow stays available for research and writes.\n\nDefault-on hook capture writes redacted events, state JSON, and Markdown digests under `.sessions/`\n\n. Rehydrate future turns with compact context; promote only what belongs in a topic.\n\nCurates high-signal corrections, preferences, approvals, and plan acceptance under `.sessions/feedback/`\n\n. Generic acknowledgements are ignored; durable lessons are explicitly promoted.\n\nScore every article for staleness and quality. Two-tier scan: fast metadata check, then deep content read for flagged articles. Checkpoint recovery. Machine-readable JSON + human-readable report.\n\nAnswer the broader trust question. Reuse the librarian pass, trace outputs across `raw/`\n\n, `wiki/`\n\n, and `output/`\n\n, detect drift, inspect provenance, and do fresh research when local evidence is not enough.\n\nExtract lessons learned from the current session — error→fix patterns, user corrections, discoveries. Saved as structured notes the wiki can query later. `--rules`\n\nemits enforceable rules instead of prose.\n\nWiki-grounded implementation plans. Reads the knowledge base, interviews you about requirements, fills gaps with targeted research, and produces a phased plan citing wiki articles as evidence. `--format rfc|adr|spec`\n\n.\n\nReports, slide decks, study guides, playbooks, implementation plans, timelines, glossaries, comparisons. Filed back into the wiki so the next output builds on every previous one.\n\nNative plugin. Recommended.\n\n```\nclaude plugin install wiki@llm-wiki\n```\n\nUse `/wiki:query`\n\nfor the compact read-only path. Research, ingest, compile, and maintenance commands keep the full workflow. Restart Claude Code after install or update.\n\nMarketplace plugin. Invoke with `@wiki`\n\n.\n\n```\ncodex plugin marketplace add nvk/llm-wiki\ncodex plugin add wiki@llm-wiki\n# Full workflows: @wiki\n# Read-only lookup: type $ and select wiki-query\n```\n\nOr from a local checkout: `./scripts/bootstrap-codex-plugin.sh --scope user --verify`\n\n. The explicit-only `$wiki-query`\n\nskill is about 76% smaller than loading the full workflow for a lookup.\n\nInstruction file.\n\n```\n# In opencode.json:\n{ \"instructions\": [\n  \"path/to/llm-wiki/plugins/llm-wiki-opencode/skills/wiki-manager/SKILL.md\"\n] }\n\n# Query-only alternative:\n{ \"instructions\": [\n  \"path/to/llm-wiki/plugins/llm-wiki-opencode/skills/wiki-query/SKILL.md\"\n] }\n```\n\nThe query-only instruction is about 89% smaller and forbids wiki writes. OpenCode package sync and size are tested; live behavior remains provider/model dependent. Full research also requires `OPENCODE_ENABLE_EXA=1`\n\n.\n\nRead-only launchers. Best for local models.\n\n```\n./scripts/pi-wiki-query       # current Pi provider\n./scripts/pi-ds4-wiki-query   # isolated local DS4\n\n# Full write-capable workflow:\npi --skill path/to/llm-wiki/plugins/\\\nllm-wiki-opencode/skills/wiki-manager/SKILL.md\n```\n\nThe query launchers expose only `read,grep,find,ls`\n\n, disable unrelated discovery, and load the shared 2.8 KB query profile.\n\nPortable instruction files.\n\n```\n# Small read-only query profile:\ncurl -sL https://raw.githubusercontent.com/nvk/llm-wiki/master/profiles/query-lite/SKILL.md \\\n  > ~/your-project/AGENTS.md\n\n# Full research and maintenance protocol:\ncurl -sL https://raw.githubusercontent.com/nvk/llm-wiki/master/AGENTS.md \\\n  > ~/your-project/AGENTS.md\n```\n\nThe query profile is about 95% smaller than the complete portable protocol. Choose the full file only when the agent must write or research.\n\n**Claude Code:**\n\n```\nclaude plugin update wiki@llm-wiki\n# Restart Claude Code to apply\n```\n\nIf the update command misses a new version (stale marketplace cache), sync manually:\n\n```\ngit clone https://github.com/nvk/llm-wiki.git   # or: git -C ~/llm-wiki pull\nREPO=~/llm-wiki/claude-plugin\nDEST=~/.claude/plugins/cache/llm-wiki/wiki\nVERSION=$(grep '\"version\"' \"$REPO/.claude-plugin/plugin.json\" | grep -o '[0-9.]*')\nrm -rf \"$DEST\"/*\nmkdir -p \"$DEST/$VERSION\"\ncp -R \"$REPO/.claude-plugin\" \"$REPO/commands\" \"$REPO/skills\" \"$DEST/$VERSION/\"\n```\n\n**Codex:** run `codex plugin marketplace upgrade llm-wiki`\n\n, then `codex plugin add wiki@llm-wiki`\n\n. For a local checkout: re-run `./scripts/bootstrap-codex-plugin.sh --scope user --verify`\n\n.\n\n**AGENTS.md:** re-run the curl command above to replace the file.\n\nOne command, from anywhere — creates a topic wiki, launches parallel agents, keeps researching for an hour, comes back compiled.\n\n```\n/wiki:research \"gut microbiome\" --new-topic --min-time 1h\n```\n\nMore common flows:\n\n```\n/wiki:research \"nutrition\" --new-topic\n/wiki:research \"fasting\" --deep --min-time 2h\n/wiki:research \"What makes articles go viral?\" --new-topic\n\n/wiki:research --mode thesis \"fiber reduces neuroinflammation via SCFAs\"\n/wiki:query \"How does fiber affect mood?\"\n/wiki:query --resume\n\n/wiki add https://example.com/article       # fuzzy router → ingest\n/wiki what do we know about CRISPR?         # fuzzy router → query\n/wiki I have an idea for cited podcast search # capture → inventory/ideas/\n/wiki poke holes in the podcast idea          # shape; no Project yet\n/wiki use the narrow version and make it a project # approve → frozen brief\n\n/wiki:ingest-collection https://github.com/bitcoin/bips --wiki bitcoin\n/wiki:adapter list\n/wiki:adapter doctor my-private-adapter\n/wiki:adapter run my-private-adapter --request /absolute/request.json\n/wiki:collect \"bitcoin memes\" --wiki bitcoin\n/wiki:collect \"bitcoin memes\" --scale medium --media reference --inventory corpus\n/wiki:inventory add item \"TRX-4M ring and pinion\" --wiki trx4m-1-18\n/wiki:inventory list --view actions --limit 10\n/wiki:dataset add \"Bitcointalk Temporal Graph\" --location https://figshare.com/articles/dataset/BitcoinTemporalGraph/26305093\n/wiki:dataset list --view schema --limit 10\n/wiki:archive topic old-interest --reason \"No longer active\"\n/wiki:archive list --archived\n/wiki:archive restore old-interest\n/wiki:session status\n/wiki:session rehydrate --cwd \"$PWD\"\n/wiki:feedback list --unpromoted\n/wiki:session disable   # optional opt-out\n\n/wiki:compile\nllm-wiki schema status /path/to/wiki\nllm-wiki schema adopt /path/to/wiki   # add advisory topic guide to older wikis\n/wiki:output report --topic gut-brain\n/wiki:assess /path/to/my-app --wiki nutrition\n/wiki:lint --fix\n```\n\nLong agent runs lose useful context when chats compact, terminals close, or work moves from Claude to Codex.\nLLM Wiki now has a hidden operational layer for that: redacted checkpoints, compact digests, and user-feedback\ncandidates under `HUB/.sessions/`\n\n. It helps the next turn get oriented without treating private chat\nlogs as curated wiki knowledge.\n\nA session ID such as `codex:abc123`\n\ncombines the harness name with that runtime's native session ID.\nIt is a local lookup key that ties events, state, and a digest together—not a secret, transcript, wiki, or topic ID.\n\nTrusted hooks capture in balanced mode by default. `/wiki:session disable`\n\nwrites `enabled: false`\n\nso those hooks become no-ops.\n\nCapture stores metadata, state, small events, and distilled Markdown digests. Full transcripts are not stored by default.\n\n`/wiki:session rehydrate`\n\nreturns a compact context block pointing the agent to relevant digests for the current directory, topic, or session ID.\n\nSession digests and feedback candidates remain operational memory until `promote`\n\nwrites a distilled note into a topic's `raw/notes/`\n\n.\n\n```\nHUB/.sessions/\n├── config.json                         # enabled/mode/privacy/rehydrate settings\n├── registry.jsonl                      # append-only lifecycle events\n├── queue/YYYY-MM-DD.jsonl              # small redacted hook events\n├── state/<harness>/<session_id>.json   # latest per-session machine state\n├── digests/YYYY/MM/<harness>-<session_id>.md\n├── feedback/\n│   ├── candidates.jsonl                # corrections, preferences, approvals, plan acceptance\n│   └── status.json\n└── indexes/                            # derived caches for cwd/topic/session lookups\n/wiki:session status\n/wiki:session rehydrate --cwd \"$PWD\"\n/wiki:session list --limit 10\n/wiki:session show codex:abc123\n/wiki:session promote codex:abc123 --topic meta-llm-wiki\n\n/wiki:feedback list --unpromoted\n/wiki:feedback show fb-abc123\n/wiki:feedback promote fb-abc123 --topic meta-llm-wiki\n\n/wiki:session disable   # opt out\n/wiki:session enable    # turn capture back on\n```\n\nThe same `.sessions/`\n\nlayout works across Codex, Claude Code, OpenCode, Gemini-style adapters, and local `.wiki/`\n\nproject wikis.\nIt is separate from the research crash-recovery files (`.research-session.json`\n\nand `.thesis-session.json`\n\n)\nand durable workflow provenance (`.session-events.jsonl`\n\nand `.session-checkpoint.json`\n\n) stored in a topic wiki.\n\n`.sessions/`\n\n; no full transcripts by default.`--fix`\n\nauto-repairs safe issues.\n\n```\n~/wiki/                                 # Hub — lightweight, no content\n├── wikis.json                          # Registry of all topic wikis\n├── _index.md                           # Lists topic wikis with stats\n├── log.md                              # Global activity log\n├── .sessions/                          # Operational session memory, digests + feedback\n└── topics/                             # Each topic is an isolated wiki\n    ├── nutrition/\n    │   ├── .obsidian/                  # Obsidian vault config\n    │   ├── inbox/                      # Drop zone for this topic\n    │   ├── inventory/                  # Items, candidates, corpora, Ideas, views\n    │   │   └── ideas/                  # Proposals being researched and shaped\n    │   ├── datasets/                   # Manifests for large/external data\n    │   ├── raw/                        # Immutable sources\n    │   ├── wiki/                       # Compiled articles\n    │   │   ├── concepts/\n    │   │   ├── topics/\n    │   │   └── references/\n    │   ├── output/                     # Generated artifacts\n    │   ├── _index.md\n    │   ├── config.md\n    │   └── log.md\n    ├── woodworking/                    # Another topic wiki\n    └── .archive/                       # Archived topic wikis, hidden by default\n```\n\nEach research area is isolated. No cross-topic noise. Queries stay focused. A multi-wiki peek finds overlap when relevant.\n\n`[[wikilinks]]`\n\nfor Obsidian plus standard markdown links for everything else. Works in every viewer — including no viewer at all.\n\nOnce a source is ingested it is never modified. Articles synthesize on top. Retraction removes both cleanly.\n\n`/wiki:collect`\n\nrecords aliases, source context, media URLs, cached asset paths, hashes, dedupe notes, scale, and inventory recommendations before anything becomes evidence or durable state.\n\nParts, source queues, corpora, watch items, and next actions live under `inventory/`\n\nso they can be listed and revisited without becoming evidence.\n\nIdeas keep proposal history and research lineage. Promotion requires an approved decision snapshot; the linked Project owns plans, implementation, artifacts, and outcomes.\n\n`/wiki:portfolio`\n\ncross-references distributed Ideas and direct or promoted Projects live. Concepts remain supporting knowledge, and no catch-all store can drift.\n\nAdapter registrations live in a mode-`0600`\n\nmachine-local registry. Code and bulk output stay outside the hub; only reviewed `wiki-safe`\n\ncandidates may enter normal provenance workflows.\n\n`datasets/`\n\nstores manifests, samples, profiles, and query recipes for large data. The wiki indexes data without copying it into the source corpus.\n\nArchived topics live under `topics/.archive/`\n\n. Most tools skip them by default; deep queries may surface index hits, and explicit `--include-archived`\n\ncan read them.\n\n`.sessions/`\n\nis hidden, cross-topic operational state for redacted checkpoints, digests, rehydration indexes, and feedback candidates. Topic promotion is explicit.\n\nRuns entirely on the host agent's built-in tools. Plugin is Markdown + commands. No servers, no services, no telemetry.\n\nAll commands accept `--wiki <name>`\n\nto target a topic wiki and `--local`\n\nfor the project wiki. Archived topic wikis are skipped by default; commands that support `--include-archived`\n\nrequire that explicit flag before reading or writing archived material. `query`\n\n, `output`\n\n, and `plan`\n\nalso accept `--with <wiki>`\n\nfor cross-wiki context.\n\n| Command | Description |\n|---|---|\n`/wiki <natural language>` | Fuzzy intent router — say what you want, including Idea capture, development, shaping, and approved Project promotion. |\n`/wiki` | Show status, stats, and list all topic wikis. |\n`/wiki init <name>` | Create a topic wiki at `~/wiki/topics/<name>/` . |\n`/wiki:idea new|list|show` | Capture Ideas under `inventory/ideas/` or browse the active topic and hub-wide catalog. |\n`/wiki:idea develop|shape|promote|archive <slug>` | Research and challenge an Idea, choose a version, explicitly promote an approved frozen brief into a linked Project, or archive only the Idea. |\n`/wiki:portfolio [filters]` | Show one live, read-only portfolio of Ideas and active Projects across topic wikis without copying records into a catch-all topic. |\n`/wiki:ingest <source>` | Ingest a URL, file path, or quoted text. |\n`/wiki:ingest --inbox` | Process files dropped into the topic wiki's inbox. |\n`/wiki:ingest-collection <source>` | Bulk-ingest Git doc repos, BIP-style proposal sets, MediaWiki dumps/API sites, message archives, or Wayback CDX snapshots. |\n`/wiki:adapter add <local-path>` | Register an existing explicitly trusted private adapter with scoped input and output roots; never clone or publish it. |\n`/wiki:adapter list|show|doctor` | Inspect machine-local registrations and verify the manifest, executable, and describe handshake. |\n`/wiki:adapter run <id> --request <json>` | Execute a scoped `llm-wiki-adapter/v1` request and verify returned artifact paths and SHA-256 hashes without automatic wiki import. |\n`/wiki:adapter remove <id> --yes` | Remove only the machine-local registration, not adapter code, input, or results. |\n`/wiki:collect \"<things>\"` | Find, dedupe, and catalog artifacts, examples, resources, media, memes, tools, entities, or source candidates. |\n`/wiki:collect \"<things>\" --scale tiny|small|medium|large|huge` | Control write behavior by operational scale: row count, media weight, provenance burden, volatility, and inventory usefulness. |\n`/wiki:collect \"<things>\" --media archive|thumbnail|reference` | Download bounded originals by default for media-bearing collections; use thumbnails for previews or reference to opt out. |\n`/wiki:collect \"<things>\" --inventory corpus|records` | Create one corpus record for medium or media-heavy sets, or per-item records only for small durable lists. |\n`/wiki:inventory list` | List durable tracking records as compact chat tables or bullets. |\n`/wiki:inventory add <kind> \"title\"` | Add items, source candidates, entities, corpora, questions, tasks, or watch records after a fit check. |\n`/wiki:inventory scan-outputs --dry-run` | Preview legacy queues/backlogs before an additive inventory migration. |\n`/wiki:dataset list` | List dataset manifests without opening samples, profiles, queries, or underlying data. |\n`/wiki:dataset add \"title\" --location <path-or-url>` | Index large or external data with a manifest; the data stays outside the wiki. |\n`/wiki:dataset profile <slug> --dry-run` | Preview lightweight profiling of size, format, headers, or schema observations. |\n`/wiki:archive list [--archived]` | List active topic wikis and optionally archived topic wikis. |\n`/wiki:archive topic <slug> --reason \"why\"` | Move a topic wiki to `topics/.archive/<slug>` and hide it from default context. |\n`/wiki:archive restore <slug>` | Restore an archived topic wiki to active status. |\n`/wiki:archive peek <query>` | Search archived topic indexes without reading archived article bodies. |\n`/wiki:session status|disable|enable` | Inspect, opt out of, or reconfigure default-on redacted session capture. |\n`/wiki:session capture|list|show` | Create, browse, and inspect redacted session digests kept outside topic evidence. |\n`/wiki:session rehydrate|promote` | Load compact session context or explicitly promote a distilled digest into topic raw notes. |\n`/wiki:feedback list|show` | Review redacted feedback candidates for corrections, preferences, approvals, and plan acceptance. |\n`/wiki:feedback capture|promote` | Manually add a feedback candidate or explicitly promote one into topic raw notes. |\n`/wiki:compile` | Compile new sources into wiki articles. |\n`/wiki:query <question>` | Compact read-only Q&A with exact file citations. `--quick` / `--deep` / `--list` / `--resume` / `--include-archived` . |\n`/wiki:ll` | Extract lessons from current session into wiki. `--dry-run` , `--rules` . |\n`/wiki:research <topic>` | 5 parallel agents. `--plan` (multi-path), `--deep` (8), `--retardmax` (10), `--new-topic` , `--min-time 1h` . |\n`/wiki:research --mode thesis <claim>` | Thesis-driven research: for + against → verdict. |\n`/wiki:plan <goal>` | Wiki-grounded implementation plan. `--format rfc|adr|spec` . |\n`/wiki:output <type>` | summary, report, study-guide, slides, timeline, glossary, comparison. |\n`/wiki:assess <path>` | Assess a repo against wiki + market. Gap analysis. |\n`/wiki:audit` | Truth-seeking audit across wiki, outputs, provenance, and fresh research when needed. |\n`/wiki:librarian` | Score articles for staleness and quality; optional `conventions` pass writes topic-guide proposals without rewriting `schema.md` . |\n`/wiki:lint` | Health checks. `--fix` auto-repairs and can add a missing advisory topic guide; `--deep` web-verifies facts. |\n`/wiki:retract [<source-path>]` | Dry-run-first removal of a source and its downstream wiki references, including selected archives and sessions. |\n`llm-wiki retract --everywhere [--apply]` | Clean up an accidentally saved sensitive value using hidden or stdin input, common encoded-form matching, explicit application, and local verification. |\n`/wiki:project` | Create and manage delivery folders directly or from promoted Ideas. The Project owns changing plans, artifacts, and outcomes. |\n\nFrom zero to a compiled wiki in 5 minutes.\n\n**1. Install the plugin**\n\n```\nclaude plugin install wiki@llm-wiki\n```\n\n**2. Create a topic wiki**\n\nPick any topic you're curious about:\n\n```\n/wiki init nutrition\n```\n\nThis creates a hub at `~/wiki/`\n\nand your first topic wiki at `~/wiki/topics/nutrition/`\n\n.\n\n**3. Research it**\n\n```\n/wiki:research \"gut microbiome and mental health\" --wiki nutrition\n# or just say it naturally:\n/wiki research gut microbiome and mental health\n```\n\nFive parallel agents search the web from different angles (academic, technical, applied, news, contrarian), ingest the best sources, and compile them into cross-referenced wiki articles. Takes 2-5 minutes.\n\n**4. Ask your wiki a question**\n\n```\n/wiki:query \"how does fiber affect mood?\" --wiki nutrition\n# or naturally:\n/wiki how does fiber affect mood?\n```\n\nThe wiki answers from its compiled articles with citations.\n\n**5. Audit before you trust an output**\n\n```\n/wiki:audit --wiki nutrition\n/wiki:audit --artifact output/report-gut-brain.md\n```\n\nAudit rechecks the wiki layer, traces the output's evidence chain, flags drift, and will do fresh research if the local corpus is not enough to answer the trust question.\n\n**What to do next:**\n\n`/wiki:research \"topic\" --deep`\n\n— 8 agents instead of 5, adds historical and data angles`/wiki:research \"topic\" --min-time 1h`\n\n— keep researching in rounds for an hour`/wiki:research \"topic\" --plan`\n\n— decompose into parallel research paths`/wiki:audit --project nutrition-playbook`\n\n— verify outputs and upstream wiki state together`/wiki add https://example.com/article`\n\n— fuzzy router detects the URL and ingests it`/wiki what do we know about CRISPR?`\n\n— fuzzy router detects the question and queries`/wiki:lint --fix`\n\n— clean up structural issues and add a missing advisory topic guide`llm-wiki schema adopt /path/to/wiki`\n\n— safely add `schema.md`\n\nto an older wikiA typical research session flows through four stages:\n\n**Stage 1: Ask a question or pick a topic**\n\nllm-wiki auto-detects whether you're asking a question or naming a topic. Use the direct command or the fuzzy router:\n\n```\n/wiki:research \"What makes long-form articles go viral?\"   # direct command\n/wiki research quantum computing                            # fuzzy router — same result\n/wiki:research --mode thesis \"fiber reduces neuroinflammation via SCFAs\"  # thesis → for/against evidence\n```\n\n**Stage 2: Agents search in parallel**\n\n5 agents (8 with `--deep`\n\n, 10 with `--retardmax`\n\n) search simultaneously from different angles — 2-3 web searches each, full-content fetch, quality scoring (1-5). A credibility pass deduplicates before ingestion.\n\n**Stage 3: Sources are ingested and compiled**\n\nTop sources are saved to `raw/`\n\n(immutable — never modified after ingestion). Then the compilation pass synthesizes them into wiki articles under `wiki/concepts/`\n\n, `wiki/topics/`\n\n, and `wiki/references/`\n\nwith cross-references, confidence scores, and bidirectional links.\n\n**Stage 4: Gap report and follow-up**\n\nAfter each round, you see what's covered, what's still missing, and suggested follow-ups. If 2+ gaps remain, you're offered to close them in parallel:\n\n```\n### Close gaps?\n1. Dose-response curves for wavelength specificity\n2. Long-term safety data for daily exposure\n3. Device comparison (clinical vs consumer panels)\n\nEnter numbers (e.g. 1,2,4), \"all\", or \"skip\":\n```\n\n**Multi-round research:** Add `--min-time 2h`\n\nto keep researching in rounds, each drilling into gaps the previous round found. Add `--plan`\n\nto decompose into parallel paths upfront.\n\n**The hub** (`~/wiki/`\n\n) is just a registry. No content — only `wikis.json`\n\n, `_index.md`\n\n, and `log.md`\n\n. All content lives in topic sub-wikis.\n\n**Topic wikis** (`~/wiki/topics/<name>/`\n\n) are isolated research areas. Each has its own sources, articles, outputs, advisory `schema.md`\n\ntopic guide, and Obsidian vault config. Isolation means researching quantum computing can't pollute your nutrition wiki.\n\n**Raw sources** (`raw/`\n\n) are immutable. Once a paper, article, or data file is ingested, it's never modified. This is the audit trail — every claim in every article traces back to a source.\n\n**Wiki articles** (`wiki/`\n\n) are LLM-compiled syntheses organized into three categories:\n\n**Archive** (`topics/.archive/`\n\n) is for whole topic wikis the user no longer wants in normal context. It preserves source history, articles, outputs, and logs while keeping old interests quiet by default.\n\n**Sessions** (`HUB/.sessions/`\n\n) are operational memory for redacted harness checkpoints, compact digests, rehydration indexes, and feedback candidates. They are not compiled as topic evidence unless explicitly promoted into `raw/notes/`\n\n.\n\n**Inventory** (`inventory/`\n\n) is for durable operational state: actual items, source candidates, corpora, entities, open questions, tasks, watch items, and next actions. It is intentionally not evidence for factual claims.\n\n**Ideas** (`inventory/ideas/`\n\n) are proposals that might become deliverables. They link to Concepts and evidence while preserving the original seed, assumptions, alternatives, scope, risks, success criteria, and decisions. They remain catalog records rather than factual evidence.\n\n**Projects** (`output/projects/<slug>/`\n\n) are committed delivery work. Promotion is explicit: an approved Idea snapshot becomes a frozen `BRIEF.md`\n\nbeside `WHY.md`\n\n, and the Project then owns all changing implementation truth.\n\n**Dataset manifests** (`datasets/`\n\n) let the wiki index large or external data without copying it into `raw/`\n\n. Manifests can point to local paths, URLs, archives, samples, profiles, and query recipes.\n\n**Topic guides** (`schema.md`\n\n) are human-owned convention files, not database schemas. They define local vocabulary, relationship verbs, article subtypes, source boundaries, and adoption notes. New wikis get an advisory starter by default; older wikis remain valid and can adopt one with `llm-wiki schema adopt`\n\nor after a librarian conventions proposal.\n\nArticles use dual-link format: `[[wikilink]]`\n\nfor Obsidian + standard markdown links for everything else. Confidence scores (high/medium/low) reflect source quality and corroboration.\n\n**Indexes** (`_index.md`\n\n) exist in every directory. They're derived caches — rebuilt automatically from file frontmatter. The agent reads indexes first and never scans blindly.\n\n**Outputs** (`output/`\n\n) are generated artifacts: reports, slide outlines, study guides, implementation plans. They're built from wiki articles, so every output compounds on all prior research.\n\n**Audit** walks that full artifact graph. It can trace an output back through the wiki state and raw sources it depended on, then escalate into fresh research when the stored evidence is stale or incomplete.\n\nSession capture is default-on operational memory. Trusted Codex, Claude, OpenCode, and Gemini hooks write redacted checkpoints into `HUB/.sessions/`\n\nor a local `.wiki/.sessions/`\n\n. The topic wiki stays clean until you promote something.\n\n**What is captured:** harness name, session ID, current directory, git branch/remote, small redacted hook events, per-session state JSON, markdown digests, and feedback candidates. Full transcripts are off by default.\n\n```\nHUB/.sessions/\n├── config.json\n├── registry.jsonl\n├── queue/YYYY-MM-DD.jsonl\n├── state/<harness>/<session_id>.json\n├── digests/YYYY/MM/<harness>-<session_id>.md\n├── feedback/candidates.jsonl\n└── indexes/\n```\n\n**Daily commands:**\n\n```\n/wiki:session status\n/wiki:session rehydrate --cwd \"$PWD\"\n/wiki:session list --limit 10\n/wiki:session show codex:abc123\n/wiki:feedback list --unpromoted\n/wiki:feedback promote fb-abc123 --topic meta-llm-wiki\n```\n\n**Opt out:** `/wiki:session disable`\n\nwrites `enabled: false`\n\nin `.sessions/config.json`\n\n, so trusted hooks become no-ops. `/wiki:session enable`\n\nturns it back on.\n\n**Promotion rule:** session digests and feedback candidates are useful for continuity, but they become topic knowledge only after `/wiki:session promote`\n\nor `/wiki:feedback promote`\n\nwrites a distilled note under `raw/notes/`\n\n.\n\nUse the repo-owned Pi launcher for fast DS4 wiki lookups. It creates isolated Pi state, pins the local `deepseek-v4-flash`\n\nprovider settings, disables unrelated extensions and skills, and exposes only `read`\n\n, `grep`\n\n, `find`\n\n, and `ls`\n\n.\n\n```\ncd /path/to/llm-wiki\n./scripts/pi-ds4-wiki-query\n\n# Inspect the exact command without launching Pi:\n./scripts/pi-ds4-wiki-query --dry-run\n\n# Optional overrides:\nDS4_BASE_URL=http://127.0.0.1:8000/v1 \\\nDS4_MODEL=deepseek-v4-flash \\\nLLM_WIKI_PI_DS4_STATE_DIR=\"$HOME/.pi-ds4\" \\\n  ./scripts/pi-ds4-wiki-query\n```\n\n**Query-only means query-only:** the compact profile cannot ingest, compile, edit, or repair a wiki. Switch to the full `wiki-manager`\n\nskill when the requested workflow must write.\n\n**Measured harness reduction:** the controlled AB/BA benchmark reduced the exact serialized provider payload from 216,640 to 77,338 bytes, a 64.30% reduction, while preserving fixture reads, citations, abstention, and no-mutation checks.\n\n**OpenCode note:** its generated query profile receives static and sync validation, but live behavior remains best effort because the user chooses the provider and model.\n\nFor broad topics, `--plan`\n\ndecomposes your research into independent paths and runs them all in parallel:\n\n```\n/wiki:research \"red light therapy\" --plan --wiki redlight-therapy\n# or naturally:\n/wiki research red light therapy --plan\n```\n\nThe agent generates a research plan and asks for confirmation:\n\n```\n## Research Plan — red light therapy\n\n### Paths (will run in parallel)\n\n1. **Mechanisms** — cytochrome c oxidase, wavelength specificity, dose-response\n2. **Clinical evidence** — RCTs for skin, joints, wounds, cognition\n3. **Devices** — LED vs laser, panel sizing, FDA clearances\n4. **Criticisms** — placebo effects, publication bias, safety concerns\n\n### Estimated: 4 paths x 5 agents = 20 parallel agents\n\nProceed? (y/n/edit)\n```\n\nOn confirmation, all paths launch simultaneously. Each path runs its own 5-agent swarm. Sources are ingested in parallel (each path writes unique files), then a single compilation pass sees all sources at once for cross-path synthesis.\n\n**After the first round,** a gap report shows what's still missing. Pick which gaps to close — they launch as another parallel batch:\n\n```\n### Close gaps?\n1. Dose-response curves for wavelength specificity\n2. Long-term safety data for daily exposure\n3. Device comparison (clinical vs consumer)\n\nEnter numbers (e.g. 1,2,4), \"all\", or \"skip\":\n```\n\n**Combine with other flags:**\n\n`--plan --deep`\n\n— 8 agents per path instead of 5`--plan --min-time 2h`\n\n— multiple plan-dispatch-compile cycles over 2 hours`--plan --new-topic`\n\n— create the wiki and research in one shotOnce your wiki has compiled articles, generate deliverables from them:\n\n```\n/wiki:output report --topic gut-brain --wiki nutrition\n# or naturally:\n/wiki write a report on gut-brain axis\n```\n\n**Output types:**\n\n`summary`\n\n— concise overview of a topic or the entire wiki`report`\n\n— detailed analysis with citations and evidence`study-guide`\n\n— structured learning material with key concepts and review questions`slides`\n\n— slide deck outline with speaker notes`timeline`\n\n— chronological view of events and developments`glossary`\n\n— term definitions extracted from articles`comparison`\n\n— side-by-side analysis of two or more subjectsOutputs are saved to `output/`\n\ninside the topic wiki and indexed automatically. Every output builds on all compiled articles, so the more you research, the stronger every output gets.\n\n**Retardmax mode** works here too — `/wiki:output report --retardmax`\n\nships a rough draft immediately. Iterate later.\n\n**Cross-wiki context:** Use `--with`\n\nto pull knowledge from another wiki into your output:\n\n```\n/wiki:output report --wiki nutrition --with article-writing\n# Uses nutrition content + article-writing craft knowledge\n```\n\n**Projects:** Start committed work directly, or incubate uncertainty as an Idea first:\n\n```\n/wiki I have an idea for rebuilding the blog around reader jobs\n/wiki research this idea and compare the smallest useful version\n/wiki poke holes in it\n/wiki use the narrow version and make it a project\n\n# Direct Projects remain valid when incubation adds no value:\n/wiki:project new rebuild-blog \"Rewrite the company blog using wiki research\"\n/wiki:output report --topic gut-brain --project rebuild-blog\n```\n\nAn Idea lives in `inventory/ideas/`\n\n. Approved promotion creates `output/projects/rebuild-blog/WHY.md`\n\nplus a frozen `BRIEF.md`\n\nand preserves links in both directions. From then on, the Project owns delivery state and its artifacts stay colocated.\n\nResearch sessions fetch many URLs. By default, Claude Code asks for approval on each one. To skip these prompts, add `WebFetch`\n\nand `WebSearch`\n\nto your project's allow list:\n\nIn `.claude/settings.local.json`\n\n:\n\n```\n{\n  \"permissions\": {\n    \"allow\": [\n      \"WebFetch\",\n      \"WebSearch\"\n    ]\n  }\n}\n```\n\nThis pre-approves all web fetches and searches. You can also allow specific domains only: `WebFetch(domain:arxiv.org)`\n\n.\n\nIf you prefer per-session approval, choose \"Always allow\" when Claude asks about the first URL — that covers the rest of the session.\n\nPulled live from [github.com/nvk/llm-wiki/releases](https://github.com/nvk/llm-wiki/releases). Falls back to the version baked into the plugin manifest if the API is unavailable.\n\n**Private adapter protocol.** Register and run explicitly trusted local research tools while their code, credentials, corpora, and bulk results stay outside the wiki.\n\n**Scoped, verified execution.** Manifest handshakes, sanitized environments, path policies, timeouts, private receipts, and SHA-256 artifact checks make runs reviewable.\n\n**No automatic import.** Only reviewed `wiki-safe`\n\ncandidates may later enter normal provenance workflows; private and bulk artifacts remain external.\n\nPulled live from `.claude-plugin/marketplace.json`\n\non the master branch via jsDelivr CDN — no rate limits, always current.\n\nLLM-compiled knowledge base with explicitly trusted private adapters, a hub-wide Ideas/Projects portfolio, fuzzy Idea shaping and promotion, compact queries, ingestion, audits, sessions, inventory, datasets, archives, and artifact generation.\n\nLLM Wiki is a set of commands and a knowledge model that turns any LLM agent into a research engine and an append-only, Markdown-native wiki. It captures rough Ideas, researches and shapes them against compiled Concepts and evidence, and explicitly promotes approved snapshots into Projects. It also runs parallel research, preserves redacted session memory, ingests and compiles sources, audits trust, answers questions, and generates artifacts.\n\nInspired by [Andrej Karpathy's LLM wiki concept](https://x.com/karpathy/status/2039805659525644595).\n\nFive install modes: Claude Code (native plugin), OpenAI Codex (marketplace plugin with full `@wiki`\n\nand explicit `$wiki-query`\n\n), OpenCode (full or query-only instruction file), Pi/DS4 (read-only launchers or the full skill), and any other LLM agent via a compact query profile or complete portable `AGENTS.md`\n\n.\n\nThe canonical behavior lives under the Claude source tree. Sync scripts generate Codex, OpenCode, and portable query packages, and deterministic tests reject drift. OpenCode live-model behavior remains best effort because its provider and model are user-selected.\n\nBy default in `~/wiki/`\n\non your machine. You can relocate the hub to iCloud Drive, Dropbox, or any custom path:\n\n```\n/wiki config hub-path ~/Library/Mobile\\ Documents/com~apple~CloudDocs/wiki\n```\n\nConfig lives at `~/.config/llm-wiki/config.json`\n\n. Shared hubs should use portable `hub_path`\n\nvalues and relative `wikis.json`\n\ntopic paths; old machine-specific `resolved_path`\n\nvalues are treated only as fallback caches.\n\nmacOS privacy permissions are local to each Mac and to the exact process launching the agent. One machine can read the iCloud hub while another machine with the same Apple ID and same files returns `Operation not permitted`\n\n.\n\nIf `stat`\n\nsucceeds for the hub but reading `wikis.json`\n\nor listing `topics/`\n\nfails, the configured `hub_path`\n\nis correct. Grant Full Disk Access or iCloud Drive access to the launcher app, then fully restart that app and the agent.\n\nFor SSH-launched Codex sessions, Terminal.app permission is not enough because Codex is a child of `sshd-session`\n\n. Grant access to `/usr/libexec/sshd-session`\n\n, `/usr/libexec/sshd-keygen-wrapper`\n\n, and optionally `/usr/sbin/sshd`\n\n, then start a new SSH session.\n\nSession memory lives in `HUB/.sessions/`\n\nor a local `.wiki/.sessions/`\n\n. It is hidden operational state: redacted hook events, state JSON, digest Markdown, feedback candidates, and indexes for rehydration.\n\nIt is default-on so long sessions can survive compaction and future turns can start with the right context. It does not store full transcripts by default. Run `/wiki:session disable`\n\nto opt out, `/wiki:session rehydrate`\n\nto load compact context, and `/wiki:session promote`\n\nonly when a digest should become topic evidence.\n\n`schema.md`\n\nis a human-owned topic guide. It is not a database schema and not an automatic migration target. Use it to capture a topic's local vocabulary, relationship verbs, article subtypes, source boundaries, and convention notes.\n\nNew topic wikis get an advisory starter by default. Existing wikis without one are still valid; run `llm-wiki schema adopt --dry-run /path/to/wiki`\n\nto preview the starter or `llm-wiki schema adopt /path/to/wiki`\n\nto add it. For established wikis, run the librarian conventions pass first and copy only the useful proposal parts into `schema.md`\n\n.\n\nYes. Each topic wiki ships with its own `.obsidian/`\n\nvault config and can be opened as an independent vault:\n\n```\nopen ~/wiki/topics/nutrition/\n```\n\nCross-references use a dual-link format:\n\n```\n[[gut-brain-axis|Gut-Brain Axis]] ([Gut-Brain Axis](../concepts/gut-brain-axis.md))\n```\n\nObsidian reads the wikilink for graph view and backlinks; everything else (Claude Code, GitHub, plain text editors) follows the standard markdown link.\n\nA research mode inspired by [Elisha Long's retardmaxxing philosophy](https://www.retardmaxx.com/) — act first, think later. Ten parallel agents, skip planning, cast the widest net, ingest aggressively, compile fast, lint later.\n\nAvailable on `/wiki:research --retardmax`\n\nand `/wiki:output --retardmax`\n\nfor when you want results now and will clean up afterward.\n\n`/wiki:research --mode thesis \"<claim>\"`\n\nstarts from a specific claim and uses it as a filter. Agents are split across **supporting**, **opposing**, **mechanistic**, **meta/review**, and **adjacent** — balanced by design.\n\nSources that don't relate to the claim's variables are skipped, which keeps the wiki tight. Output is a **verdict**: supported, partially supported, contradicted, insufficient evidence, or mixed.\n\nWith `--min-time`\n\n, round two focuses harder on the weaker side of the evidence — counter-weight against confirmation bias.\n\nYes. LLM Wiki is MIT-licensed. Source and releases at [github.com/nvk/llm-wiki](https://github.com/nvk/llm-wiki).\n\nCompiling, querying, linting, and generating artifacts from an existing wiki work offline — everything is plain Markdown on your disk. Research and ingestion need internet since they fetch URLs and search the web.\n\nZero runtime dependencies. LLM Wiki uses only the built-in tools of the host agent (file read/write, web fetch, web search). The plugin itself is Markdown: command definitions, skills, and reference docs.\n\nOptional: [ask-grok-mcp](https://github.com/nvk/ask-grok-mcp) for best-in-class tweet ingestion, [tobi/qmd](https://github.com/tobi/qmd) for local search beyond ~100 articles.\n\n**Claude Code:** `claude plugin update wiki@llm-wiki`\n\nand restart.\n\n**Codex:** run `codex plugin marketplace upgrade llm-wiki`\n\n, then `codex plugin add wiki@llm-wiki`\n\n(or re-run the bootstrap helper for a local checkout).\n\n**AGENTS.md:** re-curl from the master branch to replace your file.\n\nSee [Install](#install) for the manual sync fallback when the plugin updater hits stale cache.", "url": "https://wpnews.pro/news/show-hn-harness-session-memory-without-transcript-hoarding", "canonical_source": "https://llm-wiki.net/#sessions-rehydrate-future-work", "published_at": "2026-08-16 12:04:49+00:00", "updated_at": "2026-08-16 12:41:19.313761+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "ai-research", "developer-tools"], "entities": ["LLM Wiki", "Claude Code", "OpenAI Codex", "OpenCode"], "alternates": {"html": "https://wpnews.pro/news/show-hn-harness-session-memory-without-transcript-hoarding", "markdown": "https://wpnews.pro/news/show-hn-harness-session-memory-without-transcript-hoarding.md", "text": "https://wpnews.pro/news/show-hn-harness-session-memory-without-transcript-hoarding.txt", "jsonld": "https://wpnews.pro/news/show-hn-harness-session-memory-without-transcript-hoarding.jsonld"}}