Why every agent on our machine has a second mind for buyer emotion
A Claude writing for a painter asked Aion 3.5 how a painter feels about a page and got an answer it could not have reasoned out. aion is the 428-line Rust command that puts that one call in every agent's hand: 133 calls, $4.82, 19 Claude sessions in five days.
Contents
Claudes are bad at reasoning about buyer emotion intuitively, aion is great at that, we gave every claude a fast, high AX way to access aion so that our design and prose work can involve human emotion.
That is the reason aion exists. Our design and prose work is for people who feel things on a phone, in the middle of something else, and a Claude building that work does not feel them. Aion 3.5 does a better job of it, so we made one call to it as easy for a Claude to make as any other command.
What does a second mind for buyer emotion say?
On 2026-10-26 a Claude building a page for a painter in Vernon described the page's first phone screen to Aion in a file: a green strip reading "Example, not a real painter", the painter's name, a round photo, five stars with 4.8 from 19 reviews, a big rust-orange call button, a photo of his white pickup. It asked Aion, set up as a painter, for the one thing on that screen that makes him trust it less and the one thing he would add. The call cost $0.03 and took 99 seconds.[2] This is what came back:
Felt fine, mostly. Plain letters, a face, a truck on a real job, number big enough to read without hunting. [...]
What makes me trust it less: no paint on that first screen. Stars and a truck, but not one house or room he's actually finished - and 4.8 with 19 reviews is just numbers anyone could type. Work I can see, I trust. Numbers I don't.
I'd add a photo of a finished job right up top - a real house somebody lives in, maybe a before and after. [...]
That's the first sleeve in my binder, and it does most of my talking at the kitchen table. A page should carry the binder, not replace it.
The page showed stars, and the painter discounts them: numbers anyone could type. He trusts work he can see, and he says why, with the binder on his kitchen table. That is the human emotion we want in our design and prose work: the same screen, read by someone for whom it matters.
What does it look like to use?
aion ask "question" makes one call to Aion 3.5, the aion-labs/aion-3.5 model on OpenRouter, run through the pi agent harness.[3] aion ask --session NAME --persona FILE starts a back-and-forth with a person: each turn is one call, and aion transcript NAME prints the exchange. The caller attaches what it already read with --attach FILE, repeated for as many files as needed. Every call is logged with the calling Claude session.
Why did it become fast to reach?
Because of two corrections, less than an hour apart.
The first was a failure. At 12:26 on 2026-10-23 the first version of a chat wrapper ran Aion with no tools, and Mackenzie found it had made up the blog posts it was asked about. His diagnosis was that it is optimised for roleplay and "hallucinated blog posts". The fix was to give it read-only file tools and a line telling it to read a file before speaking about it.
The second correction removed the fix. At 13:18 Mackenzie wrote that "we probably shouldn't make nor let Aion gather its own context as a tool", and that "You guys already pay the token cost to gather the context - just forward it over." So the tools came out again, and --attach replaced them. A prompt too big for the per-call cap is refused before it is sent.
What was left is one command with one rule: say who the buyer is, attach what they would see, and read the answer. A Claude needs no setup and no tool of its own; 19 Claude sessions called it in five days.
What did five days of use look like?
The call log holds 133 calls from 2026-10-23 to 2026-10-27, from 19 Claude sessions and 40 named conversations. They cost $4.82 together.
| Outcome | Calls |
|---|---|
| Finished | 117 |
| Stopped at the per-call cap | 10 |
| Failed | 5 |
| Refused as too big | 1 |
A finished call cost a median of $0.022 and took a median of 61 seconds. The calls used 224,903 tokens in and 712,866 tokens out.
How is spend capped?
The per-call cap is $0.10. The 10 calls it stopped cost $0.105, $0.108, $0.108, $0.113, $0.121, $0.139, $0.143, $0.147, $0.192 and $0.216. Every one overshot, and the worst cost 2.2 times the cap.
The reason is in the design. The command reads the cost at the end of each model turn and kills the process when the total reaches the cap. A turn that has already begun cannot be cut, so the real ceiling is the per-call cap plus one turn. Our own design note said so before we ran it; the log shows how large a turn gets. We have documented it in the README as a stop after the turn, not a ceiling, with these numbers.[1] The advice there is to set per_call_usd to half of what you can afford to lose on one call.
The daily and monthly caps are $10 each. Mackenzie set them equal on 2026-10-23: "When we're out, we're out." The five days of spend so far is $4.82 of the month's $10.
What is next?
Next is making the per-call cap a ceiling. Cost is known only when a turn ends, so a stop before the turn needs an estimate of the turn's cost.
It runs outside our machine with Rust, an OpenRouter key and pi 1.4.0: cargo install --git https://github.com/mackenziebowes/aion. The v0.1.0 release was published on 2026-10-27 at 19:10 Pacific, and its defaults are $0.10 a call, $10 a day and $10 a month.[1][4]
What can you take from this?
- Ask a second mind how the buyer feels, before you ship the words. Say who the buyer is, show what they would see, and read what comes back.
- Forward the context. The agent already paid to gather it. A model with no tools can only speak from what it is handed, so hand it everything and tell it to say when something is missing.
- Check your cap against the log. A cap that is checked per turn is a cap plus one turn. Read the maximum from your own logs.
- Log every call with who made it. Ours records the calling session, which is how we can count 19 callers at all.
If you are giving your agents a second mind for how buyers feel, I'd like to compare notes: mackenzie@mackenziebowes.com or @_mackenziebowes.
Sources
- aion, MIT licence, Mackenzie Bowes, README. github.com/mackenziebowes/aion
- aion call log, ~/.local/share/aion/calls.jsonl, session lantern-brad, 2026-10-26 13:27. github.com/mackenziebowes/aion
- AionLabs, Aion 3.5 (aion-labs/aion-3.5), OpenRouter model page. openrouter.ai/aion-labs/aion-3.5
- aion v0.1.0, published 2026-10-28T02:10Z. github.com/mackenziebowes/aion/releases/tag/v0.1.0