Give your AI coding agents shared, branch-aware memory. Synced across every IDE, machine, and tool via MCP. Every session picks up where the last one left off.
Without persistent context, your agents waste time re-learning what they already knew.
> Starting new session... > Scanning project structure... > Reading 847 files... ⏱ 45s > Analyzing dependencies... ⏱ 12s > Building context... ⏱ 23s > Ready. Total: 1m 20s
> Starting new session... > Loading context from memctl... ⚡ 12ms > 847 memories loaded > Branch: feature/auth > Team context: synced > Ready. Total: 12ms
Agents read context from memctl and write learnings back. Every session makes the whole team smarter.
memctl syncs your repositories and updates context after each push, re-indexing changed files and storing structured memories your agents can query.
// Repository change received{"event": "push","repo": "acme/webapp","branch": "feature/auth","modified": ["src/auth/session.ts","src/db/schema.ts"]}→ Indexing 2 changed files...→ Extracted 12 architectural patterns→ Updated 847 memory entries→ Context refreshed (340ms)
When an AI agent starts a session, it calls memctl through the Model Context Protocol. Architecture decisions, coding conventions, and project knowledge return in milliseconds.
// MCP tool call → read_memory{"jsonrpc": "2.0","method": "tools/call","params": {"name": "read_memory","arguments": {"query": "auth session handling","branch": "feature/auth"}}}→ 3 memories returned (12ms)→ auth/session: "JWT with 15min expiry..."→ auth/middleware: "withAuth on /api routes..."→ conventions: "AppError with status codes..."
When an agent discovers patterns or makes architectural decisions, it writes them back via MCP. Every agent on the team gets the update. Knowledge compounds over time.
// MCP tool call → write_memory{"jsonrpc": "2.0","method": "tools/call","params": {"name": "write_memory","arguments": {"key": "auth/oauth-google","content": "Google OAuth via passport.js.Callback: /api/auth/google/callback.Refresh token in encrypted session.","tags": ["auth", "oauth"]}}}→ Memory stored. Team synced.→ sarah (Claude Code): updated→ marcus (Cursor): updated