<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>SuperDevSpace-Blog</title>
    <link>https://superdevspace.com/de/blog</link>
    <description>Notizen aus der Entwicklung von SuperDevSpace: KI-Agententeams mit deinem eigenen CLI-Abo, Git-Worktrees, geführte Einrichtung und mehr.</description>
    <language>de</language>
    <lastBuildDate>Sun, 25 Oct 2026 10:00:00 GMT</lastBuildDate>
    <atom:link href="https://superdevspace.com/de/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Geführte Einrichtung: ein Agent, der dich durch jede Website führt</title>
      <link>https://superdevspace.com/de/blog/gefuehrte-einrichtung-agent</link>
      <guid isPermaLink="true">https://superdevspace.com/de/blog/gefuehrte-einrichtung-agent</guid>
      <pubDate>Sun, 25 Oct 2026 10:00:00 GMT</pubDate>
      <dc:creator>SuperDevSpace</dc:creator>
      <category>guided-setup</category>
      <category>browser</category>
      <category>agents</category>
      <description>Der Agent klickt sich durchs Dashboard, übergibt dir die Seite für Passwörter, Codes und Zahlungen und legt den API-Schlüssel ab. So funktioniert es.</description>
      <content:encoded><![CDATA[<p>Jedes Projekt braucht irgendwann etwas von einer Website. Den API-Schlüssel eines Zahlungsanbieters. Ein Webhook-Secret. Ein Client-Token aus einem Dashboard drei Menüs tief. Ein Agent schreibt die Integration in Minuten – und dann hält er an und sagt dir, du sollst dich selbst durchs Dashboard klicken, weil dieser Teil in einem Browser passiert, hinter deinem Login.</p>
<p>Die geführte Einrichtung ist, wie SuperDevSpace diese Lücke schließt. Der Agent öffnet die Seite im eigenen Browser der App, erledigt die Klicks, die er erledigen darf, und übergibt dir die Seite – mit einem Hinweis und einem Satz – genau dann, wenn der nächste Schritt deiner ist.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/inspector-chain.webp" alt="Das eingebaute Browser-Panel der App mit einer Webseite, einem ausgewählten Element und dessen Komponentenkette mit Datei und Zeile" loading="lazy" decoding="async"><figcaption>Das Browser-Panel in der App – dasselbe Panel, das die geführte Einrichtung steuert, hier mit Inspector (echte App, auf Türkisch).</figcaption></figure>
<h2 id="warum-lass-doch-den-agent-machen-die-falsche-antwort-ist">Warum „lass doch den Agent machen“ die falsche Antwort ist</h2>
<p>Die einfache Version dieser Funktion würde dem Agent den ganzen Browser geben: jedes Feld lesen, in jedes Feld tippen, jeden Button drücken. Das wäre schnell – und eine schlechte Idee. Ein Einrichtungsablauf steckt voller Dinge, die ein Agent nie anfassen sollte:</p>
<ul>
<li>dein Passwort und der Einmalcode von deinem Handy;</li>
<li>Kartennummern, Bankdaten und Ausweisdokumente;</li>
<li>die Bedingungen, denen du zustimmst, und die Zahlung, die du freigibst.</li>
</ul>
<p>Deshalb beginnt das Design am anderen Ende. Der Agent macht die Routinearbeit – navigieren, die richtige Seite finden, einen Projektnamen eintragen, auf <strong>Erstellen</strong> klicken –, und alles Persönliche oder Verbindliche bleibt bei dir.</p>
<div class="table-scroll"><table><thead><tr><th>Schritt im Einrichtungsablauf</th><th>Der Agent</th><th>Du</th></tr></thead><tbody><tr><td>Das Dashboard öffnen und die richtige Seite finden</td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td><td></td></tr>
<tr><td>Projektname, URL, eine Auswahl in einer Liste eintragen</td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td><td></td></tr>
<tr><td>Dein Passwort oder den Code vom Handy eingeben</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Karten-, Bank- oder Ausweisdaten eingeben</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Bedingungen ankreuzen, „Bezahlen“ oder „Bestellen“ klicken</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Den neuen API-Schlüssel lesen und in <code>.env</code> ablegen</td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td><td></td></tr></tbody></table></div>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Hinweis"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg><span>Die Grenze setzt die App durch</span></p><p>Das sind keine Vorschläge in einem Prompt. Die App lehnt jeden Versuch des Agents ab, die Grenze zu überschreiten; er kann sich nicht daran vorbeireden.</p>
</aside>
<h2 id="wie-eine-geführte-einrichtung-abläuft">Wie eine geführte Einrichtung abläuft</h2>
<p>Die Schleife ist auf jeder Seite dieselbe, auch auf solchen, für die niemand eine Anleitung geschrieben hat.</p>
<div class="blog-steps"><ol>
<li><strong>Seite öffnen.</strong> Der Agent öffnet einen Browser-Tab in der App. Deine Logins in diesem Browser bleiben über Neustarts erhalten – vielleicht bist du schon angemeldet.</li>
<li><strong>Erst schauen, dann handeln.</strong> Der Agent fordert eine Gliederung der Seite an: eine Zeile pro Überschrift, Button, Link, Feld und Frame. Sensible Felder werden nach Art aufgeführt – Passwort, Karte, Bank, Einmalcode, Identität – mit „ausgefüllt“ oder „leer“, nie mit ihrem Wert.</li>
<li><strong>Seinen Teil erledigen.</strong> Er klickt, füllt gewöhnliche Felder aus und liest Text, und nach allem, was die Seite verändert, liest er sie neu.</li>
<li><strong>Deinen Teil übergeben.</strong> Ist der nächste Schritt deiner, zeigt der Agent eine Hinweiskarte auf der Seite: einen kurzen Titel, eine konkrete Anweisung und eine Hervorhebung des gemeinten Felds oder Buttons. Du erledigst den Schritt und klickst auf <strong>Fertig – übergeben</strong>. Hängst du fest, klickst du auf <strong>Ich brauche Hilfe</strong> und schreibst, was du siehst; der Agent antwortet auf der Seite.</li>
<li><strong>Im selben Durchgang warten.</strong> Solange ein Hinweis angezeigt wird, wartet der Agent auf dich. Seine Klicks und Eingaben werden abgelehnt, bis du die Seite zurückgibst, und du kannst jederzeit <strong>Stopp / Kontrolle übernehmen</strong> drücken.</li>
<li><strong>Das Ergebnis mitnehmen.</strong> Zeigt die Seite, wofür du gekommen bist – einen API-Schlüssel, ein Token, ein Webhook-Secret –, liest der Agent es als Secret und legt es dort ab, wo es hingehört, etwa in der <code>.env</code> des Projekts. Er meldet, <em>wo</em> der Schlüssel liegt, nicht den Schlüssel.</li>
</ol>
</div>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/6ccdfae15d82783c3b10-light.svg" width="1012" height="481" alt="Eine geführte Einrichtung von der ersten Seite bis zum gespeicherten Schlüssel" loading="lazy" decoding="async"><figcaption>Eine geführte Einrichtung von der ersten Seite bis zum gespeicherten Schlüssel</figcaption></figure>
<p>Danach kannst du das Ergebnis prüfen, ohne ein Secret auf den Bildschirm zu holen:</p>
<pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '^PADDLE_[A-Z_]*='</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> .env</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_API_KEY</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_CLIENT_TOKEN</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_WEBHOOK_SECRET</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_ENVIRONMENT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span></code></pre>
<h2 id="regeln-die-die-app-durchsetzt">Regeln, die die App durchsetzt</h2>
<p>Das sind Prüfungen in der App, und der Agent kann sie nicht abschalten:</p>
<ul>
<li><strong>Keine Secrets rein, keine Secrets raus.</strong> Der Agent kann nicht in Passwort-, Karten-, CVC-, IBAN-, Einmalcode- oder Ausweisfelder tippen. Liest er die Seite oder macht er einen Snapshot, sind diese Werte verborgen und werden aus jedem gelesenen Text entfernt.</li>
<li><strong>Screenshots werden übermalt.</strong> Sensible Felder und jeder Cross-Origin-Frame – ein Karten-Widget, ein „Mit Google anmelden“-Feld – werden abgedeckt, bevor ein Agent ein Bild sieht.</li>
<li><strong>Keine Skripte auf sensiblen Seiten.</strong> JavaScript in der Seite auszuführen wird auf jeder Seite abgelehnt, die ein solches Feld zeigt.</li>
<li><strong>Zustimmung und Zahlung sind deine Sache.</strong> Ein Klick auf eine Bedingungs-Checkbox oder einen „Bezahlen“-/„Bestellen“-Button wird abgelehnt.</li>
<li><strong>Alles ist sichtbar.</strong> Was der Agent im Browser-Panel tut, siehst du in dessen Banner, während es passiert.</li>
<li><strong>Secrets bleiben aus dem Gespräch.</strong> Ein als Secret gelesener Wert wird als sensibel markiert, und der Agent wird angewiesen, ihn nie im Chat, in Berichten, Aufgabennotizen oder Benachrichtigungen zu wiederholen.</li>
</ul>
<aside class="blog-callout blog-callout-warning" role="note" aria-label="Warnung"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg><span>Warnung</span></p><p>Eine Zahlung freizugeben oder Bedingungen zu akzeptieren ist immer dein Klick. Kommt ein Ablauf ohne ihn nicht weiter, übergibt dir der Agent die Seite und wartet.</p>
</aside>
<h2 id="jede-website-keine-liste-von-integrationen">Jede Website, keine Liste von Integrationen</h2>
<p>Die geführte Einrichtung ist eine Schleife, keine Skriptbibliothek. Sie funktioniert auch auf Seiten, für die niemand einen Hinweis geschrieben hat, weil der Agent die tatsächliche Seite vor sich liest. Für ein paar Dienste liefern wir kurze Hinweisdateien mit – etwa für das Sandbox-Dashboard von Paddle und für RevenueCat –, die dem Agent sagen, wo die Entwicklereinstellungen meistens liegen. Dashboards verschieben ihre Menüs ständig, deshalb sagen die Hinweise klar: Wenn Seite und Hinweis sich widersprechen, gilt die Seite.</p>
<p>Das ist wichtiger, als es klingt. Der Integrationscode, den ein Agent schreibt, ist nur die Hälfte einer Funktion; die andere Hälfte sind Konto, Schlüssel und Webhook auf der Website eines anderen. Mit der geführten Einrichtung passieren beide Hälften in derselben Session, mit demselben Agent – und du verbringst deine Zeit nur mit den Schritten, die nur du erledigen kannst.</p>
<h2 id="wo-sie-hingehört">Wo sie hingehört</h2>
<p>Die geführte Einrichtung ist Teil desselben Arbeitsbereichs wie alles andere in SuperDevSpace: Der Agent, der deine Checkout-Integration schreibt, ist derselbe, der dich durch das Anlegen der Schlüssel führt – in einem Browser-Panel neben seinem Terminal. Wenn du neu hier bist, erklärt <a href="https://superdevspace.com/de/blog/warum-wir-superdevspace-gebaut-haben">warum wir SuperDevSpace gebaut haben</a> den Rest des Teams drumherum.</p>
<h2 id="ausprobieren">Ausprobieren</h2>
<p>Die Testphase umfasst 14 Tage Premium, ohne Karte. <a href="https://superdevspace.com/download">Lade SuperDevSpace herunter</a>, bitte einen Agent, einen Zahlungs- oder Analyseanbieter für dein Projekt einzurichten, und lass ihn dir die Seite übergeben, wenn du dran bist.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Parallele Coding-Agents in Git-Worktrees betreiben</title>
      <link>https://superdevspace.com/de/blog/parallele-coding-agents-in-git-worktrees</link>
      <guid isPermaLink="true">https://superdevspace.com/de/blog/parallele-coding-agents-in-git-worktrees</guid>
      <pubDate>Sun, 25 Oct 2026 09:00:00 GMT</pubDate>
      <dc:creator>SuperDevSpace</dc:creator>
      <category>git-worktrees</category>
      <category>agents</category>
      <category>workflow</category>
      <description>Wie SuperDevSpace mehrere Coding-Agents in einem Repository trennt: ein Git-Worktree und Branch pro Worker, Commits pro Durchgang, Squash-Merges.</description>
      <content:encoded><![CDATA[<p>Lass zwei Coding-Agents im selben Checkout laufen, und du verstehst schnell, warum Softwareteams Branches benutzen. Ein Agent benennt ein Modul um, während der andere die Testsuite gegen die halbe Umbenennung laufen lässt. Einer staged Dateien, die der andere gerade gelöscht hat. Keiner macht etwas falsch – sie teilen sich nur einen Schreibtisch.</p>
<p>SuperDevSpace lässt einen Manager und mehrere Worker gleichzeitig auf einem Repository arbeiten. Dieser Artikel erklärt den Mechanismus, der sie auseinanderhält – Git-Worktrees – und die genauen Regeln, die die App dabei befolgt.</p>
<h2 id="was-ein-git-worktree-ist">Was ein Git-Worktree ist</h2>
<p>Ein Git-Repository hat normalerweise ein Arbeitsverzeichnis. Mit <code>git worktree</code> bekommt ein Repository mehrere, jedes auf einem eigenen Branch ausgecheckt, alle mit derselben Objektdatenbank. Es gibt keinen zweiten Clone und keine zweite Kopie der History: Ein neuer Worktree kostet die Dateien eines Checkouts und sonst nichts.</p>
<p>Du kannst es in jedem Repository von Hand ausprobieren. Die Befehle sind überall gleich, nur die Shell unterscheidet sich:</p>
<div class="blog-tabs" data-tabs><section class="blog-tab-panel" id="blog-tab-1-0" data-tab-label="macOS / Linux"><p class="blog-tab-label">macOS / Linux</p><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> worktree</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -b</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> agent/frontend-demo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ../myrepo-frontend</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> worktree</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> list</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ../myrepo-frontend</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> &#x26;&#x26; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> status</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> &#x26;&#x26; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> worktree</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ../myrepo-frontend</span></span></code></pre>
</section><section class="blog-tab-panel" id="blog-tab-1-1" data-tab-label="Windows (PowerShell)"><p class="blog-tab-label">Windows (PowerShell)</p><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">git worktree add </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">b agent</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">demo ..\myrepo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">git worktree list</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">cd ..\myrepo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend; git status</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">cd ..\myrepo; git worktree remove ..\myrepo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend</span></span></code></pre>
</section></div>
<p>Jeder Worktree hat seinen eigenen <code>HEAD</code>, seinen eigenen Index und seine eigenen Dateien. Zwei Prozesse können in zwei Worktrees gleichzeitig editieren, bauen und testen, ohne die halbfertigen Änderungen des anderen zu sehen. Genau diese Eigenschaft braucht ein Team aus Agents.</p>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Hinweis"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg><span>Hinweis</span></p><p>Einen Worktree zu entfernen löscht nicht seinen Branch. Die Commits bleiben im Repository, bis du den Branch selbst löschst.</p>
</aside>
<h2 id="wie-superdevspace-sie-nutzt">Wie SuperDevSpace sie nutzt</h2>
<p>Die Regeln sind einfach und für jede Organisation gleich:</p>
<ul>
<li><strong>Der Manager arbeitet in deinem Haupt-Checkout.</strong> Er plant, prüft und merged; dort kommen die Branches zusammen.</li>
<li><strong>Jeder Worker bekommt seinen eigenen Worktree auf einem eigenen Branch.</strong> Stellt der Manager einen Worker ein, führt die App für ihn <code>git worktree add -b &lt;branch&gt; &lt;pfad&gt;</code> aus. Der Branch heißt <code>agent/&lt;worker-name&gt;-&lt;stempel&gt;</code>, sofern du ihm keinen eigenen Namen gegeben hast.</li>
<li><strong>Worktrees liegen im Datenordner der App</strong>, unter <code>worktrees/&lt;organisation&gt;/&lt;worker&gt;</code>, nie in deinem Repository. Dein Projektordner füllt sich nicht mit Agent-Verzeichnissen.</li>
<li><strong>Jeder Durchgang wird committet.</strong> Beendet ein Worker einen Durchgang, committet die App alles, was sich in seinem Worktree geändert hat (<code>agent(&lt;name&gt;): turn</code>). Nichts, was ein Worker getan hat, existiert nur in einem nicht committeten Arbeitsverzeichnis.</li>
<li><strong>Gemerged wird per Squash-Merge.</strong> Akzeptiert der Manager den Bericht eines Workers, wird der Branch mit <code>git merge --squash</code> als ein Commit in deine Linie gemerged. Gibt es einen Konflikt, bricht die App den Merge ab und hinterlässt das Repository sauber für die nächste Operation, statt dich mitten in einem Konflikt stehen zu lassen.</li>
<li><strong>Eine Git-Operation pro Repository auf einmal.</strong> Die Worktree-Verzeichnisse trennen die Dateien; eine Warteschlange pro Repository serialisiert die Git-Befehle selbst. Zwei Worker, die im selben Moment fertig werden, konkurrieren nie um Gits Metadaten.</li>
</ul>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/e914070da50d6e4ee32e-light.svg" width="471" height="287" alt="Zwei Worker, zwei Branches, zwei Squash-Merges" loading="lazy" decoding="async"><figcaption>Zwei Worker, zwei Branches, zwei Squash-Merges</figcaption></figure>
<p>Auf dem Board sieht das aus wie mehrere Aufgaben gleichzeitig in Arbeit, jede bei einem anderen Worker, jede mit ihrem eigenen Branch darunter.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/board-sprint.webp" alt="Ein Sprint-Board mit Aufgaben, verteilt auf To do, In Arbeit, Wartet auf Freigabe, Im Review und Erledigt" loading="lazy" decoding="async"><figcaption>Parallel laufende Aufgaben auf dem Board einer Organisation – jeder Worker auf seinem eigenen Branch (echte App, auf Türkisch).</figcaption></figure>
<h2 id="was-es-praktisch-macht">Was es praktisch macht</h2>
<p>Ein frischer Worktree enthält nur, was Git verfolgt. Das reicht meist nicht, um ein Projekt zu starten: <code>node_modules</code>, eine lokale <code>.env</code>, generierte Dateien. Zwei Details lösen das.</p>
<h3 id="ein-setup-skript-pro-repository">Ein Setup-Skript pro Repository</h3>
<p>Hat dein Repository eine <code>.super/scripts/setup-worktree.sh</code>, führt die App sie in jedem neuen Worktree aus, bevor der Worker startet, mit <code>SUPERDEV_MAIN_REPO</code> als Verweis auf deinen Haupt-Checkout. Die Ausgabe wird live gestreamt – eine lange Installation ist also kein Blindflug –, und du kannst sie abbrechen.</p>
<pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">#!/usr/bin/env bash</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">set</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -euo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> pipefail</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Nur lokal vorhandene Dateien aus dem Haupt-Checkout kopieren</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$SUPERDEV_MAIN_REPO</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">/.env"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> .env</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> 2></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">/dev/null</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ||</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Abhängigkeiten installieren (pnpm verlinkt aus einem gemeinsamen Store, das geht schnell)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --frozen-lockfile</span></span></code></pre>
<aside class="blog-callout blog-callout-tip" role="note" aria-label="Tipp"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"/><path d="M9 18h6"/><path d="M10 22h4"/></svg><span>Halte das Setup-Skript schnell</span></p><p>Der Worker startet erst, wenn das Skript fertig ist, und ein fehlschlagendes Skript stoppt den Start, statt einen Agent in einem halb vorbereiteten Baum arbeiten zu lassen. Ein Paketmanager mit gemeinsamem Store hält jeden neuen Worktree günstig.</p>
</aside>
<h3 id="submodules">Submodules</h3>
<p><code>git worktree add</code> lässt Submodules leer. Hat der neue Worktree eine <code>.gitmodules</code>-Datei, führt die App darin <code>git submodule update --init --recursive</code> aus, damit kein Worker gegen eine stillschweigend fehlende Abhängigkeit baut.</p>
<h2 id="aufräumen-ohne-arbeit-zu-verlieren">Aufräumen, ohne Arbeit zu verlieren</h2>
<p>Worktrees sammeln sich an. Die App räumt sie auf, aber vorsichtig:</p>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/6d97d160ef931354e453-light.svg" width="434" height="705" alt="Wann der Worktree eines Workers entfernt werden darf" loading="lazy" decoding="async"><figcaption>Wann der Worktree eines Workers entfernt werden darf</figcaption></figure>
<p>Ein Worktree mit nicht committeten Änderungen oder mit einem Branch, dessen Arbeit noch nicht in deiner Linie ist, bleibt, wo er ist. Ein gelöschter Ordner lässt sich neu anlegen; verlorene Arbeit nicht. Dieselbe Vorsicht gilt für Branches: Die App merkt sich die Branches, die sie angelegt hat, und fasst nur diese an.</p>
<h2 id="was-sich-für-dich-ändert">Was sich für dich ändert</h2>
<p>Mit jedem Worker auf einem eigenen Branch ist „vier Agents gleichzeitig laufen lassen“ kein Glücksspiel mehr. Du kannst:</p>
<ul>
<li>dem Manager eine Direktive geben, die in unabhängige Aufgaben zerfällt, und die Worker parallel laufen lassen;</li>
<li>den Diff jedes Workers einzeln lesen, neben dem Gespräch, das ihn erzeugt hat;</li>
<li>die Änderung eines Workers ablehnen, ohne die anderen zu stören;</li>
<li>deinen Haupt-Checkout selbst weiter benutzen, während das Team arbeitet.</li>
</ul>
<p>Es ist dieselbe Disziplin, die ein menschliches Team nutzt – angewandt auf Agents, die dir nicht sagen können, dass sie sich gleich gegenseitig auf die Füße treten. Wenn du dich fragst, warum wir darum eine ganze App gebaut haben, erzählt der <a href="https://superdevspace.com/de/blog/warum-wir-superdevspace-gebaut-haben">erste Artikel</a> die Geschichte.</p>
<h2 id="ausprobieren">Ausprobieren</h2>
<p>Die 14-tägige Testphase ist Premium, ohne Karte. <a href="https://superdevspace.com/download">Lade SuperDevSpace herunter</a>, richte eine neue Organisation auf ein Repository und sieh zu, wie die Worktrees entstehen, während der Manager seine ersten Worker einstellt.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Warum wir SuperDevSpace gebaut haben: ein KI-Team auf deinem eigenen CLI-Abo</title>
      <link>https://superdevspace.com/de/blog/warum-wir-superdevspace-gebaut-haben</link>
      <guid isPermaLink="true">https://superdevspace.com/de/blog/warum-wir-superdevspace-gebaut-haben</guid>
      <pubDate>Sun, 25 Oct 2026 08:00:00 GMT</pubDate>
      <dc:creator>SuperDevSpace</dc:creator>
      <category>launch</category>
      <category>agents</category>
      <category>claude-code</category>
      <description>Ein Manager plant, Worker bauen – jeder im eigenen Terminal und Git-Worktree, auf der Agent-CLI, die du schon bezahlst. Warum wir es gebaut haben.</description>
      <content:encoded><![CDATA[<p>Wenn du schon für eine Agent-CLI wie Claude Code bezahlst, hast du mehr Kapazität, als dich ein einzelnes Terminalfenster nutzen lässt. Das Modell kann planen, Code schreiben, Tests ausführen und erklären, was es tut. Was es allein nicht kann: fünf Leute gleichzeitig sein, den Überblick behalten, wer woran arbeitet, und dir am Ende des Tages einen ehrlichen Bericht geben.</p>
<p>Genau wegen dieser Lücke haben wir SuperDevSpace gebaut. Es ist eine Desktop-App, die aus der CLI, die du schon hast, ein kleines Team macht: ein Manager, der die Arbeit plant, und Worker, die sie erledigen – jeder in seinem eigenen Terminal und seinem eigenen Git-Worktree.</p>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Hinweis"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg><span>Wir verkaufen das Orchester, nicht die Musiker</span></p><p>SuperDevSpace verkauft keine Modelle und keine Tokens. Es steuert die Agent-CLI, die du schon bezahlst – unter deinem eigenen Vertrag mit deren Anbieter.</p>
</aside>
<h2 id="das-problem-mit-einem-agent-in-einem-terminal">Das Problem mit einem Agent in einem Terminal</h2>
<p>Mit einem einzelnen Coding-Agent zu arbeiten fühlt sich bei einer einzelnen Aufgabe großartig an. Es bricht zusammen, sobald du drei Dinge im selben Repository zu erledigen hast:</p>
<ul>
<li>Du kannst ein zweites Terminal öffnen, aber dann bearbeiten beide Agents denselben Checkout. Einer lässt die Testsuite laufen, während der andere mitten in einem Refactoring steckt.</li>
<li>Du wirst zum Projektmanager. Du teilst die Arbeit auf, merkst dir, welches Terminal welche Aufgabe hatte, und trägst Kontext von einer Session in die nächste.</li>
<li>Niemand schreibt auf, was passiert ist. Wenn du aus der Mittagspause kommst, ist der Scrollback-Puffer das einzige Protokoll.</li>
</ul>
<p>Nichts davon ist ein Modellproblem. Es ist ein Organisationsproblem – und Organisation ist etwas, das Software gut kann.</p>
<div class="table-scroll"><table><thead><tr><th></th><th>Ein Agent, ein Terminal</th><th>Eine SuperDevSpace-Organisation</th></tr></thead><tbody><tr><td>Parallele Arbeit ohne Kollisionen</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Ein Worktree und Branch pro Worker</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Arbeit als Aufgaben auf einem Board</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Ein schriftlicher Bericht pro Aufgabe</td><td><span class="blog-no" role="img" aria-label="Nein">✗</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Du prüfst den Diff, bevor er landet</td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr>
<tr><td>Läuft auf der CLI, die du schon bezahlst</td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td><td><span class="blog-yes" role="img" aria-label="Ja">✓</span></td></tr></tbody></table></div>
<h2 id="was-superdevspace-tatsächlich-macht">Was SuperDevSpace tatsächlich macht</h2>
<p>In SuperDevSpace ist jedes Repository eine <strong>Organisation</strong>. Jede Organisation hat einen <strong>Manager</strong>: eine echte Agent-CLI-Session in einem echten Terminal, das du siehst und in das du tippen kannst. Du gibst dem Manager eine Direktive in normaler Sprache – getippt oder per Spracheingabe diktiert.</p>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/a34bdae3d239e079a661-light.svg" width="464" height="640" alt="Wie aus einer Direktive gemergte Arbeit wird" loading="lazy" decoding="async"><figcaption>Wie aus einer Direktive gemergte Arbeit wird</figcaption></figure>
<p>Der Manager macht dann, was ein Teamlead tun würde:</p>
<div class="blog-steps"><ol>
<li><strong>Planen.</strong> Er eröffnet einen Sprint und zerlegt die Direktive in Aufgaben auf einem Board, jede mit einem kurzen Briefing.</li>
<li><strong>Einstellen.</strong> Er stellt Worker für diese Aufgaben ein. Jeder Worker ist eine weitere echte CLI-Session in einem eigenen, sichtbaren Terminal-Tab, mit einer Rolle – Frontend-Entwickler, QA-Engineer und so weiter.</li>
<li><strong>Trennen.</strong> Jeder Worker bekommt seinen eigenen Git-Worktree auf einem eigenen Branch, sodass parallele Arbeit nie in einem Checkout kollidiert. Ein eigener Artikel erklärt, <a href="https://superdevspace.com/de/blog/parallele-coding-agents-in-git-worktrees">wie das funktioniert</a>.</li>
<li><strong>Prüfen.</strong> Ist ein Worker fertig, reicht er einen Bericht ein. Der Manager prüft ihn, merged den Branch und fordert Korrekturen an, wenn etwas nicht stimmt.</li>
<li><strong>Berichten.</strong> Du bekommst einen zusammengefassten Bericht statt fünf Scrollbacks.</li>
</ol>
</div>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/team-roles.webp" alt="Der Dialog „Agents hinzufügen“: ein Raster mit Rollen wie Frontend, Backend, QA-Engineer, Code-Reviewer, Designer und DevOps, dazu ein Namensfeld und optionale Zusatzanweisungen" loading="lazy" decoding="async"><figcaption>Die Rolle eines Workers beim Aufsetzen des Teams wählen (echte App, auf Türkisch).</figcaption></figure>
<p>Du kannst jederzeit einsteigen. Jeder Agent hat eine Chat-Ansicht und sein echtes Terminal – eine Session, zwei Blickwinkel –, und jede Änderung erscheint als Diff neben dem Gespräch, das sie erzeugt hat. So prüfst du, bevor etwas auf deiner Hauptlinie landet.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/board-sprint.webp" alt="Das Sprint-Board einer Organisation mit den Spalten Backlog, To do, In Arbeit, Wartet auf Freigabe, Im Review und Erledigt sowie Aufgabenkarten mit Lane-Labels" loading="lazy" decoding="async"><figcaption>Das Sprint-Board einer Demo-Organisation, während ihr Team arbeitet (echte App, auf Türkisch).</figcaption></figure>
<h2 id="dein-abo-deine-maschine-dein-code">Dein Abo, deine Maschine, dein Code</h2>
<p>Die wichtigste Designentscheidung ist zugleich die einfachste: <strong>SuperDevSpace steuert eine CLI, die du schon bezahlst.</strong> Wir verkaufen keinen Modellzugang weiter, also taucht nichts, was du ausführst, auf einer Rechnung von uns auf – außer dem SuperDevSpace-Abo selbst.</p>
<p>Diese Entscheidung hat Folgen, die uns gefallen:</p>
<ul>
<li><strong>Agents laufen als lokale Prozesse auf deiner Maschine</strong>, auf deinen lokalen Repositories. Quellcode, Prompts, Terminalausgaben und Dateipfade werden nie an unsere Server geschickt. Unser Account-Service speichert ein Konto, einen Abo-Status und eine Geräteliste.</li>
<li><strong>Du wählst die CLI pro Organisation.</strong> Claude Code, OpenAI Codex, Gemini CLI, Aider, Qwen Code, Cursor CLI und OpenCode sind auswählbar. Claude Code spricht die App heute fließend – Hooks, Resume, MCP-Tools, Berechtigungsantworten. Die anderen sechs starten und laufen; die App kennzeichnet sie als experimentell und sagt dir, welche Extras noch nicht angebunden sind, statt still zu scheitern.</li>
<li><strong>Nichts ist in unserer Cloud eingesperrt</strong>, weil keine Cloud die Arbeit macht.</li>
</ul>
<p>Vor der ersten Direktive lohnt sich ein kurzer Check, ob CLI und Repository da sind, wo du sie erwartest:</p>
<pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> claude</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --version</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ~/code/dein-projekt</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> status</span></span></code></pre>
<h2 id="was-um-das-team-herum-dazugehört">Was um das Team herum dazugehört</h2>
<p>Ein Team braucht mehr als Terminals. Ein paar Dinge, die in jedem Plan enthalten sind:</p>
<ul>
<li><strong>Ein Board, das die Wahrheit sagt.</strong> Sprints, Aufgaben, Briefings und Berichte. Ein Bericht sagt, was fehlgeschlagen ist, nicht nur, was geklappt hat.</li>
<li><strong>Inspector.</strong> Klick auf ein Element deiner laufenden Webseite und schick es mit Komponente, Datei und Zeile an einen Agent. Funktioniert mit Vite, Next.js und statischen Seiten.</li>
<li><strong>Freigaben vom Handy.</strong> Braucht ein Agent eine Entscheidung, fragt er dich. Die Handy-App zeigt das Board, die Agents und offene Freigaben, sodass du einen Berechtigungs-Prompt auch fern vom Schreibtisch beantwortest.</li>
<li><strong>Ein Whiteboard pro Organisation</strong> (Excalidraw), das Agents lesen und bemalen können.</li>
</ul>
<figure class="blog-figure blog-figure-video"><video class="blog-video" muted loop playsinline controls preload="metadata" data-autoplay aria-label="Ein kurzer, stummer Loop aus der Produkttour: eine Organisation anlegen und die ersten Schritte"><source src="https://superdevspace.com/media/superdevspace-tanitim-loop.mp4" type="video/mp4"></video><figcaption>Ein paar Sekunden aus der echten Produkttour (App auf Türkisch).</figcaption></figure>
<p>Premium bringt die Teile, die weiter reichen: einen Designmodus auf Basis von Penpot mit einem Designer-Agent, der in der Datei zeichnet, Zeitpläne, die Direktiven nach Fahrplan ausführen, und einen Peer-Link, mit dem ein Manager auf deinem Mac Arbeit an einen Manager auf deinem Windows-PC übergibt. Den vollständigen Vergleich findest du auf der <a href="https://superdevspace.com/pricing">Preisseite</a>.</p>
<h2 id="was-wir-nicht-versprechen">Was wir nicht versprechen</h2>
<aside class="blog-callout blog-callout-warning" role="note" aria-label="Warnung"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg><span>Lieber präzise als beeindruckend</span></p><p>SuperDevSpace macht das Modell nicht klüger; es gibt dem Modell eine Struktur, in der es arbeitet. Es läuft auf macOS (Apple Silicon) und Windows (64 Bit); für Linux gibt es noch kein Datum, und wir erfinden keins.</p>
</aside>
<p>Ein Team aus Agents braucht trotzdem einen Chef: Du entscheidest, was gebaut wird, und du gibst frei, was auf deinem Main-Branch landet.</p>
<h2 id="ausprobieren">Ausprobieren</h2>
<p>Die Testphase umfasst 14 Tage Premium, ohne Karte. Dein CLI-Abo bleibt deins, dein Code auch. Wenn du das Team in deinem eigenen Repository arbeiten sehen willst, <a href="https://superdevspace.com/download">lade SuperDevSpace herunter</a> und gib dem Manager seine erste Direktive.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
