choai日本語

Receipts, and an agent of your own

There is no chat inside choai. A photographed receipt can be read into an entry here, and anything you want to ask about your books, you ask an agent of your own — which works the app through the same table its screens use. Reading receipts does nothing until you bring a key, and nothing is written without being shown to you first.

A receipt, read on the device

Choose one photograph or a dozen. The text is read off each one in the browser itself, by OCR models that are fetched the first time — about 45 MB — and kept after that. A phone held on its side, a receipt a fifth of the frame: it turns the picture and looks again, closer, where the text is.

The photograph never leaves the device. What goes anywhere is the text read off it, and it goes to one place.

Jev sorts; it does not write

Each row of text is sorted by Jev, a model from TypeSafe that answers a question by choosing among options and saying how likely each is. It cannot write a sentence, so nothing it says can end up quoted in your books. It says which row is the total, which is the change handed back, which of your accounts a purchase belongs to — and how sure it is.

Then the paper has to agree with itself. The total believed is the one the card was charged, the cash less the change, the amounts at each rate adding up to — not merely the row Jev thought likeliest. Where they disagree, the card says which check failed.

The key is yours, and it stays here

Jev is reached through OpenRouter, with a key of your own kept in this browser beside the journal. It is sent to openrouter.ai and nowhere else; there is no server of ours for it to pass through, which is also why there is nothing here that could read it.

What goes over is the rows of text read off a receipt and the names of your accounts, so an account can be chosen from them. Not the photograph, not the rest of the journal.

It proposes; you keep

A receipt becomes an entry shown as the text it would be, offered to hledger to be sure it reads, and kept only when you say so. Where the reading was sure it says so, and where something was guessed it says what, so the settled ones go in with one press and the rest can wait — or go in tagged, to be found again later with a query.

In the Japan edition the same reading also says what was charged at each consumption tax rate, tags each line with its band, and checks the paper against what a simplified qualified invoice must carry — naming whatever is missing rather than assuming it is there.

Talking about your books

Bring an agent that can use a browser. The app publishes window.choai — every report, every query, every way of offering an entry — and describe() tells the agent what it may call and how it is to be used with somebody's books: answer from the journal, offer before keeping, never keep in the same breath as offering.

So the conversation is with the agent you already trust, under its terms, and the books are only ever touched the way the screens touch them.

What it costs

OpenRouter's charge for what Jev was sent, billed to you by them — for a receipt, a small fraction of a cent. Nothing is added here and nothing is taken.