ContextZero
One place to see and manage what every AI coding agent knows — across all your projects.
A VS Code extension that gives you one sidebar, split into Context,
Prompts, and Templates panels, for the memory, rules, and skills used
by Claude Code, Cursor, Kiro, Antigravity, and the shared AGENTS.md
standard, for every project on your machine — including monorepos, where
sub-projects nest under their parent — plus safe recovery of Claude Code
memory and chat history when you rename or move a project folder.
Built by Tahir Nazir — its-tahir.com
Why this exists
If you use more than one AI coding tool, each one keeps its own rules, memory,
and knowledge files — scattered across your home directory and every project
folder, with no shared view. There's no single place to see what Claude Code,
Cursor, Kiro, Antigravity, and the tool-neutral AGENTS.md standard each know
about a project, or what your global rules say for each of them.
Claude Code adds a second, separate problem on top of that: it stores
per-project data under ~/.claude/projects/<slug>/, where the slug is derived
from your project folder's path. Rename or move a project folder and Claude
starts fresh — your chat history and memory sit orphaned under the old slug.
ContextZero solves both. It gives you one project-first sidebar tree spanning
all five tools — nesting monorepo sub-projects under their parent — and —
specific to Claude Code — it can safely relink a renamed project and recover
its memory and chat history, all under a strict safety model: it never
deletes or overwrites a single file. It also ships a library of reusable
prompts and rule/skill templates you can copy or apply to any project, and a
per-project readiness check.
Features
| Feature |
What it does |
| Multi-tool sidebar tree |
One tree, grouped by project, showing every tool's rules, memory, steering, and knowledge files side by side. Click any file to open it in the editor. Monorepos nest — a repo's sub-projects appear under their parent, each with its own tools' context. |
| Global rules & settings |
Claude Code global rules/settings/skills, Kiro global steering, and Antigravity global knowledge all appear under Global — one click creates the starter file where a tool supports one. An installed tool with nothing there yet (e.g. ~/.kiro/ present but empty) still shows up, so its create action stays reachable. |
| New context file |
Right-click any section — Cursor rules, Kiro steering, Antigravity rules, Claude memory, and more — to create a properly formatted file (with frontmatter where the tool needs it) that opens straight in the editor. Every creatable section has a + button on hover (and a right-click entry); empty sections also show a Create… row. A project row's own + (or right-click Add Context File…) offers every creatable file for that project, including tools it doesn't use yet. |
| Search |
Search across every tool's memory, rules, and steering files at once; results open at the matching line. |
| Orphan detection & relink (Claude Code) |
Projects whose folder no longer exists show a ⚠ "(folder missing)" badge; Relink to Folder… copies chat history and memory to the renamed folder's new slug, keeping the old data as a timestamped backup. |
| Copy memory (Claude Code) |
Copy one project's memory files into another project, conflict-safe. |
| Readiness check |
Each project row starts with a Readiness (n/4) line showing which of CLAUDE.md, AGENTS.md, GEMINI.md, and memory it has, with a one-click + to create most missing files (GEMINI.md is shown for awareness only). |
| Prompt & template library |
Two more panels — built-in and custom prompts you copy to the clipboard, and rule/skill templates you apply straight into a project. See Library below. |
| Team library sources & skill install |
Add a shared folder or git repo as a library source; browse skill catalogues (even ~2,000-skill ones) grouped A–Z; search names and descriptions across every source; install a skill into Antigravity or Claude Code at project or global scope; bootstrap a whole project to a team standard. See Team library sources below. |
Orphan detection and relink are currently Windows-only — Claude Code's
project-folder encoding is decoded for Windows paths.
Library
Two extra panels under the ContextZero icon:
- Prompts — built-in starter prompts (onboard a codebase, systematic debug,
new-feature kickoff, write tests, code review) plus your own. Click the copy
button to put a prompt on the clipboard, ready to paste into any agent. Copy
to My Library forks a built-in into
~/.contextzero/prompts/ so you can
customise it.
- Templates — rule templates (Frontend, Backend, Code quality) and a skill
template (Systematic debugging). Apply to Project… writes the rules into a
project as
AGENTS.md, GEMINI.md, or CLAUDE.md (never overwriting), or
for a skill template, asks where to install it (Antigravity or Claude Code,
project or global — the same destination picker as Install Skill…).
Your custom prompts and templates live in ~/.contextzero/ as plain Markdown.
Each project in the Context panel also shows a Readiness line —
which of CLAUDE.md, AGENTS.md, GEMINI.md, and memory it has — with a
one-click + to create most missing files (GEMINI.md is shown for
awareness only).
Team library sources
Point ContextZero at libraries your whole team shares:
| Setting |
What it does |
contextZero.libraryPaths |
Folders holding shared prompts/templates/skills — a cloned repo or a synced drive. |
contextZero.librarySources |
Git repos ContextZero clones into ~/.contextzero/sources/ and refreshes daily. |
contextZero.autoUpdateSources |
Daily background refresh (on by default). |
Add Library Source… on the Templates panel clones a repo (shallow, and
narrowed to the library folders). Big catalogs — such as
agentic-awesome-skills
with ~1,969 skills — appear as one row grouped A–Z, and descriptions are
read only when you expand a letter.
If a clone or pull fails (no git, a private repo, a timeout, no network), the
source still appears in the tree with a ⚠ not downloaded — use Update row
instead of silently vanishing — retry with its Update Source button once
the problem is fixed. Right-click a git source for Remove Library Source…
to drop it from contextZero.librarySources and delete its managed clone.
ContextZero: Search Skills searches skill names and descriptions —
descriptions become searchable once that source's index has finished building
in the background after a clone or pull — across every source. It does not
search prompts or rule templates.
Install Skill… copies a whole skill folder (its SKILL.md plus any
scripts/, examples/) into:
| Target |
Destination |
| Antigravity — this project |
<project>/.agents/skills/<id>/ |
| Antigravity — global |
~/.gemini/config/skills/<id>/ |
| Claude Code — this project |
<project>/.claude/skills/<id>/ |
| Claude Code — global |
~/.claude/skills/<id>/ |
Files that already exist are skipped and reported, never overwritten — there
is no confirmation dialog for this one; it goes straight to a destination
picker.
Skills come from library sources you or your team point ContextZero at —
often third-party repos — and may include scripts/. Installing a skill
places that content where your agent can read and run it, same as any file
in your project. Only add sources you trust.
Bootstrap Project… on a project applies a team standard defined in a
bootstrap.json inside any library source, so the standard is versioned with
your team's library:
{ "profiles": [ { "name": "Backend service",
"rules": [{ "template": "backend", "target": "AGENTS.md" }],
"skills": ["systematic-debugging"] } ] }
ContextZero manages ~/.contextzero/sources/ (clones and the search index)
and may delete or re-create what's under it. See Safety
model for the full boundary.
Providers
| Tool |
Global |
Per-project |
| Claude Code |
~/.claude/CLAUDE.md, settings, skills |
CLAUDE.md, memory, .claude/ settings, skills & agents |
| Cursor |
rules live in Cursor's settings database (shown as a note) |
.cursor/rules/*.mdc, legacy .cursorrules |
| Kiro |
~/.kiro/steering/*.md |
.kiro/steering/*.md |
| Antigravity |
~/.gemini/antigravity{,-ide}/knowledge/, ~/.gemini/config/skills/ |
.antigravityrules, GEMINI.md, .agents/skills/ |
| Shared |
— |
AGENTS.md (the tool-neutral standard read by several agents) |
Tools you don't use never appear in the tree.
Verification status: Claude Code and Cursor layouts are verified against
real installations. Kiro and Antigravity's knowledge directory are implemented
from documented layouts and are not yet confirmed against a populated install.
Antigravity's GEMINI.md project context file was found on a real install and
is listed alongside .antigravityrules.
Settings
| Setting |
Default |
Purpose |
contextZero.scanRoots |
[] |
Folders to scan for projects. When empty, the parents of your open workspace folders are used. |
contextZero.scanDepth |
3 |
How deep to search below each root. |
contextZero.enabledProviders |
all five |
Which tools to show. An explicit [] hides every tool. |
contextZero.libraryPaths |
[] |
Local folders to treat as extra library sources — see Team library sources. |
contextZero.librarySources |
[] |
Git repos to clone and browse as library sources — see Team library sources. |
contextZero.autoUpdateSources |
true |
Pull git library sources in the background once a day. |
Safety model
- Never deletes or overwrites your files. The strongest operation on your
own files is renaming a folder to
*.backup-<timestamp> (Claude Code relink
only). Existing files are always left alone: copy-memory and template
conflicts get a -migrated suffix, while skill installs and bootstrap
simply skip any file that's already there and report it.
~/.contextzero/sources/ is a managed cache, not your files. It holds
ContextZero's own clones of git library sources and their search index.
ContextZero may delete or re-create anything under it — to recover from a
partial clone, or when you use Remove Library Source… — but this is the
only location it will ever delete from; nothing outside it is touched.
- Runs
git and makes network requests. v0.5 shells out to git to clone
and pull library sources (shallow, --filter=blob:none, sparse to the
library folders) — daily in the background by default, disable with
contextZero.autoUpdateSources: false. Git is only ever invoked with
argument arrays (never a shell string), URLs are validated first, credential
prompts are disabled outright so a private repo fails instead of hanging,
and every invocation is bounded by a timeout.
- Sensitive and binary files invisible.
.credentials.json, *.db, *.pb,
*.pbtxt, and lock files never appear in the tree or search for any tool, and
are never read.
- Confirmation where it matters. Cloning or removing a library source, and
Claude Code relink/copy-memory, show a modal dialog first. Install Skill…
and Apply to Project… don't confirm — they show a destination picker and
skip files that already exist, so there's nothing destructive to confirm.
- Auditable. Every write is logged to the ContextZero output channel
(
View → Output → ContextZero).
Installation
This extension is installed from a local .vsix file (it is not on the
marketplace).
cd d:\dev\ai\memory-manager
npm install # first time only
npm run package # builds context-zero-0.1.0.vsix
code --install-extension context-zero-0.1.0.vsix
Then reload VS Code (Ctrl+Shift+P → Developer: Reload Window). The brain icon
appears in the activity bar.
Alternative without the command line: Ctrl+Shift+P → Extensions: Install from
VSIX… → pick the .vsix file.
Updating after you change the code
A locally installed .vsix does not auto-update. After editing the source:
npm run compile # check it builds
npm test # run the unit tests
npm run package # rebuild the .vsix
code --install-extension context-zero-0.1.0.vsix # reinstalls over the old one
Then reload the VS Code window. Tip: bump "version" in package.json when you
make real changes, so you can tell which build is installed
(code --list-extensions --show-versions).
For development you don't need to install at all: open this folder in VS Code and
press F5 — an Extension Development Host window launches with the extension
loaded straight from source.
Development
npm run compile # TypeScript build → out/
npm run watch # rebuild on save
npm test # unit tests (vitest) — never touch your real tool homes
npm run test:vscode # integration smoke test against a fixture home
The tests run against temp directories and a fixture home directory
(CONTEXTZERO_HOME override) — your real data is never involved.
Changelog
0.1.0
First public release: one sidebar for Claude Code, Cursor, Kiro, Antigravity and
AGENTS.md; monorepo nesting; per-project readiness; a prompt and template
library; team library sources with A–Z browsing, search and skill installation;
project bootstrap; and Claude Code relink/recovery. See
CHANGELOG.md for detail.
License
MIT
TN. — crafted by Tahir Nazir · its-tahir.com