The mill command
mill is millfolio's command line — it installs the components,
runs the servers, builds the vault index, answers questions, and moves your
vault between Macs. Installed via Homebrew:
brew install millfolio/tap/mill
Every subcommand prints its own help with --help (e.g.
mill export --help). The macOS menu-bar app installs the same
components but not the mill binary — the CLI
comes only from Homebrew.
Set up & keep updated
# provision everything: inference server + weights + sandbox + vault tools + web app
mill install
# upgrade the CLI (Homebrew) and refresh the components
mill update
mill update --skip-cli # components only; leave the CLI alone
mill version # installed component versions
mill status # what's installed + is inference answering
mill doctor # diagnose the environment; offers a pre-filled bug report
mill doctor --no-prompt # print the report only mill install is idempotent — it reuses anything already present, so
re-running it is always safe.
Run it
mill start # bring everything up; the web app is at http://localhost:10000
mill stop # tear it all down Build the vault & ask
# index one or more files/folders (folders are walked recursively)
mill index ~/Documents/finances
mill index --force ~/Documents/finances # rebuild even if nothing changed
# one-shot answer from the terminal
mill ask "how much did I spend on groceries last month?" Re-indexing is incremental — only changed files are re-read. The full story (what file types are read, how transactions are extracted) is in Populating your vault.
Run a program you supply
mill run analysis.mojo
mill run https://example.com/program.mojo # https only
Runs a human-written from vault import * program over your indexed
vault with no model call. It executes in the same
network-denied sandbox that model-written programs use — but it's still code you
chose to run, so only run programs you trust.
Move your vault between Macs since v0.4.48
mill export packages the whole vault — the index, extracted
transactions, tags, histories, and the indexed documents — into a
single AES-256 encrypted disk image. Copy it to another Mac
however you like and restore it with mill import.
# on the first Mac
mill export # → millfolio-vault-<date>.dmg
mill export --out ~/Desktop/v.dmg # choose the output path
mill export --no-documents # derived state only, no source files
mill export --show-passphrase # print the passphrase (see below)
# on the second Mac
mill stop # the server must not be running
mill import millfolio-vault-2026….dmg
mill import --force archive.dmg # replace an existing vault without asking
The passphrase is generated once and kept in your Keychain;
with iCloud Keychain on, the second Mac picks it up automatically and the
import never asks. Without it, run mill export --show-passphrase
on the first Mac and type it when the import prompts.
- Everything travels encrypted — the archive is a standard AES-256 encrypted DMG; it never contains your Anthropic API key or the Touch-ID secret (each Mac keeps its own).
- Documents restore under your home folder at the same relative paths, and a file you already have is never overwritten.
- Import replaces the destination's derived vault state — it's a copy of machine one, not a merge.
Settings
mill get amount-password # the passphrase that reveals on-screen amounts
mill set amount-password river copper lantern Testing a pre-release
Dev builds ship as a separate mill-dev formula with the same
subcommands (brew install millfolio/tap/mill-dev, then
mill-dev install). mill and mill-dev
share the install footprint, so run one at a time.