Quick start
Install Pinax and index your first docs site in under a minute.
Pinax is a single Go binary. Install it, point it at a docs site, then run
pinax serve. Any MCP-compatible client - Claude Desktop, Claude Code,
Cursor, Windsurf, Cline - can connect over stdio. No daemon, no cloud, no
re-indexing pipeline.
1. Install
The fastest path on macOS or Linux:
brew install desmondsanctity/tap/pinax
If you prefer Go:
go install github.com/desmondsanctity/pinax/cmd/pinax@latest
Or grab a pre-built binary from the releases page
and drop it on your $PATH. The full matrix of install options lives in
Configuration.
2. Index a docs site
Pick a name from the catalog:
pinax add stripe
Or point at any URL - anything containing ://, a dot, or a slash is
treated as a URL:
pinax add https://docs.convex.dev
Pinax discovers pages via llms.txt, then sitemap, then a bounded BFS
crawl, and writes an atomic JSON manifest plus a BM25 index under
~/.pinax/servers/<name>/.
3. List what’s indexed
pinax list
You’ll see every manifest with its page count, base URL, and last-refresh timestamp.
4. Serve over stdio
The same command works for every MCP-compatible client:
pinax serve
That serves every indexed manifest at once. To pin a single one:
pinax serve stripe
Stdio is what MCP clients launch on demand - you usually don’t run this in a terminal, you point your client config at it. See Serve for the HTTP transport + log UI.
5. Connect a client
Pick yours: Claude Desktop · Claude Code · Cursor · Windsurf · Cline.
Or have Pinax print the snippet for you:
pinax config claude --project
What you get
Four tools, scoped to one manifest or every manifest at once:
list_sections, search_pages, get_section_pages, get_page. Plus
list_docs to enumerate what’s loaded. See MCP tools
for arg shapes and return contracts.
Where to next
- Catalog - what
pinax add <name>resolves to and how to refresh. - Serve - stdio vs HTTP and the log viewer.
- Troubleshooting - JS-rendered sites, doctor output, common errors.