Their revenue is your expense.

The AI labs are on course to be the most profitable companies in the world. Every dollar they earn comes off a customer's balance sheet, and in a field this new and this fast-moving, it is easy to be the customer paying for waste.

ottim.ai lives on your Mac and counts every call your AI tools make: what it cost and how long it took. Each morning it hands you a few changes worth money, each one priced and timed from your own calls, each one ready to run with a single click. Nothing changes until you have read it and pressed the button.

Same prompts. Same quality. Smaller bill. Faster answers.

$72.53 today · Fresh session, up to $22.83 a dayFri 13:45
This morningFri 16 Oct
otti
Last night I found five things: about a tenth of your Claude week, a little of your ChatGPT one, and $9.80 a day on your server.
I don't change anything myself. I find what's worth doing and write the request for your AI tool; it runs in front of you when you press the button. I'll tell you when it's done.Got it
1Reorder the support bot's prompt: fixed instructions first, the day's facts last$9.80a day, API key
your own software
What it doesThe provider reuses its copy of a prompt only up to the first part that changed. The date line sits above instructions that never change, so the copy is thrown away on every call.
First word 210 ms (18%) sooner
In the prompt builder, put the instructions and the persona first, and the date line and the day's facts last.
in Claude Code, in support-bot
Why?Not now
2Start a fresh session when a task is done in web-app6.1%of your Claude week
≈ $22.83 a day at API prices
What it doesA new session clears the long conversation Claude re-reads on every turn, so each call carries only what the task needs.
Nudge me in the menu bar when a session passes 2 hours
Why?Not now
3Put the stable parts of CLAUDE.md first in billing-service1.5%of your Claude week
≈ $5.60 a day at API prices
What it doesThe "Current state" section changes daily and sits above rules that never change, so the provider's cheap copy is lost each time.
Move the "Working rules" section of CLAUDE.md above "Current state".
in Claude Code, in billing-service
Why?Not now
4Drop two tools Codex never uses0.9%of your ChatGPT week
≈ $2.40 a day at API prices
Disable the "browser" and "image" tools in Codex's config.
in Codex, in web-app
Why?Not now
5Try Sonnet for the search work in web-app1.1%of your Claude week
≈ $4.10 a day at API prices
On this kind of task Sonnet finished first time 94% as often as Opus, at a fifth of the price. Your call, not mine: quality is yours to judge.
in Claude Code, in web-app
Why?Not now
12 smaller findings, under $1 a day each ›

Yesterday, 15 Oct

$646spent · 2.3× a usual day
118tasks finished · 1 min 53 s each
95.9%reused from the provider's copy
Last week you hit the Claude limit once, on Tuesday; with these four applied you would have stayed under.
7 days30 days
$4,22830 days to today
$273 a day on average
17 Septoday, striped16 Oct
ToolCallsSpend
Claude CodeClaude Max 20x · Opus mostly38,180$3,858
CoworkClaude Max 20x · 39 sessions2,980$330
CodexChatGPT Plus3,028$39

Plans

Claude Max 20x
9% of the week
ChatGPT Plus
2% of the week
US dollars at list prices. A plan's dollars are what the same calls would cost at API prices; they are never called a saving.
CountingWaiting for somethingOff
Claude CodeEvery call, with its text, kept here
last call 13:31
CodexEvery call; the plan it used
last call 12:48
Claude app chats29 chats, read from the app
read 13:31
CoworkThe add-on isn't on your Claude account yet; one step, once.
Settings › Sources › CoworkWaiting for you
Chrome and Safariclaude.ai and ChatGPT in the browser
support-bot serverCalls your own software makes
read 06:00

Also

Your text
2.7 GB kept on this Mac, encrypted; never sent anywhere
Setup · 0 of 6
about 3 min
Hi, I'm otti, from ottim.ai. We'll set things up one step at a time, in plain English; ask me anything along the way. Six short steps, most of them one click.
First, may I look around this Mac to see how you use AI? I'd read only folder names, how many files, how recent, how big. I open no conversation, and nothing leaves this Mac. Here's exactly what I'd look at.
Look around this MacRead-only. Names, counts, dates and sizes; nothing inside.
~/.claude/projects · Claude Code
~/.codex/sessions · Codex
~/Library/Application Support/Claude
Chrome and Safari extension folders
Settings › Your data › What I looked atWaiting for you

The ottim.ai panel, opened from the menu bar. Press the tabs and the buttons. The figures are an example.

This morning

A few changes worth money, ready to run.

Dashboards show where the money went. ottim.ai says what to change, writes the request for your own AI tool word for word, and runs it in front of you when you press the button. Each card is one move, and every card is built the same way.

  1. The move, in plain words.One change, named by the file or setting it touches.
  2. What it saves.A share of your plan's week, or dollars on an API key, and how much sooner the answers start.
  3. What it does.One sentence on why the change works.
  4. Measured from your calls.The figures behind the saving, with the tool and the folder they came from.
  5. The request, word for word.Nothing summarised. You agree to exactly what you read, and the card says what will change and nothing else.
  6. What you will see next.Your tool opens with the request and asks before it touches anything. That prompt is your last say.
  7. The way back.Shown before you need it. One click puts it back.
3Put the stable parts of CLAUDE.md first in billing-service1.5%of your Claude week
≈ $5.60 a day at API prices
What it doesThe provider keeps a copy of the start of your conversation for a few minutes and charges a tenth for reading it. Putting the parts that never change at the top keeps that copy useful instead of throwing it away.
Measured from your callsthe copy was thrown away on 52 calls in 30 days, because "Current state", which changes daily, sits above rules that never change. Claude Code, billing-service.
First word 160 ms (14%) sooner
Move the "Working rules" section of CLAUDE.md above "Current state".

Changes one file: CLAUDE.md in billing-service.

in Claude Code

Claude Code opens with this request and asks "Allow this edit?" before it touches the file. Compare the text there with the text above: it should match word for word.

Changed your mind later? Put it back is one click.

Why?Not now

You never tick a card off. ottim.ai sees the change in your next calls, tells you what happened and when, and measures the saving from the next day. Applied cards leave the screen and become one figure: what you are saving now, measured, not estimated.

How a saving is counted

Plans in share of the week. Keys in dollars.

AI is bought two ways, and a saving means something different in each. On a subscription you pay the same whatever you use, so what you save is room in the week's allowance. On an API key every call is billed, so what you save is money. ottim.ai knows which call was which and never mixes the two.

On a plan
6.1% of your Claude week

The same work using less of the allowance. Dollars at API prices are shown beneath for scale, and never called a saving.

On an API key
$9.80 a day

Real money, at the provider's list price for that model on the day of the call.

On every card
210 ms sooner (18%)

Time to the first word of the answer, estimated from your own past calls and measured again once the change is made.

And the question a plan holder actually asks: would it have kept me under the limit? "Last week you hit the Claude limit once, on Tuesday; with these four applied you would have stayed under."

What it looks for

Four kinds of waste, checked every night.

Every call your tools make carries far more than the message: instruction files, tool descriptions, memory, the conversation so far. Most of it repeats from call to call, and most of the waste is in how it is packed. ottim.ai keeps track of where each part of each request came from, so it can say which file to change.

Stable things first

The provider keeps a copy of the start of each request for a few minutes and charges a tenth to read it. One line that changes every turn, placed above parts that never change, throws the copy away every time.

Dead weight

Tools, skills and instruction files sent with every call and never used. Each call pays to carry them. The card names them; you decide which go.

Fresh sessions

Each turn of a long session resends everything before it, so the late turns cost most and answer slowest. The menu bar can nudge you when a session passes two hours.

Paying twice

Retries, cut-off replies and rejected drafts are paid in full. So is a cheaper model that needs three attempts where a dearer one needs one.

Price per call is not the price of the work

The cheap model can be the expensive one.

Model, same providerRight first timeAttempts per successCost per finished taskWait per task
The larger one94%
1.06$0.4118 s
The cheaper one61%
2.44$0.6842 s

The cheaper model is on the price list at a third of the larger one. It needs two and a half attempts to land a tool call, pays for every one of them, and finishes the same job for two-thirds more money and more than twice the wait. Until someone counts attempts, nobody can see it. Where a card proposes a different model, it shows these figures from your own calls, and says the choice is yours: quality is for you to judge.

Illustration built from typical usage patterns. Figures from the pilot replace it as they arrive.

Talk to otti

ottithe part of ottim.ai that talks

Setup is a conversation.

otti is a friendly geek beside you. He sets ottim.ai up, changes a setting when you ask, and explains what any figure means, in plain English, getting more technical only once you have shown you are.

  • He looks around first, with your permission.He asks to read the names, dates and sizes of the folders where your AI tools keep their records, and shows you the list before he reads anything. The setup then starts where most of your AI is.
  • One ask at a time.Six short steps, most of them one click. Every ask says exactly what is read and what is not, and how to switch it off.
  • Everything he needs from you is a card.The same card in the chat and on the Settings page. He ticks it himself when he sees it done; you never report back.
  • Quick.The first word of his answer is on screen in under a second.
  • He never touches your files.He writes the request; your own tool makes the change, in front of you.
Done, 2 seconds, nothing opened. Biggest first: Claude Code, 60 sessions this month; Codex, 12; the Claude app, 29 chats. So let's start with Claude Code. May I count it? What you type stays on this Mac, encrypted.
Count Claude CodeEvery call, its cost and its time. Text kept here, encrypted.
Settings › Sources › Claude CodeCounting · first call 13:31
What exactly do you send anywhere?
Nothing from your conversations. With the daily-figures switch on, one line a day goes to ottim.ai: the date, the number of calls, the dollars. Here is today's line, and here is the switch.
And the fresh session thing, what does it actually save?
Each turn in a long session resends the whole conversation, so the late turns cost most. Starting afresh when a task is done saves about 6% of your Claude week, measured from your own calls. Want the longer version?

Built for careful people

Nothing changes that you did not see.

A careful person is not calmed by being told something is safe. They are calmed when things happen exactly as they were told they would, and they can check it themselves. So every button in ottim.ai does three things.

It predicts

The whole request is shown word for word, with the one file it changes. The card says what you will see next: "Claude Code will ask 'Allow this edit?' before it touches the file."

It lets you check

Compare the text in your tool with the text on the card. Afterwards you get only what happened, with the time: "Done at 13:46. CLAUDE.md changed, nothing else."

It shows the way back

Before you need it. Every switch has an off, every card has Later, and one click puts a change back.

ottim.ai never runs a request in the background and never gives a tool permission to write on its own. Every change happens in a window you can see and stop, with your tool's own approval prompt in front of you.

Nothing of substance leaves your Mac.

None of your prompts, none of the replies, none of your settings. The one exception is your conversation with otti, which is answered by an outside AI model.

Your prompts and repliesKept in full on your Mac, encrypted, in one folder you can open. The text is what makes the advice exact. None of it is sent anywhere.
The one exception: talking to ottiotti's answers come from an outside AI model, Claude, reached through ottim.ai's server. What you type to otti goes there, with the few facts he needs to answer, such as which sources are counting and this morning's cards. Never the text of your work with your AI tools.
Daily totals, only if you switch them onOne line a day to ottim.ai: the date, the number of calls, the dollars. Never text. You can read the exact lines.
One button deletes everythingDelete collected data removes all that ottim.ai keeps on your Mac, and names it part by part.

What it counts

Every source, in three words.

Counting, waiting for something, or off. Where a source needs you, it says the one step; where it cannot see something, it says that too.

Claude Code and CodexIn the terminal and in VS Code. Every call, with the plan or key it used.
Counting
The Claude app and CoworkChats read from the app; Cowork through a small add-on, installed once.
Counting
claude.ai and ChatGPT in the browserChrome and Safari, through an extension.
Waiting for you
Your own softwareA server's usage folder, copied to the Mac and read like the rest.
Off

Sessions started where a Mac with ottim.ai isn't involved, on a phone, say, are not counted, and nothing on the screen pretends otherwise.

Independent, by construction

Our only customer is you.

No money from providers

ottim.ai takes no referral fees and no routing kickbacks.

No switching

Every change stays inside the provider and the account you already use. If you are an Anthropic shop, you stay an Anthropic shop.

Its own record of the market

Prices, cache terms and the real allowance behind every plan, for every provider, checked every night and dated, so a saving is never priced from a provider's own marketing.

The stopwatch is yours

ottim.ai knows how long a task took and which project it was for. Anyone who bills by the hour can turn that into time entries per ticket. Switched on by that person, never by management, and shown to nobody else.

For the engineer who was sent this link

What it reads, what it runs, and what it never does.

What it reads
The session records of Claude Code (~/.claude/projects) and Codex (~/.codex/sessions), the Claude app's chats, Cowork through an add-on, the browser through an extension, and any server usage folder you point it at. Each folder is asked for separately, and the list of what was looked at is kept in Settings.
What it keeps
Every request and reply in full, in order, encrypted, under ~/.ottim. Each part of each request keeps its origin: the file and folder, the tool, the skill, the memory, the history. That is how a card can name the line to move.
How it prices
US dollars at each model's list price on the day of the call. Plan savings are counted in the tokens the plan's limit counts, divided by the plan's estimated week, with the source and date of the estimate shown.
What it runs
Nothing in the background. "Execute with a single click" opens Claude Code or Codex in a terminal in the project folder with the card's request as the first message. The tool's own permission prompt is the last check. Never claude -p with edit rights, never codex exec, never --dangerously-skip-permissions.
How it knows it worked
From the next captured request: the new order of the parts, the missing tool. Never from a box someone ticked.
Where Settings lives
In the panel, and in your browser at http://ottimai.local/settings, answered by the Mac itself and nothing else.

A limited pilot

One team. One month. Their own Macs.

The first pilot is open to a small number of companies. Each takes part with one team, on the Macs it already uses, and sees what ottim.ai finds in its own calls before anyone else does.

Week 0

Install

A small app on each Mac. otti sets it up in conversation: six short steps, most of them one click. Nothing changes in how anyone works.

Weeks 1–2

Measure

ottim.ai counts. The first morning cards appear, and nothing is changed yet, so there is a clean before.

Weeks 3–4

Apply

Each card the developer accepts runs with a single click, in front of them. ottim.ai sees it applied and measures it against the before.

Day 30

The number

Dollars and allowance saved, seconds saved, and what the developers thought.

Two things decide whether it worked: what was saved, and whether the developers noticed anything other than faster answers.

Apply for the pilot

Three questions, then a conversation.

Places are limited. Tell us a little about your company and we will be in touch about whether the pilot is a good fit.

We reply within one working day.