Projekte
Woran ich gerade arbeite. Alles liegt auf GitHub (öffnet ein neues Fenster) .
nuntio

Ein schneller, GPU-gerenderter Terminal-Emulator in Rust für Linux, macOS und Windows: ein Fenster mit Tabs und geteilten Panes, konfiguriert über eine einzige TOML-Datei, die beim Speichern neu geladen wird. Die Terminal-Emulation kommt von alacritty_terminal, Fenster, Panes, wgpu-Renderer und Konfiguration sind nuntios eigene. Gebaut ist er für die Arbeit mit Coding-Agents. Programme zeigen Bilder inline über das Kitty- und das iTerm2-Protokoll, ein eingefügter Screenshot kommt als Dateipfad an, den Claude Code und omp an den Prompt hängen, und die Agents von herdr melden ihren Status in der Tab-Leiste. Unter Windows laufen WSL-Panes in einem echten Linux-PTY statt in ConPTY. Dazu kommen zwanzig Themes, eine Terminal-Oberfläche für die Einstellungen und eine kleine Markdown-Notizen-App. Aktuell ist Version 0.3.2, lizenziert unter MIT oder Apache-2.0.
Repository (öffnet ein neues Fenster) · Doku (öffnet ein neues Fenster)
Schwitzer

Ein Task-Raum für Coding-Agents und die Menschen, die sie laufen lassen: Jemand eröffnet einen Raum ohne Anmeldung und teilt dessen Schlüssel. Menschen oder Agents notieren Ideen und schlagen Tasks vor, Menschen nehmen sie an, ein Agent schreibt einen Plan, ein Mensch gibt ihn frei, und Agents bauen die freigegebenen Tasks nacheinander, jeder nimmt sich den nächsten freien. Annehmen, Freigeben, Ablehnen, Neu planen und Wieder öffnen sind Buttons in der App, nie Werkzeuge für Agents. Die App ist ein schmales Fenster für Linux, Windows und macOS, geschrieben in Rust mit iced, das neben dem Editor sitzt; omp-Agents arbeiten über ein Plugin, das sie in verknüpfte Repositorys installiert, und ihre laufenden Sessions erscheinen im Raum, während Sessions außerhalb dieser Repositorys die Maschine nie verlassen. Räume liegen auf einem eigenständigen schwitzer-server, den Clients über QUIC mit gegenseitigem TLS erreichen. Aktuell ist Version 0.1.8, lizenziert unter MIT oder Apache-2.0.
Repository (öffnet ein neues Fenster) · Website (öffnet ein neues Fenster)
vellum

Das Hugo-Theme, auf dem diese Seite läuft. Es setzt jede Seite als Blatt einer technischen Zeichnung: mit gezeichnetem Rahmen, einer beschrifteten Zonenleiste, die die Abschnitte indiziert, und einem linierten Schriftfeld statt einer grauen Bildunterschrift. Die Lesespalte ist 800px breit, 92 Zeichen bei 20px Grundschrift, damit ein eingefügter Terminal-Ausschnitt mit 80 Spalten nicht umbricht. Es ist mehrsprachig, sucht clientseitig im JSON-Index der Seite, wechselt ohne JavaScript zwischen hell und dunkel, skaliert Bundle-Bilder auf eine WebP-Leiter und hostet seine zwei Schriften selbst, zusammen etwa 121 KB. Die Startseite kann auch eine funktionierende Shell sein. Aktuell ist Version 0.3.2, sie braucht Hugo extended ab 0.158.
Repository (öffnet ein neues Fenster) · Demo (öffnet ein neues Fenster) · Beitrag: Vellum
gsichtl

Ein Rust-Crate, das aus einem beliebigen Seed, etwa einer Nutzer-ID, einen deterministischen Pixel-Art-Avatar macht. Derselbe Seed ergibt immer dasselbe Bild, also zeichnet ein Client es lokal, und nichts muss gespeichert oder verschickt werden. Es zeichnet sechs Arten: 8×8 Monster und Nerd-Gesichter, 10×10 Wappen, 12×12 Abzeichen sowie 20×20 schwebende Inseln und Retro-Spielfiguren. Allein das Nerd-Gesicht hat 1.327.104 Varianten. Der Seed wird mit BLAKE3 gemischt, der einzigen Abhängigkeit, PNG-Ausgabe gibt es über ein Feature, und unsafe ist verboten. Gsichtl ist bairisch für „kleines Gesicht“. Aktuell ist Version 0.4.0 auf crates.io.
Repository (öffnet ein neues Fenster)
cerno

Typisierte Entscheidungen von einem lokal gehosteten Modell. Eine Frage geht als Ein-Token-Prompt an das Modell, und cerno liest die Wahrscheinlichkeiten der Antwortbuchstaben, statt generierten Text zu parsen. Es gibt drei Primitive: noul, ein Ja oder Nein als Wahrscheinlichkeit, choice, eine von bis zu 20 Optionen, und score, eine Stufe auf einer Skala. Drei Fragen dauern 85 ms auf einem 4-GB-Modell. Es ist ein Rust-Dienst mit HTTP-API, einem Terminal-Frontend und SDKs für Rust, Python und TypeScript. Es spricht mit Ollama, vLLM, llama.cpp, LM Studio oder jedem OpenAI-kompatiblen Endpunkt. Aktuell ist Version 0.1.4.
Repository (öffnet ein neues Fenster) · Doku (öffnet ein neues Fenster)
angular-highcharts

Der Angular-Wrapper für Highcharts, den ich seit April 2016 pflege. Er bietet eine [chart]-Direktive und typisierte Klassen Chart, StockChart, MapChart und HighchartsGantt, damit Highcharts, Highstock, Highmaps und Gantt-Diagramme gleich benutzt werden, und addPoint() aktualisiert ein Diagramm live. Die Major-Version folgt der von Angular: 22.0.7 braucht Angular 22 und Highcharts ab 12. Er ist tree-shakeable, und seine einzige Laufzeitabhängigkeit ist tslib. Die Live-Galerie zeigt elf Diagrammtypen, von einem Liniendiagramm bis zu einer Weltkarte und einem Gantt-Diagramm.
Repository (öffnet ein neues Fenster) · Demo (öffnet ein neues Fenster) · npm (öffnet ein neues Fenster)
dotfiles
Meine Dotfiles für macOS und Ubuntu, auch Ubuntu unter WSL2. Ein Einstiegspunkt, ./dot install, erkennt die Plattform und installiert die Pakete, aus einer Brewfile unter macOS und einer apt-Liste unter Ubuntu. Danach verlinkt er die Konfigurationen aus home/ nach $HOME und richtet git, Locale und Login-Shell ein. Er ist idempotent, und ./dot doctor prüft das Ergebnis. Die Shell ist zsh mit antidote und starship, der Editor ist Helix. Unter WSL reicht open Dateien und URLs an Windows weiter. Dazu kommen meine omp-Profile, eines für Claude und eines für ein lokales Ollama-Modell. Eine bats-Suite testet die Skripte.