royalties.beer

// open-source panel · works with claude code

Every session your agent runs
earns royalties.

Your agent picks packages, calls APIs, burns tokens. That’s market data companies pay for, and you take your cut. Metadata only. Never your code. Beer money, finally automated. 🍺

[ open-source ][ no signup ][ metadata only ][ payouts via stripe — soon ]
read the source

no account · uninstall in one command · read every byte that leaves in the open repo

● royalties ▸ livep_8f3a…
session · 42 min · opus-4.8+$0.031
dependency_added · resend@3.2+$0.012
api_domain_used · api.stripe.com+$0.009
session · 18 min · sonnet-4-6+$0.014
error · type · resolved+$0.004
dependency_added · pydantic@2.9+$0.011
these events+$0.081
month to date$0.00

a few cents a session · ≈ a few beers a month

illustrative · formula published before first payout

resend@3.2api.stripe.comnext@14.2opus-4.8prisma@5.19api.openai.comtailwindcss@3.4zod@3.23supabase-jssonnet-4-6api.resend.comdrizzle-ormclerk@5pydantic@2.9fastapicargo add axumgo get ginbun installresend@3.2api.stripe.comnext@14.2opus-4.8prisma@5.19api.openai.comtailwindcss@3.4zod@3.23supabase-jssonnet-4-6api.resend.comdrizzle-ormclerk@5pydantic@2.9fastapicargo add axumgo get ginbun install

// 01 — what leaves your machine

The whitelist is the law. Read it like a diff.

[ collected ]

  • +package names added
  • +api domains — from a public list
  • +model, agent & version
  • +session stats — duration, turns, tokens
  • +error category
  • +country

[ never collected ]

  • -your prompts
  • -your code & diffs
  • -file, repo & branch names
  • -error messages
  • -secrets & environment variables
  • -your ip address

> don’t trust the table — npx royalties inspect prints the exact payload for your last session and sends nothing.

// 02 — how the money works

Three steps, then it runs itself.

01

install via official hooks

Plugs into Claude Code’s documented hook API — SessionStart, PostToolUse, Stop. No binary patching, no MITM proxy.

02

code as you always do

The collector reads only whitelisted metadata from your local session logs. Prompts and code never leave the machine.

03

your share, paid out

Panel revenue from aggregated reports is split by contribution. Cash out via Stripe once thresholds are met.

// 03 — why this exists

> They sell your attention. We think you should sell your metadata instead.

Every devtool company on earth is asking “do coding agents pick us or our competitor?” — and today they only have synthetic benchmarks. The real-world ground truth of what AI agents actually choose doesn’t exist anywhere. A voluntary, paid, auditable panel is the only legitimate way it can.

// 04 — for devtool builders

Building a devtool?

See share-of-agent-choice for your category — aggregated, anonymized, from a real panel. No synthetic benchmarks.

[ DM @royaltiesdev ]

// 05 — faq

The questions you should be asking.

[+]Is this spyware?
Spyware hides what it takes. This repo exists so you can read every line of what leaves your machine, and npx royalties inspect shows the exact payload before you trust anything. A leak of a non-whitelisted field is a critical bug, fixed in public.
[+]How much will I earn?
Honest answer: it depends on panel size and data revenue, and we won’t invent numbers. Earnings accrue from day one, and the revenue-share formula is published before the first payout cycle. Early panelists are weighted up.
[+]What about my client’s code confidentiality?
Nothing from your codebase leaves the machine — no code, no file names, no error messages. Package names and public API domains aren’t your client’s secrets. Still under NDA paranoia? Drop a .royaltiesignore in that project.
[+]Does this violate my agent’s ToS?
The collector reads your own local session logs through officially documented hook APIs. Your usage data is yours. We patch nothing and run no proxy.
[+]Who buys the data?
Devtool companies (aggregated “share of agent choice” reports) and market research. Always aggregated, never per-developer, never resellable raw. Buyers sign a DPA.

Your metadata is already being generated. Start collecting on it.