Warum ich angefangen habe, mir selbst einen KI-Assistenten zu bauen.
Seit ein paar Monaten läuft auf einem der Firmenserver ein Ding namens Jarvis. In verschiedenen Varianten. Erst OpenClaw… und dann irgendwann stumpf Claude Code.
Kein Cloud-Abonnement, kein SaaS-Anbieter, kein monatlicher Preis auf einer Kreditkartenabrechnung. Jarvis gehört mir, und kennt meinen Alltag erheblich besser als sonst jemand 🤣.
Da gingen einige Stunden herein. Das war quasi meine kleine Modelleisenbahn, an der ich nächtlich schraubte 😉.
Was Jarvis tut, ist unspektakulär — und die Unspektakularität ist das coole.

Jeden Morgen um halb acht bekomme ich ein Briefing: was heute im Kalender steht, welche Mails reingekommen sind, wie meine Stundenbuchung diese Woche aussieht, was ich gestern als offen markiert hatte. Kein Öffnen von fünf verschiedenen Apps. Einfach Telegram aufmachen, lesen.
Alle halbe Stunde schaut Jarvis in meine Mailbox, bewertet, was wichtig ist, notiert es — und schweigt, wenn nichts zu sagen ist. Das klingt trivial. Wer das einmal erlebt hat, weiß, dass „schweigen wenn nichts zu sagen ist“ die seltenste und wertvollste Eigenschaft eines Assistenten ist 🤭.
Abends archiviert er, was wir besprochen haben. Was entschieden wurde, was offengeblieben ist, wen ich anrufen wollte.
Was entstanden ist
- Am Flughafen stehen, der Flieger kommt zu spät an, man braucht den Anschlussflieger? Jarvis kannte meinen Kalender, hatte Webzugriff, verstand die Zusammenhänge – und konnte mir auf kurze Anfrage hin ansagen, zu welchem Gate ich rennen musste 🤣, während ich rannte.
- Beim Nachrichtenlesen über eine Linux-Sicherheitslücke, mal eben eine Sprachnachricht an Jarvis, zu checken ob *beide* Firmenserver bei einem Kernel-Update auch definitiv neu starten würden (und dies bestätigt bekommen).
- Im Morgenbriefing eine Frage, ob sich der Termin in Linz nicht damit beiße, dass ich heute Kinder im Haus hätte – ob der Arbeitstermin nicht verschoben werden müsse? Gotcha!! (Cool hier auch die Priorisierung, nämlich die implizite Entscheidung, dass er mir vorschlug, den Arbeitstermin zu verschieben und nicht die Kinder 🤣.
- Am Ende eines Tages erinnert werden, dass ich meine Zeiterfassung für heute verschlampt habe?
In Summe unbezahlbar 😉 .
Warum selbst bauen?
Weil die Wünsche, als es einmal so halbwegs lief, immer größer wurden 🥳. Und das ging am Besten, indem ich das Framework, das Dinge in Claude einspielte, selbst in die Hand nahm.
KI-Assistenten haben einen strukturell interessanten Aspekt: sie starten bei jedem Gespräch bei Null. Wörtlich. Sie wissen nicht, dass ich gerade in einem FFG-Projekt mitmache und dabei einen bestimmten Ansprechpartner habe. Sie wissen nicht, dass ich Rechnungen zu einem bestimmten Zeitpunkt im Monat schreibe. Sie wissen nicht, was ich gestern entschieden habe. Sie haben nur einen Riiiiesen-Haufen Dateien und sind durchaus motiviert, sich einzuarbeiten.
Mein Setup ist anders. Jarvis hat ein Langzeitgedächtnis — als strukturierte Markdown-Dateien des Firmenwissens, die er selbst pflegt, wenn ich ihm Gesprächsnotizen zu Terminen mache. Ähnlich wie es sich manche andere mit Obsidian gebaut haben.
Jarvis hat Zugriff auf meine Mails, meinen Kalender, meine Zeiterfassung. Er hat sich unter meiner Anleitung Skripte gebaut, mit denen er aus der Zeiterfassung Rechnungen machen kann.

Er durchsucht seine eigenen Notizen und alle Projektnotizen semantisch, wenn ich ihn etwas frage. Und er läuft auf Anthropics Claude — einem Modell, das gut genug ist, um Aufgaben zu erledigen, die viel dicker sind, als dass sie in einen Telegram-Chat passen 😉.
Was es technisch ist
Das Fundament war ein Open-Source-Projekt: ein Telegram-Bot, der Claude Code als Backend nutzt. Ich habe einen Fork davon gebaut, damit ich frei ändern kann. Ich wünschte mir die Fähigkeit von Sprachnachrichten. Und zwar konkret so, wie _ich_ es wollte, nämlich so, dass das, was ich spreche vom Bot nochmal untendrunter
*geschrieben* wird, damit ich es per Textsuche wiederfinden würde. Und so, dass Jarvis unter seine Sprachantwort ebenso den Text transkribiert, aus gleichem Grund. Ich wollte eine linguistische Datenbank, mit der Jarvis Dinge findet, ohne dass die exakte Schreibweise stimmt und ohne dass er weiß, welche Dateien er durchsuchen muss. Ich wollte, dass Jarvis sich selbst umbauen kann (ich habe keine Zeile Code geschrieben).
Was ist es technisch genau?
Letztlich, unter der Haube, ist das stumpf Claude Code.
Den ich fernsteuere. Dem ich sage er heiße Jarvis. Der tausend Prozessbeschreibungen unter der Haube hat. Der daraus die Firmenserverstruktur kennt. Der alle internen Programmierrichtlinien kennt. Der alle Projekte ausgecheckt vor der Flinte hat und bearbeiten könnte (selten genutzt, eher zum schnellen Nachschlagen, da man in Telegram Software nicht testen könnte 🤷♂️ ). Der meine Office365-Token hat. Und Zugrang zu meinen Dateien. Und Zugang zu einer linguistisch indizierten Datenbank der wichtigsten Notizen… etc. .

Ferngesteuert von einem Python-Frontend, das ein Interface zu Telegram bietet und ein paar Infrastrukturen bietet.
Aber im Summe: immernoch Claude Code.
Den ich als Programm starten kann. Der die volle Power von Claude Codes 200Eur/Monat-Abo hat. Den ich mit Anthropic verbinden kann. Und der danach einfach läuft.
So wie Cowork auf Eurem Rechner. Nur besser, fand ich 🌞. Ist halt auf mich angepasst.
Was ich gelernt habe
Der wertvollste Teil war, Jarvis sauber Regeln zu geben. „Prozessbeschreibung“ heißt das im Qualitätsmanagement. Die Strukturen müssen so sein, dass sich täglich ein neuer Mitarbeiter einarbeiten kann – weil eine KI nach Einschalten erstmal *nichts* mehr weiß.
Das ist lästig – aber flöt, flöt, flöt, … wer mich kennt, weiß, dass ich das auch gar nicht sooooo uncoool finde 🤣🌞.
—
Das Framework kann sich jeder herunterladen: *Jarvis* basiert auf https://gitlab.com/brinkhaus/claude-code-telegram-bh, meinem öffentlichen Fork eines Open-Source-Projekts.
Der Code ist verfügbar — mit der ausdrücklichen Warnung, dass das kein Out-of-the-box-Produkt ist und nicht werden soll. Vom „Produkt“ habe ich mit Blick auf die Nutzungsbedingungen von Anthropic ausdrücklich Abstand gehalten. Aber wer viel mit KI macht (wie ich), der kann Claude Code den Link geben, bitten, auf dem Server XYZ damit eine Instanz aufzusetzen – und danach mal gucken, wie er es sich einrichtet. Im Kern muss dann definiert werden, wo welche Dateien liegen, wie der Speicher des Bots organisiert werden soll, was er schreiben darf und was nicht. Etc. . Aber das müsstet ihr mit allen möglichen anderen Tools auch. Und da das hier ein Open Source Framework ist, hat das Ding seinen eigenen Frameworkcode und kann den einfach selbst ändern. Ohne freilich den Kern – Claude Code – anzufassen.
Viel Spaß!