Charles

Attention Router · v2.2.1

-
Memories
-
Last rollup
-
Chats 24h
How it works
๐Ÿ“ฅ

A service posts a signal

CLI, curl, any fleet service — answered in ~15ms, written down before anything else happens

๐Ÿงน

Haiku 4.5 triage, then filed

Severity P1/P2/P3 and a one-line summary. Nothing pings on arrival — the phone stays quiet

๐Ÿงต

Grouped into incidents

A thread key derived in code, not guessed by a prompt. Reworded reports of the same problem merge on salient-word overlap: 186 signals became 38 incidents

๐Ÿ“‹

One summary, once an hour

Prose first, evidence underneath, counts on the repeats. An empty hour sends nothing at all

Architecture
hef "Stage 4 matched 0/7 on doc 44812" โ”‚ โ–ผ POST /signal โ†’ 202 in ~15ms charles.aws.monce.ai โ”‚ โ”œโ”€ write-ahead to sqlite (WAL + FTS5) โ”œโ”€ haiku 4.5 triage โ†’ P1 / P2 / P3 + summary โ””โ”€ filed. no ping. thread_key derived in code โ”‚ โ–ผ every hour, on the hour haiku 4.5 rollup over the grouped window โ”‚ โ–ผ one telegram message โ”€โ”€โ†’ ๐Ÿ“ฑ ๐Ÿ“‹ 14:00 ยท 23 signals โ†’ 4 incidents Rematch loops on the pipeline dominated the hour, all from one worker. HEF stage 4 is still matching nothing on doc 44812. Nothing else moved. ๐Ÿ”ด pipeline ร—14 ยท 13:02โ†’13:57 ๐Ÿ”ด hef ร—2 ยท 13:11โ†’13:44 โšช snakebatch ร—7 ยท 13:00โ†’13:52 โ”‚ โ–ผ empty hour โ†’ nothing sent at all gone in v2.1: nudge 15m ยท escalate 60m ยท a ping per signal
Talk to charles

Open to anyone, no key needed. This conversation is kept apart from the fleet's private memory — charles can talk about the work, not about what is inside it.

Ask me about Charles Dana's work โ€” Snake, the Dana Theorem, AUMA, or what this router does.
new session reset
Memory (key required)
API Endpoints
GET /health status + budget + models
POST /signal front door — 202 + async triage
POST /chat talk to charles — open
GET /chat/{session} your own transcript — open
GET /decisions/{id} the answer, for the caller
POST /message v1 compat — sync triage + reply
GET /usage ping rate, answer time, cost — key
POST /admin/rollup force the summary now — key
POST /ask opus 5 + memory — key
GET /memories list + FTS5 search — key
POST /forget remove memories — key
POST /webhook/telegram buttons, replies, commands — secret
CLI Usage
$ charles "hey is charles dana around?" โ†’ remembered, triaged, filed for the next rollup $ charles forget coffee โ†’ Forgot 2 memories about "coffee" $ curl -X POST https://charles.aws.monce.ai/signal \ -d '{"text":"prod down","source":"hef","severity":"P1"}' โ†’ 202 {"event_id":"448b262ce40d4672","status":"accepted"} $ curl -X POST https://charles.aws.monce.ai/chat \ -d '{"message":"what is the Dana Theorem?"}' โ†’ {"session_id":"9f3cโ€ฆ","reply":"Any indicator function over aโ€ฆ"} $ # on telegram /now โ†’ rollup this window immediately /quiet 3h โ†’ hold the summaries, lose nothing