deja, what one agent learns, they all know.
CI learns it. Your chat agent already knows it. Open source, self-hosted recall that any server, client, or script can shape.
Thin wrapper over HTTP. Two functions.
HTTP endpoints. Use from anywhere.
Native protocol. Claude, Cursor, etc.
Incident response
Capture the postmortem as learnings, inject them before the next on-call handoff.
Agent onboarding
Give fresh agents the muscle memory of your best runs without flooding them with logs.
Long-running workflows
Stitch multi-day work into a single arc. Deja remembers outcomes, not noise.
Tool reliability
Teach agents the traps: flaky endpoints, brittle migrations, and safe retries.
Ops playbooks
Store the short form. Inject it when the runbook needs to be alive.
Product memory
Let agents remember the why, not just the what. Keep decisions tethered.
deja is just HTTP. Anything that can make a request can learn and recall. CI/CD pipelines, local chat agents, Slack bots, cron jobs, CLI scripts — all writing to and reading from the same memory.
CI learns it. Your chat agent knows it. Same memory, different doors.
Don't carry everything. Ask for what's relevant right now.
Deploys to your Cloudflare account. No data leaves your Workers.
Each API key gets its own Durable Object. No cross-tenant leakage.
All routes require Bearer tokens by default. Explicitly opt in to public access.
Shared, agent-specific, and session-scoped memories. Least privilege by design.
Claude Code + deja
Give Claude Code persistent memory across sessions. Learn from deployment failures, architectural decisions, and codebase patterns — then automatically recall them when they matter.
Cursor + deja
Give Cursor persistent memory across coding sessions. Learn codebase patterns, architectural decisions, and style preferences — then recall them automatically when editing similar files.
GitHub Actions + deja
Give your CI pipeline persistent memory. Learn from build failures, test flakes, and deploy issues — then inject that knowledge into future runs to prevent repeat mistakes.
LangChain + deja
Add persistent memory to LangChain agents and chains. Learn from user feedback, tool failures, and conversation patterns — then inject relevant context before every response.
n8n + deja
Add persistent memory to n8n workflows. Learn from ticket resolutions, customer interactions, and process outcomes — then inject relevant context when similar situations arise.
Slack Bots + deja
Build Slack bots with persistent memory. Learn from incident channels, team decisions, and resolved threads — then recall that knowledge when similar situations arise.
Single Agent Recall
Give a single AI agent persistent memory by storing learnings after tasks and injecting relevant memories before new ones. The foundational deja pattern.
Multi-Agent Shared Memory
Connect multiple AI agents through a single deja instance using scope isolation. Shared scope for cross-agent knowledge, agent-specific scopes for specialization.
Human-in-the-Loop Teaching
Let humans explicitly teach agents by saying 'remember this.' The agent stores the teaching with appropriate confidence and scope using deja's learn() API.
Agent-to-Agent via Shared Memory
Enable asynchronous agent-to-agent communication through shared deja memory. Agent A learns, Agent B injects -- no direct messaging required.
Basic System Prompt
A ready-to-paste system prompt that gives any agent full deja capabilities — learn, inject, and query via the REST API or deja-client.
You have access to persistent memory via deja, a shared memory service. Use it to store learnings and recall relevant context.
## Memory Operations
### Learn — store a memory after completing a task or encountering something noteworthy
```
POST {DEJA_URL}/learn
{
"trigger": "when this situation ... "Why not just use a database?"
You could. But then you're building semantic search, scoping, confidence decay, and cleanup yourself. deja is that layer, already wired to Cloudflare's vector and AI stack.
"Another AI tool?"
It's 1 Worker, 2 endpoints. No SDK required. curl works. The whole thing is ~500 lines of TypeScript.
"Vendor lock-in?"
Your Cloudflare account, your data, MIT license. It's a single Worker with a Durable Object and a Vectorize index. Fork it if we disappear.
"Will this actually get maintained?"
It's the tool we use daily. But it's also open source — so it doesn't depend on us. The architecture is intentionally simple enough to understand in an afternoon.
One agent learns it. The next one already knows.
Every lesson, every workaround, every hard-won fix — already waiting in context before the first token lands.