A Love Wins Media product

Garage Support & User Guide

Welcome to the comprehensive support guide for Garage. This guide covers system requirements, installation, source management, model configuration, MCP server integrations, and database operations. It describes Garage 1.5.


Table of Contents

  1. System Requirements
  2. Getting Started
  3. Managing Sources & Ingestion
  4. Embedding Models & Providers
  5. Model Context Protocol (MCP) Integration
  6. macOS Permissions & TCC
  7. Database Backup, Restore & Reset

1. System Requirements


2. Getting Started

Native macOS Application (GarageApp)

Get Garage from the Mac App Store, or download the signed and notarized installer from the download page. Both versions share one library (the same data folder), so switching between them needs no re-indexing. The installer version updates itself through Check for Updates… after asking you once; the App Store version gets its updates from the App Store instead.

GarageApp provides a menu bar utility and management window that bundles an embedded, relocatable instance of PostgreSQL 18 with pgvector:

  1. Launch GarageApp: The app initializes its private database in ~/Library/Group Containers/DWVXMLB45Y.group.me.rickmark.garage-rag/Library/Application Support/GarageApp/pgdata on port 14824. A strong SCRAM superuser password is automatically generated and securely stored in your macOS Keychain.
  2. Setup Assistant: On first launch the window opens on a four-page assistant: it waits for the database and services, lets you pick sources (Documents, Desktop, Downloads, iCloud Drive, Dropbox, ~/Developer, Messages, Mail, or any folder), an embedding model and an optional fact-distillation model, and connects the AI assistants it finds (Claude Desktop, Claude Code, Cursor, …). Every page can be skipped, and Garage → Setup Assistant… runs it again.
  3. Menu Bar: The Garage icon in the menu bar opens a popover with a search field, one row for the services (“All systems go” when everything is up), and what the pipeline is doing, with Ingest Now or Stop. Its header opens the main window (⌘O) or quits Garage (⌘Q).

The App's Pages

The sidebar starts with Status, followed by three groups:

Command Line Interface (garage)

For automated pipelines or terminal workflows, the garage CLI communicates with the database. The app includes it at /Applications/Garage.app/Contents/MacOS/garage (with garage-mcp beside it); when a command needs the database and Garage is not running, it opens the app in the background and uses its database, with no password to configure. The same commands build with Cargo from the repository (cargo install --path rust/garage-cli) for use against any PostgreSQL with pgvector; see Garage on Linux.

# Put the launchers on your PATH (optional). The copies find Garage wherever it is installed.
sudo mkdir -p /usr/local/bin
sudo cp /Applications/Garage.app/Contents/Resources/launchers/garage \
        /Applications/Garage.app/Contents/Resources/launchers/garage-mcp /usr/local/bin/

# Write a configuration file with every setting at its default (./garage.json; --user for ~/.garage.json)
garage config init

# Apply the schema and pgvector extension (the app does this itself)
garage init-db

# Check status and document count
garage stats

garage reads ./garage.json, then ~/.garage.json, or the file named with --config. The app keeps its own settings in garage.json in its data folder, next to pgdata.


3. Managing Sources & Ingestion

Garage indexes your local files, codebases, notes, and messages into a unified vector corpus.

Corpus Classes & Trust Tiers

Every source is categorized to protect privacy and enable precise retrieval filtering:

Adding Sources

In the app, open Sources and click a location card, Add Folder…, or Custom Source… for another kind of source or its own class and trust. From the terminal:

# Add a personal notes directory as authored content
garage add-source notes ~/Documents/Notes --class document --trust authored

# Add a Git repository (authorship is detected per-commit automatically)
garage add-source my-repo ~/Projects/my-repo --kind git --class code

# Add Apple Messages and Apple Mail (require Full Disk Access)
garage add-source apple-sms ~/Library/Messages --kind sqlite --class communication --trust received
garage add-source apple-mail ~/Library/Mail --kind maildir --class communication --trust received

# Run ingestion to parse files into text chunks
garage ingest

Ingest is safe to re-run. Unchanged files are skipped without being read, a file with no text (empty, or an image with no words in it) is remembered and not read again until it changes, and when a document does change only its changed chunks are embedded again.

Keeping the Index Up to Date


4. Embedding Models & Providers

Garage supports multiple embedding models simultaneously without re-parsing raw files.

The Built-in Engine

Garage runs GGUF models itself with llama.cpp (provider llama_xpc, Metal-accelerated, on 127.0.0.1 only). Pick a preset in the setup assistant or on Models → Embedding and Garage downloads it from Hugging Face. The default embedding model is loaded when Garage starts, so searches are answered at once; the distillation model is loaded only while facts are being gleaned. The built-in engine is available while Garage is running.

Ollama Configuration

  1. Install and start Ollama:
    ollama pull bge-m3
    
  2. Register and set bge-m3 as the default model:
    garage register-model bge-m3 --provider ollama --dims 1024
    garage set-default-model bge-m3
    
  3. Generate vector embeddings for all indexed chunks:
    garage backfill
    

LM Studio Configuration

  1. In LM Studio, load an embedding model (e.g., nomic-ai/nomic-embed-text-v1.5-GGUF) and start the local server on http://127.0.0.1:1234.
  2. In GarageApp, the Models page’s Providers box can store your LM Studio API token in the macOS Keychain.
  3. Via CLI:
    garage register-model nomic-embed-text --provider lmstudio --dims 768
    garage backfill
    

Fact Distillation

Garage can distill each document into short, self-contained facts, each tied to the passage it came from and searchable like any other text. Pick a model on Models → Distillation and click Glean Facts, or run garage enrich-facts. What the model is asked for comes from the fact prompts (facts.prompts in garage.json, editable on the same tab); the built-in default prompt asks for every standalone claim. Distillation runs on a local model only, and messages are never sent to a model server on another machine.


5. Model Context Protocol (MCP) Integration

Garage implements the Model Context Protocol (MCP) 2.0, allowing AI assistants to query your local knowledge base with rag_search, rag_get_document, rag_list_sources, rag_list_authors, rag_stats, rag_ask, rag_agent and rag_generate.

The easiest way to connect an assistant is the MCP Server page: each assistant Garage finds has a Connect button.

Claude Desktop Integration

Install the Garage MCP tool directly into your Claude Desktop configuration:

garage mcp-install --target claude-desktop

This adds a garage-rag entry to ~/Library/Application Support/Claude/claude_desktop_config.json naming the bundled garage-mcp command, which Claude Desktop starts itself, and keeps every other entry. With --http it registers the URL of Garage’s HTTP server (http://127.0.0.1:8787/mcp) instead, once you have turned that server on from the MCP Server page; either way the config carries no database password. Run this from the Developer ID build or from the app’s MCP Server page: the App Store build’s garage is sandboxed and cannot write ~/.claude.json or Claude Desktop’s config from a terminal. Restart Claude Desktop to start searching your notes and code directly from Claude!

Claude Code Integration

Register Garage with Claude Code:

garage mcp-install --target claude-code-user

HTTP MCP Endpoint

GarageApp automatically hosts a loopback HTTP MCP server at: http://127.0.0.1:8787/mcp

🔒 Security Notice

By default the HTTP MCP server binds only to 127.0.0.1 and refuses remote clients, with DNS-rebinding protection and Host validation. Serving other computers takes an explicit opt-in for power users, --allow-remote; then add --allow-host for each name clients use, since with no --allow-host the Host check is off.


6. macOS Permissions & TCC

When indexing Apple Messages (~/Library/Messages) or Apple Mail (~/Library/Mail), macOS Transparency, Consent, and Control (TCC) requires explicit permission.

Granting Full Disk Access

  1. Open System Settings in macOS.
  2. Navigate to Privacy & Security → Full Disk Access.
  3. Click the + button and add Garage (or your Terminal app if running via CLI).
  4. Toggle the switch to On.
  5. Restart Garage or run garage ingest again.

The Sources page lists a source it cannot read at the top, with a button to grant access.

App Store version

The App Store version runs in the macOS sandbox and can read only the folders you choose. It asks with the standard Open dialog when you add a source, or when it needs your home folder (Select Home Folder… at the top of the Sources page and in the setup assistant; Select Startup Disk… beside it covers other disks). For Messages and Mail, choose the folder and also turn on Full Disk Access as above.


7. Database Backup, Restore & Reset

Backup & Restore

Reset

Database → Reset Database… deletes the database and relaunches Garage into the setup assistant, which creates a new, empty one. Your original files, downloaded models, logs and garage.json are kept. See Starting over with an empty database for details.


Need additional assistance?

If you encounter unexpected errors or need further diagnosis, check out the Troubleshooting Guide or open an issue on GitHub.