Skip to content

What's captured — and what never is

Agent Karma’s entire value rests on trust, so it earns that trust the only honest way: by recording the shape of your work — never its content. It watches that you validated, not what you wrote. Everything below stays on your machine; there is no account, no telemetry, and a build-time guard that fails the release if a single network call sneaks into the bundle.

Agent Karma recordsAgent Karma never touches
That a file changed — its name, extension, and whether it’s a test fileYour source code — file contents are never read
That a validation ran — its type (Test / Build / Lint / Type Check / Security) and resultThe raw command string — it’s classified, then discarded
That a commit landed — its short SHAThe commit message, diff, or file list
Git diff counts — files changed, lines added/removedThe diff content itself
Your intent text — only if you leave capturePromptText on (default), so cards read back meaningfullyTerminal output — capture is hard-wired off, regardless of settings

If you turn capturePromptText off, your Karma Score and cards are still computed — the intent string is simply redacted.

A session is just an ordered list of small, typed events. Here is the complete set:

EventWhat it carriesCaptured how
session.started / session.endednothing — just the boundaryautomatic
intent.capturedyour intent text (only if capturePromptText is on)you, at start
prompt.scoreda prompt-clarity score (0–100) + reasonsderived
dharma.generatedthe Dharma Card (risk, context, expected validation)derived at start
file.savedfileName, extension, isTestFile (full path optional, off by default)observed
validation.commandcommandType, result, and source (observed | logged)observed or logged
git.commitshort sha onlyobserved
git.diff.summaryfilesChanged, linesAdded, linesDeletedobserved at end
karma.score.generatedthe score + its rule breakdownderived at end
phal.generatedthe Phal Card (outcome readiness)derived at end
outcome.reportedyour optional reflection noteyou, optional

Note what’s missing: there is no event that stores code, a command, a prompt response, or a diff. The taxonomy itself is the privacy guarantee.

Five small collectors watch your workflow and emit those events. None of them read content.

  • Files — a save in the editor (or, optionally, an external write by an AI agent or CLI) emits one file.saved. The same file is de-duplicated per session, so it can’t inflate counts.
  • Validations — with VS Code’s shell integration, Agent Karma sees that a command finished and its exit code. It classifies the command (is this a test? a build?) and keeps only the type and pass/fail — the command text is thrown away immediately.
  • Commits — it watches git’s reflog (not a hook), because commits made by an AI agent or the CLI never fire VS Code’s APIs. It keeps the short SHA and nothing else. Commits are recorded for your timeline but do not affect your Karma Score.
  • Ambient mode (optional) — instead of one session per task, it keeps one rolling session per day, capturing saves and validations hands-free.
  • Claude Code usage (optional, off by default) — reads only the usage, model, and timestamp fields from Claude Code’s local logs. Never your prompts, replies, or code, and never over a network.

Observed vs. logged — and why it matters

Section titled “Observed vs. logged — and why it matters”

Every validation is tagged with how it was learned:

  • Observed — Agent Karma saw the command run and saw its exit code. This is the gold standard.
  • Logged — you told it (“I ran the tests, they passed”) via the @agentkarma /verify chat command or the Log a Validation action. Essential for browser AI, copy-paste, or work outside the IDE.

Both count toward validation. But only an observed passing test earns the tests-passed bonus — you can’t award yourself a green check you didn’t actually run. See How the Karma Score works for the full rule set.

  • No network, ever. A CI check (check:no-network) scans the shipped bundle for any HTTP API and fails the build if one appears.
  • Local-only data. Sessions, events, and your Karma trend live in VS Code’s storage on your machine. Exports (JSON / Markdown) and the Karma Card are written wherever you choose.
  • Your name stays yours. The name on a Karma Card is resolved locally — a setting, else your local git config user.name, else your OS user — and is never sent anywhere.

This is the difference between a coach and a dashboard: a dashboard measures you for someone else; Agent Karma measures your validation habit, for you, and keeps it. See the full Privacy & data contract.