[{"data":1,"prerenderedAt":305},["ShallowReactive",2],{"blog-de-meetre-private-meeting-transcripts":3},{"id":4,"title":5,"body":6,"cover":290,"date":291,"description":292,"draft":293,"extension":294,"locale":295,"meta":296,"navigation":177,"path":297,"seo":298,"stem":299,"tags":300,"__hash__":304},"blog\u002Fblog\u002Fde\u002Fmeetre-private-meeting-transcripts.md","Meetre — Meeting-Transkripte, die deinen Mac nie verlassen",{"type":7,"value":8,"toc":284},"minimark",[9,21,24,29,45,60,67,70,76,80,83,143,146,234,241,245,256,259,262,266,269,272,280],[10,11,12,13,20],"p",{},"Ich sitze in vielen Meetings, und wie ich sie dokumentiere, hat mich nie zufrieden gemacht. Halb zuhören und nebenbei Notizen kritzeln heißt, das eigentliche Gespräch zu verpassen. Die Aufnahme einem Cloud-Dienst geben heißt, stillschweigend zu akzeptieren, dass alles aus diesem Raum jetzt auf dem Server von jemand anderem liegt. Also habe ich ",[14,15,19],"a",{"href":16,"rel":17},"https:\u002F\u002Fgithub.com\u002Fmaxlkatze\u002Fmeetre",[18],"nofollow","Meetre"," gebaut.",[10,22,23],{},"Meetre nimmt ein Meeting auf deinem Mac auf und macht daraus ein sauberes, nach Sprechern sortiertes und zusammengefasstes Transkript. Der ganze Sinn steckt in einem Wort: lokal. Nichts verlässt deinen Rechner. Kein Upload, kein Konto, keine Nutzungsbedingungen, die über deine Worte entscheiden.",[25,26,28],"h2",{"id":27},"die-modelle-die-arbeiten","Die Modelle, die arbeiten",[10,30,31,32,36,37,40,41,44],{},"Die Transkription läuft auf Whisper ",[33,34,35],"code",{},"large-v3-turbo",", beschleunigt über Apples MLX-Framework, damit es auf Apple Silicon wirklich schnell ist. Wer das große Modell nicht braucht, geht auf ",[33,38,39],{},"small"," oder ",[33,42,43],{},"medium"," runter und spart Platz und Zeit.",[10,46,47,48,51,52,55,56,59],{},"Die Zusammenfassungen kommen von einem lokalen LLM, das das Transkript liest und festhält, was tatsächlich entschieden wurde. Standardmäßig steht das Modell auf ",[33,49,50],{},"auto"," und nimmt einfach das größte, das in deinen RAM passt: ein MacBook mit 8 GB landet bei ",[33,53,54],{},"qwen3.5-4b",", eine 32-GB-Maschine bekommt ",[33,57,58],{},"qwen3.5-35b",", und du musst keinen Gedanken daran verschwenden. Die aktuelle Generation ist Qwen3.5, ein hybrides Reasoning-Modell, das erst durch das Meeting denkt und dann schreibt, plus Gemma 4 für die beste mehrsprachige Ausgabe. Das versteckte Nachdenken wird aus dem aussortiert, was du behältst, übrig bleiben vier saubere Abschnitte: Zusammenfassung, Entscheidungen, Aufgaben, offene Fragen.",[10,61,62,63,66],{},"Auf die Sprechertrennung bin ich still ein bisschen stolz. Meetre nimmt dein Mikrofon und den Systemton als getrennte Spuren auf und kann so dich und alle in deinem Raum schon von den Leuten am anderen Ende unterscheiden, bevor überhaupt ein Modell läuft. Danach läuft ",[33,64,65],{},"pyannote","-Diarisierung auf jeder Spur einzeln und trennt die einzelnen Stimmen pro Seite. Saubere Einzelspuren zu diarisieren ist deutlich zuverlässiger, als hinterher einen Mono-Mix zu entwirren, und das Transkript liest sich wie ein Drehbuch statt wie eine Textwand.",[10,68,69],{},"Jedes dieser Modelle läuft auf deiner eigenen Hardware. Die Cloud kommt nie ins Spiel.",[71,72,73],"blockquote",{},[10,74,75],{},"Das beste Datenschutz-Feature ist das, über das man nie nachdenken muss. Bei Meetre verlassen die Daten den Raum einfach nie.",[25,77,79],{"id":78},"steuerung-über-das-terminal","Steuerung über das Terminal",[10,81,82],{},"Die Installation ist eine Zeile. Sie lädt ein lokales, verschiebbares Python und richtet die Berechtigungen für dich ein:",[84,85,90],"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-bash shiki shiki-themes github-light github-dark","cd ~ && curl -fsSL https:\u002F\u002Fgithub.com\u002Fmaxlkatze\u002Fmeetre\u002Farchive\u002Frefs\u002Fheads\u002Fmain.tar.gz | tar -xz && cd meetre-main && bash install.sh\n","bash","",[33,91,92],{"__ignoreMap":89},[93,94,97,101,105,109,113,116,119,123,126,129,131,133,136,138,140],"span",{"class":95,"line":96},"line",1,[93,98,100],{"class":99},"sj4cs","cd",[93,102,104],{"class":103},"sZZnC"," ~",[93,106,108],{"class":107},"sVt8B"," && ",[93,110,112],{"class":111},"sScJk","curl",[93,114,115],{"class":99}," -fsSL",[93,117,118],{"class":103}," https:\u002F\u002Fgithub.com\u002Fmaxlkatze\u002Fmeetre\u002Farchive\u002Frefs\u002Fheads\u002Fmain.tar.gz",[93,120,122],{"class":121},"szBVR"," |",[93,124,125],{"class":111}," tar",[93,127,128],{"class":99}," -xz",[93,130,108],{"class":107},[93,132,100],{"class":99},[93,134,135],{"class":103}," meetre-main",[93,137,108],{"class":107},[93,139,88],{"class":111},[93,141,142],{"class":103}," install.sh\n",[10,144,145],{},"Danach hält sich das CLI dezent zurück:",[84,147,149],{"className":86,"code":148,"language":88,"meta":89,"style":89},"# Aufnahme mit Namen starten\nmeetre record --name \"Standup\"\n\n# Eine vorhandene Audiodatei neu transkribieren\nmeetre transcribe call.mp3\n\n# Das letzte Transkript in die Notizen schicken\nmeetre summarize\n\n# Einstellungen ansehen oder ändern (Modell, Sprache, Schalter)\nmeetre config\n",[33,150,151,157,172,179,185,196,201,207,215,220,226],{"__ignoreMap":89},[93,152,153],{"class":95,"line":96},[93,154,156],{"class":155},"sJ8bj","# Aufnahme mit Namen starten\n",[93,158,160,163,166,169],{"class":95,"line":159},2,[93,161,162],{"class":111},"meetre",[93,164,165],{"class":103}," record",[93,167,168],{"class":99}," --name",[93,170,171],{"class":103}," \"Standup\"\n",[93,173,175],{"class":95,"line":174},3,[93,176,178],{"emptyLinePlaceholder":177},true,"\n",[93,180,182],{"class":95,"line":181},4,[93,183,184],{"class":155},"# Eine vorhandene Audiodatei neu transkribieren\n",[93,186,188,190,193],{"class":95,"line":187},5,[93,189,162],{"class":111},[93,191,192],{"class":103}," transcribe",[93,194,195],{"class":103}," call.mp3\n",[93,197,199],{"class":95,"line":198},6,[93,200,178],{"emptyLinePlaceholder":177},[93,202,204],{"class":95,"line":203},7,[93,205,206],{"class":155},"# Das letzte Transkript in die Notizen schicken\n",[93,208,210,212],{"class":95,"line":209},8,[93,211,162],{"class":111},[93,213,214],{"class":103}," summarize\n",[93,216,218],{"class":95,"line":217},9,[93,219,178],{"emptyLinePlaceholder":177},[93,221,223],{"class":95,"line":222},10,[93,224,225],{"class":155},"# Einstellungen ansehen oder ändern (Modell, Sprache, Schalter)\n",[93,227,229,231],{"class":95,"line":228},11,[93,230,162],{"class":111},[93,232,233],{"class":103}," config\n",[10,235,236,237,240],{},"Wer sich keine Flags merken will, nimmt ",[33,238,239],{},"meetre cli"," und wählt aus einem interaktiven Textmenü.",[25,242,244],{"id":243},"oder-einfach-die-menüleiste","Oder einfach die Menüleiste",[10,246,247,248,251,252,255],{},"Wenn das Terminal nicht dein Ding ist: Das ",[33,249,250],{},"✦","-Symbol sitzt in der Menüleiste und kann alles, was das CLI kann. Ein Klick öffnet ein Einstellungs-Popup für den Meeting-Namen, das Transkriptions- und das Zusammenfassungs-Modell, die Sprache sowie Schalter für Systemton und Sprechererkennung. Die Modellauswahl ist auf deine Maschine zugeschnitten: zu große Modelle sind ausgegraut, geladene bekommen ein Häkchen, und die Reasoning-Modelle ein kleines Hirn. Während es arbeitet, siehst du den Live-Status (Aufnahmezeit, einen Download-Balken, ein drehendes Transkribiere…), und am Ende kommt eine native Benachrichtigung, dass das Meeting fertig ist. Es aktualisiert sich per ",[33,253,254],{},"git pull"," bei jedem Start, startet auf Wunsch beim Anmelden und bleibt sonst unsichtbar, bis du es brauchst.",[10,257,258],{},"Der Systemton wird direkt über ScreenCaptureKit aufgenommen, du brauchst also keinen BlackHole- oder Loopback-Treiber — genau das, was „nimm mal den Call auf\" sonst in eine halbe Stunde Audio-Routing-Gefummel verwandelt.",[10,260,261],{},"Heraus kommt ein Markdown-Transkript mit Zeitstempeln und Sprecher-Labels, ein MP3-Backup der Aufnahme und eine Notiz in der Notizen-App.",[25,263,265],{"id":264},"warum-lokal-und-warum-offen","Warum lokal, und warum offen",[10,267,268],{},"Privatsphäre ist der naheliegende Grund, und er stimmt. Der leisere Grund heißt Besitz. Ein Werkzeug, das auf der eigenen Hardware läuft, ist kein Abo mehr, das man mietet, sondern etwas, das einem bleibt. Es funktioniert im Flugzeug. Es funktioniert, wenn der Dienst, von dem man abhängt, gerade ausfällt. Es funktioniert in fünf Jahren noch, wenn das Startup hinter der Cloud-Alternative längst übernommen und abgeschaltet wurde. Apple Silicon ist heute schnell genug, dass „Audio an einen Server schicken\" eine Entscheidung ist und keine Voraussetzung, und ich treffe lieber die andere.",[10,270,271],{},"Es läuft ab macOS 13 auf Apple Silicon (M1 bis M5), will am unteren Ende 8 GB RAM und etwa 6 GB Plattenplatz für die Modelle und ist standardmäßig auf Deutsch eingestellt, weil die meisten meiner Meetings deutsch sind. Andere Sprachen und automatische Erkennung sind einen Schalter entfernt. Schnell ist es auch: Ein 30-Minuten-Meeting ist auf den meisten M-Macs in zwei bis vier Minuten transkribiert, je neuer der Chip, desto flotter.",[10,273,274,275,279],{},"Das Ganze ist Open Source unter der MIT-Lizenz, du kannst also genau nachlesen, was es mit deinem Audio macht, bevor du ihm ein einziges Meeting anvertraust. ",[14,276,278],{"href":16,"rel":277},[18],"Es liegt auf GitHub."," Ich habe es zuerst für mich selbst gebaut, was meistens der einzig ehrliche Grund ist, überhaupt etwas zu bauen.",[281,282,283],"style",{},"html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":89,"searchDepth":159,"depth":159,"links":285},[286,287,288,289],{"id":27,"depth":159,"text":28},{"id":78,"depth":159,"text":79},{"id":243,"depth":159,"text":244},{"id":264,"depth":159,"text":265},null,"2026-06-17","Ich habe ein Open-Source-Tool für den Mac gebaut, das ein Meeting aufnimmt, mit Whisper transkribiert, die Sprecher erkennt und mit Qwen zusammenfasst — alles lokal, ohne Cloud, ohne Konto.",false,"md","de",{},"\u002Fblog\u002Fde\u002Fmeetre-private-meeting-transcripts",{"title":5,"description":292},"blog\u002Fde\u002Fmeetre-private-meeting-transcripts",[19,301,302,303],"Tools","Privatsphäre","macOS","vSKRaRvoVI4iGC8TPDU-mGFOI-Kva-mq1FTapzBHBU4",1781691286826]