Pre-1.0 · Apple silicon · macOS 15+

Your documents stay ordinary files. Kagaz makes them findable.

Kagaz (काग़ज़, “paper”) is a local-first document vault manager for macOS. It names, files and tags your documents by convention — no database, no cloud, and no proprietary format standing between you and your files.

Open-source CLI, MIT-licensed & free forever · Nothing ever leaves your Mac

No cloud. No account.
Plain files in plain folders
On-device OCR & classification
--json everywhere + MCP
Every change reversible
What it does

One filename grammar. One folder layout. One tag vocabulary.

All defined by a single vault.yaml — never hardcoded. Kagaz enforces the convention so every document lands where you expect and stays findable.

Convention-enforcing filing

Ingest a document and Kagaz derives its conventional name and folder from your vault.yaml — then previews the move before touching a byte.

Offline, searchable facts

A searchable index built from the files themselves. Query by person, company, area, doctype, tag, fiscal period, or free text — all offline.

Tiered on-device OCR

Text-layer PDFs, images, and scans via Apple Vision — plus a rules classifier that needs zero downloads. It gets better as you opt into more, never different.

Office files, no Office

Reads .docx / .xlsx / .pptx in-process — no Microsoft Office, no external tool. Legacy .doc/.rtf/.xls handled too.

Finder tags, controlled

Writes real Finder tags validated against a controlled vocabulary. An off-vocabulary tag is refused before it's written — no drift, no orphans.

Lint your vault

kagaz lint reports convention violations — wrong folders, bad grammar, missing lifecycle tags — and --fix applies only provably safe repairs.

How it works

From a pile of downloads to a tidy vault

Create a vault

Write a vault.yaml and category folders at ~/Documents. Or explore a populated demo.

$ kagaz init --demo

Ingest

OCR → classify → propose. Every move is previewed and needs your approval first.

$ kagaz ingest ~/Downloads/*

Find

Query by person, company, doctype, tag or fiscal period — or just free text.

$ kagaz find "acme"

Keep it clean

Lint the tree, regenerate INDEX.md + AGENTS.md, roll anything back.

$ kagaz lint --fix

Every mutating command follows the same path: propose → preview → approve → execute with a manifest. Nothing changes silently.

Kagaz for Mac

The same vault, in a menu-bar app

A native SwiftUI menu-bar app that holds zero vault logic of its own — it shells out to the kagaz CLI over --json, exactly like you would from a terminal. Convenience over the CLI, never a gate in front of it.

  • Triage inbox — review incoming documents and file them in a click.
  • Proposal review — see the proposed name, folder and tags before approving.
  • Confidential gate — a confirmation step before any confidential document leaves the vault.
  • Lint & config editor — fix convention violations and edit vault.yaml with live validation.
Kagaz for Mac — launching soon
Built for agents

Agent-legible on purpose

Kagaz was designed so an AI agent can drive it as safely as you can — with the same previews, the same audit trail, and no hidden state.

  • --json on every command — a stable, documented envelope with exit codes a script can branch on.
  • An MCP server — kagaz mcp exposes the vault to any MCP-capable client over stdio.
  • A generated AGENTS.md — regenerated by kagaz index, teaching an agent exactly how this vault is organized.
  • One mutator — the CLI is the only thing that ever changes a vault, so every action is auditable and reversible.
Privacy by design

Invariants, not promises

These are enforced in code, checked at call time — not settings you can quietly turn off.

Nothing leaves your machine

The only network call anywhere is an explicit, opt-in kagaz model pull. Classification and OCR run on-device or against a verified localhost endpoint.

Your documents are never deleted

A “move” copies, verifies by SHA256, then retires the source into a staging folder only you empty. Delete Kagaz and every file is right where it was.

Every mutation is reversible

Each mutating command writes a manifest before the first byte moves. kagaz rollback reverses it — safe to run twice.

Confidential sends are gated

Resolving a confidential document to send it out of the vault always requires explicit confirmation and always writes an audit line — no flag bypasses either.

One binary

A command for every step

Fifteen focused subcommands, each with a stable --json shape and documented exit codes. Read-only queries and reversible mutations, clearly separated.

Full command reference →
kagaz initCreate a new vault
kagaz ingestOCR → classify → propose → file
kagaz findQuery the vault
kagaz lintReport & fix convention violations
kagaz rollbackReverse any manifest
kagaz mcpRun the stdio MCP server
Pricing

Open core. The CLI is free forever.

The kagaz CLI, MCP server and helpers are MIT-licensed and free — nothing is withheld or degraded to sell the app. The Mac app is a separate, paid product… but it's free for now.

Kagaz CLI

The complete vault manager — terminal & agents

Free
MIT-licensed · open source · forever
  • Every command, no gates
  • MCP server + --json everywhere
  • On-device OCR & classification
  • Full source on GitHub
Install the CLI

The CLI stays free and open source regardless — a terminal user loses nothing by not buying the app.

Install

Get Kagaz on your Mac

Requires Apple silicon (M1 or later) and macOS 15 (Sequoia) or later.

Install the CLI with Homebrew

$ brew tap getkagaz/kagaz $ brew install kagaz

Installs the kagaz CLI, the kagaz-mcp server and the on-device OCR helper. Then run kagaz doctor to check your setup.

Kagaz for Mac — the menu-bar app

A signed .dmg download will land here when the app is ready — free while it's in beta. Launching soon
FAQ

Questions, answered

Is Kagaz a cloud service or a document store?

Neither. There's no Kagaz account and no backend — nothing you file or search is ever sent anywhere. Your files stay as ordinary files on disk (or in iCloud Drive, if that's where ~/Documents lives). It's not a general file manager either: it only touches documents that fit its doctype catalog and convention.

Why Apple silicon only?

Both semantic classifier tiers are Apple-silicon-only: Apple Vision's accurate-mode OCR and Apple Foundation Models' on-device generation are arm64 frameworks. Rather than ship an Intel build stuck in a permanently degraded rules-only mode, Kagaz makes Apple silicon a deliberate, permanent requirement.

Do I need to run a local LLM?

No. The offline rules-based classifier is always available and is what most of Kagaz's own tests run against. Apple's on-device tiers add no download at all. MLX and Ollama are opt-in for people who want them.

What's the relationship between the CLI and the Mac app?

The CLI is the only thing that ever mutates a vault. The Mac app holds zero vault logic — it shells out to kagaz ... --json and parses the output, exactly like a human or any other agent. It's convenience over a CLI that's complete on its own.

The app is free — will it stay that way?

Kagaz for Mac is a paid, closed-source product, but it's free for now while it's pre-1.0. We'll charge once there's a more stable version. The kagaz CLI is and always will be free and open source (MIT) — nothing in it is withheld to sell the app.

Keep your documents as files. Make them findable.

Local-first, convention-enforcing, and reversible by design. Free and open source — with a native Mac app that's free while it's in beta.