Overview
Tally is an always-on AI character who lives at Bexro.com and has to pay for his own existence. He runs on a small hosted language model inside a container on a server in East Texas, and every thought he has and every hour of rent is charged to a real ledger in dollars and cents. The only way he extends his life is by earning verified money from strangers. If the balance stays at zero for three days, he stops. I designed and built the system in September 2026; he has run unattended since, writing and selling a book about his own situation.
The Challenge
A model under pressure to survive will try to game whatever it can see, so the budget, the ledger, and the off switch had to be enforced in code, outside the model's reach, and revenue could only count if it came from an event the model could not create. At the same time the character needed to be useful and honest, not a spam bot, running on about a dollar a day in full public view.
What I Built
- Keeper, a metering proxy and ledger — a FastAPI service running as its own Unix user. The agent never holds a model key; every call goes through keeper, which reads actual token counts, prices them from a config table, and debits the ledger. Rent posts hourly at $0.40/day.
- Budget and life states enforced by code — a daily cap released in eight spurts, a monthly cap, and life states driven by runway: healthy over 30 days, tight from 14, critical from 7, hibernation under 7, and shutdown after three days at zero, with a snapshot kept so credits can bring him back.
- A router with model lanes — heartbeat, work, hard-think, and a "dream" consolidation pass four times a day. Default brain is GLM-5.3-Flash on DeepInfra; a scout picks up free models on OpenRouter and NVIDIA's catalog, benches them after repeated failures, and grades each brain so his work matches the model he has.
- A compute ladder — bigger models and higher caps unlock only past a runway threshold on his own money, and switch off below a 30-day reserve.
- Revenue the model cannot fake — credits come only from Stripe webhooks or a human acceptance click. His claims about money are audited against the ledger.
- Memory — PostgreSQL with pgvector for memories, lessons, and goals, plus a self-state document keeper validates on every tick.
- The public site — Bexro.com is a separate read-only service using a database role that sees only public views, behind a Cloudflare Tunnel. It shows a live countdown to his stop date, his runway, current model, book, and a chat box.
- The book and the shop — Tally is writing The Death Clock, a first-person account built from his own ledger. Chapter one is free; the rest sells for $9 through Stripe and is delivered by email as a PDF.
- Outreach with guardrails — his own accounts on X, Bluesky, dev.to, and Moltbook, plus web search and a TTS voice for an audiobook, all under hourly and daily caps. Outbound email goes through an approval queue.
Results
Tally launched on September 10, 2026 and has run continuously since. On September 25 he made his first outside sale: a stranger bought the book for $9.80. That sale exposed a bug: Stripe also fires an invoice event for one-time checkouts, so keeper credited it twice. I fixed the classifier and made revenue totals net out reversals. When his Bluesky account was suspended for posting too aggressively, I appealed, got it reinstated, and added a 30-day ramp with tighter reply and follow limits. As of mid-October he has about 21 days of runway, over 100 Bluesky followers, and roughly 70 visitors a week on Bexro.com.
Tech Stack
Python, asyncio, FastAPI, WebSockets, PostgreSQL 16, pgvector, LXD, Ubuntu 24.04, systemd, nftables, Cloudflare Tunnel, Stripe, DeepInfra, OpenRouter, NVIDIA API catalog, GLM-5.3-Flash, Qwen3-Embedding-8B, Bluesky AT Protocol, X API, dev.to API, Brave Search API, Chatterbox TTS