A Love Wins Media product

Your files, your computer, your AI.

Garage indexes your documents, code, notes and messages on your computer and serves them to your AI assistant over the Model Context Protocol. Garage uploads nothing: your assistant gets only the excerpts it searches for, never the whole collection.

Free · Apple Silicon · macOS 14 Sonoma or later

On Windows or Linux? Windows is coming, or run it on Linux from the command line.

Garage's MCP Server page: Claude Desktop, Claude Code and LM Studio connected, and a question about a sample library answered with its sources
Garage, answering a question about a sample library through its MCP server.
👋 Made by Rick Mark-Penwell, and he's available to hire Security and AI engineer, formerly of Meta, Coinbase, Dropbox and Microsoft, and one of the researchers behind the Apple T2 work. Open to AI security, privacy engineering and security research roles.

What Garage does

🗂️

Indexes what you already have

Folders, git repositories, Markdown, PDF, Office documents, scanned images and Apple Messages and Mail, parsed into searchable Chunk A passage of a document. Garage embeds and searches chunks, so search returns the part that matches, not the whole file. in a private PostgreSQL database.

🔎

Hybrid search

Vector similarity and full-text search fused with Reciprocal Rank Fusion A way to merge rankings — each result scores 1 ÷ (60 + its rank) in every list, and the scores are added up., so a question finds the meaning and a keyword finds the exact line.

✍️

Knows who wrote it

Git history, document metadata and path rules classify every document as authored by you, reference material or received from someone else, with the evidence recorded.

🔌

Works with your AI assistant

An MCP 2.0 server lets Claude Desktop, Claude Code, Cursor and other MCP The Model Context Protocol, the open standard AI assistants use to call tools such as Garage's search. clients search your Corpus Everything Garage has indexed from your sources — documents, code and messages — searchable as one collection., read documents and ask grounded questions.

🧠

Local models, your choice

Embeddings and fact distillation run on the built-in llama.cpp engine, or on the Ollama or LM Studio server you already have. Switch models without re-ingesting.

🛡️

Private by construction

No cloud AI client in the app. One tested egress choke point with a destination allowlist, and Garage itself never sends your messages off your computer. Read the privacy policy →

A look inside

Search that finds the meaning and the exact line

Every result shows how it matched, whether it is yours or someone else's, and the full text beside it.

Search results for 'who kept the lighthouse during the storm', ranked by hybrid search, with the top document's text beside them

Answers grounded in your own files

Try a question in the app before your assistant does: a local model answers from what search returns, and cites it.

Try It on the MCP Server page: the question 'Who kept the Marrowgate lighthouse, and for how long?' answered by a local model, with its source

Connects to the assistants you already use

Garage finds the MCP clients on your computer and connects each one with a click.

Connected Assistants: Claude Desktop, Claude Code and LM Studio connected, Cursor installed and ready to connect

Always knows where your library stands

Documents, chunks, embeddings and distilled facts, counted on the Status page.

The Status page's library card: up to date, five documents in one source, indexed with one model, facts gleaned

Where your data goes

Garage never uploads your files or its index. What leaves your computer depends on which AI you connect, and Garage’s privacy guarantee is enforced by tests, not by promise.

☁️

Claude, ChatGPT and other cloud assistants

Most people connect a cloud assistant. Its app on your computer queries Garage over MCP and gets only the relevant parts of your collection: the excerpts its searches return and the documents it opens, never the whole index. Garage uploads nothing, but the assistant does send those parts to its provider's servers with your conversation, under the provider's terms, so leave out any source you don't want to go there.

💻

Fully private, on your computer

Use the built-in llama.cpp engine on macOS, or LM Studio or Ollama on this computer, for embeddings and answers, and connect an agent that runs its model locally, such as LM Studio's chat. Nothing leaves the machine: not your files, not the index, not the questions you ask.

🏠

Private AI on your own network

Point Garage at an LM Studio or Ollama server on another machine you run, and documents and code go to that one server for embedding, and nowhere else. Messages and Mail never do: they stay on this computer even then.

How it works

Your folders, git repositories, documents, Messages and Mail, and cloud folders feed Garage on your computer. Garage reads each file, attributes it, splits it into passages and embeds them with on-device models into a private PostgreSQL and pgvector library. Hybrid search over that library is served over MCP: your AI assistant asks a question and gets back only the excerpts it searched for. Garage uploads nothing.

Garage walks the sources you register, extracts text, decides who wrote each document and how much to trust it, and splits it into chunks. Each chunk is embedded under every model you register, one table per model, so adding a model is a Backfill Embedding the chunks you already have with a newly added model, without reading your files again. rather than a re-ingest. Search fuses the vector and keyword rankings and serves the result to your assistant over MCP. Everything lives in a PostgreSQL 18 + pgvector cluster the app bundles and runs for you.

GarageEnterprise Coming soon

Garage, for the whole organization

Your company's data remains in the company, and AI agents can search only what you permit, with policy you can audit.

The Garage | Enterprise icon

Download

Garage for macOS

Apple Silicon (M1 and later), macOS 14 Sonoma or later. Free on the Mac App Store, or as a signed and notarized .pkg installer from this site.

All downloads on GitHub ↗

Get Garage from the Mac App Store, or download the installer from this site. Both versions share one library on your computer, so you can switch between them without re-indexing. The App Store version gets its updates from the App Store instead of the in-app updater.

After installing

  1. Open Garage from Applications. It appears in the menu bar and starts its private database.
  2. The first-run assistant picks your folders, an embedding model and the AI clients to connect.
  3. Ask Claude, or any MCP client, a question about your own files.

The installer version checks for updates through Sparkle, only after asking you once; the App Store version updates through the App Store. The macOS version runs on Apple Silicon only. The .zip archive is on the GitHub release page.

Windows and Linux

🪟

Windows alpha

A Windows version is on the way. The database and the indexer already build and pass their tests on Windows; the first alpha will be posted here.

About the Windows alpha →
🐧

Linux command line

There is no desktop app for Linux, but the whole pipeline runs there: the garage command, the garage-mcp server and hybrid search, over PostgreSQL with pgvector.

Run Garage on Linux →

Also a command line

The macOS app includes a garage command for terminal workflows and a garage-mcp stdio server for MCP clients (in Garage.app/Contents/MacOS). The same pipeline builds as those two commands with Cargo, so the indexer, extractors and search run anywhere PostgreSQL with pgvector does, Linux included. The developer documentation covers the architecture, attribution engine, privacy internals and database schema.

Open source, on GitHub

Garage is free and open source. Everything is in one repository on GitHub: the macOS app, the Rust pipeline, the Windows app and this website.

📦

Source and releases

Read the code, download every release and pre-release, and follow along as the Windows version comes together.

rickmark/garage-rag ↗
🐛

Issues and ideas

Report a bug, ask a question or suggest a feature. The app's Report a Bug button fills in the details for you.

Open an issue ↗
🛠️

Contribute

Pull requests are welcome, from typo fixes to new extractors. Testing on Windows and Linux helps a lot right now.

How to contribute →
💬 Need help?

The Support Center has the user guide, troubleshooting, the FAQ and how to report a bug.