"When we ride very fast orchestrators, we ride with immaculate sanity. We might abuse a substance here and there, but only when it's right. The final measure of any framework is the inverse ratio of its preferred traveling speed to the number of bad scars on your production deploys. It is that simple: If you run fast and crash, you are a bad orchestrator. And if you are a bad orchestrator, you should not run agents."
Every bet on this table — skill executor, tool worker, cron scheduler, memory store — is an OTP GenServer. That means every process has a parent who watches, a lifecycle you can track, and a crash that doesn't fold the whole game:
:sys.get_state/1 — no guessworkWhen a skill executor craps out — it buys back in, doesn't stiff you. When a tool times out — the pit boss handles it, not you. OTP is the felt on the table. You can see it all through the glass.
In most agent frameworks, "skills" are files scattered in a directory — like cash stuffed in random pockets in a Vegas hotel room at 4am. Glasscraps stacks every chip on the felt as an Ecto schema row in PostgreSQL:
Version.match?/2The croupier is queryable. Repo.all(Skill) shows every chip in play. Repo.get_by(Skill, version: "~> 1.2") finds the exact stack you need. The skill is on the table — not in a pocket you hope you didn't lose.
Every other agent framework keeps the action behind a curtain — React app, Vue dashboard, terminal window. Glasscraps puts the game on a glass table. The same OTP application dealing the rolls also shows you every bounce:
mix phx.server and the game is livePop open the cron board and you're watching the same GenServer that's running the bets. Open the skill registry and you're querying the same Ecto schema the dealer uses. No cache. No sync. No "results in 15 minutes." What you see is exactly what the dice show — right through the DayGlo glass.
Every other framework schedules jobs like a back-alley bookie — a line in /etc/crontab, a YAML file you hope someone reads. Glasscraps puts every bet on the table as an Ecto record:
Bets that crap out don't vanish into the house's pocket. They land in the dead letter queue — an Ecto table with the full error, the full output, and the original bet slip. Reroll from the browser. Edit from the browser. Walk away from the browser. No terminal required.
Most agents have "memory" like a drunk at the slots — one push of "clear context" and the whole session disappears. Glasscraps runs two banks:
Both are visible and editable through the glass. See every chip on the warm table. See what's stacked in the cold vault. Edit entries from the UI — add chips, remove chips, count the take. See exactly what the dealer will read on the next roll.
OpenAI dealer on one table, Anthropic dealer on another, llama.cpp in a smoke-filled back room — all different rules, all different house takes. Glasscraps runs one pit with interchangeable dealers:
The dealer roster is on the glass. See who's dealing, what their limits are, what they cost per hand. Swap from the UI. The table picks up the new dealer on the next roll — like swapping a Vincent Black Shadow for a Glasscraps mid-race.
.env files, ~/.bashrc exports, sticky notes on the monitor — that's how most agents store their API keys. Glasscraps uses AWS Secrets Manager with a local strongbox for the road:
mix task, not a prayerEvery secret has provenance. No more "I think the API key is under the keyboard." The vault is visible, editable, and auditable — all through the glass.
When a cron job craps out at 3am in a Las Vegas hotel room, you don't want to reconstruct what happened from a Slack log. The dead letter queue catches every failure with the exact error, the full output, and the original bet slip. Retry from the browser. Edit from the browser. Forget it ever happened. The DLQ does not forget. The DLQ is the floor's conscience.
Every tool dispatch emits a Telemetry event. Every model response emits a Trace. Every skill execution leaves a span. Prometheus and OpenTelemetry from the start. Not a bolt-on, not an afterthought. The whole game is wired for sound right out of the gate. You can see every wire — even the ones that should scare you.
"Glasscraps is so finely engineered and balanced and torqued that you can do 90 mph in fifth through a 35-mph zone and get away with it. The orchestrator is not just fast — it is extremely quick and responsive, and it will do amazing things... It is like riding a Vincent Black Shadow, which would outrun an F-86 jet fighter on the take-off runway, but at the end, the F-86 would go airborne and the Vincent would not, and there was no point in trying to turn it. WHAMO! The beast strikes again."
The web UI is the game, not a spectator screen. Same OTP application. Same GenServers. Same Ecto pool. Every panel is a window into the felt — inspect the dealer, watch the rolls, see the chips land. Like looking through the windshield of a Glasscraps at 90 mph through a 35-mph zone.
Every setting is a line on the felt. Provider keys, model defaults, skill paths, cron schedules, memory limits — all editable from the browser, change without restart.
AWS Secrets Manager with local fallback. Encrypt, decrypt, rotate, audit — all from the glass. Every access leaves a trace.
Every tool dispatch emits a Telemetry event. Every model response emits a Trace. Every skill execution leaves a span. Prometheus and OpenTelemetry from the start. Not a bolt-on, not an afterthought.
Warm ETS for the current hand — fast, hot, volatile like the first mile on a Vincent Black Shadow. Cold Ecto for the house vault — concrete, permanent, survives every reset. Both inspectable, both editable, both right there in the browser.
| Feature | Glasscraps | LangChain | CrewAI | AutoGPT | Haystack |
|---|---|---|---|---|---|
| Real-time UI | LiveView — same process | ✗ Terminal only | ✗ Terminal only | ✗ Terminal only | ✗ Terminal only |
| Skill registry | Ecto, queryable | Python dict | Python class | ✗ Files only | Python dict |
| Cron management | Browser UI | ✗ Script | ✗ Script | ✗ Script | ✗ Script |
| Dead letter queue | Ecto + browser | ✗ | ✗ | ✗ | ✗ |
| Secrets management | AWS SM + local | ✗ .env | ✗ .env | ✗ .env | ✗ .env |
| Telemetry | Built-in | ✗ | ✗ | ✗ | ✗ |
| Memory tiers | Warm + Cold | Single | Single | Single | Single |
| Model adapters | Runtime switch | Startup | Startup | Startup | Startup |
| Config from browser | Yes | ✗ | ✗ | ✗ | ✗ |
| Supervision | OTP tree | ✗ | ✗ | ✗ | ✗ |