Haypile

Getting started

From install to your first semantic search in under two minutes.

This tutorial takes you from nothing to searching your own documents. It takes about two minutes, and nothing in it needs the internet after the install step.

1. Install

On macOS, with Homebrew:

brew install BenyD/tap/hay

On Linux or macOS, with the install script:

curl -fsSL haypile.sh | sh

On Windows, run this in PowerShell:

irm https://haypile.sh/install.ps1 | iex

It installs hay.exe under %LOCALAPPDATA%\Programs\hay and adds it to your PATH. Open a new terminal afterwards so the PATH change takes effect.

Either way you get one binary called hay. The embedding model that powers semantic search is already inside it. There is nothing else to download, ever.

Check it works:

hay --version

2. Index a folder

Point Haypile at any folder with documents in it. PDF, docx, pptx, HTML, Markdown, plain text, and mbox email archives are indexed; everything else is ignored.

hay add ~/Documents

A live progress line tracks the pass, first extracting text, then embedding it, then a summary lands:

Indexing /Users/you/Documents…
  extracting [######····]  62% · 194/312 files · ~1m left
Indexed 214 files (1892 chunks), 0 unchanged.
Embedded 1892 chunks for semantic search (bundled/all-MiniLM-L6-v2).
Try: hay search "something you remember"

In a pipe or a CI log, where a line cannot redraw, the same progress arrives as one printed line per tenth of each phase.

hay add also did the one-time setup: the index lives in a single SQLite file at ~/.haypile/haypile.db, and a background daemon now watches the folder, re-indexing changed files within seconds. There is no server or database to manage.

Search for an idea, not just exact words:

hay search "agreement cancellation"
 1. ~/Documents/contracts/vendor-deal.docx (chunk 2)
    Termination

    Either party may terminate this Agreement with sixty days written notice.
 2. ~/Documents/contracts/meridian-msa.pdf (page 4)
    Either party may terminate for convenience upon sixty (60) days prior
    written notice.

Neither result contains the words "agreement cancellation". That is semantic search doing its job. Exact identifiers work too, and they match exactly:

hay search "2024-CV-01847"

Every result cites its source: the file, and for PDFs the page. You can always check the original.

4. Prove it stays private

hay status
Daemon:   running (0.3.1, up 42s)
Index:    ~/.haypile/haypile.db
Indexed:  1 sources, 214 files, 1892 chunks
Model:    bundled/all-MiniLM-L6-v2
Outbound connections: 0

That last line is measured, not asserted. Haypile counts its own network connections and reports them. The target is zero, always.

Where to go next

On this page