🧠 agy-mem
Autonomous Background Memory, Observation Extractor & Fast Recall Engine for Google Antigravity (agy)
Persistent cross-session intelligence and sub-millisecond retrieval with zero external dependencies.
⚡ The Problem & The Solution
When working with AI coding agents like Google Antigravity (agy), starting a new session often means starting with amnesia. You find yourself repeatedly explaining project architectures, database schemas, prior bugfixes, and coding preferences.
Tools like claude-mem and antigravity-memory attempt to solve this, but require heavy Node.js runtimes, hundreds of megabytes of node_modules, and external API keys to pay for AI summarizations.
agy-mem solves this natively:
- 0 Dependencies: Pure Python 3 standard library with native SQLite FTS5, column-weighted BM25 ranking (
title: 10x,concepts: 5x,facts: 3x), and automatic prefix fuzzy matching (term*). - Auto-Project Scoping: Automatically senses your active CWD or Git repository to prioritize and scope memories without manual flags, with automatic global fallback.
- Native Trajectory Observer: Reads directly from Antigravity's internal
brain/*/transcript.jsonland conversation databases. It extracts tools called, exact files modified, and assistant outcomes without burning API tokens. - Official MCP Server: Speaks standard Model Context Protocol (JSON-RPC 2.0 stdio), exposing
search,recall,get_observations,timeline, andsync. - Sub-50ms Latency: Instant terminal search and prompt recall.
📊 Comparison
| Feature | antigravity-memory (npm) |
claude-mem |
agy-mem (This Project) |
|---|---|---|---|
| Language | Node.js / TypeScript | Node.js / Webpack | Pure Python 3 |
| External Dependencies | Heavy (npm, better-sqlite3) |
Heavy (npm, ChromaDB) |
0 (Python Standard Library) |
| Install Footprint | ~100 MB+ | ~120 MB+ | ~38 KB (Single file) |
| Data Ingestion | Manual tool calls | Claude hook / daemon | Automatic Trajectory Observer |
| API Cost / Quota | Calls Gemini API for summaries | Calls Claude API | $0 / Zero token cost |
| Search Engine | Basic SQL | Vector embeddings | Weighted SQLite FTS5 (BM25) |
| Prefix Autocomplete | No | No | Yes (term* expansion) |
| Auto-Project Scoping | No | No | Yes (CWD & Git root detection) |
| MCP Compliance | Yes | Yes | Yes (JSON-RPC 2.0 stdio) |
| Historical Backfill | Future sessions only | Future sessions only | Instant full-history backfill |
🚀 Installation
Option 1: Via pip (Standard Python Package)
pip install agy-mem
agy-mem init
(Running agy-mem init registers the MCP server in ~/.gemini/config/mcp_config.json, generates schemas, and configures /recall and /mem slash commands).
Option 2: 1-Line Automated Setup (Includes MCP & Antigravity Skills)
Install agy-mem, register the MCP server, and add the /recall & /mem slash commands in a single command:
curl -sSL https://raw.githubusercontent.com/Cancelllls/agy-mem/main/install.sh | bash
Option 3: Clone & Install Manually
git clone https://github.com/Cancelllls/agy-mem.git
cd agy-mem
chmod +x install.sh
./install.sh
💡 How to Use
1. In Any Terminal
# Search memories (auto-scoped to current repo, or global)
agy-mem search "statusl" # Prefix match e.g. statusline
agy-mem search "offline prayer" # Auto-scoped to current project (e.g. Aya)
agy-mem search "offline prayer" -a # -a / --all searches across all projects
# Recall context formatted for prompt injection
agy-mem recall "offline barcode scanner"
# View chronological timeline (auto-scoped to current repo, or global with -a)
agy-mem timeline --limit 5
agy-mem timeline -a --limit 5
agy-mem timeline --earliest --limit 3
# Check database health & breakdown by project
agy-mem status
# Manually store a technical observation
agy-mem add --project Aya --type architecture --title "WAL Mode SQLite" --narrative "Enabled WAL mode and memory pragmas."
# Trigger incremental sync of newly completed turns
agy-mem sync
2. Inside Google Antigravity (agy prompt)
agy-mem installs native slash commands in ~/.agent/skills/:
- /recall
<topic>: Injects past decisions, bugfixes, and code files directly into your active prompt context. - /mem: Displays the live memory dashboard, synced session counts, and database health.
3. As an MCP Server (Model Context Protocol)
agy-mem automatically registers itself in ~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"agy-mem": {
"command": "/home/ubuntu/.local/bin/agy-mem",
"args": ["mcp"]
}
}
}
Any MCP-compatible AI agent can now call:
search: Full-text memory search with BM25 scoring.get_observations: Fetch complete details and diffs for observation IDs.recall: Markdown context block formatted for immediate reasoning.timeline: Chronological event sequence.add_observation: Store new decisions programmatically.sync: Trigger background observation extraction.
🏗️ Architecture
flowchart TD
subgraph Antigravity ["Google Antigravity Runtime"]
B["brain/*/transcript.jsonl"]
C["conversations/*.db"]
end
subgraph agyMem ["agy-mem Engine"]
Obs["Trajectory Observer & Turn Parser"]
FTS["SQLite FTS5 Engine\n(~/.gemini/antigravity-cli/memory.db)"]
BM["BM25 Ranking & Indexer"]
end
subgraph Interfaces ["Access Interfaces"]
CLI["CLI: agy-mem search / timeline"]
Slash["Slash Commands: /recall, /mem"]
MCP["MCP Server: stdio JSON-RPC"]
end
B --> Obs
C --> Obs
Obs --> FTS
FTS --> BM
BM --> CLI
BM --> Slash
BM --> MCP
📄 License
MIT License © 2026 Abdalrahman Samir / Cancellls. See LICENSE for details.
Metadata
Release files for agy-mem 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agy_mem-1.0.2.tar.gz | 17.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agy_mem-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.4 kB
Release files / agy_mem-1.0.2.tar.gz
| Download URL | agy_mem-1.0.2.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
67b90b74763aeb175c3938e3a1995b87d0e9f219872216de1c018a11fbf9339a
|
|
BLAKE2b-256 checksum How to use checksums |
61829bf750610456a9092d7f984877318b9440b2bb1866d84ed68e76e67eb5bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / agy_mem-1.0.2-py3-none-any.whl
| Download URL | agy_mem-1.0.2-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
691f0ed7b999586a3bb69c1340c64839164759dacc263d7689868395ed4d5286
|
|
BLAKE2b-256 checksum How to use checksums |
29c07dc477b58a751710f6be052d741260c5acd000414cb316203b6b6952201e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|