Keep anything. We'll figure out the rest.
A local-first macOS library for files, folders, screenshots, PDFs, links and text. Originals are preserved. A reasoning agent (MiniMax-M3 via GMI Cloud) understands each item and groups related items into collections. Search and embeddings run on the Mac; only what a specific AI task needs leaves the machine.
Built for MiniMax Week (Reasoning track). Electron 44 · React 19 · TypeScript · node:sqlite FTS5 ·
bge-small-en-v1.5 embeddings.
Download the latest .dmg from Releases
and drag KeepAnything.app into /Applications. The build is not notarized, so if macOS reports the
app as "damaged", clear the quarantine flag once:
xattr -dr com.apple.quarantine /Applications/KeepAnything.appRequires macOS 13+ on Apple Silicon. Add a GMI Cloud (or OpenRouter) API key in Settings; without one, items are still kept and searchable but summaries are heuristic and no collections form.
Node 24 (.nvmrc) and pnpm 11 (corepack enable).
pnpm install
pnpm run models:fetch # embedding model into build/models; needed before packaging
pnpm run dev| Task | Command |
|---|---|
| Type-check + unit tests | pnpm run typecheck && pnpm run test |
| Electron smoke test | pnpm run test:e2e |
Package .app / .dmg (arm64) |
pnpm run package:mac / pnpm run package:mac:dmg |
| Seed an empty dev library | pnpm run seed:library |
Keys can also go in a gitignored .env (see .env.example): KEEPANYTHING_GMI_API_KEY,
KEEPANYTHING_OPENROUTER_API_KEY, and KEEPANYTHING_AI=gmi|openrouter|mock|off. Dev and packaged
builds never share a library.
More: product brief · architecture · GMI notes · contributor conventions
