djobs — Local Agent Memory
Local project memory and explicit handoff for AI coding agents.
Continue the repository instead of explaining it again in every new AI session.
What the extension does
The extension is the one-click VS Code route for djobs. It:
- registers the local MCP server for GitHub Copilot and VS Code Agent;
- installs or repairs the Python runtime and passive lifecycle hooks;
- diagnoses MCP, database, runtime, and hook health;
- pauses and resumes djobs without deleting local state;
- keeps repository memory on the user's machine.
It does not add a permanent sidebar, dashboard, polling loop, remote service, or cloud database.
The UI stays out of the way after setup.
What djobs remembers
- the user's bounded, redacted goal and important constraints;
- successful and failed tool results;
- actual Git working-tree changes;
- a structured session capsule before context compaction or exit;
- explicit task ownership and handoff evidence when coordinated work needs it.
Layered recovery
sync_workspace(query=..., context_tier="resume") defaults to the smallest continuation payload:
| Tier |
Returned detail |
resume |
Goal, constraints, progress, failures, next step, task state, and Git state |
evidence |
Resume capsule plus compact supporting observations |
audit |
Full memory identifiers, timestamps, and lifecycle detail |
The response also includes a context_hash, so unchanged passive memory can be suppressed on the
next equivalent recovery without hiding current task state.
Get started
- Install this extension.
- Open a Git repository.
- Start using Copilot normally.
The first djobs MCP call may create ~/.djobs/global.db and install the passive Copilot
lifecycle adapter. That is a local user-level configuration change, not a read-only probe. No
per-project command is required, but djobs: Diagnose Setup shows what was configured and
djobs: Set up / Repair djobs performs the same work explicitly when Python or an old launch path
needs attention.
| Tool |
Purpose |
sync_workspace(query?, context_tier="resume", known_context_hash?, ...) |
Recover a minimal continuation capsule, compact evidence, or full audit detail under a token budget. |
memory(action, ...) |
List, search, deactivate, forget, or explicitly clear passive repository memory. |
checkpoint(summary, ...) |
Deliberately create or resume one checkout-scoped unit of work. |
handoff(task_id, ...) |
Release or complete tracked work with bounded evidence. |
resume_delta(correlation_id, ...) |
Compatibility path for integrations that already persist revision IDs. |
Passive memory never silently creates or claims tasks. Lower-level queue and administration tools
remain available through djobs-mcp-full rather than occupying every ordinary Agent context.
Commands
- djobs: Set up / Repair djobs — install or update the engine, hooks, and native MCP registration.
- djobs: Diagnose Setup — verify runtime, MCP, local database, and hook health.
- djobs: Pause djobs — stop automatic capture and recovery without deleting state; manual inspection and cleanup remain available.
- djobs: Resume djobs — re-enable djobs.
Efficiency metrics
The bundled fixture produces a simple serialized-text estimate of ~224 tokens for one resume
response and ~7,805 tokens for rereading all 18 synthetic files.
This is a payload-size regression fixture, not an end-to-end savings claim. The reread baseline does
not model modern agents that summarize, cache, or selectively read files, so the figures are not
provider billing, measured model usage, latency, or quality results. Reproduce the fixture with
python scripts/benchmark_project_memory.py and inspect its assumptions.
djobs gain reports first-pass verified rate, repair attempts, average attempts per verified task,
cycle-time proxy, and simple context-size estimates. Treat them as local heuristics rather than
guaranteed savings.
Requirements
| Component |
Requirement |
| VS Code |
1.101 or newer |
| Python runtime |
Python 3.10+; Python 3.10–3.14 tested in CI |
| Extension development |
Node.js 20+ |
| Storage |
Local SQLite by default |
| Operating systems |
Windows, macOS, Linux |
End users do not need Node.js. Node is required only to build or package the extension.
Privacy and control
- State defaults to
~/.djobs/global.db.
- Common credentials are redacted on a best-effort basis.
- Add
[djobs:no-memory] to skip one prompt.
- Set
DJOBS_CAPTURE_USER_INTENT=0 to disable automatic prompt-intent capture.
- Use Pause djobs to stop automatic capture, session capsules, snapshots, bootstrap, and
sync_workspace recovery without deleting stored state.
- Mark memory resolved, superseded, stale, or contradicted so normal recovery excludes it. Local
observation retention is bounded; this is not a permanent audit archive.
- Hook failures are fail-open, unrelated settings are preserved, and djobs does not upload
repository memory or task state.
Source
·
PyPI
·
Documentation
·
Issues