# Chemenu - Personal IT Knowledge Base A structured, LLM-maintained knowledge base for your personal IT work. Chemenu is a pattern for a personal knowledge base maintained by an LLM. Instead of going back to the raw documents for every question, the LLM **incrementally builds and maintains a persistent wiki** that compounds over time: knowledge is compiled once and kept current, not re-derived on every question. ## Getting started Two starting points, depending on what you're doing: - **A new instance.** Every instance is installed from a release, into an empty folder you choose: you give your agent one sentence, and it follows `instructions/setup-instance.md` from the latest release - preflight, git init, author identity, an optional remote, your authoring conventions and persona, the first commit. The sentence, what the agent will ask you, and what to do when it stops are in [INSTALL.md](INSTALL.md). - **A further checkout of an instance you already have** (a second machine). Clone the instance's own repository, then run the preflight and publish the skills, which are **generated and not committed**: ```bash tools/preflight.sh # checks python/git/rg, records their paths, creates tools/.venv # (PowerShell 7 on Windows: tools/preflight.ps1, see instructions/preflight.md) tools/wikitool instructions sync ``` `tools/wikitool` refuses to start (exit 42) until the preflight has passed; if it stops instead, its output says what to install - `instructions/preflight.md`. `instructions sync` copies each `instructions//SKILL.md` into `.agents/skills/` (GitHub Copilot, Codex CLI, Mistral Vibe) and `.claude/skills/` (Claude Code). Full procedure: `instructions/bootstrap.md`. - **Working on the stack itself.** A clone of this repository is a development checkout, with a demo corpus; it is never an instance. Setting it up, and `dist export` as the build and test tool it is, are in `docs/dev/development.md` (for you) and `instructions/dev/dev-setup.md` (for the agent). ## Documentation The human documentation lives under `docs/`, sorted by what you want from it: - [docs/tutorials/](docs/tutorials/README.md) - learning: a guided first walk through an instance, starting with the installation in [INSTALL.md](INSTALL.md). - [docs/how-to/](docs/how-to/README.md) - doing: one task per page, for the operator of an instance. - [docs/reference/](docs/reference/README.md) - looking up: commands, exit codes, skills, page types, configuration. The command reference is [docs/reference/commands/](docs/reference/commands/README.md); agents use the same records in [tools/CONTRACT.md](tools/CONTRACT.md). - [docs/explanation/](docs/explanation/README.md) - understanding: why the stack is built the way it is. Most days you need three of the how-to guides: [ingest a source](docs/how-to/ingest-a-source.md), [query the wiki](docs/how-to/query-the-wiki.md) and [maintain it](docs/how-to/maintain-the-wiki.md). How the parts fit together is [docs/explanation/architecture.md](docs/explanation/architecture.md). ## Your first ingestion Once the instance runs, [From your first source to your first answer](docs/tutorials/first-source-to-first-answer.md) takes a sample document that ships with it through an ingest and a cited answer, step by step. ## Changelog Changes to the wiki stack (schema, skills, `wikitool`, READMEs) are tracked in [`CHANGES.md`](CHANGES.md), not in an inline version history here. ## Resources - Original idea: [Andrej Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) - Extended with: [agentmemory](https://github.com/rohitg00/agentmemory) patterns - Search tool: [qmd](https://github.com/tobi/qmd) (for scaling) ## License Chemenu is dual-licensed, because it is two things in one repository. | Half | Licence | File | |------|---------|------| | The stack — `tools/`, `types/` | GNU AGPL-3.0-or-later | [LICENSE](LICENSE) | | The content — `kb/`, `raw/`, `instructions/`, the `CONTRACT.md` layer, and the prose documents at the root | CC-BY-4.0 | [LICENSE-CONTENT](LICENSE-CONTENT) | The boundary between the two is not a list someone maintains by hand: it is the file plan `tools/wikitool dist export` already computes, so it cannot drift out of agreement with what actually ships. [NOTICE](NOTICE) states that, and carries the attribution for the vendored [Commonplace](https://github.com/zby/commonplace) research base. **What this means for your own wiki.** The pages you write in your own instance are yours; the AGPL covers the compiler, not the knowledge it compiles. What the copyleft asks is that changes *to the machinery* stay available — including when you run it as a service rather than shipping it, which is why the licence is the Affero variant. If you set up an instance and later publish it, keep `LICENSE`, `LICENSE-CONTENT` and `NOTICE` in the tree. `dist export` puts them there and refuses to build a distribution without them, so under normal use this takes no effort.