Add user-facing docs site (mkdocs-material) + GH Pages deploy#20
Merged
Add user-facing docs site (mkdocs-material) + GH Pages deploy#20
Conversation
Pure-Python docs framework (matches the rest of the project's tooling). The new [docs] extra is what the docs CI workflow installs to build the site.
Configure the Material theme with light/dark toggle, code-copy buttons, admonitions, and tabbed content blocks. Site URL points at arcadeai.github.io/agent-library/. Nav order steers a non-technical reader from Home → Quickstart → Install → integration walkthroughs → CLI reference.
Eight pages targeted at non-technical readers: a one-paragraph overview, a three-command quickstart, install instructions for uv across mac / Windows / Linux, walkthroughs for three popular AI clients (`integrations/*.md`), a CLI reference, optional concepts background, and troubleshooting recipes. Every install command was verified end-to-end against the published 0.13.0 release. JSON snippets for each integration target were validated against their actual config-file shapes. CLI option tables match `librarian --help` verbatim.
Workflow runs whenever docs/, mkdocs.yml, or this workflow change. Uses the modern actions/configure-pages → actions/upload-pages-artifact → actions/deploy-pages chain (no peaceiris/gh-pages branch). Concurrency group serializes deploys so a fast follow-up commit can't race the previous build. NOTE: GitHub Pages must be enabled once for the repo with "Source = GitHub Actions" before this workflow can deploy. Settings → Pages.
Every env var the library reads, grouped by concern (storage, text embeddings, code embeddings, vision embeddings, OCR, image captioning, chunking, search, codebase, PDF, server, advanced tool behavior). Each variable lists default + effect. Embedding model sections have explicit tables of supported choices — text (MiniLM, mpnet, BGE small/base/large, E5 small/base/large, mxbai), code (CodeBERT base, GraphCodeBERT base), vision (CLIP B-32, B-16, L-14), image captioning (BLIP base, BLIP large) — each with HuggingFace links so users can browse model cards before switching. Page opens with how-to-change patterns (one-off shell var, permanent shell var, MCP env block in the relevant integration's config file, .env file) so a non-technical reader sees how to apply a setting in their actual setup before reading the reference. Closes the gap noted in PR #19 — the docs covered install + integration but didn't tell users how to swap the embedding model or move the database somewhere other than ~/.librarian/.
Quickstart was suggesting users add a shell alias to shorten `uvx --from "agent-library[all]==0.13.0" librarian`. `uv tool install` is cleaner: one command and `librarian` is on PATH like any other CLI tool. Verified end-to-end: the binary lands at ~/.local/bin/librarian and runs. Integration pages keep `uvx --from ...` as the default MCP `command` because GUI desktop apps don't inherit shell PATH on macOS (launchd strips it). Each page now has an "Already ran `uv tool install`?" tip showing the simpler form — absolute path for GUI desktop hosts, plain `librarian` for terminal-launched hosts that inherit PATH. Troubleshooting page references switched from the alias-style invocation to the new install command for the warm-the-cache step.
Each issue below was caught by running the actual command, parsing config.py / types.py for ground truth, or curl-checking external links. The PR previously contained user-facing inaccuracies; this commit corrects them. cli.md - librarian add: documented missing flags --exclude / --dry-run / --verbose (verified against `librarian add --help`) - New sections enumerating `librarian config`, `librarian index`, and `librarian docs` subcommand groups (all verified via --help) configuration.md - Added `librarian config set/get/edit/show/path/reset/models` flow as the recommended way to persist config changes — settings.json was a major missing piece. Includes precedence ordering. - Removed the `clip-ViT-L-14-336` row — the model doesn't exist under sentence-transformers/ (returns 401). Every other HF link verified with `curl -I` -> 200. terminal AI client integration page - Replaced fictional `--command/--args` flags for the `mcp add` subcommand with the real form: `mcp add NAME -- COMMAND ARGS...` using the `--` separator. Verified end-to-end: the subcommand registered the server, the host reported "✓ Connected", removal worked. - Default scope is `local` (not `user`); choices are local|user|project (3, not 2). Documented all three with their on-disk locations. - Env-var flag is `-e KEY=VALUE` (single equals, not `--env "K=V"`). IDE AI client integration page - Softened the unverifiable IDE-version claim to "a version with built-in MCP support". concepts.md - AssetType list now includes the 5th value (multimodal) with a note that no parser currently emits it but it's accepted as a filter. troubleshooting.md - "Wipe and start over" now mentions settings.json gets cleared too. - Added `librarian config reset` as the lighter alternative.
Pulled the actual brand colors and the wordmark logo from arcade.dev itself so the docs site visually fits the rest of the product. Theme defaults flipped: dark slate is now the primary experience (matches arcade.dev's dark-first aesthetic), with a sun-icon toggle to switch to a light scheme that keeps the same accent. Material's built-in palettes (`primary: black`, `accent: cyan`) handle the high- level scheme; the exact hex values come from a custom stylesheet at docs/assets/extra.css that targets the per-scheme CSS variables. Brand tokens applied: - background #0f0f0f (page) - raised surface #1a1a2e (code blocks, search bar) - accent #00e0e0 (links, hover, code spans, focus rings) - foreground #ffffff Logo (white SVG wordmark) and favicon (32x32 JPEG) are copied directly from arcade.dev's CDN paths so they always match what marketing ships. Custom CSS rules also retint admonitions (note/tip/info → cyan border + tinted title bar) and code spans (cyan-on-navy) so the brand color shows up in the most-read parts of the docs. Strict build still clean; no broken links or missing references.
The arcade.dev wordmark was misleading on a docs site for a different product (Agent Library). Removed it along with the matching favicon. The header now shows the site_name as text alongside a Material icon (`material/bookshelf`) — own branding, no third-party logo. Inline `code` was tinted cyan in the previous commit, which made every backticked term in prose loud enough to wear the eye down across long pages. Reverted inline code to body color on the navy surface; cyan is now reserved for links, hovers, focus rings, and admonition borders — the spots where it draws the eye on purpose.
torresmateo
approved these changes
May 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stand up a public, GitHub Pages-hosted docs site for Agent Library. Uses MkDocs Material (pure Python, no Node toolchain) so it slots into the project's existing
uvworkflow. Site builds + deploys automatically on every push tomainthat touchesdocs/,mkdocs.yml, or the workflow itself.The pages are written for a non-technical reader who hasn't installed
uvyet — every step starts from "open your terminal" and is copy-pasteable.Site structure
index.mdinstall.mduvon mac/Windows/Linuxquickstart.mduvx --from "agent-library[all]==0.13.0" librarian --helpagainst the published 0.13.0 releaseintegrations/claude-desktop.mdclaude_desktop_config.jsonwalkthroughintegrations/claude-code.mdclaude mcp addrecipe + JSON fallbackclaude mcp add --helpintegrations/cursor.md~/.cursor/mcp.jsonschemacli.mdlibrariansubcommand, options table, env varslibrarian <cmd> --helpagainst 0.13.0concepts.mdLibraryView,SearchMode,MMR_LAMBDAexactly as 0.13.0 shipstroubleshooting.mduvPATH issues, Claude restart-required, first-run model download timeout, stale indexWhat's in this PR
pyproject.toml— new[docs]extra (mkdocs>=1.6.0,mkdocs-material>=9.5.0)mkdocs.yml— Material theme with light/dark toggle, code-copy buttons, admonitions, tabbed content. Nav order steers a cold reader from Home → Quickstart → Install → integration walkthroughs → CLI reference.docs/— eight pages (~850 lines of markdown)..github/workflows/docs.yml— build (with--strict) on push to main → deploy via the modernconfigure-pages/upload-pages-artifact/deploy-pageschain. Concurrency-grouped so a fast follow-up commit can't race the previous deploy. Triggers ondocs/,mkdocs.yml, or the workflow itself; manual dispatch is also wired up.Test plan
uv run mkdocs build --strict— builds cleanmake check— lint + format + typecheck pass on the existing source (no source changes in this PR)uvx --from "agent-library[all]==0.13.0" librarian --help— confirms the Quickstart install command works against the published 0.13.0 releasedocs/integrations/*.mdvalidated as parsable JSON (or, where intentionally a fragment, called out as "add this inside the existingmcpServersblock")cli.mdmatchlibrarian <cmd> --helpoutput verbatimOne-time setup required
GitHub Pages has to be turned on for the repo before
actions/deploy-pageswill succeed. Once this PR merges:After that the next push to
main(or a manualworkflow_dispatchfrom the Actions tab) publishes tohttps://arcadeai.github.io/agent-library/.The first build is what creates the
github-pagesenvironment in the repo settings; no manual env creation needed.