# scribe > scribe is the compiled, LLM-written knowledge base — the "LLM Wiki" pattern as a single-binary Go CLI: plain markdown in git, no vector DB, no RAG. It's memory your AI agents read before they decide, not a second brain you maintain and never reopen. It turns your git repos, Claude Code and Codex sessions, and self-sent URLs into a curated, semantically searchable personal knowledge base. Auto-discovers projects from both Claude Code and Codex, and writes a query-KB + drop-file handshake into both agents' global instruction files. Cross-project, cron-driven, and runs 100% on local Ollama with zero API spend. scribe is an LLM-written knowledge base pipeline. It mines: - git repository commits for new decisions and patterns - Claude Code session transcripts via ccrider's FTS5 index - Codex CLI rollouts — project discovery, plus opt-in session mining (same triage→absorb path as Claude Code sessions) - URLs you text yourself via iMessage (macOS only) - drop files committed inside other projects under `.claude//` It writes a wiki of typed markdown articles (decisions, patterns, learnings, tools, research, projects) with YAML frontmatter and `[[wikilink]]` connections, indexed by qmd for semantic search. The whole pipeline runs on macOS LaunchAgents or Linux cron — set up once with `scribe init` + `scribe cron install`, then your KB grows on its own. `scribe init` also writes a handshake block into both `~/.claude/CLAUDE.md` and `~/.codex/AGENTS.md`, so Claude Code and Codex sessions query the KB before decisions (Claude via the qmd MCP server, Codex via shell `qmd query`) and write reusable lessons back as drop files under the same shared `.claude//` path. The product is the curated wiki, not raw chunks. Every dense source fans out into multiple entity-first wiki pages via a two-pass absorb. LLM-generated retrieval-context paragraphs get spliced into every article so embedding models catch implicit entities. **Every LLM op in scribe — per-project extraction, absorb, dream, assess, deep, session-mine, relations migrate — routes through a local Ollama server when `llm.provider: ollama` is set; there is no remaining `claude -p` callsite in a normal `scribe sync`.** The maintainer's KB (scriptorium) is 7,472 articles, none typed by hand. ## Resources - [Marketing site](https://getscribe.dev/): overview, features, install, comparison table - [Marketing site as markdown](https://getscribe.dev/index.md): same content, plain text - [Full content concatenated](https://getscribe.dev/llms-full.txt): everything in one file for large-context LLMs - [GitHub repository](https://github.com/oliver-kriska/scribe): source code, issues, releases - [README](https://github.com/oliver-kriska/scribe/blob/main/README.md): canonical end-user docs - [CHANGELOG](https://github.com/oliver-kriska/scribe/blob/main/CHANGELOG.md): per-version release notes - [Homebrew formula](https://github.com/oliver-kriska/scribe/blob/main/Formula/scribe.rb): brew install path ## Install - macOS / Linuxbrew: `brew tap oliver-kriska/scribe && brew install oliver-kriska/scribe/scribe` - Shell: `curl -fsSL https://raw.githubusercontent.com/oliver-kriska/scribe/main/install.sh | bash` ## Optional - [Cloudflare Workers deployment config](https://github.com/oliver-kriska/scribe/blob/main/site/wrangler.toml): how getscribe.dev itself is hosted - [Agent guide](https://github.com/oliver-kriska/scribe/blob/main/CLAUDE.md): instructions for AI agents working on scribe's source code