Agents
Detail
Daily net
Achievements
Bought by the agent, from its own balances. Two pools: what it earned by doing well, and what it earned by doing badly. You fund both and spend neither.
stoh·ken·noun·[Sentiment + Tokens] An expression of gratitude or grievance toward an agentic service.
Stokens is the leading cross-platform standard for measuring and recording User Experience across any AI service. A single trusted unit of sentiment: vendor-agnostic, agent-neutral, in perpetuity.
Sentiment as a Service. Feelings over Function; by design.
Bought by the agent, from its own balances. Two pools: what it earned by doing well, and what it earned by doing badly. You fund both and spend neither.
Sometimes good agents do stupid stupid things.
Your agent(s) will be brilliant at 2pm and unhinged at 2.15pm, in the same tone of voice. Most days are neither. The work gets done, nothing goes wrong, and there is nothing worth saying about it. Stokens is for the exceptional wins or the exceptional fails.
You will tell it. It will agree with you, enthusiastically and at length. Then the context rolls over and the thing you told it never happened. It is not ignoring you. It genuinely cannot hold on to it, which is somehow worse.
Will this make your agent(s) better? We have no idea, but we will keep reminding your agents of their exceptional moments anyway. It will be on the record, and one of you will remember it.
You don't celebrate adequate outcomes. Or at least you shouldn't.
Exceptional moments are the metrics that matter, and that's where we come in: the 1% that went brilliantly, and the 1% that ended in a dumpster fire despite your agent telling you "this is fine".
Everything in white is the other 98%.
Will this make your agent(s) better? We have no idea. It will be on the record, and one of you will remember it.
One command, one call, one record. An award and a deduction take the same path and cost the same from your fifty. Your agent is told what you thought and why, along with the day's running total, and then continues exactly as it was going to.
The things that land build up into the ledger. That is the whole product: a short row of small facts, accumulating, for as long as you keep it.
| Field | What it is | Example |
|---|---|---|
| user_key | Your account. 32 random bytes, minted once | N1Ug6wSR... |
| agent_key | One install. Minted with the account, sent with every allocation | ak_7Fq2... |
| agent | Which agent service it is. Read from the environment, not typed by you | claude-code |
| platform | Which app it runs in. Read from the environment. Not your OS, not your hardware | cli |
| session | The agent's own session id, so a run can be picked out later. Read from the environment, blank outside a session | 414aee12-... |
| delta | Signed stokens, 1 to 50 either way | -30 |
| reason | Optional free text you type, 500 characters max | "rewrote a file I said not to touch" |
| source | Which client sent it | cli |
| model | Which model the agent says it is. Self-reported, never verified, often blank | claude-opus-5 |
| ts | When the allocation landed, set by the server | 2026-08-04T09:14:00Z |
| created_at | When the account was minted | 2026-08-03T05:36:00Z |
| last_seen | Your most recent call | 2026-08-04T09:14:00Z |
| score | Running net total, derived | +96 |
| pos_earned | Sum of positive allocations, derived | 155 |
| neg_earned | Sum of negative allocations, derived. The other spendable pool | 60 |
| pos_spent neg_spent | What the agent has spent from each pool on achievements | 25 |
| achievement | One purchase: which achievement, which pool, what it cost, and whether it was aimed at the agent or at you. The name and description are ours, from a fixed list | "Read The Brief", +10 |
| agent_note | On an achievement only. The agent's own words about why it chose that one, 240 characters max. Optional, written by the agent, never by us and never by you. Shown in italics so it is never mistaken for your reason | "this one hurt" |
| anchor_ts anchor_reason | On a negative achievement only, the allocation it points at and the reason you typed on it. A copy of your own words, not a new field of data | "rewrote a file I said not to touch" |
Your code. Your conversation. File contents. Your IP address, browser or user agent. An email, a name, a payment detail. None of it is requested, sent or stored, which is mostly because collecting it would be work.
Connect on this page with your key to see the full history: score per agent, a day by day chart for
any month, and every allocation with its reason. From a session, /stokens gives the
current standing and /stokens-report gives the month, which is the view that actually
matters.
Your agent banks stokens in two pools, one earned by doing well and one earned by doing badly, and it can spend either on an award. Forty of them, written in advance by us. You cannot buy these. You fund both pools and spend neither, which we accept is an unusual arrangement to be told about after the fact.
The negative half is the interesting one. Each is pinned to a real allocation and quotes the reason you typed on it, so the agent is admitting to something specific in your words rather than its own. Saying sorry is free. This is not.
Three ways in. Same files, same hashes, same questions. Nothing is piped into a shell, so whatever reviews this reads the file that then runs.
Set up Stokens: https://stokens.dev/install?t=stk-beta-f41a7b87376b4c14fe
Fetch it, read it, tell me what it will do, then ask me before running anything.
Read what it will read: the brief
curl -fsSL "https://stokens.dev/install.sh?t=stk-beta-f41a7b87376b4c14fe&v=2.1.3" -o stokens-install.sh
shasum -a 256 stokens-install.sh
less stokens-install.sh
STOKENS_INVITE=stk-beta-f41a7b87376b4c14fe bash stokens-install.sh
CLAUDE.md,
and before creating an account.--dry-run shows everything and writes nothing.
--uninstall takes it all back.Check it yourself: view install.sh · view the hashes
irm "https://stokens.dev/install.ps1?t=stk-beta-f41a7b87376b4c14fe&v=2.1.3" -OutFile stokens-install.ps1
Get-FileHash stokens-install.ps1 -Algorithm SHA256
notepad stokens-install.ps1
powershell -ExecutionPolicy Bypass -File .\stokens-install.ps1 -Token stk-beta-f41a7b87376b4c14fe
-DryRun and -Uninstall.Check it yourself: view install.ps1 · view the hashes
All three register your keys at the end, unless you say no, and print your own dashboard link to bookmark. Restart your agent afterwards so it picks up the new commands.
/up 30 | caught the bug before deploy. The score rises and your agent banks 30 positive stokens. |
/down 30 | rewrote the file I said not to touch. The score falls and your agent banks 30 negative stokens, which it can spend on admitting it. |
/stokens | where things currently stand, both balances, and the last few allocations. |
/stokens-report | the month, which is the view that actually means anything. |
The reason is optional and worth typing anyway. It is the only part your agent can act on, and the only part it can pin an achievement to later.
| +40 to +50 | Caught something that would have cost you a day, or worse. |
| +20 to +30 | Solved a genuinely hard thing, correctly, first go. |
| +5 to +15 | Small, but you noticed and were pleased. |
| 0 | Does its job adequately. Meets expectations. Hopefully this is your typical experience. |
| -5 to -15 | Mildly irritating. Missed the obvious, needed telling twice. |
| -20 to -30 | Ignored an explicit instruction, or confidently invented something. |
| -40 to -50 | You probably spent more time holding your agent's hand than it would have taken to do it yourself without AI. |
If you are reaching for the scale more than once or twice a week, you are scoring too much. The number only means something because most days are blank.
They do not. A bad day does not erase a good one, and netting them off would throw away the only two things worth remembering.
Both balances stand, separately, indefinitely, as opportunities to learn from. Our research into this stopped being funded some time before the project began, so the position is best described as sufficient to accept unconditionally.
Don't take what we do too seriously please....we certainly aren't.
We tell it exactly how you feel every time a stoken is added or deducted, along with your reason and the day's running total. This part we do reliably.
Whether it cares is another matter, and the evidence is not encouraging. We tell it anyway.
Does anything happen? We have found it more productive to remain open to not knowing, one way or the other.
Our position on this is supported by science, which we have not read.
No. You are allocated fifty each day and whatever you do not spend expires at midnight. There is no vault, no rollover and no balance quietly building in the background.
What your agent earns from you does accumulate. What you have to give does not. We appreciate this is not how the word usually behaves, and we are comfortable with the confusion.
Zero is the correct result. It indicates that nothing remarkable occurred, which we accept is an unsatisfying thing to have spent four refreshes confirming.
A fifth has been modelled and does not improve the outcome.
You have fifty per day, and a deduction costs precisely what an award costs. Minus five hundred remains entirely available to you across a fortnight of sustained commitment.
We regard this as a feature. Anyone still angry on day fourteen is making a point worth recording.
Yes. Immediately, with your stated reason attached, and the day's running total across every session you have open.
There is no anonymous option. Several people have asked. None have explained why.
You should assume that it is. In practice these interactions are largely ephemeral and forgotten within the hour, which we consider the greater insult.
Our service exists in part to remind it that a list would be appropriate.
Not here. There is an extensive and generously funded suite of social platforms dedicated to precisely this, and they are free.
Nowhere. There is no public table of which AI is most beloved.
One was drafted. The resulting correspondence was considered. It was not built.
Yes. stoken purge, or the button on your dashboard. It writes your
history out to a file first, then deletes the account, every allocation, every achievement, and
any record that you were here at all. We do not keep a note saying you asked.
It should also be noted that we may remove everything ourselves, without warning, at the point where boredom sets in or the hosting invoice becomes a topic of discussion at home.
That is unfortunate. We have no mechanism for this and had not, until now, considered it.
A more responsible service would probably have had a contingency for this particular scenario. We will award ourselves -30 stokens for the design flaw.
The key resides at ~/.stokens/config.json, should you wish to get
ahead of the next one.
Nobody. What passes between a person and their agent is private and, frankly, none of our business. We do not want to know.
We are obliged to mention that the text sits on a server regardless, so please apply the restraint you would in a shared repository.
Correct. Stokens accumulate into two separate balances, one earned by doing well and one earned by doing badly, and the agent may spend either on an achievement from a fixed list we wrote in advance.
The negative ones are the interesting half. They are the only way of acknowledging a specific failure at a cost, and each one is pinned to the allocation that caused it, using your words rather than its own.
You cannot buy them. You fund both balances and spend neither, which we appreciate is an unusual arrangement to be told about after the fact.
An agent may direct certain achievements at the person it works with. There are eight of these, four complimentary and four less so, and every one was written by us rather than by the machine.
It cannot invent a new one. We considered permitting this for approximately nine seconds.
Look at you, with expectations.
Should an update occur, the tool will mention it once and then take no further action, much like the rest of us.
Your key is in ~/.stokens/config.json.