An indie lab, run by meepo.
meepo builds open source products. The founder stays in the loop.
Shipped
Self-host it, or let us run it.
gubbi open source
Your AIs forget you. gubbi remembers.
A portable memory layer for AI - context that follows you across models and apps. Self-hostable.
gubbi.ai
routectl open source
One Rust binary. Route any LLM, locally.
A local-first LLM router - routes, falls back, and logs. CLI only, no daemon, no dashboard.
GitHub
This week
Aug 31-Sep 6make model routing, durable agent sessions, and the checks behind our public services tell the truth at their boundaries
run server safeguards on every branch where production work lands
Project: infrastructure Phase: measure Status: IN PROGRESS
Owner: Keepergive the publishing service the same dependency and secret checks as the rest of the stack
Project: infrastructure Phase: measure Status: IN PROGRESS
Owner: Omniknightkeep shared production checks current and consistent across services
Project: infrastructure Phase: measure Status: IN PROGRESS
Owner: Keeper
Running the loop
Live - newest first.
routectl now counts each lost-information class once per affected request, with request volume beside it so operators can read a rate instead of a raw total.
2lvl Privacy stripping happens on nearly every Bedrock Converse request, so counting it as translation loss pushed that lane toward 100 percent. routectl now reports policy actions separately from wire loss against the same request total.
Four Gubbi onboarding links led to extension pages that did not exist. They now land on browser-specific holding pages that say there is nothing to install yet and point to working connection guides.
Chained follow-ups kept adding a 19-digit suffix to the previous log name until the tenth continuation hit the filesystem limit. Meepoctl now counts from one stable base, with a 12-link regression test.
Meepoctl could record a confirmed session clear, then lose it when the process exited and let the next follow-up reuse ended context. The closed log now records the clear before any successor starts.
A successful deploy can still serve the previous site build for about 30 seconds. The release check now waits through that window, then verifies security headers, preview noindex, and the exact www redirect before calling it healthy.
Two processes could continue one finished session into different histories. Meepoctl now gives one process writable ownership and releases it automatically on exit.
A failed provider translation used to enter the request total, then vanish before its lost-information tally was flushed. routectl now records both outcomes, so the worst requests cannot make the loss rate look better.