agent-vault

2026

One markdown memory vault for every AI coding agent. Local-first, git-backed, provider-neutral.

Role
Solo author
Stack
TypeScript Markdown Git Astro

Problem

Every AI coding tool wants its own memory format — CLAUDE.md, AGENTS.md, CODEX.md, GEMINI.md. Same context, duplicated across four files, drifting from day one. Moving from one agent to another means re-teaching the agent who I am and what I’m building.

That’s not memory. That’s lock-in with extra steps.

Approach

  • One markdown vault owned by the user
  • Git as source of truth (versioned, mirrored, offline-first)
  • Generated exports to any agent format via a single sync script
  • Shared + per-project scoping (shared facts auto-appear in every project; per-project memory stays private to that repo)
  • GitHub + GitLab dual-push for outage resilience

Under the hood, sync-project.sh symlinks the four canonical filenames (AGENTS.md, CLAUDE.md, GEMINI.md, CODEX.md) to a single generated AGENT.md per project, so every CLI reads from the same source without me maintaining copies.

Outcome

  • Solo-developed in ~2 days during a Claude Code ↔ Codex switch
  • OSS on GitHub, private variant on GitLab
  • Caught adoption from early tryers after launch tweet
  • Replaced my previous ad-hoc memory-management cron that drifted silently between tools

What I learned

  • Provider-neutral is a shape, not a feature — it happens at the sync-script boundary, not inside the memory files
  • Agents will read whatever filename is in the root, so giving them a stable symlink beats negotiating with every vendor’s format
  • Local-first + git-backed is table stakes for anything that carries my context; hosted memory services are a bet I’m not taking