Turn PDFs, articles, transcripts, and notes into a shared wiki that your AI agents can search, cite, and keep up to date. Add a source once. Ask questions later. Keep the useful answers.
> /plugin marketplace add praneybehl/llm-wiki-plugin> /plugin install llm-wiki@llm-wiki
What's inside
Turn PDFs, articles, transcripts, and notes into a shared wiki that your AI agents can search, cite, and keep up to date. Add a source once. Ask questions later. Keep the useful answers.
Works with Claude Code, Codex, Cursor, Gemini CLI, OpenCode, OpenClaw, Pi, OMP, and Hermes. Read the documentation.
AI agents are good at the task in front of them, but a new session starts with limited context. LLM Wiki gives them a shared memory that can live in one personal wiki across all projects or inside a specific project.
When you add a source, the agent turns it into linked Markdown pages. Later, it can find the right section and answer with citations. Useful answers can be saved back into the wiki, so the knowledge grows instead of being rebuilt from scratch.
Everything canonical stays in readable Markdown. Default semantic search is local—no hosted vector database or embedding service.
/wiki:learn captures verified successes/failures and consolidates cited patterns, applicability and counterexamples./wiki:evolve runs training, evidence consolidation, whole-skill proposals, validation, and independent final testing, retaining rejected attempts. Adapters for nine supported agent hosts provide bounded runs, durable tool traces and cross-agent transfer; see the execution requirements./wiki:upgrade adds optional templates and archive guidance idempotently.See Learning and skill evolution for the full workflow, evaluation limits and inference costs. This release adds tooling; it does not claim measured model gains.
The evolution workflow adapts WikiSkill: Compiling Agent Experience into Persistent Knowledge for Skill Evolution (Google Research and Virginia Tech, 2026): persistent experience-to-pattern learning, repeated skill proposals, retained failures, validation-only selection and independent final testing. See what we adapted and changed and the measured results. Our study rejected both proposals; no quality improvement was demonstrated.
LLM Wiki works best for knowledge that grows over time: research, meeting notes, customer calls, papers, articles, and project decisions. Use a regular database when your main problem is structured records and transactions.
uv is the only prerequisite: it creates the pinned script environments on every supported platform. Install it using the official uv instructions before running /wiki:init or the natural-language equivalent.
Plugin/skill installation copies all agent-facing commands and bundled tools. Wiki initialization then performs mandatory runtime setup: FastEmbed 0.8.0, sqlite-vec 0.1.9, PyYAML 6.0.3, the local BAAI/bge-small-en-v1.5 model, the parse cache, and vectors for every existing section. Upgrade runs the same setup again, incrementally synchronizing changed and deleted sections.
The native path: the skill, the nine /wiki:* slash commands, and the marketplace manifest all ship in one install.
/plugin marketplace add praneybehl/llm-wiki-plugin
/plugin install llm-wiki@llm-wiki
Once installed, the plugin works in any project. Installation does not decide where your wiki lives.
The llm-wiki skill uses the standard agentskills.io format, so it installs cleanly into any agent supported by the skills CLI. Pick the --agent flag that matches your setup:
# Install globally so the skill is available across all projects
npx skills add praneybehl/llm-wiki-plugin -a <agent> -g
# Or install into the current project only
npx skills add praneybehl/llm-wiki-plugin -a <agent>
| Agent | --agent value | Invoke via | Scripts run |
|---|---|---|---|
| Claude Code | claude-code | /wiki:* slash commands (bundled) or natural language | ✅ |
| Codex (OpenAI) | codex | /skills or $llm-wiki / natural language | ✅ |
| Cursor | cursor | /llm-wiki or natural language | ✅ |
| Gemini CLI | gemini-cli | /skills management commands / natural language | ✅ |
| OpenCode | opencode | natural language (agent invokes the native skill tool) | ✅ |
| OpenClaw | openclaw | auto-exposed as a user command | ✅ |
| Pi Agent | pi | /skill:llm-wiki or natural language | ✅ |
| OMP ("Oh My Pi") | manual (see below) | natural language (skills auto-surface via skill://) | ✅ |
OpenCode also reads .claude/skills/ and ~/.claude/skills/, so if you already installed the skill for Claude Code you can use it in OpenCode without a second install.
Hermes Agent (Nous Research), OMP ("Oh My Pi"), and other agentskills.io-compatible runtimes that aren't yet in the npx skills registry can still use this skill — clone the repo and symlink or copy skills/llm-wiki/ into the agent's skills directory. Hermes reads from ~/.hermes/skills/; OMP reads managed/user skills from ~/.omp/agent/skills/ and surfaces them via skill://.
git clone https://github.com/praneybehl/llm-wiki-plugin.git
mkdir -p ~/.hermes/skills ~/.omp/agent/skills
ln -s "$(pwd)/llm-wiki-plugin/skills/llm-wiki" ~/.hermes/skills/llm-wiki
ln -s "$(pwd)/llm-wiki-plugin/skills/llm-wiki" ~/.omp/agent/skills/llm-wiki
A few things to know when using the skill outside Claude Code:
/wiki:* commands live in commands/wiki/ as Claude Code plugin manifests. In other agents, invoke the skill by natural language ("add this paper to the wiki", "what does the wiki say about X", "lint the wiki") — the SKILL.md handles the rest.setup_wiki.py, hybrid/lexical search, lint, stats, graph lint/extract/query, and initialization through the installed skill. Dependency-bearing scripts carry pinned PEP 723 metadata and run with uv run --script; initialization and upgrade verify the full runtime before reporting readiness.wiki/ ties it to a specific runtime.Skill scope and wiki scope are separate choices. A global skill install makes the skill available in every project; it does not create or select a global wiki.
~/wiki/, keep raw sources under ~/wiki/raw/, and point your agent's global instructions there. Work from any project can then be deliberately ingested into the same wiki.wiki/ and raw/ in the project and point the project's agent-memory file to them. Choose this when the knowledge should be isolated or versioned with that repository.A global wiki does not automatically crawl or ingest every project. The agent adds project facts, decisions, and source material when you ask it to ingest them or when your global instructions explicitly tell it to preserve durable findings.
For one personal wiki shared across projects:
/wiki:init --global
This initializes ~/wiki/ with raw sources under ~/wiki/raw/ and proposes a matching stanza for your agent's global instructions.
For a wiki isolated to the current project:
/wiki:init
Already have a wiki from an earlier plugin version? Run /wiki:upgrade instead. Init and upgrade both install and verify the complete pinned local runtime, cache the embedding model, build the parse cache, and synchronize all current vectors. They add missing wiki files idempotently and never overwrite existing pages or SCHEMA.md.
Initialization bootstraps the selected wiki and raw-source roots with SCHEMA.md, index.md, log.md, and a page template, then emits a JSON runtime report. Setup is complete only when it reports "status": "ready".
As part of the same step, the skill proposes a location pointer so the agent remembers the wiki in future sessions: global instructions for a personal global wiki, or the project's agent-memory file for a project wiki. The skill never writes to a memory file without your approval; see skills/llm-wiki/references/agent-memory-integration.md for both variants.
Drop your first source into the configured raw root (for example ~/wiki/raw/ in the global layout), then:
/wiki:ingest ~/wiki/raw/your-source.pdf
Claude reads the source (chunk-reading if it's large), discusses the takeaways with you, writes a summary page, identifies which existing entity and concept pages it touches, surgically updates them with str_replace, creates new pages for new entities and concepts (each with at least one inbound link), updates the index, and appends to the log.
Once you have a few sources in:
/wiki:query What does my wiki say about X?
Claude reads the index to find candidate pages, reads them, synthesizes an answer with [[wikilink]] citations, and offers to file substantive answers back into wiki/synthesis/ so the exploration compounds.
Periodically, run a health check:
/wiki:lint
This catches orphan pages, broken wikilinks, oversized pages, missing frontmatter, and stale claims. Findings are presented as proposed edits — Claude doesn't rewrite your wiki silently.
| Command | What it does |
|---|---|
/wiki:init [--global] | Bootstrap a personal global wiki or a wiki in the current project (both include the graph layer). |
/wiki:ingest <source> | Process a new source into the wiki; refreshes the graph layer when present. |
/wiki:query <question> | Answer a question from the wiki with citations; consults graph.sqlite for relational questions when available. |
/wiki:lint | Structural and semantic health check; also runs graph lint when wiki/graph/ontology.yaml exists. |
/wiki:stats | Show wiki size, link density, and which scaling threshold the wiki is at. |
/wiki:graph <action> | extract / lint / neighbors / edges / path / facts against the compiled graph layer. |
/wiki:learn <task artifacts> | Capture verified experience and consolidate reusable, evidence-linked patterns. |
/wiki:evolve <goal or action> | Propose, evaluate, inspect, apply or roll back a skill improvement; retain all trial results. |
FAQ
praneybehl-llm-wiki is a Claude Code plugin with 1 hand-picked skill for documentation work, indexed on Flowy. Install it with the command on its page. It includes llm-wiki. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it