Skip to content

Getting started

Install one binary, point it at a folder, and you have a vault. Your notes are plain .html files you own — delete Weft and they still open in any browser.

Weft is a single pure-Go binary for macOS, Linux, and Windows. No runtime dependencies.

Terminal window
# downloads the right binary for your OS/arch, verifies its SHA-256 against the published checksums
curl -fsSL https://tryweft.app/install.sh | sh

Download weft-windows-amd64.exe and drop it somewhere on your PATH (rename to weft.exe if you like). See the install page for direct download links and checksums.

Needs Go. The default build covers everything except semantic neighbors:

Terminal window
make build # → bin/weft
make build-ort # adds local CPU embeddings for semantic neighbors

Point Weft at any folder. Sub-folders are allowed; if the folder is empty, it becomes your new vault.

Terminal window
weft serve ~/notes

This starts the local daemon and opens the web app at the web app on localhost:7777. There are no accounts and no config files, and your notes never leave your machine. (One exception to “fully offline”: the in-app editor loads TipTap from a CDN on first use, then caches it — the note data itself stays local.)

The web app is the desktop surface over the daemon. Three things to know:

  • Vault browser — A list of every .html file in your folder, sub-folders and all. This is your whole vault — nothing is hidden, nothing is a proprietary blob.
  • Reader — Open any note to read it rendered. Click again to drop into the editor. The same view serves clipped web pages, since a clip is just HTML on disk.
  • Brain panel — Alongside each note, Weft surfaces what your brain would right now: backlinks, semantic neighbors, recently co-accessed notes, and “this day in past years.”

The brain panel is the point. Instead of a search bar as the front door, opening a note pulls in associated notes ranked by an ACT-R-style memory model — recency and frequency decay like memory, and activation spreads across links. A per-note explain toggle shows why each note surfaced, and there’s a tuning page for the weights. Full-text search (SQLite FTS5) is there as a fallback, not the entry point. Concepts goes deep on the model.

New notes are written in a TipTap editor in the web app. HTML is the canonical format throughout — there is no markdown intermediate.

  • Wikilinks. Type [[ to get autocomplete over your existing notes. Links you create are parsed from <a href> on save and become backlinks on the other end.
  • Daily notes. A daily note is auto-created at daily/YYYY-MM-DD.html. Templates can interpolate values like {{today}}.

Everything you write lands as readable HTML in your folder — publishable as-is.

You don’t have to open the app to add to your vault. Two commands cover quick capture and web clipping:

Terminal window
# append a line to today's daily note
weft capture "remember to wire up the brain panel toggle"
# clip a web page to clips/YYYY-MM-DD-slug.html
weft clip https://example.com/article

Both write straight into the same vault the daemon serves, so anything you capture or clip is immediately browseable and surfaceable in the app.

You now have a running vault, a reader, an editor, and capture from the CLI. Two places to go from here:

Concepts explains surfacing, the activation model, and the optional embeddings. Sync covers optional, end-to-end-encrypted multi-device sync through cloud storage you own.