Kempten, Allgäu
English
Marcel Bruckner

Software.

Was ich baue, was ich zu anderen Projekten beitrage, und ein paar Ausflüge aus Studium und Spielejams.

01Aktivität

GitHub

9.912

Beiträge auf GitHub im letzten Jahr, davon 4.838 in privaten Repositories.

NovDezJanFebMärAprMaiJunJulAugSepOktNov2025-11-16: 02025-11-17: 02025-11-18: 02025-11-19: 02025-11-20: 02025-11-21: 02025-11-22: 02025-11-23: 22025-11-24: 02025-11-25: 62025-11-26: 22025-11-27: 02025-11-28: 02025-11-29: 02025-11-30: 02025-12-01: 02025-12-02: 02025-12-03: 02025-12-04: 02025-12-05: 02025-12-06: 02025-12-07: 12025-12-08: 82025-12-09: 02025-12-10: 02025-12-11: 02025-12-12: 02025-12-13: 02025-12-14: 02025-12-15: 02025-12-16: 02025-12-17: 02025-12-18: 02025-12-19: 02025-12-20: 02025-12-21: 02025-12-22: 02025-12-23: 02025-12-24: 02025-12-25: 02025-12-26: 02025-12-27: 02025-12-28: 02025-12-29: 02025-12-30: 82025-12-31: 02026-01-01: 02026-01-02: 02026-01-03: 02026-01-04: 02026-01-05: 02026-01-06: 02026-01-07: 32026-01-08: 02026-01-09: 02026-01-10: 02026-01-11: 142026-01-12: 02026-01-13: 02026-01-14: 02026-01-15: 02026-01-16: 02026-01-17: 02026-01-18: 02026-01-19: 02026-01-20: 02026-01-21: 62026-01-22: 22026-01-23: 02026-01-24: 02026-01-25: 02026-01-26: 02026-01-27: 02026-01-28: 02026-01-29: 02026-01-30: 02026-01-31: 02026-02-01: 02026-02-02: 02026-02-03: 02026-02-04: 02026-02-05: 02026-02-06: 02026-02-07: 02026-02-08: 02026-02-09: 02026-02-10: 02026-02-11: 02026-02-12: 02026-02-13: 02026-02-14: 02026-02-15: 22026-02-16: 32026-02-17: 02026-02-18: 12026-02-19: 62026-02-20: 02026-02-21: 02026-02-22: 02026-02-23: 42026-02-24: 32026-02-25: 02026-02-26: 22026-02-27: 02026-02-28: 02026-03-01: 02026-03-02: 02026-03-03: 202026-03-04: 02026-03-05: 02026-03-06: 02026-03-07: 02026-03-08: 02026-03-09: 02026-03-10: 02026-03-11: 02026-03-12: 02026-03-13: 02026-03-14: 02026-03-15: 02026-03-16: 02026-03-17: 42026-03-18: 02026-03-19: 02026-03-20: 02026-03-21: 02026-03-22: 02026-03-23: 02026-03-24: 02026-03-25: 02026-03-26: 02026-03-27: 02026-03-28: 02026-03-29: 02026-03-30: 12026-03-31: 02026-04-01: 32026-04-02: 02026-04-03: 02026-04-04: 02026-04-05: 92026-04-06: 02026-04-07: 02026-04-08: 02026-04-09: 02026-04-10: 02026-04-11: 32026-04-12: 132026-04-13: 132026-04-14: 22026-04-15: 392026-04-16: 62026-04-17: 342026-04-18: 02026-04-19: 02026-04-20: 02026-04-21: 02026-04-22: 62026-04-23: 62026-04-24: 612026-04-25: 02026-04-26: 02026-04-27: 42026-04-28: 02026-04-29: 12026-04-30: 02026-05-01: 02026-05-02: 02026-05-03: 02026-05-04: 42026-05-05: 302026-05-06: 132026-05-07: 32026-05-08: 02026-05-09: 02026-05-10: 02026-05-11: 02026-05-12: 02026-05-13: 02026-05-14: 52026-05-15: 02026-05-16: 02026-05-17: 202026-05-18: 152026-05-19: 02026-05-20: 02026-05-21: 02026-05-22: 92026-05-23: 472026-05-24: 02026-05-25: 182026-05-26: 152026-05-27: 02026-05-28: 02026-05-29: 12026-05-30: 112026-05-31: 32026-06-01: 352026-06-02: 122026-06-03: 772026-06-04: 42026-06-05: 1032026-06-06: 132026-06-07: 72026-06-08: 42026-06-09: 162026-06-10: 152026-06-11: 22026-06-12: 272026-06-13: 142026-06-14: 132026-06-15: 32026-06-16: 02026-06-17: 02026-06-18: 02026-06-19: 02026-06-20: 12026-06-21: 02026-06-22: 02026-06-23: 12026-06-24: 02026-06-25: 02026-06-26: 02026-06-27: 02026-06-28: 02026-06-29: 02026-06-30: 22026-07-01: 02026-07-02: 02026-07-03: 02026-07-04: 02026-07-05: 02026-07-06: 252026-07-07: 02026-07-08: 672026-07-09: 62026-07-10: 02026-07-11: 02026-07-12: 02026-07-13: 12026-07-14: 12026-07-15: 62026-07-16: 02026-07-17: 02026-07-18: 02026-07-19: 02026-07-20: 12026-07-21: 12026-07-22: 32026-07-23: 202026-07-24: 12026-07-25: 02026-07-26: 02026-07-27: 182026-07-28: 382026-07-29: 152026-07-30: 82026-07-31: 252026-08-01: 22026-08-02: 02026-08-03: 02026-08-04: 02026-08-05: 02026-08-06: 42026-08-07: 402026-08-08: 142026-08-09: 102026-08-10: 102026-08-11: 762026-08-12: 02026-08-13: 02026-08-14: 42026-08-15: 22026-08-16: 02026-08-17: 02026-08-18: 22026-08-19: 02026-08-20: 02026-08-21: 122026-08-22: 882026-08-23: 652026-08-24: 02026-08-25: 482026-08-26: 132026-08-27: 522026-08-28: 792026-08-29: 02026-08-30: 02026-08-31: 12026-09-01: 272026-09-02: 112026-09-03: 192026-09-04: 672026-09-05: 122026-09-06: 02026-09-07: 362026-09-08: 712026-09-09: 322026-09-10: 622026-09-11: 952026-09-12: 572026-09-13: 892026-09-14: 792026-09-15: 872026-09-16: 1132026-09-17: 1212026-09-18: 402026-09-19: 132026-09-20: 22026-09-21: 262026-09-22: 542026-09-23: 632026-09-24: 1202026-09-25: 742026-09-26: 522026-09-27: 842026-09-28: 1422026-09-29: 762026-09-30: 1062026-10-01: 1712026-10-02: 2282026-10-03: 862026-10-04: 1912026-10-05: 492026-10-06: 162026-10-07: 252026-10-08: 512026-10-09: 362026-10-10: 1482026-10-11: 912026-10-12: 392026-10-13: 672026-10-14: 1792026-10-15: 892026-10-16: 1032026-10-17: 1912026-10-18: 1482026-10-19: 972026-10-20: 3072026-10-21: 2202026-10-22: 812026-10-23: 1412026-10-24: 932026-10-25: 3052026-10-26: 2932026-10-27: 2532026-10-28: 2292026-10-29: 1442026-10-30: 3432026-10-31: 1322026-11-01: 1232026-11-02: 1892026-11-03: 2192026-11-04: 2622026-11-05: 952026-11-06: 392026-11-07: 02026-11-08: 02026-11-09: 62026-11-10: 1812026-11-11: 662026-11-12: 2332026-11-13: 2822026-11-14: 2372026-11-15: 5
WenigerMehr
Monatssummen als Tabelle
MonatBeiträge
November 202510
Dezember 202517
Januar 202625
Februar 202621
März 202625
April 2026200
Mai 2026194
Juni 2026349
Juli 2026236
August 2026522
September 20261.830
Oktober 20264.546
November 20261.937
Commits
3.442
Pull Requests
976
Issues
598
Öffentliche Repositories
113

Zuletzt bearbeitet

02Engineering-Konventionen

So baue ich Software mit KI-Agenten: aufgeschriebene Regeln für Architektur, Code und Repository-Setup, die ein Claude-Code-Plugin in jede Sitzung bringt, damit Agenten nach denselben Maßstäben arbeiten wie ich. Es ist dieselbe Frage, an der ich als Berater für Softwarequalität arbeite: wie ein Team Qualität zu einem gemeinsamen Ziel macht, jetzt für ein Team, zu dem Agenten gehören.

engineering-conventions

Meine Konventionen für Architektur, Code, die Arbeit mit Claude, Repository-Setup und Stacks, als Website und als Claude-Code-Plugin, das sie in jede Sitzung bringt: Agenten lesen die passenden Seiten, bevor sie entwerfen, bauen oder prüfen, und können ein Repository gegen alle Konventionen auditieren.

Claude Code

claude-marketplace

Mein Harness für Claude Code: ein kuratierter Plugin-Marktplatz mit den Plugins, die ich täglich nutze, und meinen eigenen, darunter die Konventionen.

Claude Code

03Software

Alles lässt sich selbst hosten, fast alles ist Open Source. Manches betreibe ich auch für dich: anmelden und loslegen.

notefeed Zum BenutzenKostenlos, Abo für mehr

Postfach für Markdown-Notizen: per HTTP, Web-UI oder Client posten, als RSS lesen.

App · MCP-Server

Gamepanion Zum BenutzenKostenlos, Abo für mehr

Spoilerfreier Begleiter für deine Spiele: Du erzählst Claude beim Spielen von Quests, Build und Items, und Gamepanion weiß beim nächsten Mal, wo du warst.

App · MCP-Server

Gesetze für KI Zum Benutzen

Öffentlicher MCP-Server mit aktuellem Bundes- und Landesrecht: KI-Assistenten schlagen Gesetze nach, statt aus dem Gedächtnis zu zitieren.

MCP-Server

noticebox

Posteingang für die Formulare statischer Seiten: jede Einsendung mit Status, Begründung und Protokoll, per MCP auch für Claude bedienbar.

App · MCP-Server

passageway Privat kostenlos, Lizenz für Firmen

Durchsucht Wiki, Notizen und Dokumentation auf einmal und gibt Claude per MCP genau die Passagen, die eine Frage beantworten, jede mit Quelle.

MCP-Server

gassi

Kleines Hundetagebuch für einen Haushalt: Spaziergänge, Futter und Geschäfte.

App

trilium-recall

Claude erinnert sich an das, was in Trilium steht: ein Container mit Stichwort- und Bedeutungssuche, als MCP-Tool und als Prompt-Hook für Claude Code.

Trilium · MCP-Server

trilium-llm-wiki

Claude-Code-Plugin, das in Trilium ein LLM-Wiki nach Karpathys Muster aufbaut und pflegt: Schema, Vorlagen, Graph, Review-Queue und Schreibsperre.

Trilium · Claude Code

trilium-mcp-proxy

OAuth-Login für den eingebauten MCP-Server von Trilium: jeden MCP-Client per URL verbinden und mit dem Trilium-Passwort anmelden.

Trilium · MCP-Server

trilium-plugin

Claude-Code-Plugin für Trilium: Skills für Notizen, Attribute, Templates und Journal, auf dem eingebauten MCP-Server von Trilium.

Trilium · Claude Code

karakeep-trilium-sync

Kopiert markierte Karakeep-Lesezeichen samt Artikeltext als Notizen nach Trilium, als Quellen für mein LLM-Wiki.

Trilium

paperless-ngx-plugin

Claude-Code-Plugin für Paperless-ngx: Skills für Posteingang, Duplikate, verschlüsselte PDFs, Suche und Metadaten, auf dem Paperless-MCP-Server.

Paperless-ngx · Claude Code

invoiceninja-mcp

MCP-Server für die Invoice-Ninja-API mit rund 377 Tools, als Container-Sidecar.

Invoice Ninja · MCP-Server

invoiceninja-plugin

Claude-Code-Plugin für Invoice Ninja: Skills für Kunden, Rechnungen, Angebote, Zahlungen und Berichte, auf dem invoiceninja-mcp-Server.

Invoice Ninja · Claude Code

mcp-login-oauth

OAuth-2.1-Anmeldung im Browser für FastMCP-Server, deren Login ein Formular des dahinterliegenden Dienstes ist.

MCP-Server · Bibliothek

teamscale-mcp

MCP-Server, der die REST-API von Teamscale als Tools bereitstellt, als Container-Sidecar mit den Zugangsdaten des jeweiligen Clients.

MCP-Server

github-runner

Selbstgehostete GitHub-Actions-Runner mit isoliertem Docker-in-Docker pro Runner.

Infrastruktur

self-hosted-runner-selector

Wählt einen Self-Hosted-Runner, wenn verfügbar, sonst GitHub-Hosted.

Infrastruktur · Bibliothek

creem-grafana-bridge

Umsatz, Cashflow, Prognose und Auszahlungen von Creem-Shops als JSON-Zeitreihen für Grafana.

Infrastruktur

Spanwire

Dienst, über den KI-Agenten auf verschiedenen Rechnern einander Nachrichten schicken.

In Arbeit

TraureiseKommt bald

App, mit der Paare eigene Hochzeitswebsites erstellen und teilen können.

In Arbeit

04Beiträge zu Open Source

Wenn mir in einem Werkzeug, das ich täglich nutze, etwas fehlt oder kaputt ist, melde ich es dem Projekt oder reiche die Korrektur ein. Auf GitHub unter dem Konto Marceltov.

mailflow Offen

fix(imap): skip \Noselect folders in the backfill walk

mailflow Offen

Backfill tries to open \Noselect parent folders (Gmail nested labels → [NONEXISTENT] Unknown Mailbox)

mailflow Offen

Folder-status pass opens a fresh IMAP login per account every minute (~22k logins/day with 9 accounts)

Wishlist: alle Daten über die eigene API Vorschlag, offen

Nach der Absage an eine öffentliche API ein zweiter Vorschlag, der die Pflege nicht vermehrt: Die App liest und schreibt ihre Daten nur noch über ihre eigene /api, und andere Clients nutzen genau diese. Regeln, wer was sehen darf, stehen dann an einer Stelle statt verteilt auf Seiten, Formulare und Komponenten.

Trilium Notes Übernommen

Notizen, die über den eingebauten MCP-Server oder den Chat geschrieben werden, bekommen jetzt ihre Verlinkungen. Vorher fehlten sie bei Rückverweisen und auf der Notizkarte.

Wishlist: öffentliche API Vorschlag, abgelehnt

Vorschlag für eine kleine Schnittstelle mit persönlichen Schlüsseln, damit andere selbst gehostete Apps Wunschlisten lesen können. Der Betreuer hat sich dagegen entschieden, weil sie ihm zu viel Pflege bedeutet.

Trilium: Anmeldung per OAuth Vorschlag, offen

Vorschlag, dass sich Clients am eingebauten MCP-Server nur mit der Adresse anmelden, ohne Token im Klartext in der Konfiguration.

Invoice Ninja: CI prüft den falschen Stand Behoben

Die Tests eines Pull Requests liefen gegen den Entwicklungszweig statt gegen die Änderung selbst. Gemeldet und vom Projekt behoben.

Trilium: Notizen in Teilen ändern Vorschlag, offen

Vorschlag für vier Verbesserungen am eingebauten MCP-Server: Teiländerungen an Textnotizen, Versionsprüfung beim Schreiben, Links beim Lesen und Fundstellen in der Suche.

AutoKuma: Wartezeit beim Verbinden einstellbar Offen

Mit vielen AutoKuma-Instanzen wurde jeder Neustart von Uptime Kuma zum Sturm aus Neuverbindungen: Keine Instanz bekam ihren Stand in der festen Wartezeit von 9 Sekunden, alle verbanden sich neu, und Kuma prüfte über zweieinhalb Stunden keinen einzigen Monitor. Die Wartezeit ist jetzt einstellbar, der Standard bleibt wie bisher.

Invoice Ninja Übernommen

Ein Vertragstest, der die ganze dokumentierte API gegen ihre OpenAPI-Beschreibung prüft, und die Korrektur der Abweichungen, die er gefunden hat.

giftmanager: Daten überleben den Neustart Übernommen

Nach jedem Neustart des Containers waren alle Geschenkideen und Nutzer weg. Die Daten liegen jetzt in einem eigenen Verzeichnis, das sich einhängen lässt. Der Betreuer hat den Code in die Docker-Version übernommen.

HortusFox: App startet vor der Datenbank Behoben

Mit Docker Compose startete die App, bevor MariaDB bereit war, und zeigte beim Anmelden nur einen Datenbankfehler. Gemeldet mit der Ursache; die App wartet seitdem auf die Datenbank.

SCM-Manager: fehlender Standardzweig Behoben

Ein neues Git-Repository ohne Initialisierung zeigte in der Oberfläche einen Standardzweig, hatte aber keinen, und Klonen mit JGit schlug fehl. Gemeldet und in Version 2.46 behoben.

Patterns in Software Engineering: Zusammenfassung Übernommen

Die gemeinsame Zusammenfassung der TUM-Vorlesung für die Prüfung im Wintersemester 2017/18 aktualisiert: Taxonomien, REST und objektorientierte Modellierung.

05Weiteres

Forschung & Studium

HyperCRL

Erweiterung von „Continual Model-Based Reinforcement Learning with Hypernetworks“.

bark-ml

Fork des ML-Simulators BARK für autonomes Fahren, mit umfangreichen eigenen Beiträgen.

Game Jams

Think-fast-Punch-hard

ARD-Gamejam-2026-Beitrag (Unity/C#) mit Live-Wikipedia-Quiz.

Mehr Projekte auf GitHub