OmniDev omnidev
v0.7.1 MIT universal binary WebMCP via Graft runs offline

Ask your Mac anything, and let it do the work. Fully offline.

A native macOS app. A local Gemma 4 model reads your files, including your screenshots, answers with citations, and can edit code and run your tests. Nothing leaves your machine: no account, no API key, no bill.

Free and MIT licensed. Apple silicon and Intel. Builds are unsigned, so the first launch needs right click then Open.

local session 0 bytes uploaded
~/Desktop ~/Documents ~/Downloads indexed on device > where is the payment reference? searching text and vectors, fused receipt.png read by OCR 0.82 notes-q1.pdf text 0.41 .env refused, never indexed The reference is in receipt.png. The text exists only inside the image and was read on device by macOS Vision. cited: receipt.png

Reproduced from the recorded probe in docs/probes. The 0.82 score is the measured one, from a run where a screenshot outranked a decoy document. The file names and the decoy's own score are illustrative. The refusal is real: .env is on a denylist that is checked before the file is ever opened.

It plugs into the tools you already use.

Connect Claude Code, Claude Desktop or Cursor to 13 local MCP tools. The running app serves MCP, so those clients can search your index and ask about a single file. There is no second process to start and no Python path to get right, and the transport is stateless, so several clients can share one engine.

register with claude code stateless http
# after running the app once claude mcp add --scope user --transport http omnidev http://127.0.0.1:8010/mcp or ./scripts/install-mcp.sh, which registers and then verifies engine answered with 13 tools

Then ask Claude Code "search my notes for the deployment checklist", or "what does ~/Desktop/Screenshot.png say?" and it reads the image with on device OCR without storing anything. search_knowledge and ask_file are the two you will reach for; the engine also exposes local generation, vision, guarded scraping and a preview only AWS planner.

Give it a task instead of a question.

Run guarded read, edit and test tasks with reversible file changes. Agent mode reports back and asks permission before it touches anything outside the folders you trust. It stops after 15 steps, and every file it changes is snapshotted first and restorable by id.

Also a real recording. The agent read the files, found the inverted operator, fixed it, then stopped and asked permission before running pytest. Verified afterwards: the file really is fixed and the test really passes. The thinking time is sped up.

It cannot delete your work.

Deletion is unavailable, including through shell aliases and flags. There is no delete tool, and the shell cannot stand in for one. Commands are refused by name, with an explanation, even inside a folder you trust.

refused commands agent_tools.py
removal rmrmdirunlinkshredsrmtrashtruncatedd
destructive git stashgit cleangit reset --hardnpm cimake clean
arguments --delete--force-rf--prune

Overwriting a file that already has contents counts as destruction and asks first, naming how many lines are about to be lost. Creating a new file stays friction free.

It will never index your secrets.

Secret files and credential folders are blocked before indexing. The index stores plaintext excerpts, so some things are refused outright and cannot be enabled. This holds even when you add a folder above them.

denylist file_guards.py
files
  • .env
  • *.pem
  • *.key
  • id_rsa*
  • *.kdbx
  • .netrc
  • .npmrc
  • .git-credentials
  • .zsh_history
folders
  • ~/Library
  • .ssh
  • .gnupg
  • .aws
  • .kube
  • Keychains
vaults and profiles
  • 1Password
  • Bitwarden
  • KeePass
  • Safari
  • Chrome
  • Firefox
  • Arc

Measured, not promised.

specification v0.7.1
  • Default modelgemma4:12b, 7.6 GB
  • Context window256K tokens
  • OCR per image42 ms warm median
  • RetrievalBM25 + dense, fused by RRF
  • Agent step ceiling15
  • Index file mode0600
  • Backend test suite324 passing
  • Recommended memory16 GB, lighter model at 8 GB
  • Account requirednone
  • Price0, MIT licensed

Measured runtime, retrieval, OCR, safety and test figures. OCR timing is the warm median over 12 runs on an M series Mac, 647 ms on the first call while the Vision models load. Needs Ollama for the local model; onboarding pulls it for you.

Ask it something your cloud tools are not allowed to see.

Download it, point it at a folder, turn off your wifi and try again.