Skip to content

Repository files navigation

VerifiedState

vsync

The audit trail for AI coding agents.
Know what your AI decided, why it decided it, and whether it's safe to continue — without ceremony.

npm versionMIT LicenseGitHub StarsWebsite

Quick Start · Zero-friction sessions · Tools · Commands · Trust & Security · Pricing · Docs


The problem

You're shipping code written by AI agents. But you can't answer basic questions:

  • What did the AI decide and why?
  • Did two agents just edit the same file with conflicting assumptions?
  • Why did Cursor rebuild what Claude Code already decided?
  • Is it safe to deploy what the AI wrote?

There's no git blame for AI decisions. Chat history disappears. Context doesn't follow you across tools.

The solution

vsync watches every AI coding session and produces a cryptographically signed trace: what was asked, what the AI decided, what changed, and why.

Open chat → vsync loads last session → You work → vsync captures → Idle → auto-save

One line: we make AI coding agents auditable — without ceremony.

Install the CLI from npm (@verifiedstate/sync). This repo is the public home for docs, examples, and templates.


Quick Start

npx @verifiedstate/sync init

One command (~30 seconds). It will:

  1. Open your browser for one-click sign-in
  2. Detect your AI tools (Claude Code, Cursor, Windsurf, Codex)
  3. Write config files (CLAUDE.md, .cursor/rules/, AGENTS.md, MCP config)
  4. Start a background daemon that captures every turn
  5. Generate live hot-context for your repo
vsync start # start the daemon
vsync status # health + recent session activity
vsync stop # stop the daemon

Zero-friction sessions

You should never type "save session" or "load session." vsync handles the full lifecycle:

WhenWhat happensWhat you see
Open a new chatvsync calls session_load, writes summary to .cursor/hot-context.mdmacOS notification: ✦ VerifiedState · {project}
While you workEvery turn captured to your VerifiedState namespacevsync status shows recent sessions
Go idle ~5 minAuto-save: session handoff + audit summaryDashboard session updated
Next chatAuto-start again — context at the top of hot-contextNo copy-paste, no MCP commands

Session summary lives at the top of .cursor/hot-context.md (and .cursor/vstate-session.md for full detail). Agents read it automatically.

Disable notifications: VSYNC_NO_NOTIFY=1 vsync start


Supported Tools

ToolHow it capturesStatus
CursorChat bubbles, agent transcripts, tool calls (edit_file_v2, bash, MCP, …)Stable
Claude CodeWatches ~/.claude/projects/**/*.jsonlStable
WindsurfReads state.vscdb via sql.jsStable
Codex CLIWatches ~/.codex/sessions/**/*.jsonlStable
GitPolls for new commits, captures metadataStable
Any MCP clientVia mcp.verifiedstate.aiStable

What It Captures

DataExample
Session turnsUser prompts + AI responses
Decisions"Use batched updates to avoid long locks"
Tool actionsRead, Edit, Bash, MCP calls (truncated)
Code change hintsFile paths, diff previews where available
Git metadataCommit hash, message, branch, author
Agent identityTool, model, session ID

What it does NOT capture

Never collected
Full source code files (unless in AI chat)
Environment variables or .env files
API keys, secrets, tokens, credentials
Private keys (PEM/SSH patterns scrubbed)
Network traffic or browsing history

See SECURITY.md for the full list.


Commands

CommandDescription
vsync initSign in, detect tools, write configs, start daemon
vsync startLaunch background daemon
vsync stopStop daemon (flushes session on exit)
vsync statusDaemon health + recent auto-started sessions
vsync logsTail recent daemon activity
vsync recapSummarize recent memory activity
vsync agentsList agents that have written to memory
vsync whyAsk why a decision was made
vsync lastShow last N ingested items
vsync trailAudit trail for an entity
vsync diffWhat changed between two points in time
vsync handoffContext packet for the next agent session
vsync auditView local audit log (every API call logged)
vsync audit verifyVerify audit log hash chain integrity
vsync allow <path>Add project to allow-list
vsync deny <path>Remove project from allow-list
vsync start --dry-runPrint payload, skip network

Full CLI reference: verifiedstate.ai/docs


Trust & Security

vsync is designed so you don't have to trust us — you can verify.

Observe-only

vsync is a read-only observer. It cannot:

  • Run shell commands (except git log for commit metadata)
  • Write to your source files
  • Modify git state (no commits, no pushes)
  • Access files outside declared paths
  • Send data anywhere except your configured endpoint

Verify for yourself

vsync start --dry-run --foreground # see exact payloads before send
vsync audit # every API call logged locally
vsync audit verify # hash chain integrity check
npm audit signatures # npm provenance (@verifiedstate/sync)

Secrets filtering

  • .env files are hard-rejected — never read, period
  • API keys (sk-*, ghp_*, AKIA*), bearer tokens, PEM headers are regex-filtered
  • Redacted items logged locally: [redacted: pattern_name]

Full security details: SECURITY.md


What you see

The VerifiedState dashboard shows:

  • Session handoff — summary, files changed, next steps, blockers
  • AI Work Brief — what your agents did today, in plain English
  • Trace viewwhy (prompt, decisions) + what changed (files, tools)
  • Hot Files — files with the most AI edits, flagged for review
  • Collision Detection — alerts when 2+ agents edit the same file
  • Signed Receipts — cryptographic proof of what happened and when

Pricing

FreeProTeamEnterprise
Price$0/mo$19/mo (founder)$59/seat/moCustom
ForIndividual devsSolo buildersTeamsOrgs
Session capture
Cross-tool memory
Signed receipts
Audit exports
Shared team memory
SSO / compliance

View full pricing →

Free is for individual developers and personal projects. Team or organizational use → Enterprise.


How it works

Your machine VerifiedState
+-----------------+ +------------------------+
| AI session files |--read-only--> | api.verifiedstate.ai |
| (Cursor, Claude | --scrub--> | /ingest |
| Code, Windsurf, | --send--> | | |
| Codex) | | signed receipt |
+-----------------+ +------------------------+
|
v
~/.vsync/audit.jsonl (local log of everything sent)
  1. Daemon watches AI session files (read-only)
  2. Payloads pass through secrets filter
  3. Every API call logged to local audit file before sending
  4. VerifiedState extracts decisions and creates signed receipts
  5. Queryable via dashboard, CLI, or MCP tools

For AI agents

Add to your MCP config (Claude Code, Cursor, or any MCP client):

{
"mcpServers": {
"verifiedstate": {
"url": "https://mcp.verifiedstate.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}

MCP tools include memory_query, session_load, session_save, working_state_get, and more. vsync auto-starts sessions — agents don't need to call session_load manually if the daemon is running.

Docs: verifiedstate.ai/docs · Cursor: verifiedstate.ai/docs/cursor


This repo

PathPurpose
README.mdProduct overview (you are here)
SECURITY.mdWhat leaves your machine
CHANGELOG.mdPublic release notes
examples/Before/after, generated config samples
templates/What vsync init writes to your repo

CLI source ships via npm: @verifiedstate/sync


Contributing

Issues and feature requests: github.com/verifiedstate/vsync/issues

Security vulnerabilities: security@verifiedstate.ai

License

MIT — VerifiedState


Star History

About

The audit trail for AI coding agents. Automatic session capture across Claude Code, Cursor, Windsurf, and any MCP agent.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors