Scraps treats documentation like a programming language. Wiki-linked markdown becomes a typed source, compiling into a static site for readers and into JSON any agent can shell into — turning Karpathy's LLM Wiki pattern into a typed, queryable artifact. CLI primary with companion AI skills, fitting any editor and any LLM agent.

Quick start

# Install
brew install boykush/tap/scraps    # or: cargo install scraps

# Compile a wiki
mkdir my-wiki && cd my-wiki
scraps init
scraps build

# Query the same source from a shell or AI agent
scraps search "release checklist" --json
scraps links "Configuration" --json
scraps lint

See the Getting Started tutorial for the full flow.

How it works

graph LR
  Source[Markdown sources] --> IR[Scraps IR — typed graph]
  IR --> HTML[Static HTML]
  IR --> JSON[CLI JSON]

Scraps reads [[wiki-link]], #[[tag]], ![[embed]], [[Page#heading]], and ctx_path as typed primitives. The same source compiles to an HTML site for human readers and to JSON for scripts and AI agents.

AI integration

CLI + JSON is the primary path — any shell-capable agent can query Scraps without an MCP client implementation. Bundled plugins provide agent-facing workflows:

  • scraps — Karpathy-style Ingest / Query / Lint skills for Claude Code and Codex, plus Claude Code agents for purpose-driven lint and the default Scraps LLM Wiki schema
  • mcp-server — MCP server for MCP-compatible clients

See the AI integration guide for the trade-offs.

Documentation

Screenshots

Search, pagination, and Wiki-link navigation, themed with Nord.

Contributing

Bugs, feature requests, and PRs are welcome. See CONTRIBUTING.md, the issue templates, and the Code of Conduct.

License

MIT