Sort by - committed date
-
Reference/Static Site/README and Index#Emit/Static Site README.md at the wiki root is special-cased: it becomes index.html instead of scraps/readme.html. This lets the wiki render correctly both on the static site and directly on GitHub. One limitation: autolinks inside the wiki root README.md fall back to plain links — the OGP card is suppressed on the index page.
-
Reference/Static Site/Output Structure#Emit/Static Site Build output is written to the directory configured by output_dir (default _site/). ❯ tree _site _site ├── index.html # README.md or scrap index ├── scraps/ │ ├── getting-started.html │ └── guide/ │ └── links.html ├── main.css └── search_index.json # when build_search_index = true Each Markdown file is converted to a slugified HTML file under scraps/. Folders become path segments — the same folders that form Context Link. Files in static/ and the build output directory are excluded from scrap traversal.
-
Reference/Static Site/Pipeline#Emit/Static Site graph LR Source[Markdown sources] --> IR[Scraps IR] IR --> HTML[Static HTML] IR --> JSON[CLI JSON] HTML --> Pages[GitHub Pages, Cloudflare Pages, ...] The HTML emitter takes the Scraps IR and produces a static directory tree, which any Pages-class host can serve. See Deploy to GitHub Pages for one such recipe.
-
Reference/Static Site/Sort and Pagination#Emit/Static Site The wiki index page is sorted by committed_date (default) or linked_count, and optionally paginated. Configure sort_key and paginate_by under [ssg] in Configuration.
-
Reference/CLI Overview#CLI Scraps is a CLI-first compiler. Every command supports --help, which is the authoritative reference for flags and arguments. This page is the map. Command Role --json scraps init Write .scraps.toml to the current directory – scraps build Compile to the _site/ static site – scraps serve Build then serve at http://127.0.0.1:1112 – scraps lint Wiki-link health check (Lint Rules) – scraps get <title> Single-scrap introspection ✓ scraps search <query> Fuzzy search over titles + body ✓ scraps links <title> Outbound wiki-links from a scrap ✓ scraps backlinks <title> Inbound wiki-links to a scrap ✓ scraps tag list List all tags with backlink counts ✓ scraps tag backlinks <tag> Scraps referencing a tag ✓ scraps todo Aggregate GFM task list items wiki-wide ✓ scraps mcp serve Start an MCP server – -C / --directory (or SCRAPS_DIRECTORY env) runs as if started in the given directory. JSON Reads scraps get reads one scrap, optionally scoped by context and heading: scraps get "Title" --ctx "Book" --heading "Install" --json Its --json flag accepts an optional comma-separated field projection. With no projection it returns title, ctx, and body. scraps get "Title" --json title,ctx,body scraps get "Title" --json code_blocks scraps get "Title" --json images scraps get "Title" --heading "Install" --json body,headings Allowed fields are title, ctx, body, headings, code_blocks, and images. Reference navigation stays separate: use scraps links, scraps backlinks, and scraps tag .... scraps links --json returns outbound reference occurrences. Each result has kind (link or embed), title, ctx, and heading, so agents can jump directly to scraps get <title> --ctx <ctx> --heading <heading>. scraps backlinks --json remains scrap-level inbound discovery and returns the scraps that link to the requested scrap. For agent integration, see Integrate with AI Assistants.
-
Tutorial/Getting Started#CLI This guide gets you from an empty directory to a small Scraps wiki that can be built as a static site and queried from the CLI. For the bigger picture of what Scraps is and why, see What is Scraps?. Setup Install Scraps — follow Installation. Initialize a project — create a directory and initialize it: ❯ mkdir my-knowledge-base ❯ cd my-knowledge-base ❯ scraps init This writes a .scraps.toml to the current directory. The directory containing it becomes the wiki root. Configure the project — open .scraps.toml and set [ssg] base_url and title. See Configuration#ssg-section for the full schema. Authoring Write Markdown files next to .scraps.toml or in folders under it. Standard CommonMark and GitHub-flavored Markdown are supported — see Markdown Support. Connect scraps with wiki-links. The full notation is in Wiki-link Notation; the most common forms are: [[Page Name]] — normal link [[Page Name|Display]] — alias [[Folder/Page Name]] — context-qualified [[Page Name#Heading]] — heading reference [[Page Name]] — embed another scrap inline #[[Topic]] — tag (separate namespace from scraps) #[[Area/Sub]] — nested tag (auto-aggregated) Build and preview ❯ scraps build # write _site/ ❯ scraps serve # serve at http://127.0.0.1:1112 The output structure, README.md handling, and search index are documented in Static Site. For deploying, see Deploy to GitHub Pages. Lint scraps lint checks wiki health: dead-end scraps, broken links, broken heading references, repeated links, and more. Rules are documented in Lint Rules. ❯ scraps lint AI integration Scraps is CLI-first for AI agents. Any assistant that can run shell commands can query the wiki: ❯ scraps search "query" --json ❯ scraps get "Page Name" --json ❯ scraps get "Page Name" --heading "Section" --json body ❯ scraps backlinks "Page Name" --json ❯ scraps todo --json scraps get --json returns title, ctx, and body by default. It can also project fields such as headings, code_blocks, or images, and --heading narrows the read to one section. For Claude Code users there is also an official skills bundle. See Integrate with AI Assistants for both paths.
-
Tutorial/Installation#CLI After installing, see Getting Started for the basic flow. You can find the latest version on GitHub Releases. https://github.com/boykush/scraps/releases Requirements The git command is required for features. Cargo ❯ cargo install scraps macOS / Linux (Homebrew) ❯ brew install boykush/tap/scraps GitHub Releases Download the binary for your platform and place it in your PATH: # macOS (Apple Silicon) ❯ curl -sL https://github.com/boykush/scraps/releases/latest/download/scraps-aarch64-apple-darwin.tar.gz | tar xz # macOS (Intel) ❯ curl -sL https://github.com/boykush/scraps/releases/latest/download/scraps-x86_64-apple-darwin.tar.gz | tar xz # Linux (x86_64) ❯ curl -sL https://github.com/boykush/scraps/releases/latest/download/scraps-x86_64-unknown-linux-gnu.tar.gz | tar xz # Linux (ARM64) ❯ curl -sL https://github.com/boykush/scraps/releases/latest/download/scraps-aarch64-unknown-linux-gnu.tar.gz | tar xz Then move the binary to a directory in your PATH: ❯ sudo mv scraps /usr/local/bin/
-
How-to/Integrate with AI Assistants#Integration #Emit/CLI JSON Scraps integrates with AI assistants in two ways. CLI + JSON is the primary path because shell commands plus structured output are the lowest-friction contract any agent can use. MCP is supported for clients that expect Model Context Protocol tools. CLI + JSON (recommended) Any assistant with shell access can query Scraps without a long-running server. ❯ scraps search "rust cli" --logic and --json ❯ scraps get "Getting Started" --json ❯ scraps get "Getting Started" --heading "Install" --json body ❯ scraps get "Getting Started" --json code_blocks ❯ scraps get "Getting Started" --json images ❯ scraps links "Getting Started" --json ❯ scraps backlinks "Configuration" --json ❯ scraps tag list --json ❯ scraps todo --status all --json scraps get --json defaults to title, ctx, and body. It can project specific fields (title, ctx, body, headings, code_blocks, images) so an agent can avoid loading full bodies when it only needs structure or examples. scraps links --json returns outbound link and embed references with optional heading targets; backlinks stays a scrap-level inbound lookup. The full command map is in CLI Overview. Each command's --help documents flags and JSON shape. Bundled AI skills and agents For Claude Code and Codex users, the official scraps plugin packages Karpathy-style Ingest / Query / Lint workflows around the CLI. The Claude Code agents add purpose-driven lint handling and a default Scraps LLM Wiki schema grounded in the official docs: https://github.com/boykush/scraps/tree/main/plugins/scraps Skill / Agent Role /ingest Add a new scrap from a prompt, URL, or markdown; update cross-links /query Answer a question against the wiki with [[Title]] citations lint-rule-handler agent Purpose-driven wiki health checks, one or a few rules at a time scraps-llm-wiki-schema agent Explain Scraps tool usage from the official docs and map LLM Wiki practice to ingest, query, and lint-rule-handler Install instructions live in the plugin README so that marketplace browsers have everything in one place. MCP (for MCP-compatible clients) Scraps ships an MCP server for clients that prefer the Model Context Protocol. The server is bundled as a plugin so installation and tool specifications stay together: https://github.com/boykush/scraps/tree/main/plugins/mcp-server To wire the MCP server into Claude Code manually without the plugin: claude mcp add scraps -- scraps -C ~/path/to/your/wiki mcp serve Replace ~/path/to/your/wiki with the directory containing .scraps.toml. For most read-shaped agent workflows, the CLI + JSON path above is simpler: no long-running process, no MCP client implementation required, works with any shell-capable agent. MCP is the right choice when your agent already expects MCP tools as its integration surface.
-
How-to/Deploy to GitHub Pages#Deployment #Emit/Static Site Deploy a Scraps site to GitHub Pages using GitHub Actions. The build output (_site/ by default; configurable in Configuration#root-level) is uploaded as a Pages artifact and published via the official actions/deploy-pages action — no gh-pages branch required. GitHub settings Set up GitHub Pages for the repository. Build and deployment parameter as follows: Source: GitHub Actions Workflow file Prepare a YAML file under .github/workflows/ like this: name: Deploy scraps github pages on: push: branches: - main workflow_dispatch: permissions: contents: read concurrency: group: pages cancel-in-progress: false jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 with: fetch-depth: 0 # For scraps git committed date persist-credentials: false - name: Setup Scraps uses: boykush/scraps@v1 - name: Build run: scraps build - name: Configure Pages uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: _site deploy: needs: build runs-on: ubuntu-latest permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 The boykush/scraps action installs the matching CLI binary from GitHub Releases. Pin to a specific tag (@v1.0.0) or to a SHA with a version comment for Renovate-managed updates: - uses: boykush/scraps@<sha> # v1.0.0 If your output_dir differs from _site/, update the path: in the upload-pages-artifact step to match.
-
Explanation/What is Scraps?