tonos
a voice profile api that learns how you write and generates messages that actually sound like you
the problem
llms write in their own voice. when you use claude or gpt to draft a message it comes out formal and over-explained, like you can immediately tell when someone's ai wrote their slack message or email. tonos fixes this by learning your actual writing patterns from real messages.
how it works
you submit 10-20 real message samples. tonos runs a two-pass claude pipeline where haiku observes each batch and extracts structured signals, then sonnet synthesizes a 16-dimension voice profile. generation uses rag with voyage ai embeddings to pull relevant samples at inference time. credit system does atomic deduction before generation so failed calls dont cost anything. the whole thing runs on bun + hono with sse streaming.
- 7 mcp tools for submitting samples, generating profile, drafting, rewriting, feedback
- 16 voice dimensions including formality, punctuation, sentence length, directness, warmth
- platform-aware drafting, linkedin mode auto-capitalizes even for casual writers
- bun + hono on hetzner, sub-5ms page renders, no react hydration overhead
what shipped
7 mcp tools that connect to claude code, cursor, and any mcp client. live at tonos.fyi with stripe billing, oauth login for google and github, api key auth. 63 test files including 10 owasp security suites. 33 phases built.
decisions and tradeoffs
two architectural choices that shaped the whole project.
- voice profile json over raw message history for rag. structured dimensions are portable, explainable, and dont grow unboundedly
- hono jsx + htmx over react/next.js. no hydration overhead and the product is api-first anyway, the web ui is secondary