wiki

Indexed knowledge bases with command-line tools for agents.
A wiki keeps project knowledge as plain markdown, indexed at every level
by _index.md files, read by consulting the index and opening only the
pages that a task needs. Andrej Karpathy named this shape the
LLM Wiki
pattern, and Google's
Open Knowledge Format
describes a standardized format for such markdown knowledge bases. Most
approaches leave a great deal of structuring for agents to maintain by
hand; here a deterministic CLI generates the indexes and cross-links and
auto-resolves the generated region of _index.md merges when parallel
edits collide — authored content below the delimiter still merges (and
can conflict) like any other text — so content is the only judgment
call.
Source:
https://github.com/plasma-ai/wiki
Package:
https://pypi.org/project/plasma-wiki/
Documentation:
https://docs.plasma.ai/wiki
Installation
Install the wiki package from PyPI:
pip install plasma-wiki
Use pipx install plasma-wiki or uv tool install plasma-wiki to
install in an isolated environment.
Skill
Install the /wiki skill for your agent via the plugin marketplace
(Claude Code and Codex):
# Claude Code
/plugin marketplace add plasma-ai/plugins
/plugin install wiki@plasma
# Codex
codex plugin marketplace add plasma-ai/plugins
codex plugin add wiki@plasma
Or from the CLI, which copies the skill into ~/.claude/skills and
~/.agents/skills (add --project for the current project only):
wiki install
Usage
A wiki is a tree of markdown files linked together by _index.md files.
Each folder becomes a section, and each markdown file becomes an entry.
Wikis are designed to be read and written by both humans and agents:
humans author content in Obsidian (or any editor), and agents query the
wiki through the CLI to ground their work in project-specific knowledge.
Every wiki root carries a .wiki/ directory — the tool's namespace,
holding settings.json (the file that declares the root; wiki init
writes it and wiki update restores a missing one), the derived word
counts cache, and the staged Obsidian config. Page, folder, and wiki
names are lenient by default: spaces, dashes, mixed case, and unicode
are all fine. Only characters that would break the wiki's structure —
its path, link, and index syntax — are rejected, along with leading dots
(hidden files) and the reserved _index name. A wiki can opt into
stricter rules, such as ASCII-only or identifier-style names, through
the naming block in .wiki/settings.json; wiki lint flags any name
that violates the policy.
Frontmatter timestamps default to UTC in ISO-8601. To change them, set a
timezone (any IANA name) and format (a strftime string) under
timestamp in .wiki/settings.json.
Word counts shown by wiki map are computed from page bodies and cached
in .wiki/cache/word_counts.json under the wiki root — never stored in
frontmatter, so editing a page dirties nothing else. The cache directory
ignores itself via its own .gitignore and can be deleted at any time;
it is rebuilt on demand. In the map, a page shows its own count and a
folder shows page/tree (its index's words over the subtree total),
abbreviated with k/m suffixes past a thousand; the map's indent unit
and description-truncation marker are configurable via map.indent and
map.ellipsis in .wiki/settings.json.
CLI
Use the /wiki skill to manage wikis, or drive the wiki CLI directly.
Initialize a wiki in the current project and configure integrations: