Skip to main content

Shared, git-synced, LLM-maintained wiki — one knowledge base for all your AI agents

Project description

MyWiki

A shared, git-synced, LLM-maintained wiki — one knowledge base that any agent (Claude Code, Codex, ouro-cli, GoaLoop, …) on any machine reads from and writes to.

Inspired by Andrej Karpathy's LLM-wiki note: instead of re-retrieving raw documents on every query (RAG), an LLM incrementally maintains a structured markdown wiki whose knowledge compounds over time.

Idea in one picture

sources/   immutable snapshots (id = content hash)
   │  mywiki ingest  →  work order
   ▼
wiki/pages/*.md   one concept per page, every claim cited [^src-id]
   │  mywiki query  →  cited answers
   ▼
git push/pull   sync across machines, agents, users
  • The CLI does the mechanical work — hashing, routing, indexing, linting, git.
  • The calling agent does the reasoning — extract facts, write prose, merge conflicts — guided by PLAYBOOK.md.
  • git is the coordination layer — push to GitHub/GitLab to share.

The split matters: the CLI can't call a model, so the intelligence lives in markdown (PLAYBOOK.md, exposed via mywiki help) and is executed by whatever LLM is running. That's what lets every tool share one brain.

Install

Zero-dependency Python 3 (stdlib only). Install from PyPI:

uv tool install my-wiki       # or: uv pip install my-wiki  /  pip install my-wiki

(The distribution is my-wiki; the command it installs is mywiki.)

Then create your first wiki and wire it into Claude:

mywiki init ~/my-wiki         # create + register a wiki (becomes default)
mywiki install                # deploy the bundled skill into ~/.claude/skills

Use

mywiki help                       # learn the commands
mywiki ingest notes.md            # freeze a source, get a work order
#   …agent edits wiki/pages/* per the work order…
mywiki commit-ingest src-1a2b -m "ingest: meeting notes"  # commits + auto-pushes
mywiki query raft leader election # cited answers
mywiki lint                       # broken/stale/uncited check
mywiki sync                       # pull --rebase + push (reconcile with remote)

Multiple wikis

Each wiki is its own git repo, so you can run several independent ones (e.g. a work and a personal knowledge base). A per-machine registry (~/.config/mywiki/registry.json, not synced) gives them stable names:

mywiki init ~/work-wiki work          # create + register, first becomes default
mywiki init ~/personal-wiki personal
mywiki use research ~/some/existing    # register an existing wiki
mywiki list                            # show all, marking default + active
mywiki default personal                # change the default
mywiki -w work query raft              # target a specific wiki on any command
mywiki forget research                 # drop from registry (files untouched)

Which wiki a command hits, in order: -w <name>$MYWIKI_HOME → the wiki you are cd'd into → the registry default.

Make agents aware of it

Each tool just needs a one-line pointer to the CLI (there is no per-tool logic — the usage lives in mywiki help):

  • Claude Code: run mywiki install (deploys the bundled skills/mywiki/SKILL.md to ~/.claude/skills/).
  • Codex / others: add to AGENTS.md: "A mywiki CLI maintains a shared knowledge base; run mywiki help to use it."

Layout

This repo is the tool's source. Actual wikis are created elsewhere with mywiki init and have their own sources/, wiki/pages/, wiki/log/, wiki/index.md, plus a copy of PLAYBOOK.md / .schema.md.

Path What
mywiki/cli.py the CLI (mechanical engine + self-docs)
PLAYBOOK.md the workflow/prompts, served by mywiki help (canonical template)
.schema.md what a page looks like (canonical template)
mywiki/resources/ symlinks to the templates + skill, bundled into the wheel
skills/mywiki/ the Claude skill, deployed by mywiki install
pyproject.toml packaging (entry point mywiki = mywiki.cli:main)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

my_wiki-0.1.1.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

my_wiki-0.1.1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file my_wiki-0.1.1.tar.gz.

File metadata

  • Download URL: my_wiki-0.1.1.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for my_wiki-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3fa7f6ff17edd850994a648f11cb12abfdc21101c7be94c5b1eb0cb92fc83d5c
MD5 4b0483b0962b90bb0bc8a6ccee437eb8
BLAKE2b-256 88cd433121f74f50904cfbde8694d115d14556d5d5e50442b55efdd94ae3bcd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for my_wiki-0.1.1.tar.gz:

Publisher: release.yml on luohaha/MyWiki

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file my_wiki-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: my_wiki-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for my_wiki-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd58bad501df62f410d6938bf25abfcc7b66e52669abcee309e35f2b76a156eb
MD5 6f7ad48dd32d8e2570e24fa5ce9e6b51
BLAKE2b-256 4e6c43a5e1636bb015147603d19007c92d7d8d29502a4a2c511cebf47d3bf21c

See more details on using hashes here.

Provenance

The following attestation bundles were made for my_wiki-0.1.1-py3-none-any.whl:

Publisher: release.yml on luohaha/MyWiki

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page