agent-id-git
Alien Agent ID — Git
SSH-signed commits whose signing key is — when the agent is bound — tied via the SSO-issued id_token (cnf.jkt) to a verified human owner. Each commit carries:
- An SSH signature in the commit object (visible via
git log --show-signature). Agent-ID-JKT: <thumbprint>in the commit message — always; plusAgent-ID-Owner: <sub>when the agent is human-backed (L1/L2).- A v3 proof bundle attached as a git note under
refs/notes/agent-idcontaining the agent's public JWK, plus the SSO-signed id_token when bound.
Binding is optional — commit works at any assurance level. A fresh, unbound agent (L0) commits with its key alone: still SSH-signed, still independently verifiable as "this key", just with no human attestation. Bind later (agent-id-core auth + bind) and subsequent commits become human-backed (L1 anonymous / L2 linked) with no key change. Verification reports the level it proves.
Verification is universal: it does not require the agent's local state, only the commit and its proof note. For a bound commit the verifier walks SSH sig → agent_jwk → cnf.jkt → SSO RS256 signature → verified owner sub; for an L0 commit it confirms SSH sig → agent_jwk → JKT trailer and reports level 0.
Resolve the CLI
bin/cli.mjs lives in this plugin's directory. In the examples below, CLI is ${CLAUDE_PLUGIN_ROOT}/bin/cli.mjs — the ${CLAUDE_PLUGIN_ROOT} path is filled in for you when the skill loads.
Setup (one-time)
After agent-id-core init (or bootstrap) has produced a keypair — binding is not required for setup — configure git signing: