reference

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.