A desktop app that makes your local files searchable by meaning, not just keywords. Point it at your folders, and it indexes everything — documents, code, notes, spreadsheets — into a local SQLite vector database. Then ask questions in natural language and get relevant results ranked by semantic similarity.
Works as a standalone file tracker/indexer and as an MCP server that gives Claude Desktop (or any MCP client) direct access to semantic search across your files.
- Launch the app and enter your OpenAI API key in the onboarding screen (used for generating embeddings — your files never leave your machine except as embedding API calls).
- Add directories you want indexed. The app watches them in real time — new files, edits, and deletions are picked up automatically.
- Search your files, connect Claude Desktop so it can search your files during conversations.
Open Settings in the app and click "Install to Claude Desktop". Restart Claude Desktop. That's it — Claude can now search your indexed files using the search tool.
Under the hood, Claude Desktop launches the app as a subprocess (--mcp flag) that communicates over stdin/stdout. The subprocess opens the same database in read-only mode. Your GUI app handles all indexing; Claude just reads.
- Text files — markdown, code, config, plain text (read directly)
- Office documents — .docx, .xlsx, .pptx (structured text extraction)
- PDFs — text content extraction
- Media & archives — metadata only (file name, size, dimensions, contents list)
Files are chunked into ~512-token segments (configurable), embedded via OpenAI, and stored as vectors. Unchanged files (matched by SHA-256 hash) are skipped on re-scan.
text-embedding-3-small(1536 dimensions) — default, faster, cheapertext-embedding-3-large(3072 dimensions) — higher quality, more expensive
Switching models in Settings re-indexes everything (vectors from different models are incompatible).
- All data stays local in
~/.agent-memory/agent-memory.db - The only outbound network call is to
api.openai.comfor embeddings - The MCP HTTP server binds to
127.0.0.1only (never exposed to the network) - The stdio transport (Claude Desktop) uses process-level isolation — no network at all
- Go 1.24+
- Wails v2 CLI (
go install github.com/wailsapp/wails/v2/cmd/wails@latest) - Node.js 18+ and npm (for the frontend build)
- OpenAI API key
- macOS, Linux, or Windows
- CGo enabled (required for SQLite + sqlite-vec; default on macOS/Linux, may need
CC=gccon Windows)
git clone <repo-url>
cd agent-memory
go mod download
cd frontend && npm install && cd ..
make dev # or: wails dev- Hot-reloads frontend changes
- Go backend rebuilds on save
- SQLite database created at
~/.agent-memory/agent-memory.db(default)
make build # recommended — skips slow binding generation
make test # run all Go tests
make clean # remove build artifactsOr manually:
wails build -skipbindingsNote:
wails build(without-skipbindings) hangs during binding generation due to the CGO sqlite-vec dependency. The frontend calls Go methods viawindow.go.main.App.*at runtime, so generated bindings are not needed.
Output: build/bin/agent-memory.app on macOS, build/bin/agent-memory on Linux, build/bin/agent-memory.exe on Windows.
- GUI mode:
./agent-memory(default) - MCP stdio mode:
./agent-memory --mcp(used by Claude Desktop) - Custom DB path:
./agent-memory --db /path/to/data.db
To manually configure Claude Desktop (instead of using the Install button), add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"agent-memory": {
"command": "/path/to/agent-memory",
"args": ["--mcp"]
}
}
}make test # all tests
go test -cover ./... # with coverage
go test -v ./internal/engine/ # verbose, specific packageContributions are welcome! By submitting a pull request or otherwise contributing code to this project, you agree that your contributions become the intellectual property of United Effects Ventures, LLC, licensed under the same terms as the rest of the project (see LICENSE). You represent that you have the right to make such contributions and that no other party has claims to the contributed work.
This project is licensed under the Business Source License 1.1. You may use it for personal, non-commercial purposes. Commercial use requires a separate license from United Effects Ventures, LLC. On April 6, 2031, the license converts to Apache 2.0.
See TRADEMARK.md for copyright and trademark details.
See Documentation/ for detailed technical docs:
- Architecture — layered design, domain interfaces, runtime modes
- Features — full feature reference, MCP tools, file extraction details
- Roadmap — planned work