Private search and Q&A for your documents

run this in your terminal, or download from GitHub

Everything on your disk, searchable

Grep matches strings and gets nothing from a PDF. Haypile extracts and embeds every document once, then watches the folder: ask for agreement cancellation and the termination clause surfaces in milliseconds, page cited, nothing re-read.

Learn about search
$ hay add ~/contracts
Indexed 214 files (1,892 chunks).
Embedded 1,892 chunks for search.

$ hay search "agreement cancellation"
 1. vendor-deal.docx · chunk 2
    Either party may terminate this
    Agreement with sixty days notice.
 2. vendor-agreement.pdf · page 1
    This Agreement may be terminated
    by either party...

Answers with receipts

Your local LLM answers from the retrieved passages and cites the file and page for every claim, so a wrong answer has nowhere to hide. Fully offline: it works on a plane, and on documents that are not allowed near a cloud.

Set up hay ask
$ hay ask "what notice period applies?"
Answering with llama3.2...

The vendor agreement requires a 60-day
written notice period for termination [1].

Sources:
  [1] vendor-deal.docx · chunk 2
  [2] meridian-msa.pdf · page 4

Your documents stay yours

Client files, medical records, anything under NDA: some documents must never leave your machine. The model ships inside the binary, the index is one SQLite file on your disk, and hay status proves the outbound count is zero.

How privacy is verified
$ hay status
Daemon:   running (up 3d 4h)
Index:    ~/.haypile/haypile.db
Indexed:  3 sources, 1,214 files
Model:    bundled/all-MiniLM-L6-v2
Outbound connections: 0

Works with your AI tools

Every agent session starts amnesiac, and reading 300 documents into context burns the tokens your task needed. One line gives Claude Code or Cursor an index instead: the top passages in a kilobyte, from your whole disk, fresh in every session.

claude mcp add --transport http haypile http://localhost:11500/mcp
Connect Claude Code
$ claude mcp add --transport http \
    haypile http://localhost:11500/mcp
Added HTTP MCP server haypile

$ claude
> what does the vendor deal say
  about payment?
⏺ search_documents("payment terms")
  Invoices are due net-45
  [vendor-deal.docx · chunk 3]...

Get started with Haypile

then read the two minute tutorial