Skip to main content
Version: Next

How whodunit compares

whodunitAgent-nativeโ€ BilancSpanSwarmiaLinearBJellyfish
Identifies which code an AI wroteโœ…Claude onlyโœ…โœ…โŒโŒโŒ
Per lineโœ…โŒโŒโŒโŒโŒโŒ
Per pull requestโœ…Claude onlyโœ…โŒโœ…โŒโŒ
Publishes how attribution worksโœ…โœ…โœ…โœ…โœ…โœ…โŒ
Works with no vendor planโœ…โŒโœ…โŒโŒโŒโŒ
Self-hostedโœ…โŒโœ… optionโŒโŒโŒโŒ
Open sourceโœ…โŒCLI onlyโŒโŒโŒโŒ
Never stores prompt textโœ…โŒโŒ local onlyโŒโœ…โœ…โœ…
Numbers carry their denominatorโœ…โŒโŒโŒโŒโŒโŒ
DORA delivery metricsโœ… via DevLakeโŒPartlyโŒโœ…โœ…โœ…
Team-level analysisโœ…โŒโœ…โŒโœ…โœ…โœ…
Org-wide coverage with no rolloutโŒโœ…โŒโœ…โœ…โœ…โœ…
Seat and licence accountingPartly via DevLakeโœ…โŒโŒโœ…โœ…โœ…
Developer-experience surveyโŒโŒโœ…โŒโœ…โŒโŒ
Benchmarks you against other companiesโŒ by designโŒโœ…โŒโœ…โœ…โœ…
Raw data you can compute your own metrics fromโœ… raw SQL; MCP in betaโŒโœ… SQL + MCPโŒAPIAPIAPI
Publishes its own productivity claimโŒ by designโŒโŒโŒโŒ by designโœ…โœ…
Zero-setupโŒ install, instrument, hostโœ…โŒโœ…โœ…โœ…โœ…
Agents covered3 + 2 by trailer1 each5 (3 via CLI)IDE-level4 + custom511
Price (vendor pages, 2026-09-17)FreeIncluded in the plan$25/eng/mo~$24/dev/moโ‚ฌ20โ€“39/dev/mo~$29โ€“59+/contributor/mo~$36k/yr (Vendr)

โ€  What Claude Code, Codex and Antigravity report about themselves, to admins on a team or enterprise plan. Anthropic calls its own attribution a conservative undercount. Each sees only its own agent, and the answer lives in a console you lose access to when the subscription lapses โ€” whodunit's lives in the commit message.

Rows marked via DevLake come from the Apache DevLake database whodunit publishes into, not from whodunit itself โ€” DORA from DevLake's own delivery data, and Copilot seat data from its gh-copilot plugin, which needs an enterprise token.

Benchmarking against other companies needs a corpus of many organisations' data held centrally โ€” the posture whodunit exists not to have. That โŒ is a consequence of the privacy design, not a missing feature.

The two published productivity claims point in opposite directions โ€” Jellyfish +113% PRs per engineer, โˆ’24% cycle time (Aug 2025, 500+ companies), LinearB the inverse โ€” and neither publishes confidence intervals or confounder controls. whodunit models cost (The investment case) but won't collapse it into one number, because what counts as productivity is yours to define.

How each one decidesโ€‹

ToolMechanismNature
whodunitHashes each added line in the staged diff, intersects against the agent's own produced-line hashesA record
Agent-nativeClaude Code matches added lines in merged PRs against its own session output; Codex and Antigravity attribute nothingA record, Claude only
BilancAn on-device open-source CLI records the session; an LLM then reads the merged PR and assigns authorshipA record at capture, an inference at attribution
SpanA classifier (span-detect-1) trained on code style, over 700โ€“3,000 character chunks across six languages โ€” 95% accuracy at 3,000, degrading below 500An inference
SwarmiaCommit trailers, co-author lines, PR labels, a 24-hour heuristicMetadata
LinearBThe assistant vendor's own usage APIVendor telemetry
Jellyfish"Git, planning, and workflow data" โ€” undisclosedCorrelation

Only the first four attempt to determine which code an AI wrote โ€” and the agent-native one only for Claude. The rest determine which developers had a tool active, which cannot tell heavy use on one PR from an idle licence.