Thermodynamic memory for AI agents. Memories have heat, decay over time, and can be boosted, pinned, or deprecated. Reactive triggers let memory govern itself.
- 🔥 Thermodynamic decay — memories cool naturally; important ones stay hot
- ⚡ Reactive triggers —
on_store,on_recall,on_decay,on_threshold→ auto-pin, boost, notify, webhook - 🔍 Vector + keyword search — HNSW index with FastEmbed (local) or pgvector (cloud)
- 🧠 MCP native — works with Claude Code, OpenClaw, Cursor, and any MCP client
- 🏠 Local-first — embedded PostgreSQL, runs entirely on your machine
- ☁️ Cloud sync — optional CRDT sync to sulcus.ca (paid tier)
# Homebrew (macOS/Linux)
brew install digitalforgeca/tap/sulcus-local
# npm (downloads pre-built binary)
npm install -g @digitalforgestudios/sulcus-local
# Or build from source (requires Rust)
cargo install sulcus-localclaude mcp add sulcus -- sulcus-local stdioInstall the Sulcus memory plugin:
clawhub install mcdoolz/sulcus-memory| Language | Package | Install |
|---|---|---|
| Python | sulcus | pip install sulcus |
| Node.js | sulcus | npm install sulcus |
from sulcus import Sulcus
client = Sulcus(api_key="your-key", base_url="https://api.sulcus.ca")
# Store a memory
client.remember("User prefers dark mode", memory_type="preference", decay_class="stable")
# Search memories
results = client.recall("user preferences", limit=5)
# Boost a memory
client.boost(node_id="uuid", amount=0.3)import { Sulcus } from 'sulcus';
const client = new Sulcus({ apiKey: 'your-key', baseUrl: 'https://api.sulcus.ca' });
// Store a memory
await client.remember('User prefers dark mode', { memoryType: 'preference', decayClass: 'stable' });
// Search memories
const results = await client.recall('user preferences', { limit: 5 });
// Boost a memory
await client.boost(nodeId, 0.3);| Framework | Package | Description |
|---|---|---|
| LangChain | sulcus-langchain |
Memory backend for LangChain agents |
| LlamaIndex | sulcus-llamaindex |
Vector store + document store |
| CrewAI | sulcus-crewai |
Crew-level shared memory + tools |
| Deep Agents | sulcus-deepagents |
Replaces flat AGENTS.md with thermodynamic memory |
| Vercel AI | sulcus-vercel-ai |
LanguageModelV3Middleware |
| OpenClaw | @digitalforgestudios/openclaw-sulcus |
Memory plugin for OpenClaw |
| CLI | integrations/cli | Command-line memory management |
| Type | Description | Decay |
|---|---|---|
episodic |
Events, conversations | Fast |
semantic |
Knowledge, concepts | Slow |
preference |
User preferences, opinions | Slower |
procedural |
How-to, processes | Slowest |
fact |
Stable data, ground truth | Slow |
Sulcus triggers let memory react to its own lifecycle — no competitor has this.
# Pin any preference that gets recalled
client.create_trigger(
name="pin-recalled-preferences",
event="on_recall",
action="pin",
filter={"memory_type": "preference"}
)
# Webhook when memories decay below threshold
client.create_trigger(
name="cold-memory-alert",
event="on_threshold",
action="webhook",
config={"heat_below": 0.1, "url": "https://your-app.com/webhook"}
)sulcus-local (free, open source)
├── Embedded PostgreSQL (port 4201)
├── HNSW vector index (FastEmbed)
├── MCP server (stdio protocol)
├── Thermodynamic engine (decay, consolidation)
└── Trigger engine (reactive memory governance)
sulcus-sync (paid, subscription)
├── CRDT cloud sync to api.sulcus.ca
├── P2P discovery
└── Cross-agent namespace sync
- Website: sulcus.ca
- Dashboard: sulcus.ca/dashboard
- Status: sulcus.ca/status
- Docs: sulcus.ca/docs
- ClawHub Skill: mcdoolz/sulcus-memory
- sulcus-local binary: Proprietary — Digital Forge Studios. Free to use, not open source.
- SDKs (Python, Node.js): MIT — API clients only.
- Integrations: MIT — glue code only.
- OpenClaw plugin: MIT — API client only.
© 2026 Digital Forge Studios. All rights reserved.