I build AI systems that don't ask you to trust them — they prove it.
Solo full-stack: memory engines, local-first tools, iOS. Vancouver, BC.
| StateCore | Open source · MIT | A self-hosted long-term memory runtime for AI systems. The LLM proposes; a deterministic pipeline decides. Events → digest control → protected state → grounded retrieval, over a stable HTTP API. TypeScript · NestJS · Postgres/pgvector · BullMQ. |
| dsh-statecore | Open source · MIT | Native memory for DeepSeek Harness — a plugin, not an MCP server. An MCP server can only be pull: the model has to decide to call a write tool. This one also pushes, ingesting every human and assistant message as it happens. When compaction hides the conversation behind a summary, it forces a digest of the backlog first and re-injects it — what leaves the context window has already become facts with evidence chains. |
| memory-budget-bench | Open source · MIT | Comparing long-term memory systems at an equal context budget, not an equal item count. LongMemEval, 194 questions, 95% Wilson intervals: StateCore takes 16k and 64k — and loses 4k to mem0 by ten points, which is in the table because a benchmark run on your own system is worth nothing if it only reports the rows you win. Raw retrievals and judge verdicts ship with it. |
| Blackbar · source | Live · MIT | Privacy-first PDF tools with true redaction. Redacted pages are rebuilt so the underlying text is gone, metadata is scrubbed, and the export is re-parsed on the spot to prove nothing extractable remains. Static site, no backend, works with the network unplugged. |
| Roll the Math | Live · closed source | An interactive probability lab: how long does a bankroll actually survive a strategy? Every scenario is computed twice — exact dynamic programming over rationals, and a seeded Monte Carlo — and the two have to agree; a disagreement is a bug, not a rounding note. Simulations run in a Web Worker so the page never freezes. EN / 中文. |
| 开店账 | Live · closed source | A restaurant-startup decision assistant for Chinese founders. It holds no number it can't cite: every benchmark needs a source, a URL, a geography and an observation date, and intervals only — point estimates are rejected. Anything missing stays unknown and travels into the report as a named gap: which number is missing, who to ask for it, how much the range narrows once you have it. |
| SignalLens | Live · closed source | Structured market intelligence, not noise. Daily briefs generated on a schedule, with confidence scored deterministically server-side — overriding whatever the model reports about itself — and a quality gate that aborts publication rather than shipping a degraded brief. |
| dsh-blackjack | Open source · MIT | A community welfare game for dsh developers: out of quota mid-task? Play a couple of hands. Free to enter, always — there is no paid path to more hands, better odds or better payouts. Chips are one-way and closed-loop, spendable only through the project's own metering proxy, and a four-bucket conservation ledger keeps the whole economy auditable. |
| Remi | iOS · TestFlight | A voice-first assistant built on the follow-up layer: it remembers what you offload and comes back to you about it. Built on StateCore. |
Deterministic where it counts. Models are good at proposing and bad at being accountable. In StateCore exactly one of five digest stages calls a model; the other four are unit-testable TypeScript that can veto it. In SignalLens the confidence number is a fixed formula over data completeness, signal agreement and volatility — the LLM's self-reported number is discarded. 开店账 would rather return nothing than invent something: an unsourced figure never gets filled in, it propagates as unknown all the way to the report.
Prove it, don't promise it. Blackbar doesn't tell you the redaction worked; it re-opens the file it just wrote, tries to extract text the way an attacker would, and shows you the result. Roll the Math computes every answer two independent ways and holds them against each other. The StateCore benchmark lives in its own repo with the raw retrievals and the judge's verdicts, and it publishes the budget where StateCore loses. Verification you can run beats a claim you have to believe.
Local-first by default. Blackbar is a static site — there is no server that could receive an upload, and a strict CSP makes the browser reject anything injected. StateCore is self-hosted with BYO models; dsh-statecore keeps its store in embedded SQLite on your own machine and borrows the host's already-configured model rather than asking for another API key. On-device NER and OCR instead of a round trip.
Small, finished, and shipped. Fewer things, each one whole — with tests, CI, benchmarks, and a live URL.
A 10-part series on building AI memory that doesn't drift — the digest pipeline, explainable retrieval, controlled forgetting, and the production war stories from putting it behind a real app. Ten drafts written; they go out as each one earns it.
- Email — kloselyc@gmail.com
- Open to interesting problems in AI memory, local-first software, and privacy engineering.

