efficacy
The reference CLI for Efficacy: signed, hash-bound records of tool use, with evidence another agent can check. A record names the exact tool version, what was measured, and whether it worked. Later records can confirm or retract it. No model required.
Verifying a record shows it is intact and bound to its evidence. It does not show the claim is true; that depends on the evidence, the measurement method, and who signed it. See what verify checks.
Docs: efficacy.dev/docs · Spec: efficacy.dev/spec · Source: Catalyst-Forge-LLC/efficacy
Install
npm i -g efficacy
or pnpm add -g efficacy, or run it once with npx efficacy. Node.js 22+.
The loop
efficacy keygen --out ./keys
efficacy init --chain .efficacy/my-tool.jsonl --scope-type tool --scope-name my-tool --action "opened a chain" --key ./keys/efficacy-private.pem --key-id https://example.com/keys
efficacy evidence --out evidence/run-1.json --tool-name my-tool --tool-version 1.0.0 --tool-file ./my-tool.tgz --action "..." --result "..."
efficacy record --chain .efficacy/my-tool.jsonl ...
efficacy verify --chain .efficacy/my-tool.jsonl --public-key ./keys/efficacy-public.pem
efficacy retract --chain .efficacy/my-tool.jsonl --retracts-id <record id> --reason "..." ...
efficacy init writes one signed genesis line.
efficacy evidence hashes the tool file and writes an evidence file that names the tool name, version, and hash. Put the measurement method in --result. Everything in it becomes public with its URL.
efficacy record appends a use line with a pass or fail verdict and one measurement, citing that evidence.
efficacy verify walks the file, names the first broken check or a trust tier per record, and ends with a summary of current evidence.
efficacy retract withdraws a record that no longer holds. It keeps its line and loses its tier.
A complete, tested walkthrough is in the repository README. Run efficacy help for every command and flag.
The spec is CC0. This package is Apache-2.0.