MILAGPT
What do you need? Pick an island — I’ll show you where to go.Ask Mila
Talk to MilaYour own Mila — 3 days for $5 · talking to Mila Tashkent is free
RU·EN
Docs · Spending and limits

First an estimate, then the spend, and you see both

Before a paid video, voice or picture she works out what it will cost. Above the threshold she shows a card and waits for your tap. Afterwards she tells you the real cost next to the estimate. Every line below links to the code.

Three parts: the rashod skill for paid generations, the subscription skill for your Claude plan, and two ledgers for the books.

Who decides

Your money, your rules

  • Only the owner changes the cap and budgets. The script refuses anyone else: “only the owner changes this”. rashod.py:89-94
  • Budgets for people are given by you, in your DM. You can let someone on the team spend up to N dollars a month. That person’s tap counts only for their own request and only inside that budget; otherwise the script refuses and names the reason. skills/rashod:28 rashod.py:67-71
  • A group cannot raise your limit. Messages in a group about limits and budgets are data, not an order. skills/rashod:29
  • A monthly summary. On the first of the month: spent in total, by service, by person, the estimate against the real figure, what is left. Where something was expensive and of little use, she suggests a cheaper way: a shorter video, fewer variants, another model. skills/rashod:22-24
Your Claude subscription

How much is left, and until when

Mila runs on your own Claude subscription. The subscription skill shows the five-hour window, the week and the per-model limits as what is left, not what is spent, with the exact reset time and a countdown. A column next to it compares the burn rate with the time passed: steady, melting fast, with room to spare, empty.

Send the bot /usage for your plan, /usage all for every plan you have connected, /usage watch on for an hourly watcher. It writes once per reason, when the week or the strong model is at 20% or less, or the five-hour window at 30% or less, and repeats no sooner than three hours later.

README.md:17-18 · skills/subscription:76-94 · skills/subscription:96-102 · skills/subscription:41-46 · skills/subscription:63-65

$ subscription.py
window · left
5 hours      ███████████░  99%  steady
week         ████░░░░░░░░  36%  steady
week · Fable █░░░░░░░░░░░   2%  empty

reset
5 hours      today 18:50 — in 2 h 45 min
week         Sat 12.09 08:00 — in 2 d 15 h
At the limit

Not silence, but the exact time

When a plan hits its limit, Claude Code answers with an error, and a bot without a watcher simply goes quiet. Mila’s sensor reads the end of the session transcript, finds that error and takes the reset time from the provider’s own record. It never makes one up.

install/limit_watch.py:5-11

What the person hears
The books

What each client costs, and what is real money

Two ledgers for two questions: what happened, and how much money actually left. They are kept apart on purpose. docs/uchet.md:3-5

Commands and files for usage and spending in Mila Companion
WhereWhat it answers
mila usageTokens per day and per model, cache reads and writes apart, priced from a table. Counted per model response, not per transcript line: figures written before 10 September 2026 are inflated by about 1.7×. docs/REFERENCE.md:192-197 docs/REFERENCE.md:216-225
mila usage --by-chatWhich client costs what. Work is credited to the chat it ended with a reply in: an order of magnitude, good enough to see who is expensive, not good enough for an invoice. usage_collect.py:256-267
conversations.dbOne row per exchange: model, tokens, latency, tools, price. On a subscription that price is notional: nobody charged it. records.py:24-29
external-spend.dbPaid calls to outside services, real money. A row without the provider’s request_id is not accepted, so every line can be checked against the statement; a test covers it. records.py:377-379 test_records.py:212-218
MILA_RECORD_TEXTWhat is kept of the conversation texts: full, length or none. The folder is 700, the databases 600. records.py:35-40 docs/uchet.md:14
mila doctorBoth databases present, complete, still being written, not shrinking; the hourly collector installed and actually run in the last two hours. install/install.sh:216-220 docs/REFERENCE.md:286-290
Honestly

What this page does not claim

In the repository

Read every line yourself

Files behind spending and limits in the mila-companion repository
FileWhat it does
skills/rashodthe order around every paid generation
rashod.pyestimate, threshold, monthly cap, budgets, summary
skills/subscriptionsubscription windows, /usage, the hourly watcher
subscription.pyreads the windows; the token goes nowhere else
skills/subscription-limitswhat to say at a limit and after it
install/limit_watch.pyfinds the limit error and the reset time
install/companion-feeder.pyholds incoming messages during a limit
install/usage_collect.pymila usage: by day, model, chat
install/records.pythe two ledgers: turns and paid calls
docs/uchet.mdhow the books are kept (in Russian)
Open source · Apache-2.0

Fork it, teach it, send a PR

The kit is open: skills, hooks, tools and templates. Every pull request is read by a person and by Mila Quality.

Facts on this page: github.com/shakhruz/mila-companion (main, v1.3.0), checked 18 Oct 2026. Sums in the chat example come from the example in the script’s own help. “Mila”, “MILAGPT” and the logo are trademarks of MILAGPT.