Open source
What is listed here can be checked. Unlike the client work on the references page, the source code is open and the history is visible.
Articles
Seven months searching for an editor
From VS Code via terminal editors and gpui to Zig. Eleven attempts with eight UI libraries, and why tool limits for an AI agent belong in the code.
An AI agent tests my editor without a window
Test-driven development of a native desktop app: headless mode, JSON-RPC as a remote control and screenshots the agent looks at itself.
Photograph the invoice, check the data
Reading garage invoices with Mistral: OCR and schema in two stages, checks in code and a guard against success messages without a tool call.
Three programs or one of my own
Why I built my own document archive with OCR, tags and chat, instead of connecting three programs, and when Paperless-ngx is the better choice today.
Contributions to other projects
Cobenian/shai-hulud-detect
Six merged changes to a scanner for the npm supply chain attacks: running under Git Bash and WSL, Windows line endings, two fixes to the data exfiltration detection.
Own projects
Zig
zid
A code editor with its own UI: wgpu, pinned to the Vulkan backend in the renderer, Clay for layout, a custom glyph atlas and GPU text renderer via FreeType. Text storage comes from flow-core, syntax highlighting from flow-syntax, the terminal from Ghostty, PDF from mupdf. Plus a built-in agent working against a local language model.
Rust
freshview
The terminal editor Fresh as a library in an egui UI, with PDF and image preview via mupdf in floating windows.
Rust
neoview
Neovim embedded in a UI built with gpui, the framework behind Zed.
Rust
editor-framework
Scaffold for an editor on gpui, with Lua for plugins.
V
v-gui-editor
Editor prototype in the GUI framework of the V language, with explorer, tab bar and status bar.
Rust
shai-hulud-detect-rust
My own Rust version of the scanner whose Bash original I helped maintain.
Rust
agent-session-manager
Session manager for Claude Code in the terminal.
TypeScript
wartungsheft
Car service book as a PWA with Vue 3 and self-hosted InstantDB. Garage invoices, vehicle registrations and service books are photographed and read via Mistral.
TypeScript
ai-proxy
Keeps a model key on the server side, counts usage and enforces plan limits.
TypeScript
dms
Document archive with Vue 3 and Supabase: Mistral OCR, tags and fields via a language model, hybrid search with pgvector and a chat over all documents that cites its sources.