[{"data":1,"prerenderedAt":2310},["ShallowReactive",2],{"blog-/blog/vibe-coding/2026-01-28-claude-code-tips-from-basics-to-advanced":3,"/blog/vibe-coding/2026-01-28-claude-code-tips-from-basics-to-advanced-surround":1369,"/blog/vibe-coding/2026-01-28-claude-code-tips-from-basics-to-advanced-related":1380},{"id":4,"title":5,"author":6,"body":7,"category":1352,"date":1353,"description":1354,"extension":1355,"featured":1356,"image":1357,"meta":1358,"navigation":608,"path":1359,"seo":1360,"stem":1361,"tags":1362,"__hash__":1368},"blog/blog/vibe-coding/2026-01-28-claude-code-tips-from-basics-to-advanced.md","32 Claude Code Tipps: Von den Grundlagen bis zur Profi-Ebene","Wilson",{"type":8,"value":9,"toc":1309},"minimark",[10,14,18,21,26,29,40,43,47,58,64,67,70,74,77,80,87,90,96,99,106,109,113,116,127,134,138,141,145,148,192,195,199,202,303,322,326,333,340,346,349,355,358,362,365,372,485,492,497,504,507,511,514,517,521,524,531,534,538,541,544,548,559,660,663,667,670,676,679,683,686,692,698,701,705,708,765,772,776,779,782,786,789,795,806,810,813,828,834,837,841,844,850,854,857,861,868,872,875,899,902,906,909,913,920,923,927,930,960,963,1117,1124,1128,1131,1135,1142,1154,1157,1161,1164,1190,1193,1197,1203,1210,1214,1217,1223,1227,1230,1256,1260,1263,1266,1270,1273,1276,1280,1283,1286,1290,1293,1299,1302,1305],[11,12,5],"h1",{"id":13},"_32-claude-code-tipps-von-den-grundlagen-bis-zur-profi-ebene",[15,16,17],"p",{},"Claude Code ist für viele Entwicklerinnen und Entwickler schnell zu einem zentralen Bestandteil des Workflows geworden. Doch die meisten kratzen kaum an der Oberfläche dessen, was damit möglich ist. Dieser Leitfaden enthält 32 praktische Tipps — von kleinen Komfortverbesserungen bis hin zu fortgeschrittenen Techniken wie dem Betrieb von Claude Code in Containern und der Orchestrierung mehrerer KI-Modelle.",[19,20],"hr",{},[22,23,25],"h2",{"id":24},"tipp-0-passe-deine-statuszeile-an","Tipp 0: Passe deine Statuszeile an",[15,27,28],{},"Du kannst die Statuszeile von Claude Code so anpassen, dass nützliche Informationen auf einen Blick erscheinen — aktuelles Modell, Verzeichnis, Git-Branch, Anzahl uncommitteter Dateien, Sync-Status und ein Fortschrittsbalken für die Token-Nutzung. Eine zweite Zeile kann deine letzte Nachricht anzeigen, um den Kontext schnell wiederherzustellen:",[30,31,36],"pre",{"className":32,"code":34,"language":35},[33],"language-text","Opus 4.5 | dir:Daft | fix/colab-pydantic-pickle (0 files, synced) | █░░░░░░░░░ 12% of 200k tokens\nLast: Okay, und diesen Teil verstehe ich nicht ganz. Was ist Type Checking und warum nutzen wir es hier?\n","text",[37,38,34],"code",{"__ignoreMap":39},"",[15,41,42],{},"Das ist besonders nützlich, um die Kontextnutzung zu überwachen und sich daran zu erinnern, worum es in einer Konversation ging, wenn du zwischen Tabs wechselst.",[22,44,46],{"id":45},"tipp-1-sprich-mit-claude-code-per-stimme","Tipp 1: Sprich mit Claude Code per Stimme",[15,48,49,50,57],{},"Spracheingabe ist für die meisten Menschen deutlich schneller als Tippen. Unter macOS funktionieren lokale Transkriptionstools wie ",[51,52,56],"a",{"href":53,"rel":54},"https://superwhisper.com/",[55],"nofollow","superwhisper",", MacWhisper oder quelloffene Alternativen problemlos. Selbst wenn die Transkription Fehler enthält, ist Claude klug genug, deine Absicht zu interpretieren.",[30,59,62],{"className":60,"code":61,"language":35},[33],"![Falsch transkribierte Spracheingabe wird korrekt interpretiert](images/claude-code-tips/voice-transcription-mistakes.png)\n",[37,63,61],{"__ignoreMap":39},[15,65,66],{},"In diesem Beispiel wurden falsch transkribierte Wörter wie „ExcelElanishMark\" und „advast\" korrekt als „exclamation mark\" und „Advanced\" interpretiert.",[15,68,69],{},"Stell es dir wie das Senden von Sprachnachrichten an eine Kollegin oder einen Kollegen vor. Du brauchst kein perfektes Diktat — sprich einfach natürlich. Wenn du dir den Raum mit anderen teilst, reicht auch leises Sprechen in die Kopfhörer.",[22,71,73],{"id":72},"tipp-2-zerlege-große-probleme","Tipp 2: Zerlege große Probleme",[15,75,76],{},"Das ist grundlegend. Es ist dasselbe Prinzip, das großartige Softwareentwicklerinnen und -entwickler ausmacht — Dekomposition.",[15,78,79],{},"Wenn Claude Code eine komplexe Aufgabe nicht in einem Rutsch lösen kann, zerlege sie. Ist eine Teilaufgabe immer noch zu schwierig, zerlege sie weiter. Mach so lange weiter, bis alles lösbar ist.",[15,81,82],{},[83,84],"img",{"alt":85,"src":86},"Direkter Ansatz — der Versuch, in einem Schritt von A nach B zu gelangen","images/claude-code-tips/breakdown-direct.png",[15,88,89],{},"Anstatt direkt von A nach B zu springen:",[15,91,92],{},[83,93],{"alt":94,"src":95},"Schrittweiser Ansatz — von A über A1, A2, A3 nach B","images/claude-code-tips/breakdown-steps.png",[15,97,98],{},"Geh von A nach A1, dann A2, dann A3, und schließlich nach B.",[15,100,101,105],{},[102,103,104],"strong",{},"Beispiel:"," Der Aufbau eines Sprachtranskriptionssystems umfasst das Herunterladen von Modellen, die Sprachaufnahme, die Audiotranskription, das Setzen des Cursors und die Benutzeroberfläche. Statt alles auf einmal anzugehen, baue jeden Teil unabhängig — einen eigenständigen Modell-Downloader, einen eigenständigen Recorder, einen eigenständigen Transkribierer — und setze sie anschließend zusammen.",[15,107,108],{},"Deine Problemlösungs- und Engineering-Fähigkeiten sind weiterhin enorm wichtig. Claude Code ist für sich genommen mächtig — strukturiertes Denken beim Einsatz macht es jedoch dramatisch effektiver.",[22,110,112],{"id":111},"tipp-3-nutze-git-und-github-cli-wie-ein-profi","Tipp 3: Nutze Git und GitHub CLI wie ein Profi",[15,114,115],{},"Lass Claude deine Arbeit mit Git und GitHub CLI übernehmen. Committen (kein händisches Schreiben von Commit-Nachrichten mehr), Branchen, Pullen, Pushen — alles davon.",[15,117,118,119,122,123,126],{},"Eine gute Praxis: ",[37,120,121],{},"pull"," automatisch erlauben, aber für ",[37,124,125],{},"push"," eine Bestätigung verlangen, da Push das Remote beeinflusst.",[15,128,129,130,133],{},"Bei der GitHub CLI (",[37,131,132],{},"gh",") gewöhn dir an, Draft-PRs zu erstellen. So kann Claude die PR-Erstellung mit geringem Risiko übernehmen — du überprüfst alles, bevor du den PR als bereit markierst.",[22,135,137],{"id":136},"tipp-4-kontext-ist-wie-milch-am-besten-frisch","Tipp 4: Kontext ist wie Milch — am besten frisch",[15,139,140],{},"Claude Code arbeitet am Anfang einer Konversation am besten. Wenn sich Kontext anhäuft, kann die Qualität nachlassen. Starte für jedes neue Thema eine neue Konversation — oder immer dann, wenn du einen Qualitätsabfall bemerkst.",[22,142,144],{"id":143},"tipp-5-bring-output-aus-deinem-terminal-heraus","Tipp 5: Bring Output aus deinem Terminal heraus",[15,146,147],{},"Kopieren aus dem Terminal ist nicht immer sauber. Hier sind bessere Wege:",[149,150,151,160,170,176,186],"ul",{},[152,153,154,159],"li",{},[102,155,156],{},[37,157,158],{},"/copy"," — Kopiert Claudes letzte Antwort als Markdown in die Zwischenablage",[152,161,162,165,166,169],{},[102,163,164],{},"Clipboard-Pipe"," — Bitte Claude, unter macOS ",[37,167,168],{},"pbcopy"," zu verwenden, um Output in die Zwischenablage zu schicken",[152,171,172,175],{},[102,173,174],{},"In Datei schreiben"," — Lass Claude Inhalte in eine Datei schreiben und sie in deinem Editor öffnen. Für mehr Präzision kannst du eine Zeilennummer angeben",[152,177,178,181,182,185],{},[102,179,180],{},"URLs öffnen"," — Bitte Claude, Links mit dem ",[37,183,184],{},"open","-Befehl im Browser zu öffnen",[152,187,188,191],{},[102,189,190],{},"GitHub Desktop"," — Bitte Claude, das aktuelle Repo in GitHub Desktop zu öffnen — besonders nützlich, wenn du in Nicht-Root-Verzeichnissen wie Worktrees arbeitest",[15,193,194],{},"Du kannst diese Wege auch kombinieren. Lass Claude zum Beispiel eine PR-Beschreibung in eine lokale Datei schreiben, bearbeite sie dort, prüfe sie selbst und füge sie dann zurück ein.",[22,196,198],{"id":197},"tipp-6-richte-terminal-aliase-ein","Tipp 6: Richte Terminal-Aliase ein",[15,200,201],{},"Da du nun viel Zeit im Terminal verbringst, richte dir kurze Aliase ein:",[30,203,207],{"className":204,"code":205,"language":206,"meta":39,"style":39},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","alias c='claude'\nalias ch='claude --chrome'\nalias gb='github'\nalias co='code'\nalias q='cd ~/Desktop/projects'\n","bash",[37,208,209,236,253,270,286],{"__ignoreMap":39},[210,211,214,218,222,226,229,233],"span",{"class":212,"line":213},"line",1,[210,215,217],{"class":216},"spNyl","alias",[210,219,221],{"class":220},"sTEyZ"," c",[210,223,225],{"class":224},"sMK4o","=",[210,227,228],{"class":224},"'",[210,230,232],{"class":231},"sfazB","claude",[210,234,235],{"class":224},"'\n",[210,237,239,241,244,246,248,251],{"class":212,"line":238},2,[210,240,217],{"class":216},[210,242,243],{"class":220}," ch",[210,245,225],{"class":224},[210,247,228],{"class":224},[210,249,250],{"class":231},"claude --chrome",[210,252,235],{"class":224},[210,254,256,258,261,263,265,268],{"class":212,"line":255},3,[210,257,217],{"class":216},[210,259,260],{"class":220}," gb",[210,262,225],{"class":224},[210,264,228],{"class":224},[210,266,267],{"class":231},"github",[210,269,235],{"class":224},[210,271,273,275,278,280,282,284],{"class":212,"line":272},4,[210,274,217],{"class":216},[210,276,277],{"class":220}," co",[210,279,225],{"class":224},[210,281,228],{"class":224},[210,283,37],{"class":231},[210,285,235],{"class":224},[210,287,289,291,294,296,298,301],{"class":212,"line":288},5,[210,290,217],{"class":216},[210,292,293],{"class":220}," q",[210,295,225],{"class":224},[210,297,228],{"class":224},[210,299,300],{"class":231},"cd ~/Desktop/projects",[210,302,235],{"class":224},[15,304,305,306,309,310,313,314,317,318,321],{},"Kombiniere sie mit Flags: ",[37,307,308],{},"c -c"," setzt deine letzte Konversation fort, ",[37,311,312],{},"c -r"," zeigt die letzten Konversationen zum Fortsetzen an. Das funktioniert mit allen Aliasen (",[37,315,316],{},"ch -c",", ",[37,319,320],{},"ch -r"," usw.).",[22,323,325],{"id":324},"tipp-7-verdichte-deinen-kontext-proaktiv","Tipp 7: Verdichte deinen Kontext proaktiv",[15,327,328,329,332],{},"Der Befehl ",[37,330,331],{},"/compact"," fasst deine Konversation zusammen, um Kontext freizugeben. Auto-Compaction wird ausgelöst, wenn der Kontext voll ist. Bei Opus 4.5 beträgt das Gesamtfenster 200k Tokens, wobei ~45k für Auto-Compaction reserviert sind und ~10 % von System-Prompt, Tools und Memory belegt werden.",[15,334,335,336,339],{},"Ein besserer Ansatz: Compaction manuell steuern. Bevor du neu startest, bitte Claude, ein ",[102,337,338],{},"Handoff-Dokument"," zu schreiben:",[341,342,343],"blockquote",{},[15,344,345],{},"„Schreibe ein Handoff-Dokument, das erklärt, was du versucht hast, was funktioniert hat und was nicht, damit der nächste Agent mit frischem Kontext dort weitermachen kann, wo du aufgehört hast.\"",[15,347,348],{},"Claude erstellt eine Zusammenfassungsdatei. Prüfe sie, bitte bei Bedarf um Anpassungen, starte dann eine neue Konversation und übergib einfach den Dateipfad:",[30,350,353],{"className":351,"code":352,"language":35},[33],"> experiments/system-prompt-extraction/NEXT-STEPS.md\n",[37,354,352],{"__ignoreMap":39},[15,356,357],{},"Der frische Agent kann von dort fortfahren. In nachfolgenden Konversationen bittest du ihn jeweils, das Dokument für die nächste Übergabe zu aktualisieren.",[22,359,361],{"id":360},"tipp-8-vervollständige-den-schreib-test-zyklus","Tipp 8: Vervollständige den Schreib-Test-Zyklus",[15,363,364],{},"Für autonome Aufgaben braucht Claude Code eine Möglichkeit, Ergebnisse zu verifizieren. Das Muster: Code schreiben, ausführen, Output prüfen, wiederholen.",[15,366,367,368,371],{},"Für interaktive Terminals (etwa beim Testen von Claude Code selbst) verwende ",[102,369,370],{},"tmux",":",[30,373,375],{"className":204,"code":374,"language":206,"meta":39,"style":39},"tmux kill-session -t test-session 2>/dev/null\ntmux new-session -d -s test-session\ntmux send-keys -t test-session 'claude' Enter\nsleep 2\ntmux send-keys -t test-session '/context' Enter\nsleep 1\ntmux capture-pane -t test-session -p\n",[37,376,377,397,413,434,443,462,470],{"__ignoreMap":39},[210,378,379,382,385,388,391,394],{"class":212,"line":213},[210,380,370],{"class":381},"sBMFI",[210,383,384],{"class":231}," kill-session",[210,386,387],{"class":231}," -t",[210,389,390],{"class":231}," test-session",[210,392,393],{"class":224}," 2>",[210,395,396],{"class":231},"/dev/null\n",[210,398,399,401,404,407,410],{"class":212,"line":238},[210,400,370],{"class":381},[210,402,403],{"class":231}," new-session",[210,405,406],{"class":231}," -d",[210,408,409],{"class":231}," -s",[210,411,412],{"class":231}," test-session\n",[210,414,415,417,420,422,424,427,429,431],{"class":212,"line":255},[210,416,370],{"class":381},[210,418,419],{"class":231}," send-keys",[210,421,387],{"class":231},[210,423,390],{"class":231},[210,425,426],{"class":224}," '",[210,428,232],{"class":231},[210,430,228],{"class":224},[210,432,433],{"class":231}," Enter\n",[210,435,436,439],{"class":212,"line":272},[210,437,438],{"class":381},"sleep",[210,440,442],{"class":441},"sbssI"," 2\n",[210,444,445,447,449,451,453,455,458,460],{"class":212,"line":288},[210,446,370],{"class":381},[210,448,419],{"class":231},[210,450,387],{"class":231},[210,452,390],{"class":231},[210,454,426],{"class":224},[210,456,457],{"class":231},"/context",[210,459,228],{"class":224},[210,461,433],{"class":231},[210,463,465,467],{"class":212,"line":464},6,[210,466,438],{"class":381},[210,468,469],{"class":441}," 1\n",[210,471,473,475,478,480,482],{"class":212,"line":472},7,[210,474,370],{"class":381},[210,476,477],{"class":231}," capture-pane",[210,479,387],{"class":231},[210,481,390],{"class":231},[210,483,484],{"class":231}," -p\n",[15,486,487,488,491],{},"Mit einem solchen Test kann Claude Code ",[37,489,490],{},"git bisect"," ausführen und automatisch jeden Commit testen, um den zu finden, der einen Bug eingeführt hat.",[493,494,496],"h3",{"id":495},"kreative-teststrategien","Kreative Teststrategien",[15,498,499,500,503],{},"Für Web-Apps kannst du Playwright MCP, Chrome DevTools MCP oder Claudes native Browser-Integration (",[37,501,502],{},"/chrome",") nutzen. Playwright funktioniert in der Regel besser — es konzentriert sich auf den Accessibility Tree (strukturierte Daten) statt auf Screenshots, was es zuverlässiger macht.",[15,505,506],{},"Verwende Claudes native Browser-Integration nur dann, wenn du einen eingeloggten Zustand brauchst, ohne Zugangsdaten weiterzugeben, oder wenn du gezielt visuelles, koordinatenbasiertes Klicken benötigst.",[22,508,510],{"id":509},"tipp-9-cmda-ist-dein-freund","Tipp 9: Cmd+A ist dein Freund",[15,512,513],{},"Wenn Claude eine URL nicht direkt erreichen kann (private Seiten, blockierte Seiten wie Reddit), markiere einfach alles, was du siehst (Cmd+A / Strg+A), kopiere es und füge es in Claude Code ein. Mit rohem Text-Input kommt es hervorragend zurecht.",[15,515,516],{},"Das funktioniert auch für Terminal-Output — alles markieren, kopieren, in Claude Code einfügen.",[22,518,520],{"id":519},"tipp-10-nutze-gemini-cli-als-fallback-für-blockierte-seiten","Tipp 10: Nutze Gemini CLI als Fallback für blockierte Seiten",[15,522,523],{},"Claude Codes WebFetch kann bestimmte Seiten nicht erreichen. Umgehe das, indem du einen Skill erstellst, der an die Gemini CLI delegiert — sie hat breiteren Webzugriff.",[15,525,526,527,530],{},"Das nutzt das tmux-Muster aus Tipp 8 — Session starten, Befehle senden, Output erfassen. Lege die Skill-Datei in ",[37,528,529],{},"~/.claude/skills/reddit-fetch/SKILL.md"," ab.",[15,532,533],{},"Skills sind token-effizient, weil sie nur bei Bedarf geladen werden — anders als die CLAUDE.md, die in jede Konversation geladen wird.",[22,535,537],{"id":536},"tipp-11-investiere-in-deinen-workflow","Tipp 11: Investiere in deinen Workflow",[15,539,540],{},"Pflege deine CLAUDE.md. Baue eigene Tools. Lerne die Features kennen, die für dich wichtig sind.",[15,542,543],{},"Du musst es nicht übertreiben — schon eine saubere, kompakte CLAUDE.md, die dir hilft, deine Ziele zu erreichen, macht einen echten Unterschied. Das sind Investitionen in die Werkzeuge, mit denen du alles andere baust.",[22,545,547],{"id":546},"tipp-12-durchsuche-den-konversationsverlauf","Tipp 12: Durchsuche den Konversationsverlauf",[15,549,550,551,554,555,558],{},"Der gesamte Konversationsverlauf von Claude Code wird lokal in ",[37,552,553],{},"~/.claude/"," gespeichert. Projektspezifische Konversationen liegen in ",[37,556,557],{},"~/.claude/projects/"," — die Ordnernamen basieren auf den jeweiligen Projektpfaden.",[30,560,562],{"className":204,"code":561,"language":206,"meta":39,"style":39},"# Konversationen finden, die \"Redis\" erwähnen\ngrep -l -i \"redis\" ~/.claude/projects/-Users-*/*.jsonl\n\n# Konversationen von heute zu einem Thema finden\nfind ~/.claude/projects/-Users-*/*.jsonl -mtime 0 -exec grep -l -i \"keyword\" {} \\;\n",[37,563,564,570,604,610,615],{"__ignoreMap":39},[210,565,566],{"class":212,"line":213},[210,567,569],{"class":568},"sHwdD","# Konversationen finden, die \"Redis\" erwähnen\n",[210,571,572,575,578,581,584,587,590,593,596,599,601],{"class":212,"line":238},[210,573,574],{"class":381},"grep",[210,576,577],{"class":231}," -l",[210,579,580],{"class":231}," -i",[210,582,583],{"class":224}," \"",[210,585,586],{"class":231},"redis",[210,588,589],{"class":224},"\"",[210,591,592],{"class":231}," ~/.claude/projects/-Users-",[210,594,595],{"class":220},"*",[210,597,598],{"class":231},"/",[210,600,595],{"class":220},[210,602,603],{"class":231},".jsonl\n",[210,605,606],{"class":212,"line":255},[210,607,609],{"emptyLinePlaceholder":608},true,"\n",[210,611,612],{"class":212,"line":272},[210,613,614],{"class":568},"# Konversationen von heute zu einem Thema finden\n",[210,616,617,620,622,624,626,628,631,634,637,640,643,645,647,649,652,654,657],{"class":212,"line":288},[210,618,619],{"class":381},"find",[210,621,592],{"class":231},[210,623,595],{"class":220},[210,625,598],{"class":231},[210,627,595],{"class":220},[210,629,630],{"class":231},".jsonl",[210,632,633],{"class":231}," -mtime",[210,635,636],{"class":441}," 0",[210,638,639],{"class":231}," -exec",[210,641,642],{"class":231}," grep",[210,644,577],{"class":231},[210,646,580],{"class":231},[210,648,583],{"class":224},[210,650,651],{"class":231},"keyword",[210,653,589],{"class":224},[210,655,656],{"class":231}," {}",[210,658,659],{"class":220}," \\;\n",[15,661,662],{},"Oder frag Claude Code einfach direkt: „Was haben wir heute zu X besprochen?\" Es durchsucht den Verlauf für dich.",[22,664,666],{"id":665},"tipp-13-multitasking-mit-terminal-tabs","Tipp 13: Multitasking mit Terminal-Tabs",[15,668,669],{},"Wenn du mehrere Claude-Code-Instanzen parallel laufen lässt, zählt Organisation mehr als jedes spezielle technische Setup. Konzentriere dich auf höchstens drei bis vier Aufgaben gleichzeitig.",[15,671,672],{},[83,673],{"alt":674,"src":675},"Terminal-Tabs mit Multitasking-Workflow","images/claude-code-tips/multitasking-terminal-tabs.png",[15,677,678],{},"Nutze einen „Kaskaden\"-Ansatz — jede neue Aufgabe öffnet einen neuen Tab rechts daneben. Arbeite von links nach rechts, von der ältesten zur neuesten Aufgabe, und schau nach Bedarf vorbei.",[22,680,682],{"id":681},"tipp-14-verschlanke-den-system-prompt","Tipp 14: Verschlanke den System-Prompt",[15,684,685],{},"Der System-Prompt und die Tools von Claude Code verbrauchen ~18k Tokens (~9 % deines 200k-Kontexts), bevor du überhaupt anfängst zu arbeiten. Mit Patches lässt sich das auf ~10k Tokens reduzieren — eine Einsparung von ca. 7.300 Tokens (41 % des statischen Overheads).",[15,687,688],{},[83,689],{"alt":690,"src":691},"Ungepatchter Kontext bei ~18k Tokens, 9 %","images/claude-code-tips/context-unpatched.png",[15,693,694],{},[83,695],{"alt":696,"src":697},"Gepatchter Kontext bei ~10k Tokens, 5 %","images/claude-code-tips/context-patched.png",[15,699,700],{},"Die Patches kürzen ausführliche Beispiele und redundanten Text, behalten aber die wesentlichen Anweisungen bei. Es fühlt sich direkter und kraftvoller an — mehr Platz, bevor der Kontext voll ist, was längere Konversationen ermöglicht.",[493,702,704],{"id":703},"mcp-tools-per-lazy-loading-laden","MCP-Tools per Lazy-Loading laden",[15,706,707],{},"Wenn du MCP-Server nutzt, werden deren Tool-Definitionen standardmäßig in jede Konversation geladen. Aktiviere Lazy-Loading:",[30,709,713],{"className":710,"code":711,"language":712,"meta":39,"style":39},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"env\": {\n    \"ENABLE_TOOL_SEARCH\": \"true\"\n  }\n}\n","json",[37,714,715,720,735,755,760],{"__ignoreMap":39},[210,716,717],{"class":212,"line":213},[210,718,719],{"class":224},"{\n",[210,721,722,725,728,730,732],{"class":212,"line":238},[210,723,724],{"class":224},"  \"",[210,726,727],{"class":216},"env",[210,729,589],{"class":224},[210,731,371],{"class":224},[210,733,734],{"class":224}," {\n",[210,736,737,740,743,745,747,749,752],{"class":212,"line":255},[210,738,739],{"class":224},"    \"",[210,741,742],{"class":381},"ENABLE_TOOL_SEARCH",[210,744,589],{"class":224},[210,746,371],{"class":224},[210,748,583],{"class":224},[210,750,751],{"class":231},"true",[210,753,754],{"class":224},"\"\n",[210,756,757],{"class":212,"line":272},[210,758,759],{"class":224},"  }\n",[210,761,762],{"class":212,"line":288},[210,763,764],{"class":224},"}\n",[15,766,767,768,771],{},"Füge das in ",[37,769,770],{},"~/.claude/settings.json"," ein. Ab Version 2.1.7 geschieht das automatisch, sobald die MCP-Tool-Beschreibungen 10 % des Kontextfensters überschreiten.",[22,773,775],{"id":774},"tipp-15-git-worktrees-für-parallele-branch-arbeit","Tipp 15: Git Worktrees für parallele Branch-Arbeit",[15,777,778],{},"Arbeitest du gleichzeitig an mehreren Branches? Mit Git Worktrees kannst du in separaten Verzeichnissen an unterschiedlichen Branches arbeiten — ohne Konflikte. Bitte Claude Code einfach, einen anzulegen — du musst dir die Syntax nicht merken.",[15,780,781],{},"Kombiniere Worktrees mit der Kaskaden-Tab-Methode für maximale Parallelität.",[22,783,785],{"id":784},"tipp-16-manueller-exponentieller-backoff-für-lange-jobs","Tipp 16: Manueller exponentieller Backoff für lange Jobs",[15,787,788],{},"Wenn du auf Docker-Builds oder GitHub-CI wartest, bitte Claude Code, den Status in immer größeren Intervallen zu prüfen — eine Minute, zwei Minuten, vier Minuten und so weiter.",[15,790,791],{},[83,792],{"alt":793,"src":794},"Manueller exponentieller Backoff beim Prüfen des Docker-Build-Fortschritts","images/claude-code-tips/manual-exponential-backoff.png",[15,796,797,798,801,802,805],{},"Speziell bei GitHub-CI gibt ",[37,799,800],{},"gh run watch"," durchgehend viele Zeilen aus, was Tokens verschwendet. Manueller Backoff mit ",[37,803,804],{},"gh run view \u003Crun-id> | grep \u003Cjob-name>"," ist token-effizienter.",[22,807,809],{"id":808},"tipp-17-claude-code-als-schreibassistent","Tipp 17: Claude Code als Schreibassistent",[15,811,812],{},"Claude Code ist ein hervorragender Schreibpartner. Der Workflow:",[814,815,816,819,822,825],"ol",{},[152,817,818],{},"Gib ihm Kontext zu dem, was du schreiben willst",[152,820,821],{},"Liefere detaillierte Anweisungen per Sprache",[152,823,824],{},"Hol dir einen ersten Entwurf",[152,826,827],{},"Geh ihn Zeile für Zeile durch — „Diese Zeile gefällt mir\", „Verschieb diesen Abschnitt dorthin\", „Ändere diesen Teil\"",[15,829,830],{},[83,831],{"alt":832,"src":833},"Side-by-side Schreib-Workflow mit Terminal und Editor","images/claude-code-tips/writing-assistant-side-by-side.png",[15,835,836],{},"Der iterative Hin-und-Her-Prozess — Terminal links, Editor rechts — liefert überraschend gute Ergebnisse.",[22,838,840],{"id":839},"tipp-18-markdown-ist-könig","Tipp 18: Markdown ist König",[15,842,843],{},"Mit den Schreibfähigkeiten von Claude Code wird Markdown zum effizientesten Dokumentformat. Blogposts, LinkedIn-Posts, Dokumentation — mit Claude Code sprechen, als Markdown speichern, weiterarbeiten.",[15,845,846,849],{},[102,847,848],{},"Tipp am Rande:"," Wenn du Markdown in eine Plattform einfügen musst, die es nicht unterstützt, füge es zuerst in Notion ein und kopiere es von dort in die Zielplattform. Notion konvertiert es in ein kompatibles Format.",[22,851,853],{"id":852},"tipp-19-nutze-notion-um-links-beim-einfügen-zu-erhalten","Tipp 19: Nutze Notion, um Links beim Einfügen zu erhalten",[15,855,856],{},"Andersherum funktioniert es auch. Wenn du Text mit Links aus Slack oder anderen Apps hast, füge ihn zuerst in Notion ein und kopiere ihn von dort weiter — so bekommst du sauberes Markdown mit Links, das Claude Code lesen kann.",[22,858,860],{"id":859},"tipp-20-container-für-lange-riskante-aufgaben","Tipp 20: Container für lange, riskante Aufgaben",[15,862,863,864,867],{},"Containerisierte Umgebungen sind ideal für Sessions mit ",[37,865,866],{},"--dangerously-skip-permissions",". Nutze sie für Recherche, Experimente und alles, was lange dauert oder Risiken birgt.",[493,869,871],{"id":870},"eine-worker-instanz-orchestrieren","Eine Worker-Instanz orchestrieren",[15,873,874],{},"Geh noch einen Schritt weiter, indem dein lokales Claude Code per tmux eine andere Instanz innerhalb eines Containers steuert:",[814,876,877,880,883,888],{},[152,878,879],{},"Das lokale Claude Code startet eine tmux-Session",[152,881,882],{},"Es verbindet sich mit dem Container",[152,884,885,886],{},"Im Container läuft Claude Code mit ",[37,887,866],{},[152,889,890,891,894,895,898],{},"Die äußere Instanz nutzt ",[37,892,893],{},"tmux send-keys"," und ",[37,896,897],{},"capture-pane"," zur Kommunikation",[15,900,901],{},"Das ergibt einen vollständig autonomen Worker für experimentelle oder langlaufende Aufgaben — abgeschottet in einem Container.",[493,903,905],{"id":904},"multi-modell-orchestrierung","Multi-Modell-Orchestrierung",[15,907,908],{},"Lass verschiedene KI-CLIs in Containern laufen — Codex, Gemini CLI usw. Claude Code wird zur zentralen Schnittstelle, die alles koordiniert: Modelle starten, Daten zwischen Containern und deinem Host weiterreichen.",[22,910,912],{"id":911},"tipp-21-der-beste-weg-zum-lernen-ist-das-tun","Tipp 21: Der beste Weg zum Lernen ist das Tun",[15,914,915,916,919],{},"Stell es dir wie eine ",[102,917,918],{},"Milliarden-Token-Regel"," statt einer 10.000-Stunden-Regel vor. Der beste Weg, Intuition für KI aufzubauen, besteht darin, Tokens zu verbrauchen. Nutze es. Viel. Mehrere Sessions gleichzeitig.",[15,921,922],{},"Tipps und Guides helfen, aber nichts ersetzt praktische Erfahrung.",[22,924,926],{"id":925},"tipp-22-konversationen-klonen-um-alternativen-auszuprobieren","Tipp 22: Konversationen klonen, um Alternativen auszuprobieren",[15,928,929],{},"Willst du einen anderen Ansatz ausprobieren, ohne deinen ursprünglichen Thread zu verlieren? Claude Code unterstützt jetzt natives Forking:",[149,931,932,940],{},[152,933,934,939],{},[102,935,936],{},[37,937,938],{},"/fork"," — Forkt die aktuelle Session aus einer Konversation heraus",[152,941,942,947,948,951,952,955,956,959],{},[102,943,944],{},[37,945,946],{},"--fork-session"," — In Kombination mit ",[37,949,950],{},"--resume"," oder ",[37,953,954],{},"--continue"," (z. B. ",[37,957,958],{},"claude -c --fork-session",")",[15,961,962],{},"Füge einen Shortcut für das Flag hinzu:",[30,964,966],{"className":204,"code":965,"language":206,"meta":39,"style":39},"claude() {\n  local args=()\n  for arg in \"$@\"; do\n    if [[ \"$arg\" == \"--fs\" ]]; then\n      args+=(\"--fork-session\")\n    else\n      args+=(\"$arg\")\n    fi\n  done\n  command claude \"${args[@]}\"\n}\n",[37,967,968,978,989,1015,1046,1063,1068,1082,1088,1094,1112],{"__ignoreMap":39},[210,969,970,973,976],{"class":212,"line":213},[210,971,232],{"class":972},"s2Zo4",[210,974,975],{"class":224},"()",[210,977,734],{"class":224},[210,979,980,983,986],{"class":212,"line":238},[210,981,982],{"class":216},"  local",[210,984,985],{"class":220}," args",[210,987,988],{"class":224},"=()\n",[210,990,991,995,998,1001,1003,1007,1009,1012],{"class":212,"line":255},[210,992,994],{"class":993},"s7zQu","  for",[210,996,997],{"class":220}," arg ",[210,999,1000],{"class":993},"in",[210,1002,583],{"class":224},[210,1004,1006],{"class":1005},"sHdIc","$@",[210,1008,589],{"class":224},[210,1010,1011],{"class":224},";",[210,1013,1014],{"class":993}," do\n",[210,1016,1017,1020,1023,1025,1028,1030,1033,1035,1038,1040,1043],{"class":212,"line":272},[210,1018,1019],{"class":993},"    if",[210,1021,1022],{"class":224}," [[",[210,1024,583],{"class":224},[210,1026,1027],{"class":220},"$arg",[210,1029,589],{"class":224},[210,1031,1032],{"class":224}," ==",[210,1034,583],{"class":224},[210,1036,1037],{"class":231},"--fs",[210,1039,589],{"class":224},[210,1041,1042],{"class":224}," ]];",[210,1044,1045],{"class":993}," then\n",[210,1047,1048,1051,1054,1056,1058,1060],{"class":212,"line":288},[210,1049,1050],{"class":220},"      args",[210,1052,1053],{"class":224},"+=(",[210,1055,589],{"class":224},[210,1057,946],{"class":231},[210,1059,589],{"class":224},[210,1061,1062],{"class":224},")\n",[210,1064,1065],{"class":212,"line":464},[210,1066,1067],{"class":993},"    else\n",[210,1069,1070,1072,1074,1076,1078,1080],{"class":212,"line":472},[210,1071,1050],{"class":220},[210,1073,1053],{"class":224},[210,1075,589],{"class":224},[210,1077,1027],{"class":220},[210,1079,589],{"class":224},[210,1081,1062],{"class":224},[210,1083,1085],{"class":212,"line":1084},8,[210,1086,1087],{"class":993},"    fi\n",[210,1089,1091],{"class":212,"line":1090},9,[210,1092,1093],{"class":993},"  done\n",[210,1095,1097,1100,1103,1106,1109],{"class":212,"line":1096},10,[210,1098,1099],{"class":972},"  command",[210,1101,1102],{"class":231}," claude",[210,1104,1105],{"class":224}," \"${",[210,1107,1108],{"class":220},"args",[210,1110,1111],{"class":224},"[@]}\"\n",[210,1113,1115],{"class":212,"line":1114},11,[210,1116,764],{"class":224},[15,1118,1119,1120,1123],{},"Jetzt forkt ",[37,1121,1122],{},"c -c --fs"," und setzt die Konversation in einem einzigen Befehl fort.",[493,1125,1127],{"id":1126},"half-clone-zur-reduzierung-des-kontexts","Half-Clone zur Reduzierung des Kontexts",[15,1129,1130],{},"Wenn eine Konversation zu lang wird, behält ein Half-Clone nur die spätere Hälfte — das senkt die Token-Nutzung und bewahrt gleichzeitig die jüngsten Arbeitsschritte.",[22,1132,1134],{"id":1133},"tipp-23-nutze-realpath-für-absolute-pfade","Tipp 23: Nutze realpath für absolute Pfade",[15,1136,1137,1138,1141],{},"Wenn du Claude Code auf Dateien in anderen Verzeichnissen verweist, verwende ",[37,1139,1140],{},"realpath",", um den vollständigen absoluten Pfad zu bekommen:",[30,1143,1145],{"className":204,"code":1144,"language":206,"meta":39,"style":39},"realpath some/relative/path\n",[37,1146,1147],{"__ignoreMap":39},[210,1148,1149,1151],{"class":212,"line":213},[210,1150,1140],{"class":381},[210,1152,1153],{"class":231}," some/relative/path\n",[15,1155,1156],{},"Simpel, erspart aber viel Verwirrung.",[22,1158,1160],{"id":1159},"tipp-24-claudemd-vs-skills-vs-slash-commands-vs-plugins","Tipp 24: CLAUDE.md vs. Skills vs. Slash Commands vs. Plugins",[15,1162,1163],{},"Diese Features können verwirrend sein. Hier die Aufschlüsselung:",[149,1165,1166,1172,1178,1184],{},[152,1167,1168,1171],{},[102,1169,1170],{},"CLAUDE.md"," — Wird immer in jede Konversation geladen. Einfach, aber stets präsent. Gut für Projektkontext und persistente Anweisungen",[152,1173,1174,1177],{},[102,1175,1176],{},"Skills"," — Wie strukturierte CLAUDE.md-Dateien, aber nur bei Bedarf geladen. Token-effizienter. Können automatisch oder manuell aufgerufen werden",[152,1179,1180,1183],{},[102,1181,1182],{},"Slash Commands"," — Ähnlich wie Skills, aber in erster Linie dafür gedacht, vom Nutzer zu einem bestimmten Zeitpunkt aufgerufen zu werden",[152,1185,1186,1189],{},[102,1187,1188],{},"Plugins"," — Pakete, die Skills, Slash Commands, Agents, Hooks und MCP-Server bündeln können",[15,1191,1192],{},"Skills und Slash Commands sind in den jüngsten Versionen näher zusammengewachsen. Der entscheidende Trade-off bleibt: immer geladen (CLAUDE.md) vs. bei Bedarf (Skills/Commands).",[22,1194,1196],{"id":1195},"tipp-25-interaktive-pr-reviews","Tipp 25: Interaktive PR-Reviews",[15,1198,1199,1200,1202],{},"Claude Code glänzt bei PR-Reviews. Hol dir die PR-Infos mit ",[37,1201,132],{}," und geh sie dann beliebig durch — allgemeiner Überblick, Datei für Datei oder im Detail durch bestimmte Abschnitte.",[15,1204,1205,1206,1209],{},"Der entscheidende Vorteil: Das Review ist ",[102,1207,1208],{},"interaktiv",". Kein One-Shot-Review, sondern ein Gespräch, bei dem du Tempo und Tiefe steuerst.",[22,1211,1213],{"id":1212},"tipp-26-claude-code-als-recherche-tool","Tipp 26: Claude Code als Recherche-Tool",[15,1215,1216],{},"Claude Code ist ein mächtiges Recherche-Tool. Egal ob du GitHub-Actions-Fehler untersuchst, Sentiment-Analysen durchführst, Codebasen erkundest oder öffentliche Informationen durchforstest — Claude Code kommt damit klar.",[15,1218,1219,1220,1222],{},"Entscheidend ist, ihm die richtigen Zugangswege zu geben: ",[37,1221,132],{}," für GitHub, Container für riskante Operationen, Gemini CLI für blockierte Seiten, MCP für Slack und andere Dienste, Cmd+A für manuellen Inhaltstransfer.",[22,1224,1226],{"id":1225},"tipp-27-verifiziere-output-auf-mehreren-wegen","Tipp 27: Verifiziere Output auf mehreren Wegen",[15,1228,1229],{},"Verlass dich nicht auf eine einzige Verifikationsmethode:",[149,1231,1232,1238,1244,1250],{},[152,1233,1234,1237],{},[102,1235,1236],{},"Tests"," — Lass Claude Tests für seinen eigenen Code schreiben und ausführen",[152,1239,1240,1243],{},[102,1241,1242],{},"Visueller Diff"," — Nutze einen Git-Client wie GitHub Desktop, um Änderungen zu überprüfen",[152,1245,1246,1249],{},[102,1247,1248],{},"Draft-PRs"," — Erstelle Draft-PRs und prüfe sie, bevor du sie als bereit markierst",[152,1251,1252,1255],{},[102,1253,1254],{},"Selbstprüfung"," — Bitte Claude, seine Arbeit zu überprüfen: „Verifiziere jede Behauptung, die du aufgestellt hast, und erstelle eine Tabelle mit dem, was du bestätigen konntest\"",[22,1257,1259],{"id":1258},"tipp-28-claude-code-als-devops-ingenieur","Tipp 28: Claude Code als DevOps-Ingenieur",[15,1261,1262],{},"Bei CI/CD-Fehlern kann Claude Code Logs durchforsten, deren manuelle Auswertung schmerzhaft wäre. Gib ihm einen fehlgeschlagenen GitHub-Actions-Run und bitte ihn, die Ursache zu finden.",[15,1264,1265],{},"Hak nach, wenn er nur oberflächliche Antworten liefert — war es ein bestimmter Commit? Ein flaky Test? Ein Dependency-Problem? Sobald die Ursache identifiziert ist, lass ihn einen Draft-PR mit dem Fix erstellen.",[22,1267,1269],{"id":1268},"tipp-29-halte-claudemd-schlicht","Tipp 29: Halte CLAUDE.md schlicht",[15,1271,1272],{},"Beginne ganz ohne CLAUDE.md. Füge erst dann Anweisungen hinzu, wenn du merkst, dass du dasselbe wiederholt sagst. Lass Claude Code seine eigene CLAUDE.md auf Basis deiner mündlichen Anweisungen bearbeiten — es weiß genau, was zu ändern ist.",[15,1274,1275],{},"Weniger ist mehr. Jedes Token in der CLAUDE.md wird in jede Konversation geladen.",[22,1277,1279],{"id":1278},"tipp-30-claude-code-als-universelle-schnittstelle","Tipp 30: Claude Code als universelle Schnittstelle",[15,1281,1282],{},"Claude Code ist nicht nur ein Coding-Tool — es ist eine universelle Schnittstelle zu deinem Computer. Schnelle Video-Bearbeitung über ffmpeg, Audio-Transkription mit Whisper, Datenvisualisierung mit Python — und mit Internetzugang sind die Möglichkeiten endlos.",[15,1284,1285],{},"Es ist eine Rückkehr zur Text-Schnittstelle, aber jeder Terminal-Tab ist jetzt ein autonomes Gehirn, an das du Arbeit delegieren kannst. Je besser die Modelle werden, desto mehr lästige Aufgaben kannst du auslagern.",[22,1287,1289],{"id":1288},"tipp-31-wähle-die-richtige-abstraktionsebene","Tipp 31: Wähle die richtige Abstraktionsebene",[15,1291,1292],{},"Es ist keine binäre Entscheidung zwischen „Vibe Coding\" und „sorgfältigem Engineering\" — es ist ein Spektrum.",[15,1294,1295],{},[83,1296],{"alt":1297,"src":1298},"Das Vibe-Coding-Spektrum von der hohen Ebene bis zur tiefen Inspektion","images/claude-code-tips/vibe-coding-spectrum.png",[15,1300,1301],{},"Manchmal reicht es, über die Oberfläche zu fliegen — Einmalprojekte, unkritischer Code. In anderen Fällen musst du tiefer gehen: Dateistrukturen inspizieren, einzelne Funktionen, bestimmte Zeilen, Abhängigkeiten.",[15,1303,1304],{},"Stell es dir wie das Erkunden eines Eisbergs vor. Du wählst die Tiefe. Claude Code ist dein Guide auf jeder Ebene.",[1306,1307,1308],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":39,"searchDepth":238,"depth":255,"links":1310},[1311,1312,1313,1314,1315,1316,1317,1318,1319,1322,1323,1324,1325,1326,1327,1330,1331,1332,1333,1334,1335,1339,1340,1343,1344,1345,1346,1347,1348,1349,1350,1351],{"id":24,"depth":238,"text":25},{"id":45,"depth":238,"text":46},{"id":72,"depth":238,"text":73},{"id":111,"depth":238,"text":112},{"id":136,"depth":238,"text":137},{"id":143,"depth":238,"text":144},{"id":197,"depth":238,"text":198},{"id":324,"depth":238,"text":325},{"id":360,"depth":238,"text":361,"children":1320},[1321],{"id":495,"depth":255,"text":496},{"id":509,"depth":238,"text":510},{"id":519,"depth":238,"text":520},{"id":536,"depth":238,"text":537},{"id":546,"depth":238,"text":547},{"id":665,"depth":238,"text":666},{"id":681,"depth":238,"text":682,"children":1328},[1329],{"id":703,"depth":255,"text":704},{"id":774,"depth":238,"text":775},{"id":784,"depth":238,"text":785},{"id":808,"depth":238,"text":809},{"id":839,"depth":238,"text":840},{"id":852,"depth":238,"text":853},{"id":859,"depth":238,"text":860,"children":1336},[1337,1338],{"id":870,"depth":255,"text":871},{"id":904,"depth":255,"text":905},{"id":911,"depth":238,"text":912},{"id":925,"depth":238,"text":926,"children":1341},[1342],{"id":1126,"depth":255,"text":1127},{"id":1133,"depth":238,"text":1134},{"id":1159,"depth":238,"text":1160},{"id":1195,"depth":238,"text":1196},{"id":1212,"depth":238,"text":1213},{"id":1225,"depth":238,"text":1226},{"id":1258,"depth":238,"text":1259},{"id":1268,"depth":238,"text":1269},{"id":1278,"depth":238,"text":1279},{"id":1288,"depth":238,"text":1289},"vibe-coding","2026-01-28T00:00:00.000Z","Eine umfassende Sammlung praktischer Tipps, um das Beste aus Claude Code herauszuholen — von benutzerdefinierten Statuszeilen und Spracheingabe bis hin zu Container-Orchestrierung und Multi-Modell-Workflows.","md",false,null,{},"/blog/vibe-coding/2026-01-28-claude-code-tips-from-basics-to-advanced",{"title":5,"description":1354},"blog/vibe-coding/2026-01-28-claude-code-tips-from-basics-to-advanced",[1363,1364,1365,1366,1367],"claude-code","ai-assisted","productivity","developer-experience","cli-tools","d51syAC13kPF1eto48xrqjDxcpWGsUEjjB2lrwpUqDE",[1370,1375],{"title":1371,"path":1372,"stem":1373,"description":1374,"children":-1},"Personal Finance für Entwickler – Ein Leitfaden","/blog/finance/intro-to-personal-finance","blog/finance/intro-to-personal-finance","Die wichtigsten Konzepte der persönlichen Finanzplanung, die jeder Entwickler kennen sollte – vom Notgroschen bis zum Index-Investing.",{"title":1376,"path":1377,"stem":1378,"description":1379,"children":-1},"Was ist Vibe Coding?","/blog/vibe-coding/2026-02-12-what-is-vibe-coding","blog/vibe-coding/2026-02-12-what-is-vibe-coding","Vibe Coding ist ein neuer Ansatz in der Softwareentwicklung, bei dem man KI per natürlicher Sprache anleitet, Software zu bauen.",[1381,1638,1820],{"id":1382,"title":1383,"author":6,"body":1384,"category":1352,"date":1625,"description":1626,"extension":1355,"featured":608,"image":1627,"meta":1628,"navigation":608,"path":1629,"seo":1630,"stem":1631,"tags":1632,"__hash__":1637},"blog/blog/vibe-coding/2026-05-06-dark-factories-und-trycycle.md","Dark Factories und der Aufstieg des Trycycle: Wenn KI Software am Fließband baut",{"type":8,"value":1385,"toc":1614},[1386,1389,1396,1409,1413,1420,1423,1436,1439,1443,1447,1455,1459,1462,1479,1483,1503,1506,1523,1532,1536,1544,1550,1570,1574,1577,1594,1597,1601,1608,1611],[11,1387,1383],{"id":1388},"dark-factories-und-der-aufstieg-des-trycycle-wenn-ki-software-am-fließband-baut",[15,1390,1391,1392,1395],{},"Eine neue Klasse von Werkzeugen verändert gerade still und leise, wie Software entsteht: ",[102,1393,1394],{},"Dark Factories",". Das sind keine Editoren, keine Copilot-Erweiterungen und auch keine Chat-Fenster – sondern Maschinen, die aus einer Spezifikation eigenständig lauffähigen, getesteten Code produzieren. Man füttert sie mit einem Problem, sie laufen über Stunden, und am Morgen liegt das Feature im Repository.",[15,1397,1398,1399,1404,1405,1408],{},"Dan Shapiro hat in ",[51,1400,1403],{"href":1401,"rel":1402},"https://www.danshapiro.com/blog/2026/03/dark-factories-rise-of-the-trycycle/",[55],"seinem Blog"," drei der derzeit interessantesten Ansätze nebeneinandergestellt – und mit ",[102,1406,1407],{},"Trycycle"," gleich noch eine eigene, radikal einfache Variante geliefert.",[22,1410,1412],{"id":1411},"die-erkenntnis-hinter-den-fabriken","Die Erkenntnis hinter den Fabriken",[15,1414,1415,1416,1419],{},"Im Kern aller Dark Factories steckt ein simpler Befund: ",[102,1417,1418],{},"KI wird besser, wenn man mehr davon macht."," Mehr Versuche, mehr parallele Modelle, mehr Iterationen. Was sich nach Verschwendung anhört, liefert messbar bessere Ergebnisse als jeder einzelne Modell-Aufruf.",[15,1421,1422],{},"Zwei Muster haben sich dafür durchgesetzt:",[149,1424,1425,1431],{},[152,1426,1427,1430],{},[102,1428,1429],{},"Slot Machine Development"," – statt eine KI zu fragen, fragst du drei gleichzeitig und wählst die beste Antwort.",[152,1432,1433,1435],{},[102,1434,1407],{}," – ein Loop, der so lange iteriert, bis das Ergebnis stimmt: Plan schreiben, Plan prüfen, Code schreiben, Code prüfen, von vorne beginnen, falls nötig.",[15,1437,1438],{},"Beide Muster lassen sich kombinieren. Und beide haben sich als überraschend unaufhaltsam erwiesen: Mit genug Zeit und Tokens lässt sich nahezu jedes Problem von einer Trycycle erschlagen.",[22,1440,1442],{"id":1441},"drei-fabriken-drei-philosophien","Drei Fabriken, drei Philosophien",[493,1444,1446],{"id":1445},"gastown-mad-max-für-code","Gastown: Mad Max für Code",[15,1448,1449,1454],{},[51,1450,1453],{"href":1451,"rel":1452},"https://steve-yegge.medium.com/welcome-to-the-wasteland-a-thousand-gas-towns-a5eb9bc8dc1f",[55],"Gastown"," von Steve Yegge ist die theatralischste Variante. Mit Bürgermeistern, Konvois und „Polecats\", die in der Wüste deiner CPU um Guzzoline kämpfen, ist Gastown zu einem MMORPG fürs Programmieren mutiert. Es ist ein bewusst chaotisches, communitygetriebenes Experiment – wer mitmachen will, wird Teil einer wachsenden Bewegung von Entwicklern, die gemeinsam Tokens verbrennen.",[493,1456,1458],{"id":1457},"strongdm-attractor-factorio-für-engineers","StrongDM Attractor: Factorio für Engineers",[15,1460,1461],{},"Justin Massa und sein Team bei StrongDM haben einen anderen Weg gewählt. Sie haben beobachtet, dass moderne Modelle irgendwann letztes Jahr eine unsichtbare Schwelle überschritten haben: Vorher haben sie pro Iteration neun Bugs gefixt und zehn neue eingebaut. Inzwischen werden sie mit jedem Zyklus tatsächlich besser.",[15,1463,1464,1465,1470,1471,1478],{},"Statt eine fertige Fabrik auszuliefern, hat StrongDM nur die ",[51,1466,1469],{"href":1467,"rel":1468},"https://factory.strongdm.ai/products/attractor",[55],"Spezifikation des Attractors"," veröffentlicht. Jeder kann sich seine eigene Variante bauen – flexibel, konfigurierbar, mächtig. Wer eine fertige Implementierung in Go bevorzugt, greift zu ",[102,1472,1473],{},[51,1474,1477],{"href":1475,"rel":1476},"https://github.com/danshapiro/kilroy",[55],"Kilroy",": ein vollständig lauffähiger Attractor inklusive Tests, Beispieldateien und Konfigurationen, an dem Shapiro und einige Mitstreiter rund einen Monat gefeilt haben.",[493,1480,1482],{"id":1481},"trycycle-die-fabrik-in-fünf-minuten","Trycycle: Die Fabrik in fünf Minuten",[15,1484,1485,1486,1492,1493,1496,1497,1502],{},"Bei aller Mächtigkeit: Kilroy zu konfigurieren ist Arbeit. Genau das war Shapiros Anlass für die einfachste denkbare Variante – ",[102,1487,1488],{},[51,1489,1407],{"href":1490,"rel":1491},"https://github.com/danshapiro/trycycle",[55],". Kein Framework, keine Dotfiles, keine Runfiles. Trycycle ist schlicht ein ",[102,1494,1495],{},"Skill"," für ",[51,1498,1501],{"href":1499,"rel":1500},"https://claude.com/product/claude-code",[55],"Claude Code"," und Codex CLI.",[15,1504,1505],{},"Der Algorithmus passt auf eine Postkarte:",[814,1507,1508,1511,1514,1517,1520],{},[152,1509,1510],{},"Definiere das Problem.",[152,1512,1513],{},"Schreibe einen Plan.",[152,1515,1516],{},"Ist der Plan perfekt? Wenn nicht, versuche es erneut.",[152,1518,1519],{},"Implementiere den Plan.",[152,1521,1522],{},"Ist die Implementierung perfekt? Wenn nicht, versuche es erneut.",[15,1524,1525,1526,1531],{},"Mehr ist es nicht. Unter der Haube greift Trycycle auf Jesse Vincents ",[51,1527,1530],{"href":1528,"rel":1529},"https://github.com/obra/superpowers",[55],"Superpowers"," für das Schreiben und Ausführen von Plänen zurück. Zur Nutzung kopiert man eine einzige Zeile in seinen Coding-Agenten – den Verweis auf die README im Repo – und kann anschließend einfach sagen: „Use Trycycle to do the thing.\"",[22,1533,1535],{"id":1534},"warum-das-so-gut-funktioniert","Warum das so gut funktioniert",[15,1537,1538,1539,1543],{},"Das Verblüffende: Trycycle ist erst wenige Tage alt, und Shapiro berichtet bereits von einem Dutzend ausgelieferter Features. Während eines Abendessens hat das Tool das Spiel ",[1540,1541,1542],"em",{},"Rogue"," nach WASM portiert. In einer Nacht hat es 7 Stunden 56 Minuten lang sechs Features für ein anderes Projekt fertiggestellt.",[15,1545,1546,1547,371],{},"Der Trick liegt nicht in raffinierter Architektur, sondern in ",[102,1548,1549],{},"drei pragmatischen Eigenschaften",[149,1551,1552,1558,1564],{},[152,1553,1554,1557],{},[102,1555,1556],{},"Kein Setup."," Weil Trycycle nur ein Skill ist, gibt es keine Konfiguration und keine Lernkurve. Wer den Agenten bedienen kann, kann auch Trycycle bedienen.",[152,1559,1560,1563],{},[102,1561,1562],{},"Volle Transparenz."," Wer verstehen will, was passiert, fragt einfach nach. Wer eingreifen will, redet dem Agenten ins Gewissen.",[152,1565,1566,1569],{},[102,1567,1568],{},"Skalierung über Zeit, nicht über Komplexität."," Die Fabrik wird nicht durch ausgefeilte Logik mächtiger, sondern dadurch, dass man sie länger laufen lässt.",[22,1571,1573],{"id":1572},"welche-fabrik-passt-zu-wem","Welche Fabrik passt zu wem?",[15,1575,1576],{},"Shapiros Empfehlung lässt sich gut zusammenfassen:",[149,1578,1579,1584,1589],{},[152,1580,1581,1583],{},[102,1582,1453],{}," – wenn man Teil einer Community werden möchte, die gemeinsam Tokens verbrennt und gemeinsam Software baut.",[152,1585,1586,1588],{},[102,1587,1477],{}," – wenn man eine konfigurierbare, langfristig laufende Engine braucht, die Projekte rund um die Uhr vorantreibt.",[152,1590,1591,1593],{},[102,1592,1407],{}," – wenn man einfach jetzt sofort Dinge erledigt haben will, ohne lange Setup-Zeiten.",[15,1595,1596],{},"Die ehrliche Antwort: Man kann mit Trycycle starten, während man die Dokumentation der anderen beiden liest. Die Eintrittsbarriere ist so niedrig, dass es schlicht keinen Grund gibt, es nicht auszuprobieren.",[22,1598,1600],{"id":1599},"was-das-für-entwickler-bedeutet","Was das für Entwickler bedeutet",[15,1602,1603,1604,1607],{},"Dark Factories sind die logische Fortsetzung dessen, was wir in den letzten Monaten unter dem Schlagwort ",[1540,1605,1606],{},"Vibe Coding"," gesehen haben – nur konsequenter. Statt einen Agenten kurz nach Code zu fragen und das Ergebnis zu reviewen, lässt man eine Maschine selbstständig planen, implementieren und prüfen. Der Mensch definiert das Problem und das Akzeptanzkriterium. Die Fabrik macht den Rest – auch über Nacht, auch parallel, auch in Loops.",[15,1609,1610],{},"Wer das einmal erlebt hat, denkt anders über sein Backlog nach. Tickets werden zu Spezifikationen. Spezifikationen werden zu Inputs. Und am Morgen liegt der nächste Feature-Branch im Repository – fertig zum Review.",[15,1612,1613],{},"Trycycle ist dafür der perfekte Einstieg: fünf Minuten Setup, keine Lernkurve, sofort produktiv. Und wenn die Anforderungen wachsen, stehen Kilroy und Gastown bereit.",{"title":39,"searchDepth":238,"depth":255,"links":1615},[1616,1617,1622,1623,1624],{"id":1411,"depth":238,"text":1412},{"id":1441,"depth":238,"text":1442,"children":1618},[1619,1620,1621],{"id":1445,"depth":255,"text":1446},{"id":1457,"depth":255,"text":1458},{"id":1481,"depth":255,"text":1482},{"id":1534,"depth":238,"text":1535},{"id":1572,"depth":238,"text":1573},{"id":1599,"depth":238,"text":1600},"2026-05-06T00:00:00.000Z","Dark Factories verwandeln Spezifikationen in lauffähige Software – über Nacht, in Schleifen, mit minimalem Setup. Ein Blick auf Gastown, Kilroy und Trycycle.","images/dark-factories-und-trycycle.svg",{},"/blog/vibe-coding/2026-05-06-dark-factories-und-trycycle",{"title":1383,"description":1626},"blog/vibe-coding/2026-05-06-dark-factories-und-trycycle",[1633,1634,1363,1635,1636],"dark-factory","trycycle","codex","ai-agents","IJZurmMNGW1OIVd7uGjK2hfNWfGzmJO6zsHZStUTWBs",{"id":1639,"title":1640,"author":6,"body":1641,"category":1352,"date":1625,"description":1810,"extension":1355,"featured":608,"image":1811,"meta":1812,"navigation":608,"path":1813,"seo":1814,"stem":1815,"tags":1816,"__hash__":1819},"blog/blog/vibe-coding/2026-05-06-fuenf-stufen-ki-coding.md","Die fünf Stufen der KI-Programmierung: Von Autocomplete bis zur Dark Factory",{"type":8,"value":1642,"toc":1801},[1643,1646,1655,1662,1666,1669,1676,1680,1687,1690,1694,1705,1712,1716,1723,1730,1734,1741,1744,1751,1755,1762,1765,1773,1777,1784,1791,1798],[11,1644,1640],{"id":1645},"die-fünf-stufen-der-ki-programmierung-von-autocomplete-bis-zur-dark-factory",[15,1647,1648,1649,1654],{},"Die Kosten für Code fallen gerade so schnell, dass viele Teams nicht hinterherkommen, ihre Arbeitsweise anzupassen. Dan Shapiro hat das in ",[51,1650,1653],{"href":1651,"rel":1652},"https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/",[55],"einem viel beachteten Beitrag"," als „technische Deflation\" bezeichnet. Aber wie schöpft man als Entwickler oder Team diesen Vorteil tatsächlich aus?",[15,1656,1657,1658,1661],{},"Wer KI nur nutzt, um schneller Regex zu tippen, partizipiert nicht an der Deflation. Er tippt einfach nur schneller. Echter Hebel entsteht erst weiter oben – und Shapiro hat dafür eine Klassifikation vorgeschlagen, die sich an den ",[102,1659,1660],{},"fünf Stufen autonomen Fahrens"," der NHTSA orientiert. Sie liefert eine erstaunlich präzise Landkarte dafür, wo Teams heute stehen und wohin die Reise geht.",[22,1663,1665],{"id":1664},"stufe-0-der-volvo-deiner-eltern","Stufe 0: Der Volvo deiner Eltern",[15,1667,1668],{},"Ob Vim oder Visual Studio – kein Zeichen landet auf der Festplatte, ohne dass du es selbst getippt hast. KI taucht höchstens als bessere Suchmaschine auf, oder du drückst gelegentlich Tab, um einen Vorschlag zu übernehmen. Der Code ist unverkennbar deiner.",[15,1670,1671,1672,1675],{},"In einer Welt fallender Code-Kosten ist das ",[102,1673,1674],{},"Handarbeit zum vollen Preis",". Verständlich für hochsensible Domänen, aber nicht skalierbar.",[22,1677,1679],{"id":1678},"stufe-1-spurhalteassistent","Stufe 1: Spurhalteassistent",[15,1681,1682,1683,1686],{},"Du schreibst weiterhin alles Wichtige selbst, lagerst aber ",[102,1684,1685],{},"diskrete Aufgaben"," an deinen KI-Praktikanten aus: „Schreib einen Unit-Test dafür.\" „Ergänze einen Docstring.\" Egal ob ChatGPT per Copy-Paste oder GitHub Copilot – das Werkzeug variiert, das Muster ist identisch.",[15,1688,1689],{},"Du wirst schneller. Aber dein Job ändert sich nicht. Dein Tempo bleibt durch das limitiert, was du selbst tippen kannst.",[22,1691,1693],{"id":1692},"stufe-2-autopilot-auf-der-autobahn","Stufe 2: Autopilot auf der Autobahn",[15,1695,1696,1697,1700,1701,1704],{},"Hier sitzen heute geschätzt ",[102,1698,1699],{},"90 Prozent der „AI-native\" Entwickler",". Du arbeitest mit einer KI wie mit einem Junior-Kollegen, gibst ihr alle langweiligen Aufgaben ab und kommst in einen produktiven Flow. Du nutzt nicht mehr Copy-Paste-Chat, sondern ein integriertes Coding-Tool wie ",[51,1702,1501],{"href":1499,"rel":1703},[55]," oder Cursor.",[15,1706,1707,1708,1711],{},"Es fühlt sich an, als wärst du angekommen. Genau das ist die Falle: ",[102,1709,1710],{},"Stufe 2 fühlt sich nach Ziel an, ist aber nur Mittelstrecke."," Wer hier stehenbleibt, lässt den Großteil des Hebels liegen.",[22,1713,1715],{"id":1714},"stufe-3-waymo-mit-sicherheitsfahrer","Stufe 3: Waymo mit Sicherheitsfahrer",[15,1717,1718,1719,1722],{},"Auf Stufe 3 bist du kein Senior-Entwickler mehr – das ist der Job deiner KI. Du bist der ",[102,1720,1721],{},"Mensch im Loop",", der Manager. Dein Coding-Agent läuft in mehreren Tabs parallel. Dein Tag besteht aus Code Reviews. Sehr viel Code. Dein Leben ist ein Strom von Diffs.",[15,1724,1725,1726,1729],{},"Für viele fühlt sich das ",[102,1727,1728],{},"schlechter"," an als Stufe 2. Der Flow-Zustand ist weg, ersetzt durch eine endlose Review-Queue. Es ist die Stufe, auf der die meisten Teams steckenbleiben – nicht weil das Werkzeug fehlt, sondern weil der Rollenwechsel ungewohnt ist.",[22,1731,1733],{"id":1732},"stufe-4-robotaxi","Stufe 4: Robotaxi",[15,1735,1736,1737,1740],{},"Auf Stufe 4 fährst du nicht mehr mit. Du bist auch kein Development-Manager mehr. Du bist – ironischerweise – ",[102,1738,1739],{},"Product Manager"," geworden. Du schreibst Specs. Du diskutierst mit der KI über Specs. Du baust Skills (meistens für Claude Code, weil es dort die ausgereifteste Skill-Infrastruktur gibt). Du planst Roadmaps. Du reviewst Pläne, nicht mehr Code.",[15,1742,1743],{},"Dann gehst du für zwölf Stunden raus und schaust am Abend, ob die Tests grün sind.",[15,1745,1746,1747,1750],{},"Shapiro selbst verortet sich nach eigener Aussage auf dieser Stufe. Es ist die erste Ebene, auf der ",[102,1748,1749],{},"Schlafenszeit produktiv wird"," – wo Code nachts entsteht, ohne dass jemand am Rechner sitzt.",[22,1752,1754],{"id":1753},"stufe-5-die-dark-factory","Stufe 5: Die Dark Factory",[15,1756,1757,1758,1761],{},"Auf Stufe 5 ist es eigentlich kein Auto mehr. Und es ist auch kein Software-Prozess mehr im klassischen Sinne. Es ist eine ",[102,1759,1760],{},"Black Box, die Specs in Software verwandelt",".",[15,1763,1764],{},"Der Begriff „Dark Factory\" stammt aus der Industrie: Fanuc betreibt in Japan eine Roboterfabrik, in der Roboter Roboter bauen. Sie heißt „dark\", weil das Licht ausgeschaltet bleiben kann – Menschen werden dort nicht gebraucht und sind auch nicht erwünscht.",[15,1766,1767,1768,1772],{},"Auf die Softwareentwicklung übertragen heißt das: Kleine Teams – häufig fünf Personen oder weniger – betreiben Pipelines, die eigenständig planen, implementieren, testen und ausliefern. Wer ein konkretes Bild davon will, wie so etwas heute schon aussieht, sollte sich Werkzeuge wie ",[51,1769,1771],{"href":1770},"/vibe-coding/2026-05-06-dark-factories-und-trycycle","Trycycle, Kilroy oder Gastown"," ansehen, über die ich neulich geschrieben habe. Sie sind die ersten ernstzunehmenden Bauteile dieser Fabriken.",[22,1774,1776],{"id":1775},"wo-stehst-du","Wo stehst du?",[15,1778,1779,1780,1783],{},"Die unbequeme Wahrheit dieser Klassifikation: Jede Stufe ",[102,1781,1782],{},"fühlt sich nach Ankunft an",", ist aber nur ein Wegpunkt. Wer auf Stufe 2 bleibt, weil sich die Arbeit dort am angenehmsten anfühlt, verschenkt den Großteil der Produktivitätsgewinne, die heute schon möglich sind.",[15,1785,1786,1787,1790],{},"Der Übergang von Stufe zu Stufe ist nicht primär ein Werkzeug-Problem, sondern ein ",[102,1788,1789],{},"Rollen-Problem",". Auf jeder Stufe muss man sich von einer Identität verabschieden – Coder, Senior-Engineer, Manager – um die nächste annehmen zu können. Das ist anstrengend. Und es ist der eigentliche Grund, warum die meisten Teams steckenbleiben.",[15,1792,1793,1794,1797],{},"Mein Tipp: Nutze diese fünf Stufen als ehrliches Diagnose-Werkzeug. Nicht „welches Tool benutzen wir\", sondern: ",[102,1795,1796],{},"Wer bist du in deinem eigenen Entwicklungsprozess noch?"," Und wer wirst du in sechs Monaten sein müssen, wenn die Code-Kosten weiter so fallen wie bisher?",[15,1799,1800],{},"Wer diese Frage konsequent beantwortet, hat eine realistische Chance, am Ende eine eigene kleine Fabrik zu betreiben – statt von einer fremden überholt zu werden.",{"title":39,"searchDepth":238,"depth":255,"links":1802},[1803,1804,1805,1806,1807,1808,1809],{"id":1664,"depth":238,"text":1665},{"id":1678,"depth":238,"text":1679},{"id":1692,"depth":238,"text":1693},{"id":1714,"depth":238,"text":1715},{"id":1732,"depth":238,"text":1733},{"id":1753,"depth":238,"text":1754},{"id":1775,"depth":238,"text":1776},"Wie weit ist dein Team auf dem Weg zur autonomen Softwareentwicklung? Eine Landkarte in fünf Stufen – analog zu den NHTSA-Levels für autonomes Fahren.","images/fuenf-stufen-ki-coding.svg",{},"/blog/vibe-coding/2026-05-06-fuenf-stufen-ki-coding",{"title":1640,"description":1810},"blog/vibe-coding/2026-05-06-fuenf-stufen-ki-coding",[1636,1363,1633,1817,1818],"automation","developer-productivity","Fp1pWsVj_BzWQio7Q5uAxvjqg3frO7rtvjTwTUMVGGc",{"id":1821,"title":1822,"author":6,"body":1823,"category":1352,"date":2299,"description":2300,"extension":1355,"featured":608,"image":2301,"meta":2302,"navigation":608,"path":2303,"seo":2304,"stem":2305,"tags":2306,"__hash__":2309},"blog/blog/vibe-coding/2026-03-03-gmail-cli-mit-claude-code.md","Gmail CLI mit Claude Code bauen – 15.000 E-Mails in Minuten archiviert",{"type":8,"value":1824,"toc":2279},[1825,1828,1831,1835,1838,1841,1855,1859,1863,1876,1880,1883,1893,1907,1916,1936,1939,1943,1969,1973,1979,1995,2010,2014,2017,2035,2041,2045,2048,2052,2055,2078,2097,2101,2104,2126,2130,2137,2141,2144,2162,2165,2169,2172,2186,2189,2206,2209,2229,2232,2235,2239,2245,2251,2257,2266,2270,2273,2276],[11,1826,1822],{"id":1827},"gmail-cli-mit-claude-code-bauen-15000-e-mails-in-minuten-archiviert",[15,1829,1830],{},"2026 wird zum Jahr der persönlichen KI-Agenten. Statt auf fertige Tools zu warten, kannst du heute schon selbst die Bausteine bauen, die deinen Alltag automatisieren. In diesem Beitrag zeige ich dir, wie ich mit Claude Code einen Gmail-CLI erstellt habe, mit dem ich meinen Posteingang per Kommandozeile verwalte und Newsletter zusammenfasse.",[22,1832,1834],{"id":1833},"warum-ein-cli-statt-browser-automation","Warum ein CLI statt Browser-Automation?",[15,1836,1837],{},"Zunächst habe ich versucht, Gmail über Browser-Automation zu steuern. Das war langsam: DOM-Scraping, Klicks im Interface, Wartezeiten beim Laden. Ein CLI, das direkt die Gmail-API anspricht, ist schneller, zuverlässiger und liefert strukturierte Daten.",[15,1839,1840],{},"Der Ansatz funktioniert so:",[814,1842,1843,1846,1849,1852],{},[152,1844,1845],{},"Google Cloud Projekt einrichten",[152,1847,1848],{},"OAuth-Authentifizierung konfigurieren",[152,1850,1851],{},"CLI mit Claude Code entwickeln",[152,1853,1854],{},"Features bei Bedarf erweitern",[22,1856,1858],{"id":1857},"google-cloud-setup","Google Cloud Setup",[493,1860,1862],{"id":1861},"projekt-erstellen-und-gmail-api-aktivieren","Projekt erstellen und Gmail-API aktivieren",[15,1864,1865,1866,1871,1872,1875],{},"Gehe zur ",[51,1867,1870],{"href":1868,"rel":1869},"https://console.cloud.google.com/",[55],"Google Cloud Console"," und erstelle ein neues Projekt. Navigiere zu ",[102,1873,1874],{},"APIs & Services > Bibliothek",", suche nach \"Gmail API\" und aktiviere sie.",[493,1877,1879],{"id":1878},"oauth-zustimmungsbildschirm-konfigurieren","OAuth-Zustimmungsbildschirm konfigurieren",[15,1881,1882],{},"Der OAuth-Consent-Screen besteht aus drei Bereichen:",[15,1884,1885,1888,1889,1892],{},[102,1886,1887],{},"Branding:"," Unter ",[102,1890,1891],{},"Google Auth Platform > Branding"," gibst du einen App-Namen (z.B. \"gmail-cli\"), deine E-Mail als Support-Adresse und Entwicklerkontakt ein.",[15,1894,1895,1898,1899,1902,1903,1906],{},[102,1896,1897],{},"Audience:"," Wähle unter ",[102,1900,1901],{},"Google Auth Platform > Audience"," den Typ ",[102,1904,1905],{},"External",", es sei denn, du nutzt Google Workspace. Füge dich selbst als Testnutzer hinzu.",[15,1908,1909,1888,1912,1915],{},[102,1910,1911],{},"Datenzugriff (Scopes):",[102,1913,1914],{},"Google Auth Platform > Data Access"," fügst du die benötigten Berechtigungen hinzu:",[149,1917,1918,1924,1930],{},[152,1919,1920,1923],{},[37,1921,1922],{},"https://www.googleapis.com/auth/gmail.readonly"," (E-Mails lesen)",[152,1925,1926,1929],{},[37,1927,1928],{},"https://www.googleapis.com/auth/gmail.modify"," (Archivieren, Labels)",[152,1931,1932,1935],{},[37,1933,1934],{},"https://www.googleapis.com/auth/gmail.send"," (E-Mails senden)",[15,1937,1938],{},"Je enger der Scope, desto geringer das Risiko bei einem geleakten Token.",[493,1940,1942],{"id":1941},"oauth-credentials-erstellen","OAuth-Credentials erstellen",[15,1944,1945,1946,1949,1950,1953,1954,1957,1958,1960,1961,1964,1965,1968],{},"Unter ",[102,1947,1948],{},"Google Auth Platform > Clients"," erstellst du einen neuen Client vom Typ ",[102,1951,1952],{},"Desktop-App",". Lade die JSON-Datei herunter, speichere sie als ",[37,1955,1956],{},"credentials.json"," im Projektverzeichnis und füge beide Dateien (",[37,1959,1956],{}," und später ",[37,1962,1963],{},"token.json",") zur ",[37,1966,1967],{},".gitignore"," hinzu.",[22,1970,1972],{"id":1971},"den-cli-mit-claude-code-entwickeln","Den CLI mit Claude Code entwickeln",[15,1974,1975,1976,1978],{},"Mit der ",[37,1977,1956],{}," im Projekt kannst du Claude Code bitten, den CLI zu implementieren. Ein guter Startpunkt ist ein Plan, der die Architektur skizziert:",[149,1980,1981,1983,1986,1989,1992],{},[152,1982,1858],{},[152,1984,1985],{},"OAuth-Konfiguration",[152,1987,1988],{},"CLI-Befehle (inbox, search, read, labels, archive)",[152,1990,1991],{},"Authentifizierungs-Flow",[152,1993,1994],{},"Edge Cases und Rate Limits",[15,1996,1997,1998,2001,2002,2005,2006,2009],{},"Claude Code generiert dann ",[37,1999,2000],{},"package.json",", die Hauptdatei ",[37,2003,2004],{},"index.js"," und macht das Script ausführbar. Mit ",[37,2007,2008],{},"npm link"," wird der Befehl systemweit verfügbar.",[493,2011,2013],{"id":2012},"erster-test","Erster Test",[15,2015,2016],{},"Beim ersten Aufruf öffnet sich der Browser für die OAuth-Autorisierung:",[30,2018,2020],{"className":204,"code":2019,"language":206,"meta":39,"style":39},"gmail-cli inbox --limit 1\n",[37,2021,2022],{"__ignoreMap":39},[210,2023,2024,2027,2030,2033],{"class":212,"line":213},[210,2025,2026],{"class":381},"gmail-cli",[210,2028,2029],{"class":231}," inbox",[210,2031,2032],{"class":231}," --limit",[210,2034,469],{"class":441},[15,2036,2037,2038,2040],{},"Nach der Zustimmung speichert der CLI ein ",[37,2039,1963],{}," für zukünftige Aufrufe.",[22,2042,2044],{"id":2043},"features-erweitern","Features erweitern",[15,2046,2047],{},"Die besten Features entstehen bei der Nutzung. Hier sind Beispiele, wie der CLI wuchs:",[493,2049,2051],{"id":2050},"json-output-und-body-inhalt","JSON-Output und Body-Inhalt",[15,2053,2054],{},"Für Newsletter-Zusammenfassungen brauchte ich strukturierte Daten:",[30,2056,2058],{"className":204,"code":2057,"language":206,"meta":39,"style":39},"gmail-cli inbox --json --body --max-length 5000\n",[37,2059,2060],{"__ignoreMap":39},[210,2061,2062,2064,2066,2069,2072,2075],{"class":212,"line":213},[210,2063,2026],{"class":381},[210,2065,2029],{"class":231},[210,2067,2068],{"class":231}," --json",[210,2070,2071],{"class":231}," --body",[210,2073,2074],{"class":231}," --max-length",[210,2076,2077],{"class":441}," 5000\n",[15,2079,2080,2081,2084,2085,2088,2089,2092,2093,2096],{},"Claude Code fügte ",[37,2082,2083],{},"--json"," für strukturierte Ausgabe, ",[37,2086,2087],{},"--body"," für den Nachrichteninhalt und ",[37,2090,2091],{},"--max-length"," für Trunkierung hinzu. Ein ",[37,2094,2095],{},"batch-read","-Befehl holt mehrere E-Mails parallel.",[493,2098,2100],{"id":2099},"archivieren","Archivieren",[15,2102,2103],{},"Ein einfacher Archiv-Befehl:",[30,2105,2107],{"className":204,"code":2106,"language":206,"meta":39,"style":39},"gmail-cli archive --search \"from:linkedin.com\"\n",[37,2108,2109],{"__ignoreMap":39},[210,2110,2111,2113,2116,2119,2121,2124],{"class":212,"line":213},[210,2112,2026],{"class":381},[210,2114,2115],{"class":231}," archive",[210,2117,2118],{"class":231}," --search",[210,2120,583],{"class":224},[210,2122,2123],{"class":231},"from:linkedin.com",[210,2125,754],{"class":224},[493,2127,2129],{"id":2128},"batch-operationen-mit-batchmodify","Batch-Operationen mit batchModify",[15,2131,2132,2133,2136],{},"Die initiale Version verarbeitete E-Mails einzeln. Bei 2.000 LinkedIn-E-Mails wurde das ineffizient. Die Gmail-API bietet ",[37,2134,2135],{},"batchModify",", um bis zu 1.000 Nachrichten in einem Call zu verarbeiten. Mit dieser Optimierung lassen sich tausende E-Mails in Sekunden archivieren.",[493,2138,2140],{"id":2139},"top-sender-analysieren","Top-Sender analysieren",[15,2142,2143],{},"Um herauszufinden, welche Absender den Posteingang füllen:",[30,2145,2147],{"className":204,"code":2146,"language":206,"meta":39,"style":39},"gmail-cli top-senders --sample 1000\n",[37,2148,2149],{"__ignoreMap":39},[210,2150,2151,2153,2156,2159],{"class":212,"line":213},[210,2152,2026],{"class":381},[210,2154,2155],{"class":231}," top-senders",[210,2157,2158],{"class":231}," --sample",[210,2160,2161],{"class":441}," 1000\n",[15,2163,2164],{},"Da die API pro Nachricht einen separaten Call für Header benötigt, würde ein Scan aller 15.000 E-Mails das Rate-Limit sprengen (250 Quota-Einheiten pro Sekunde). Die Lösung: Eine Stichprobe der letzten 1.000 E-Mails liefert ausreichend repräsentative Daten.",[22,2166,2168],{"id":2167},"_15000-e-mails-bereinigt","15.000 E-Mails bereinigt",[15,2170,2171],{},"Mit dem erweiterten CLI dauerte die Bereinigung etwa 45 Minuten. Der Workflow war ein iterativer Loop:",[814,2173,2174,2177,2180,2183],{},[152,2175,2176],{},"Nächsten E-Mail-Batch abrufen",[152,2178,2179],{},"In \"Bulk-Archiv\", \"Einzelarchiv\" und \"Behalten\" kategorisieren",[152,2181,2182],{},"Genehmigung mit Anpassungen (\"Daily Newsletter behalten, Rest archivieren\")",[152,2184,2185],{},"Parallele Archiv-Befehle ausführen",[15,2187,2188],{},"Runde für Runde verschwanden Tausende E-Mails:",[149,2190,2191,2194,2197,2200,2203],{},[152,2192,2193],{},"LinkedIn: 2.191",[152,2195,2196],{},"Garmin: 1.494",[152,2198,2199],{},"Going Travel Deals: 1.587",[152,2201,2202],{},"Amazon: 627",[152,2204,2205],{},"GitHub Notifications: 427",[15,2207,2208],{},"Schließlich wurde ich ungeduldig:",[30,2210,2212],{"className":204,"code":2211,"language":206,"meta":39,"style":39},"gmail-cli archive --search \"in:inbox before:2025/06/01\"\n",[37,2213,2214],{"__ignoreMap":39},[210,2215,2216,2218,2220,2222,2224,2227],{"class":212,"line":213},[210,2217,2026],{"class":381},[210,2219,2115],{"class":231},[210,2221,2118],{"class":231},[210,2223,583],{"class":224},[210,2225,2226],{"class":231},"in:inbox before:2025/06/01",[210,2228,754],{"class":224},[15,2230,2231],{},"6.152 E-Mails auf einmal archiviert. Manchmal schlägt ein Zeitstempel die sorgfältige Prüfung.",[15,2233,2234],{},"Der Posteingang landete bei unter 500 E-Mails. Die verbliebenen Nachrichten – persönliche E-Mails, Einwanderungsunterlagen, Recruiting-Threads – wurden einzeln durchgegangen.",[22,2236,2238],{"id":2237},"lessons-learned","Lessons Learned",[15,2240,2241,2244],{},[102,2242,2243],{},"CLI schlägt Browser-Automation:"," Wenn eine API existiert, ist ein CLI schneller, zuverlässiger und liefert strukturierte Daten.",[15,2246,2247,2250],{},[102,2248,2249],{},"OAuth ist einfacher als gedacht:"," Die Einrichtung in Google Cloud dauert etwa eine Stunde. Danach verwaltet der CLI alles weitere.",[15,2252,2253,2256],{},[102,2254,2255],{},"Iterativ bauen:"," Die meisten Features entstanden, weil ich während der Nutzung auf Hindernisse stieß und Claude Code bat, sie zu beheben. Ein perfektes Tool am Anfang ist nicht nötig – ein guter Startpunkt und die Fähigkeit zur Erweiterung genügen.",[15,2258,2259,2262,2263,2265],{},[102,2260,2261],{},"Batch-Operationen sind entscheidend:"," Das Entdecken von ",[37,2264,2135],{}," machte den Unterschied zwischen einer Stunde und wenigen Minuten.",[22,2267,2269],{"id":2268},"fazit","Fazit",[15,2271,2272],{},"Ein selbstgebauter Gmail-CLI passt exakt zu deinem Workflow. Du verstehst, wie die Teile zusammenpassen, und kannst jederzeit erweitern. Die Investition in ein persönliches Tool zahlt sich aus – nicht nur für die E-Mail-Verwaltung, sondern als Blaupause für weitere Automationen.",[15,2274,2275],{},"Die Rezeptur ist simpel: Projekt aufsetzen, Plan schreiben, Google Cloud konfigurieren, mit Claude Code bauen, iterieren.",[1306,2277,2278],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":39,"searchDepth":238,"depth":255,"links":2280},[2281,2282,2287,2290,2296,2297,2298],{"id":1833,"depth":238,"text":1834},{"id":1857,"depth":238,"text":1858,"children":2283},[2284,2285,2286],{"id":1861,"depth":255,"text":1862},{"id":1878,"depth":255,"text":1879},{"id":1941,"depth":255,"text":1942},{"id":1971,"depth":238,"text":1972,"children":2288},[2289],{"id":2012,"depth":255,"text":2013},{"id":2043,"depth":238,"text":2044,"children":2291},[2292,2293,2294,2295],{"id":2050,"depth":255,"text":2051},{"id":2099,"depth":255,"text":2100},{"id":2128,"depth":255,"text":2129},{"id":2139,"depth":255,"text":2140},{"id":2167,"depth":238,"text":2168},{"id":2237,"depth":238,"text":2238},{"id":2268,"depth":238,"text":2269},"2026-03-03T00:00:00.000Z","Wie man mit Claude Code einen Gmail CLI entwickelt, um den Posteingang per Kommandozeile zu verwalten und tausende E-Mails effizient zu archivieren.","images/gmail-cli-mit-claude-code.svg",{},"/blog/vibe-coding/2026-03-03-gmail-cli-mit-claude-code",{"title":1822,"description":2300},"blog/vibe-coding/2026-03-03-gmail-cli-mit-claude-code",[1363,2307,1817,2308,1365],"gmail","cli","S94Mb3bV6894Eh2V2-F_uVPSzFiH_dUAL83T8FgNcYc",1794136280358]