Local-first, read-only code intelligence for coding agents.
MemoRepo turns related GitHub repositories into reproducible context for coding agents. It groups repositories into isolated spaces, captures exact commits as immutable snapshots, indexes their shared code graph with codebase-memory-mcp, and exposes verified source through a read-only Model Context Protocol (MCP) server. It is designed for one developer on one workstation who needs cross-repository context without giving agents arbitrary filesystem or write access.
- Cross-repository context: query several related repositories through one space and one shared code graph.
- Reproducible evidence: every connection and chat is pinned to an immutable snapshot of exact commits.
- Source-backed answers: graph search is complemented by direct, exhaustive search over the captured source tree.
- Narrow access: agents receive space-scoped, read-only tools instead of general filesystem access.
- Local control: clones, indexes, operational state, and credentials remain in your local environment.
- Docker Desktop on Windows or macOS, or Docker Engine/Desktop on Linux.
- A GitHub account with access to the repositories you want to index.
Clone the project and create your environment file:
git clone https://github.com/abelmaro/MemoRepo.git
cd MemoRepo
cp .env.example .envGenerate a control token from at least 32 random bytes:
openssl rand -hex 32Set the result in .env:
MEMOREPO_CONTROL_TOKEN=your-generated-tokenStart MemoRepo:
docker compose up --buildOpen http://127.0.0.1:5173, then:
- Unlock the dashboard with your control token.
- Connect GitHub from System health, or configure
GH_TOKENin.env. - Create a space and add one or more repositories.
- Wait for the immutable snapshot to become active.
- Create a read-only connection and copy the generated MCP configuration into your coding agent.
For PowerShell token generation, storage options, agent connection modes, and troubleshooting, follow the complete quickstart.
- A space groups repositories that belong to the same coding context.
- MemoRepo checks out selected commits and materializes their source in an immutable, content-addressed store.
- The snapshot index combines cross-repository graph discovery with direct source verification.
- A space-scoped MCP gateway exposes only bounded, read-only query tools.
- Optional in-dashboard chats use the same snapshot and require explicit consent before sending relevant context to the selected inference provider.
MemoRepo never edits, commits, or pushes to managed repositories. It is not designed as a public, network-exposed, or multi-user service.
- The API and dashboard bind to
127.0.0.1by default. - The control plane and each MCP connection use separate bearer credentials.
- Repository credentials are not included in generated MCP configurations or model prompt payloads.
- Snapshot tools reject arbitrary filesystem paths and sanitize internal paths from responses.
- The dashboard explains which chat data is sent to a provider before you can consent.
Treat control tokens and generated MCP configurations as secrets. Do not expose MemoRepo through a reverse proxy or bind its ports to a public interface. See the operating contract for the complete trust and data model.
| Guide | Covers |
|---|---|
| Quickstart | Installation, GitHub connection, spaces, agents, and troubleshooting |
| MCP tools | Connection modes, tool contracts, limits, and recommended agent workflow |
| Operating contract | Runtime support, configuration, data ownership, boundaries, and security |
| Changelog | Releases and notable changes |
Contributions are welcome. Read the contribution guide for development setup and validation commands, and follow the Code of Conduct.
Use GitHub Issues for bugs and feature requests. Report vulnerabilities privately according to the security policy.
MemoRepo is available under the MIT License.

