A personal semantic memory system — store, search, and manage memories locally with vector embeddings
Project description
recall
A personal semantic memory system. Store, search, and manage memories locally using vector embeddings.
Everything runs on your machine: FastAPI server, Qdrant vector database (Docker), and Ollama for local embeddings. Zero cost, full privacy.
Install
From PyPI
pip install recall-cli
From Homebrew
brew tap anelcanto/recall-cli
brew install recall-cli
From source
git clone https://github.com/anelcanto/recall.git
cd recall
./install.sh
Or the quick version:
make install
Prerequisites
- Docker — runs Qdrant vector database
- Ollama — local embeddings (
brew install ollama && ollama pull nomic-embed-text) - uv — Python package manager (
brew install uv)
Quick start
# Start services
make up # Start Qdrant in Docker
make serve # Start API server (keep this running)
# In another terminal
recall add "The quick brown fox" --tag test
recall search "fox"
recall list
recall status
CLI
recall add "text" --tag work --source cli [--dedupe-key "..."]
recall search "query" --top-k 10 [--no-text] [--output table|json]
recall ingest <file> [--format lines|jsonl] [--source name] [--auto-dedupe]
recall list [--limit 20] [--cursor ...] [--output table|json]
recall delete <id>
recall status
Environment variables
| Variable | Default | Description |
|---|---|---|
RECALL_API_URL |
http://127.0.0.1:8100 |
API server URL |
RECALL_API_TOKEN |
(none) | Bearer token for auth |
Architecture
recall CLI --> FastAPI server (:8100) --> Qdrant (Docker :6333)
|
v
Ollama (:11434)
nomic-embed-text
- FastAPI serves the HTTP API
- Qdrant stores vectors and payloads
- Ollama generates embeddings locally using
nomic-embed-text - CLI talks to the API over HTTP
User config lives in ~/.memories/.env. Qdrant data persists in a Docker volume.
API endpoints
| Method | Path | Description |
|---|---|---|
POST |
/memory |
Store a memory |
POST |
/search |
Semantic search |
POST |
/ingest |
Batch import |
GET |
/memories |
List with pagination |
DELETE |
/memory/{id} |
Delete a memory |
GET |
/health |
Service health check |
Development
make test # Unit tests (no services needed)
make test-integration # Integration tests (Qdrant + Ollama required)
make test-degraded # Degraded mode tests (Qdrant only)
make test-all # All tests
License
MIT
Project details
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 recall_cli-0.1.0.tar.gz.
File metadata
- Download URL: recall_cli-0.1.0.tar.gz
- Upload date:
- Size: 93.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dfd56df9bf3a040d53e00fff3be4bbbbefdb811633fd3d4aa30c3043d957a1c
|
|
| MD5 |
dbb5de2b6094dde81522f4ba8f1f687c
|
|
| BLAKE2b-256 |
024f031fbbc0227a593c26be958706ee0c6919b1bf5f57f83565004d07eb2720
|
File details
Details for the file recall_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: recall_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41236bb7b8188e99ecc8e11f5e341e77e6ff33db1569f0116e02f198b4788e94
|
|
| MD5 |
5c000bb1e97d33e9baa185e54e00e31e
|
|
| BLAKE2b-256 |
dfcdf7b107126e08172e7d72e99b714aca11543e652cfc417dcd129e4d6f8014
|