Rückblick, geschrieben ein paar Tage nach meinem letzten Kobe-Commit.
Kobe: was ich als Founding Engineer eigentlich gebaut habe
Die Launchpad-Serie erzählt die drei Wochen von innen. Dieser Post erklärt das Produkt: einen Agenten, der in deinem eigenen Netzwerk den besten Weg zu einer Person findet, und meinen Teil daran.
Du willst mit einer bestimmten Person reden. Irgendwer in deinem Netzwerk kennt sie, du weißt nur nicht, wer. Kobe findet genau diesen Weg.
Kobe ist ein Startup aus Berlin mit drei Leuten. Nils ist CEO, René CTO, ich bin Founding Engineer. Gegründet haben die beiden, gebaut haben René und ich das Produkt zusammen, er hat etwas mehr von der Planung nach außen gemacht. In der Launchpad-Serie steht, wie sich die drei Wochen in Pennsylvania angefühlt haben. Hier geht es nur um das, was wir gebaut haben.
So funktioniert Kobe, und so läuft auch die Demo auf dieser Seite, mit Beispieldaten. Du gibst eine Mission ein, zum Beispiel drei Referenzgespräche für jemanden buchen. Kobe zerlegt das, sucht passende Personen und schaut dann in dein eigenes Netzwerk: LinkedIn, E-Mail, Slack, Notizen. Daraus rankt es warme Wege, also wer dich am ehesten vorstellen kann und warum. Für jeden Weg schreibt Kobe zwei Texte: die Bitte an deinen Kontakt und eine Nachricht, die er direkt weiterleiten kann. Verschickt wird nichts, bevor du es bestätigt hast. Und deine Rohdaten bleiben auf deinem Rechner.
Live-Demo · Beispieldaten
Ask Kobe
Your personal Superconnector
Talk to a payments lead at a European fintech
Introduce me to someone who leads payments at a European fintech. We want feedback on our checkout API before the pilot.
I found three warm paths to payments leaders. Lena is your strongest: she led Finlo’s seed round and you talk to her often. Review the plan and the drafts below.
Talk to a payments lead at a European fintech
The Plan
Ask Lena on WhatsApp to introduce you to Tobias, with a short message they can forward.
Ask David on LinkedIn to introduce you to Mara, with a short message they can forward.
1 more contact path included below.
After you approve, Kobe sends the messages and follows up to arrange your conversations. For introduction paths, Kobe waits until you are connected before contacting the target directly.
Approves all current message drafts in this Mission. Sends after a 30 second countdown.
Lena led Finlo’s seed round. You have exchanged 14 messages with her since August.
Introduction request To Lena on WhatsApp Hi Lena, hope Lisbon was good!
Hi Lena, hope Lisbon was good! Quick ask: could you introduce me to Tobias at Finlo? We open our checkout API pilot in January and his view on European payment flows would help us a lot. I wrote a short note below that you can forward. Thank you!
Forwardable message
Hi Tobias, I’m Alex, building checkout infrastructure at Northbeam. Lena suggested you as the person to ask about payment flows in Europe. Would you have 20 minutes in the next two weeks? Happy to share what we learned from 40 merchant interviews.
Sent as a separate message immediately after your request.David and Mara worked together for four years. You met David at two founder dinners this autumn.
Introduction request To David on LinkedIn Hi David, good to see you at the dinner last week.
Hi David, good to see you at the dinner last week. Would you be open to introducing me to Mara? We’d love her take on our checkout API before the pilot. A short note to forward is below.
Forwardable message
Hi Mara, I’m Alex from Northbeam. David mentioned you know payments at scale better than anyone. Could we borrow 20 minutes of your time for feedback on our checkout API?
Sent as a separate message immediately after your request.Jonas is a first-degree connection and replied to you within a day last time.
Outreach message To Jonas on LinkedIn Hi Jonas, it’s been a while since the API meetup.
Hi Jonas, it’s been a while since the API meetup. We’re opening a checkout API pilot in January and I’d value your feedback as someone who ships payments products. Up for a 20 minute call next week?
Sent. I’ll follow up with Lena and David on Thursday if they haven’t replied, and tell you as soon as an introduction is made.
Damit das geht, gibt es drei Teile. Eine Web-App mit Backend auf Cloudflare Workers, Postgres als einziger Datenspeicher, Row-Level Security. Eine Desktop-App für den Mac, die die Quellen lokal liest. Und einen Kanal dazwischen, über den Server und Mac sich unterhalten.
Mein Teil im Oktober, in Zahlen: 509 von 918 Commits im v3-Repository, 157 von 750 in der Desktop-App. Fast alle davon mit Claude Code als Co-Autor, ich habe in mehreren Worktrees mit Agenten parallel gearbeitet und die Ergebnisse geprüft und gemergt.
Ein paar Dinge im Detail. Am Kanal zwischen Cloud und Mac habe ich viel gearbeitet: Ein Mac, der sich neu verbindet, übernimmt seinen unterbrochenen Import, statt neu anzufangen. Ein Mac, der Schlaf ankündigt, gilt als schlafend und nicht als verloren. Alte Verbindungen werden über eine Generationsnummer ausgesperrt. Anlass für eine Änderung war ein Kunden-Mac, der in einer Stunde 94 Mal eine 409-Ablehnung bekam. Seitdem nimmt der Server eine wiederholte Abschlussmeldung einmal an und ignoriert die Kopien.
Dann der Agent. Ich habe vorgeschlagen und gebaut, dass unser Chat-Agent kein eigenes Werkzeug kennt, sondern jedes Tool vom MCP-Server holt, den René angelegt und ich erweitert habe. So sehen Chat und externe Clients wie Claude genau dieselben Tools. 160 Unit-Tests laufen gegen ein Fake-Modell und prüfen, dass vor dem Versand immer jemand bestätigt und ein Tool erst läuft, wenn sein Skill geladen ist. Ohne ein einziges echtes Modell aufzurufen.
Dazu habe ich eine Staff-Konsole für unser Team gebaut: pro Kunde der Zustand und eine Ursachenkette in Klartext, dazu Aktionen auf dem Kunden-Mac, die eine Begründung brauchen und in einem Journal landen. Spec und Prototyp kamen von mir, Teile haben Agenten parallel gebaut, gemergt habe ich. Und an einem Tag das Pitchdeck.
Was ich mitnehme: Erst messen, dann fixen. Im September habe ich bei einem Verbindungsproblem nicht geraten, sondern gezählt, und kam auf einen erzwungenen Reconnect etwa alle 314 Sekunden. Zweitens: Ein Agent, der Nachrichten in deinem Namen verschickt, braucht eine Freigabe, die man testen kann. Drittens: Mit Agenten parallel zu arbeiten geht nur, wenn jede Datei genau einen Besitzer hat.
Tools und Skills: TypeScript, Hono auf Cloudflare Workers mit Durable Objects, Postgres mit Drizzle und Row-Level Security, Electron mit React, WebSockets, MCP, Playwright und Node-Tests, ADRs und Claude Code mit Git-Worktrees.
Im März hatte ich schon einmal für Kobe gearbeitet, unterwegs auf dem Roadtrip: an einer Agenten-Pipeline in Python, die aus Slack-Daten einen Skill-Report baut. Das Produkt war damals ein ganz anderes. So schnell ändert sich das in einem Startup.