Semantic memory for AI agents. Local-first, MCP-native.
See the codeSemantic memory for AI agents. Local-first, MCP-native.
Combines vector search, a relationship graph, and access tracking into a unified memory intelligence layer — all running locally as a single binary.
sediment.store, recall, list, forget. That's it.| Sediment | ChromaDB | Mem0 | MCP Memory Svc | |
|---|---|---|---|---|
| Install | Single binary | Python + pip | Docker + Postgres + Qdrant | Python + pip |
| Tools | 4 | API | 4 | 12 |
| R@1 | 50% | 47% | 47% | 38% |
| Recency@1 | 100% | 14% | 14% | 10% |
| Dedup | 99% | 0% | 0% | 0% |
| Store p50 | 50ms | 692ms | 14ms | 2ms |
# Via crates.io
cargo install sediment-mcp
# Via Homebrew
brew tap rendro/tap
brew install sediment
# Via shell installer
curl -fsSL https://raw.githubusercontent.com/rendro/sediment/main/install.sh | sh
# From source
cargo install --path .
Add Sediment to your MCP client configuration:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Run sediment init in your project, or add manually to ~/.claude/settings.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Add to .vscode/mcp.json in your project:
{
"servers": {
"sediment": {
"command": "sediment"
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Go to Settings > Tools > AI Assistant > MCP Servers, click +, and add:
{
"sediment": {
"command": "sediment"
}
}
Add to ~/.zed/settings.json on macOS or ~/.config/zed/settings.json on Linux:
{
"context_servers": {
"sediment": {
"command": "sediment",
"args": [],
}
}
}
| Tool | Parameters | Description |
|---|---|---|
store | content, scope?, replace_id? | Save content to memory |
recall | query, limit? | Search by semantic similarity |
list | limit?, scope? | List stored items |
forget | id | Delete an item by ID |
sediment # Start MCP server
sediment init # Set up Claude Code integration
sediment stats # Show database statistics
sediment list # List stored items
sediment list --scope global # List global items
sediment store "some content" # Store content
sediment store - # Store content from stdin
sediment recall "search query" # Search by semantic similarity
sediment forget <id> # Delete an item by ID
All commands support --json for machine-readable output.
| Variable | Default | Description |
|---|---|---|
SEDIMENT_DB | ~/.sediment/data | Override database path. Useful for ephemeral or isolated storage. |
SEDIMENT_EMBEDDING_MODEL | all-MiniLM-L6-v2 | Override embedding model (all-MiniLM-L6-v2, bge-small-en-v1.5). |
Example — use a throwaway database for a task:
SEDIMENT_DB=/tmp/task-xyz sediment store "temporary context"
SEDIMENT_DB=/tmp/task-xyz sediment recall "context"
The --db CLI flag takes the same value and overrides the env var if both are set.
All local, embedded, zero config:
access.db) — Relationship graph, access tracking, decay scoring, consolidation queueBenchmarked against 5 alternatives with 1,000 memories and 200 queries. See BENCHMARKS.md for full results.
| Metric | Sediment | ChromaDB | Mem0 |
|---|---|---|---|
| R@1 | 50% | 47% | 47% |
| MRR | 62% | 61% | 61% |
| Recency@1 | 100% | 14% | 14% |
| Dedup | 99% | 0% | 0% |
| Store p50 | 50ms | 692ms | 14ms |
| Recall p50 | 103ms | 694ms | 8ms |
~/.sediment/data/~/.sediment/access.dbEverything runs locally. Your data never leaves your machine.
See CONTRIBUTING.md for build instructions and PR guidelines.
Rust
98.8%
Semantic memory for AI agents. Local-first, MCP-native.
See the codeSemantic memory for AI agents. Local-first, MCP-native.
Combines vector search, a relationship graph, and access tracking into a unified memory intelligence layer — all running locally as a single binary.
sediment.store, recall, list, forget. That's it.| Sediment | ChromaDB | Mem0 | MCP Memory Svc | |
|---|---|---|---|---|
| Install | Single binary | Python + pip | Docker + Postgres + Qdrant | Python + pip |
| Tools | 4 | API | 4 | 12 |
| R@1 | 50% | 47% | 47% | 38% |
| Recency@1 | 100% | 14% | 14% | 10% |
| Dedup | 99% | 0% | 0% | 0% |
| Store p50 | 50ms | 692ms | 14ms | 2ms |
# Via crates.io
cargo install sediment-mcp
# Via Homebrew
brew tap rendro/tap
brew install sediment
# Via shell installer
curl -fsSL https://raw.githubusercontent.com/rendro/sediment/main/install.sh | sh
# From source
cargo install --path .
Add Sediment to your MCP client configuration:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Run sediment init in your project, or add manually to ~/.claude/settings.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Add to .vscode/mcp.json in your project:
{
"servers": {
"sediment": {
"command": "sediment"
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"sediment": {
"command": "sediment"
}
}
}
Go to Settings > Tools > AI Assistant > MCP Servers, click +, and add:
{
"sediment": {
"command": "sediment"
}
}
Add to ~/.zed/settings.json on macOS or ~/.config/zed/settings.json on Linux:
{
"context_servers": {
"sediment": {
"command": "sediment",
"args": [],
}
}
}
| Tool | Parameters | Description |
|---|---|---|
store | content, scope?, replace_id? | Save content to memory |
recall | query, limit? | Search by semantic similarity |
list | limit?, scope? | List stored items |
forget | id | Delete an item by ID |
sediment # Start MCP server
sediment init # Set up Claude Code integration
sediment stats # Show database statistics
sediment list # List stored items
sediment list --scope global # List global items
sediment store "some content" # Store content
sediment store - # Store content from stdin
sediment recall "search query" # Search by semantic similarity
sediment forget <id> # Delete an item by ID
All commands support --json for machine-readable output.
| Variable | Default | Description |
|---|---|---|
SEDIMENT_DB | ~/.sediment/data | Override database path. Useful for ephemeral or isolated storage. |
SEDIMENT_EMBEDDING_MODEL | all-MiniLM-L6-v2 | Override embedding model (all-MiniLM-L6-v2, bge-small-en-v1.5). |
Example — use a throwaway database for a task:
SEDIMENT_DB=/tmp/task-xyz sediment store "temporary context"
SEDIMENT_DB=/tmp/task-xyz sediment recall "context"
The --db CLI flag takes the same value and overrides the env var if both are set.
All local, embedded, zero config:
access.db) — Relationship graph, access tracking, decay scoring, consolidation queueBenchmarked against 5 alternatives with 1,000 memories and 200 queries. See BENCHMARKS.md for full results.
| Metric | Sediment | ChromaDB | Mem0 |
|---|---|---|---|
| R@1 | 50% | 47% | 47% |
| MRR | 62% | 61% | 61% |
| Recency@1 | 100% | 14% | 14% |
| Dedup | 99% | 0% | 0% |
| Store p50 | 50ms | 692ms | 14ms |
| Recall p50 | 103ms | 694ms | 8ms |
~/.sediment/data/~/.sediment/access.dbEverything runs locally. Your data never leaves your machine.
See CONTRIBUTING.md for build instructions and PR guidelines.
Rust
98.8%