Permanent memory layer for AI coding agents
Project description
corvid
A permanent memory layer for AI coding agents. Installs as a native skill. One command: /remember.
Inspired by Karpathy's llm-wiki pattern for building knowledge bases with LLMs, but instead of ingesting external docs, corvid captures what you learn during the conversation itself.
Why
Every AI session starts from zero. You figure something out, close the terminal, and next month your agent has no memory of it.
Built-in memory is per-project, 200 lines, no search. corvid gives you cross-project memory with semantic search. What you figure out once stays figured out.
Install
pip install corvid-remember
corvid install
corvid install detects your agents (Claude Code, Codex, Gemini CLI) and adds /remember as a native skill in each one.
$ corvid install
✓ Claude Code → ~/.claude/skills/remember/SKILL.md
✓ Codex CLI → ~/.codex/skills/remember/SKILL.md
Wiki: ~/corvid
Semantic search: enabled (BAAI/bge-small-en-v1.5)
Lightweight mode (keyword search only, no embedding model):
pip install corvid-remember[lite]
corvid install
How it works
Say /remember and your agent distills the current insight into a searchable article:
You: /remember the Google OAuth deploy gotchas
corvid writes → ~/corvid/wiki/auth/google-oauth-deploy-gotchas.md
# Google OAuth Deploy Issues
Three things break after deploy that work locally:
1. Callback URL must match EXACT casing in Google Console
2. Consent screen redirect URI needs the production domain with https
3. Cookie SameSite=None + Secure required behind reverse proxy
Symptoms: silent 400 on redirect, no error in server logs.
Next session, any project, your agent pulls up what you already solved.
Search
Two search modes, both local, both fast.
Keyword (always on): SQLite FTS5 with Porter stemming and BM25 ranking. "Finetuning" matches "fine-tuned." Zero dependencies.
Semantic (full install): fastembed generates embeddings with a 33MB model (bge-small-en-v1.5), sqlite-vec stores and searches them inside the same SQLite database. "Login callback issue" finds your article about "OAuth redirect" even though it never uses those words. Runs on CPU in ~50ms. No GPU. No server. No API calls.
Both modes run together. Keyword results first, then semantic fills in what keyword missed.
corvid search "oauth redirect"
corvid search "liability caps" --json
corvid stats
Built-in memory vs corvid
| Built-in | corvid | |
|---|---|---|
| Scope | Per-project | Cross-project |
| Limit | ~200 lines | Unlimited |
| Search | None | Keyword + semantic |
| Control | Agent decides | You decide with /remember |
What people save
- The auth fix that works locally but breaks after deploy
- The contract clause taxonomy the parser needs to handle
- The database index that stopped the timeout
- The API behavior that is not in the docs
- The architecture decision and why you made it
- The deploy config that makes CI pass after it randomly started failing
What gets saved
Your agent writes markdown articles by category. You never touch the structure.
~/corvid/
corvid.db # search index (disposable, rebuildable)
INDEX.md # table of contents your agent maintains
wiki/
auth/
google-oauth-deploy-gotchas.md
contracts/
liability-cap-types.md
backend/
supabase-rls-service-role.md
Real articles with tables, exact values, commands, reasoning. Not chat logs.
Under the hood
One Python file. SQLite FTS5 for keyword search. sqlite-vec for vector search. fastembed for embeddings (ONNX, CPU-only, 33MB). Everything local. Database is disposable, rebuild anytime with corvid index-all.
Commands
| Command | What it does |
|---|---|
corvid install |
Detect agents, install /remember skill, init database |
corvid search <query> |
Search (human-readable) |
corvid search <query> --json |
Search (JSON for agents) |
corvid index <file> |
Index one markdown file |
corvid index-all |
Re-index everything |
corvid stats |
Show article counts |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file corvid_remember-0.2.0.tar.gz.
File metadata
- Download URL: corvid_remember-0.2.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73f020c40b0e41eeca0286ca7f0a508b3f2a7b37913b03708434b9c14500d26d
|
|
| MD5 |
b9b4b6f81d1657d410747d5cc2db166b
|
|
| BLAKE2b-256 |
ca61c476e9149dcfdf8c9b346912e1c2fcfcb285301746cd543af62592a7d669
|
File details
Details for the file corvid_remember-0.2.0-py3-none-any.whl.
File metadata
- Download URL: corvid_remember-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88ca404b243840a3a6b44fb937d84043b7cc722fa66f50aa986ed9fd688c2cc6
|
|
| MD5 |
3a3bf635f620919fc688d7f6c5b75043
|
|
| BLAKE2b-256 |
8fcf9a5d89207b2e744fe2533bfed93a5db1fac681d7f8f0520100615aac2a14
|