Local-first memory
Goals, observations, structured session capsules, and task state stay in local SQLite. No broker, daemon, cloud database, or hosted login.
Local repository memory over MCP
Local project memory and explicit handoff for AI coding agents. Continue the repository instead of explaining it again in every new AI session.
Why djobs
A coding agent may already know the failed approach, the project constraint, the remaining test, and the exact files it changed. djobs keeps that context attached to the repository instead of the chat window.
Goals, observations, structured session capsules, and task state stay in local SQLite. No broker, daemon, cloud database, or hosted login.
The current request searches older memory, so a useful constraint or failed approach can rank above newer unrelated activity.
Sibling worktrees share passive repository memory while explicit ownership and leases stay isolated to each checkout.
How it works
Ordinary sessions use passive memory. Exact task ownership remains explicit, so observation never silently becomes control.
Bounded user intent, tool results, failures, Git changes, and a deterministic structured capsule are stored as local data.
sync_workspace(query=..., context_tier="resume") retrieves relevant repository memory under a token budget.
The agent resumes useful state and can checkpoint or hand off exact work only when coordination requires it.
Layered recovery
The MCP defaults to the smallest continuation capsule. Deeper evidence and full audit detail remain available when requested.
resumeGoal, constraints, progress, failures, next step, task state, and Git state.
evidenceThe resume capsule plus compact observations without memory IDs or timestamps.
auditFull identifiers, timestamps, and memory detail for debugging or status updates.
Clear boundaries
djobs separates what the repository remembers from who owns a unit of work.
Best for normal coding sessions and context recovery.
Best for coordinated tasks that need exact ownership.
Install once
The VS Code extension is the easiest route. Its first MCP call may create the local database and configure the detected Copilot adapter at user level; Diagnose Setup makes that visible. Other MCP hosts can launch djobs through uvx.
# VS Code / GitHub Copilot
Install: djobs — Local Agent Memory
# Any MCP host
uvx djobs mcp
# Manual repair only
pipx install djobs
djobs setup
djobs doctor
Five compact MCP tools
Passive memory stays lightweight. Lower-level queue and worker tools remain available through djobs-mcp-full.
sync_workspace(...)Recover a minimal continuation capsule, compact evidence, or full audit detail under a token budget.
memory(...)List, search, deactivate, forget, or explicitly clear passive repository memory.
checkpoint(...)Deliberately create or resume one checkout-scoped unit of work.
handoff(...)Release or complete tracked work with bounded evidence.
resume_delta(...)Compatibility path for integrations that already persist revision IDs.
Reproducible benchmarks
The bundled deterministic fixture compares a deliberately simple full-reread baseline with one query-aware resume-tier response.
sync_workspace resume responseThis is a payload-size regression fixture, not an end-to-end savings claim. The baseline does not model modern agents that summarize, cache, or selectively read files. It is not provider billing, measured model usage, latency, or quality. Run python scripts/benchmark_project_memory.py and inspect the assumptions.
Privacy and control
State defaults to ~/.djobs/global.db. Pause stops automatic capture and recovery without deleting data. Common credentials are redacted on a best-effort basis, stored text is untrusted data, retention is bounded, and failures remain fail-open.
Add [djobs:no-memory] for one prompt or set DJOBS_CAPTURE_USER_INTENT=0 globally.
Mark memory resolved, superseded, stale, or contradicted. It remains inspectable only while retained by bounded local storage.
Delete one memory or explicitly clear passive memory for the repository family.
Open source, MIT licensed, local by default, and designed for coding agents that need to continue real work without replaying the entire project.