Observed since 20 Oct, 23:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Persistent two-tier memory for AI agents. Short-term markdown + long-term SQLite with semantic search.
Persistent two-tier memory for AI agents. Battle-tested across 134 sessions with 10 agent roles.
Short-term (markdown files, always loaded) + Long-term (SQLite + OpenAI embeddings, searched on-demand).
pip install agentrecall-memory
Zero required dependencies. SQLite is Python stdlib.
Optional semantic search:
pip install agentrecall-memory[embeddings]
export OPENAI_API_KEY="sk-..."
# Initialize
agentrecall init
# Store a memory (auto-dedup via cosine similarity >0.92)
agentrecall store coder gotchas "kamal app exec spawns new container, use docker exec"
agentrecall store social exhausted_stories "blue-green deploy order loss" --tags deploy,sqlite
# Search (semantic + keyword fallback)
agentrecall search coder gotchas "kamal file not found"
# List categories
agentrecall list coder
# Check health
agentrecall check --all
from agentrecall import MemoryStore, MemorySearch
# Store
store = MemoryStore()
store.store("coder", "gotchas", "kamal spawns new container", tags=["kamal", "docker"])
# Search
search = MemorySearch()
results = search.search("coder", "gotchas", "kamal file not found")
for text in results:
print(text)
# List categories
categories = store.list_categories("coder")
Short-term (memory/<role>.md) | Long-term (SQLite + embeddings) |
|---|---|
| Active learnings, mistakes, feedback | Growing lists (exhausted topics, defect patterns) |
| Max 80 lines, pruned regularly | Unlimited entries, never pruned |
| Read in full at session start | Searched on-demand per query |
Every store call embeds the text via OpenAI text-embedding-3-small and checks cosine similarity against all existing entries in the same role/category. Similarity > 0.92 blocks the store (raises DuplicateError).
Without an API key, falls back to exact text matching.
Works fully offline without an OpenAI API key:
Copy skill/agent-recall/ into your project's skills directory for use with Claude Code, Codex, Cursor, Copilot, Cline, or Goose.
cp -r skill/agent-recall/ .claude/skills/agent-recall/
Environment variables:
| Variable | Default | Description |
|---|---|---|
AGENT_RECALL_HOME | ~/.agentrecall | Memory storage directory |
OPENAI_API_KEY | (none) | OpenAI API key for embeddings |
UT_OPENAI_API_KEY | (none) | Preferred over OPENAI_API_KEY |
agentrecall store <role> <category> "text" [--tags t1,t2] [--db path]
agentrecall search <role> <category> "query" [--db path]
agentrecall list <role> [--db path]
agentrecall check [--fix] [--long-term] [--all] [--dir path] [--db path]
agentrecall init [--dir path]
agentrecall migrate [--dry-run] [--rebuild] [--dir path] [--db path]
Exit codes: 0 = success/found, 1 = not-found/validation-fail, 2 = input error.
If you have existing JSONL memory files:
agentrecall migrate --dir /path/to/memory/
agentrecall migrate --rebuild # Re-embed entries missing embeddings
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.1 | 12 Mar 2026 | 3 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 23:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ce33d08ceaca5da90f8baed5b3f4d68da40511748f77a3c3654d7df45080fcef