IdeaClyst
Verwandelt grobe Ideen in baubare SaaS-Pläne — indem Claude und Codex am selben Council-Tisch sitzen.
★Schritt-für-Schritt-Anleitung
Der schnellste Weg von einem frischen Clone zu einem fertigen Planungspaket. Der Mock-Modus ist die Voreinstellung — du brauchst also keine CLIs, um alles durchzuspielen.
Abhängigkeiten installieren
Im Projekt-Wurzelverzeichnis:
npm installKonfiguration anlegen
Kopiere die Beispiel-Env-Datei. Sie startet im Mock-Modus — keine CLIs nötig.
cp .env.example .env.localIdee-Session starten
Auf der Startseite auf „Start an Idea Session“ klicken — das öffnet das Ideen-Formular (/new).
Idee beschreiben
Gib einen Titel, beschreibe die Idee (mindestens ein Satz, 10+ Zeichen) und wähle ein Ziel — validate · plan · build · pitch · refine. Optional: Zielkunde, Constraints oder bevorzugter Stack. Dann absenden.
Dem Council beim Beraten zusehen
Du landest auf der Run-Seite, die alle 1,5 s pollt. Die fünf Schritte leuchten nacheinander auf — ✓ fertig, ▸ aktiv, ○ ausstehend — und jedes Ergebnis erscheint, sobald es abgeschlossen ist.
Dein Paket lesen
Ist der Run fertig, füllen sich die Ergebnis-Tabs: Summary, MVP Backlog, Risks, Validation Tests, Next Prompts. Alle früheren Sessions liegen unter /runs.
(Optional) Auf echte CLIs umstellen
Für echte Modell-Ausgaben setzt du IDEACLYST_AGENT_MODE=cli in .env.local, stellst sicher, dass beide CLIs installiert und eingeloggt sind, startest den Server neu und legst eine neue Session an. Ein echter Council dauert ~5–7 min (fünf echte Modell-Aufrufe), im Mock-Modus dagegen sofort.
Die Dateien finden
Jeder Run wird unter .ideaclyst/runs/<runId>/ auf Platte gespeichert — als run.json plus Markdown-Artefakte, die du außerhalb der App lesen oder teilen kannst.
Achtung im Dev-Modus: Eine Datei mitten im Lauf zu editieren kann einen aktiven Council unterbrechen (der Orchestrator läuft in-process). Wenn das passiert: npm run dev neu starten und eine frische Session beginnen.
01Was es ist
IdeaClyst ist eine local-first Next.js-App, die eine grobe Produktidee in ein vollständiges Founder-Planungspaket verwandelt. Das geschieht nicht mit einem einzigen Prompt, sondern über einen strukturierten Council — eine fünfstufige Beratung zwischen zwei KI-Kommandozeilen-Tools, die gegensätzliche Rollen einnehmen und sich gegenseitig kritisieren, bevor sie zu einem Urteil kommen.
Stell es dir wie einen winzigen Vorstand vor: ein skeptischer SaaS-Gründer (Claude) und ein pragmatischer CTO (Codex) argumentieren deine Idee in Form. Die Ausgabe wird in Summary, MVP Backlog, Risks, Validation Tests und gebrauchsfertige Next Prompts aufgeteilt.
Die ganze App dreht sich um eine Idee: Zwei verschiedene Modelle, die gegensätzliche Rollen einnehmen und die Arbeit des anderen lesen, erzeugen einen schärferen Plan als jedes für sich. Alles andere — der Disk-Store, die Polling-UI, der Mode-Switch — existiert nur, um diese Beratung zu ermöglichen.
Neu: ein Web-Research-Schritt 0 (aus surfagent übernommen) durchsucht headless Markt/Wettbewerber und erdet jeden Council-Schritt mit echten Daten — plus ein Idea-Discovery-Modus (/discover), der Ideen vorschlägt, die du in einen Run überführen kannst. Discovery-Kandidaten bekommen jetzt vollständige Idea-Reports mit Scorecards, Offer Ladder, Proof-Signalen, Ausführungsplan, Founder Fit, Roast, Keyword-Quelle/Freshness, kopierbaren Exports, Claude/Codex-Handoff-Prompts, gespeicherter Library, Founder-Profile-Personalisierung, Trend Radar und einem Side-by-side-Vergleich. Research ist best-effort und modusabhängig (standardmäßig Mock/offline) — ein Run scheitert nie, wenn Chrome fehlt. Details in der README.
02Funktionen im Überblick
Dual-Agent-Council
Fünf abwechselnde Schritte zwischen Claude und Codex; jeder Agent liest vorherige Ergebnisse und kritisiert den anderen.
Mock-Modus als Default
Realistische, ideen-spezifische Ausgabe ganz ohne installierte CLIs. Eine Env-Variable umlegen für den Ernstfall.
Progressive Ergebnisse
Jedes Schritt-Ergebnis erscheint im Moment seiner Fertigstellung — die Run-Seite pollt alle 1,5 s die Platte.
Die Platte ist die Wahrheit
Jeder Run wird als run.json + Markdown-Dateien persistiert. Ein Server-Neustart verliert nie ein Ergebnis.
Tab-Paket
Der finale Plan wird automatisch in Summary, MVP Backlog, Risks, Validation Tests & Next Prompts aufgeteilt.
Ohne Shell, sandboxed
CLIs starten mit Array-Args + stdin (keine Injection); Codex läuft read-only in einem Wegwerf-Temp-Verzeichnis.
Sauberes Scheitern
Eine fehlende oder fehlschlagende CLI markiert den Run als „failed“ mit klarer Meldung — abgeschlossene Schritte bleiben erhalten.
Markdown-Artefakte
Jeder Run schreibt zusätzlich lesbare .md-Dateien, die du außerhalb der App lesen oder teilen kannst.
Keine Credentials
IdeaClyst fasst nie API-Schlüssel an — beide CLIs authentifizieren über ihre eigene lokale Session.
Evidence Toolkit
Surfagent-Recherche schreibt RESEARCH_DOSSIER.json, einen Toolkit-Tab, einen Founder-Brief und eigenständige Markt-Artefakte.
Vollständige Idea-Reports
Jeder Kandidat hat eine Report-Seite mit Business Fit, Offer Ladder, Why-now, Proof, Market Gap, Frameworks, Keywords, Founder Fit und Roast.
Vergleichen und exportieren
Kandidaten-Reports können in /compare verglichen und als Markdown, JSON, One-Pager oder Claude/Codex-Implementierungs- und Review-Prompts kopiert werden.
Founder Profile
/profile speichert Skills, Kapazität, Risiko, Sales-Komfort, Kapital, Marktzugang und unfair Advantages lokal.
My Stuff
Kandidaten und Reports lassen sich in /library speichern, lokal als JSON und Markdown unter .ideaclyst.
Market Signal Library
/trends, /insights und /monitors machen aus lokalen Discoveries Trend-Karten, Markt-Insights und wiederholbare Competitor-/Trend-Diffs.
Quellenbewusste Intelligence
Keyword-Sektionen zeigen Quelle und Freshness und können optionale Snapshot-Daten über deterministische Offline-Schätzungen legen.
Schlanke Produktbereiche
Der Header bleibt kompakt: Explore enthält Discover, Today und Trends; Workspace enthält Sessions, Library und Validation. Tiefere Tools sind kontextuell verlinkt.
Quellen-Audit
/evidence indexiert Run-, Discovery- und Report-Quellen mit Confidence, Freshness, Claims und Warnungen.
Sprint-Workspaces
/validation, /validation/import, /validation/analytics und /interviews machen Reports, Pricing-Tests, eingefügte Ergebnisse und Personas zu einem Audit-Trail.
PRD, Landing und Pakete
Kandidaten-Reports öffnen Funnel-, Landingpage-, Persona-, Advisor-, Versions-, Export- und Build-this-Idea-Workspaces, alle aus dem gespeicherten Report abgeleitet.
Entscheidungen und Memory
Report-Entscheidungen schreiben nach .ideaclyst/decisions, speisen kompaktes Council-Memory und halten promoted, parked, killed und validated nachvollziehbar.
Source Lanes und Cache
/settings/research bearbeitet Source-Lane-Templates und zeigt den TTL-/größenbegrenzten Cache für Search, Recon und lesbare Page-Extraktion.
03Architektur
IdeaClyst hat vier Schichten, und die Design-Disziplin ist: Nur eine davon weiß, ob du im Mock- oder echten CLI-Modus bist.
App-Router-Seiten
Startseite, Ideen-Formular (/new), Sessions-Liste (/runs) und eine Live-Run-Detailseite, die pollt. Reines Client-Rendering + fetch.
Route-Handler
/api/runs legt einen Run an und feuert den Council ab; /api/runs/[id] liefert einen Run fürs Polling; /api/runs/[id]/research reiht eine reine Research-Aktualisierung ein und antwortet sofort.
Die 5-Schritte-Pipeline
orchestrator.ts steuert den Council und persistiert nach jedem Schritt, inklusive der strukturierten Research-Toolkit-Dateien aus Schritt 0.
Die Mode-Naht & Platte
agents/ ist der einzige mode-bewusste Code; runs/store.ts liest & schreibt die Single Source of Truth auf Platte.
// der einzige Zweig, der den Modus kennt — agents/index.ts export async function runAgent(agent, prompt, ctx) { if (agentMode() === "mock") return runMock(ctx.run, ctx.stepKey); // ignoriert Prompt, nutzt strukturierten Run return agent === "claude" ? runClaude(prompt, runDir) // echtes `claude` (ohne -p), im Run-Verzeichnis : runCodex(prompt); // echtes `codex exec` }
04Der 5-Schritte-Council
Das ist das Herz der App. Die beiden Agenten wechseln sich ab, und das Entscheidende steht in der „Sieht“-Zeile jedes Schritts — jeder Agent liest bestimmte vorherige Ergebnisse, und genau das macht es zu einer Beratung statt zu fünf isolierten Prompts.
Marktrecherche
Bevor der Council berät, durchsucht ein Headless-Chrome das Web nach Markt und Wettbewerbern der Idee und schreibt ein Recherche-Memo plus strukturiertes Toolkit, das jeden folgenden Schritt erdet. Best-effort: Fehlt Chrome oder ist eine Suche blockiert, fällt es auf Offline-Synthese zurück — der Run scheitert nie. Pro Run im Ideen-Formular abschaltbar und später als Hintergrund-Refresh ohne kompletten Council neu ausführbar.
Produktstrategie
Setzt die Idee unter Druck und formt sie zu einer glaubwürdigen Strategie: das Kernproblem & wer es am stärksten spürt, der schärfste Wedge, Zielkunde & Zahlungsbereitschaft, Differenzierung, Go-to-Market und die riskantesten Annahmen.
Technische Architektur
Entwirft eine schlanke, baubare MVP-Architektur: empfohlener Stack & warum, Datenmodell, Kern-Services, Drittanbieter-APIs, Build-Risiken und eine grobe Build-Reihenfolge. Markiert technisch naive Stellen in der Strategie.
Kritisiert die Architektur
Wieder der skeptische Gründer — greift den Plan des CTO aus Produkt-/Shipping-Sicht an: Ist er für ein MVP überengineert? Bedient er den Wedge? Was wird gestrichen, um in Wochen statt Monaten zu liefern?
Kritisiert die Strategie
Der CTO schießt zurück, aus Engineering-Realitätssicht: Welche Annahmen sind für ein MVP technisch teuer oder unrealistisch? Wo impliziert das Go-to-Market mehr Scope, als das Team schnell liefern kann?
Finale Synthese
Führt alles zu einem entschiedenen Paket zusammen und löst Widersprüche mit einer klaren Empfehlung. Gibt exakte ##-Überschriften aus: Summary, MVP Backlog, Risks, Validation Tests, Next Prompts.
Der Kreuz-Austausch ist der Punkt. Codex baut auf Claudes Strategie auf (Schritt 2), dann kritisiert jeder die Domäne des anderen (Schritte 3 & 4), und Claude führt alle vier zu einem Urteil zusammen (Schritt 5). Nach jedem Schritt schreibt der Orchestrator run.json und eine Markdown-Datei neu, sodass die UI die Ergebnisse nacheinander enthüllt.
◆Idea Discovery
Der größte Teil von IdeaClyst bewertet eine Idee, die du mitbringst. Idea Discovery (die Route /discover) macht das Gegenteil — es findet Ideen für dich, geerdet in dem, womit Menschen im Web tatsächlich kämpfen. Das leere Blatt ist der schwerste Teil; Discovery ersetzt es durch echte Nachfrage-Signale.
Wer baut?
Optional füllst du /profile einmal aus, damit Discovery Skills, Käuferzugang, Kapital, Zeit, Risiko und Sales-Komfort berücksichtigen kann.
Du rahmst die Suche
Ein Markt oder Bereich — „visionOS-Apps“, „KI für Steuerberater“ — plus dein Ziel und deine Build-Kapazität. Profil-Kontext wird in die Notizen übernommen und kann pro Scout angepasst werden.
Surfagent durchsucht das Web
Headless-Chrome durchsucht quellenspezifische Spuren — Hacker News, Reddit, Product Hunt, GitHub, kommerzielle Review-/Pricing-Seiten und allgemeines Web — nach Problemen, „I wish there was…“, Launches und Implementierungs-Ökosystemen.
Zuerst eine ehrliche Landschaft
Claude schreibt eine quellenbasierte Analyse — ein Ein-Zeilen-Urteil, Nachfrage-Signale, Wettbewerb, wer wirklich zahlt, und ein realistischer Ausblick für dein Ziel. Bei schwierigem Markt führt sie mit den schlechten Nachrichten.
Den Wedge-Bereich finden
Der Scout erzeugt eine Pain-/Wettbewerbs-Matrix, damit scharfe Wedges, validierte aber volle Märkte, explorative Ideen und wahrscheinliche Skips sichtbar werden.
Konkrete, vergleichbare Ideen
Dann 5–7 Kandidaten, nach Eignung sortiert, jeder mit Wedge, Zahler, Build-Aufwand, kommerzieller Stärke, Risiko, Fit, Signal + Quelle, Confidence-Score und Kill-Kriterien.
Prüfen vor dem Commit
Jeder Kandidat öffnet einen vollständigen Report: Opportunity-Scorecard, Business Fit, Offer Ladder, Why-now, Proof-Signale, Market Gap, Execution Plan, Framework Fit, Community-/Keyword-Intelligence, Founder Fit, Profil-Lens und Roast.
Signale wachsen lassen
/trends sammelt Marktbegriffe, Keyword-Wachstum, Communities, Quellen und Kandidatenlinks aus lokalen Discoveries.
Schärfer entscheiden
Reports lassen sich in /library speichern, in /compare sortieren und als Markdown, JSON, One-Pager, Build-Prompt oder Review-only-Prompt kopieren.
Ein Klick zum Council
„Promote to council“ macht aus einem Kandidaten einen normalen Run und gibt Thesis, Founder Fit, Core Offer und Roast-Urteil an den Council weiter.
Eine Kernfunktion. Wie die Recherche ist Discovery modusabhängig (deterministische Offline-Kandidaten im Mock; Live-Scouting + Synthese im CLI-Modus) und best-effort — es liefert immer Kandidaten, auch offline oder wenn eine Quelle blockiert ist.
Discoveries werden auf Platte unter .ideaclyst/discoveries/<id>/ gespeichert (discovery.json, MARKET_READ.md, OPPORTUNITY_MAP.md, CANDIDATES.md sowie Report-/Versions-Artefakte), und die Discovery-Seite pollt live, genau wie ein Run. Trend Radar schreibt nach .ideaclyst/trends; Insights, Monitors, Entscheidungen, Exporte, Source Lanes, Validation-Imports und Interviews schreiben jeweils in eigene lokale Ordner unter .ideaclyst/. Der Header bleibt schlank: Explore öffnet /discover, /today und /trends; Workspace öffnet Sessions, Library und Validation. Compare, Evidence, Decisions, Insights, Monitors, Interviews, Clusters und Research Settings sind kontextuell verlinkt.
◆Roadmap-Intelligenz
IdeaClyst kann die Roadmap eines Threlmark-Projekts (ein separater lokal-first Roadmap-Manager) lesen und daraus belegte Wachstums-Vorschläge machen. Über die Route /roadmap schlägt es neue Features, Spin-off-Produkte und Services vor — jeweils wie eine Roadmap-Karte bewertet und mit echten Web-Quellen belegt. Prüfen, dann die besten zurück in Threlmarks Inbox senden.
Auf Threlmark zeigen
Liest die Roadmap direkt von der Platte (~/.threlmark), read-only, oder über Threlmarks REST-API; konfigurierbar auf der neuen /settings-Seite, Umgebungsvariablen haben Vorrang.
Erst die Roadmap verstehen
Deterministische Abdeckungs-Analyse — welche Kategorien stark, welche dünn oder ganz fehlend, erledigt vs. offen — rahmt die Analyse, bevor ein Modell läuft.
Features · Spin-offs · Services
Drei unabhängige Recherche-Spuren durchsuchen das Web: Lücken→Features, Adjazenz→Spin-offs, Productize→Services. Die Anzahl der Vorschläge pro Spur ist frei wählbar.
Immer echt, nie Mock
Live + strict. Jeder Vorschlag zitiert echte, tatsächlich abgerufene Quell-Links plus ein Why-now. Keine Quellen bedeutet kein Erfinden — nur ein klarer Hinweis.
Score, Quellen, Auswahl
Die Review-Seite zeigt Impact/Evidence/Fit/Effort, berechnete Priorität, Why-now und Quell-Links pro Karte. Die besten auswählen.
Round-trip in die Inbox
„An Threlmark senden" schreibt flache Suggestion-Dateien in den suggestions/-Ordner des Projekts; Threlmarks Inbox nimmt sie in die Roadmap auf. Ein anderes Zielprojekt ist wählbar (Cross-Promote).
Read-only außer einem Ordner. IdeaClyst schreibt ausschließlich in den suggestions/-Ordner eines Threlmark-Projekts — nie Items, Board oder Metadaten. Vorschläge tragen Provenance (Art, Why-now, Quellen), die unverändert durch Threlmarks Inbox round-trippt.
Analysen liegen unter .ideaclyst/roadmap/<id>/ und die Seite pollt live wie ein Run. Datenquelle und REST-Basis-URL werden unter /settings gesetzt; siehe die neuen Variablen in der Konfiguration. Roadmap-Intelligenz ist mode-gated wie die übrige Recherche — sie läuft live + strict und zeigt nur echte Daten.
05Ablauf einer Anfrage
Vom Moment des Absendens an — der genaue Pfad. Beachte: Der Server antwortet, bevor der Council fertig ist.
| # | Phase | Was passiert |
|---|---|---|
| 1 | Absenden | Das /new-Formular schickt den Idee-Brief per POST an /api/runs. |
| 2 | Validieren & anlegen | Titel erforderlich, Idee ≥ 10 Zeichen, Ziel muss gültig sein. Ein queued-Run wird auf Platte geschrieben (run.json + IDEA.md). |
| 3 | Fire & forget | Der Server ruft void startRun(id) ohne await und gibt sofort { runId } mit Status 201 zurück. |
| 4 | Weiterleiten | Der Client navigiert zu /runs/[runId]. |
| 5 | Pollen | Die Run-Seite holt GET /api/runs/[runId] alle 1,5 s und rendert neu, während sich Ergebnisse füllen. |
| 6 | Beraten | Im Hintergrund läuft der Orchestrator die Schritte 1→5 und schreibt run.json nach jedem neu. |
| 7 | Abschluss | Schritt 5 wird in Tabs aufgeteilt, der Status wird completed (oder failed), und das Polling stoppt. |
// api/runs/route.ts — die Fire-and-forget-Übergabe const run = await createRun(input); void startRun(run.id); // NICHT awaited — läuft im Hintergrund return NextResponse.json({ runId: run.id }, { status: 201 });
06Mock- vs. CLI-Modus
Eine Umgebungsvariable, IDEACLYST_AGENT_MODE, wählt das Backend. Orchestrator und UI sind in beiden Modi identisch — nur agents/ verhält sich anders.
| Aspekt | Mock (Default) | CLI |
|---|---|---|
| Setzen mit | IDEACLYST_AGENT_MODE=mock | IDEACLYST_AGENT_MODE=cli |
| CLIs nötig? | Nein — läuft sofort offline | Ja — claude & codex installiert + eingeloggt |
| Gesteuert durch | Strukturierten Run + Step-Key (Prompt ignoriert) | Den generierten Prompt (Run/Step ignoriert) |
| Ausgabe | Deterministisches, ideen-spezifisches Markdown | Echte Modell-Ausgabe |
| Wofür | Demos, UI-Arbeit, Offline-Dev | Echte Planungspakete |
Voraussetzungen für den CLI-Modus. Beide Binaries müssen auf dem PATH liegen und authentifiziert sein: claude --version und codex login status. IdeaClyst fasst nie Credentials an — es verlässt sich vollständig auf die lokale Session jeder CLI.
Rechne mit Minuten, nicht Sekunden. Ein vollständiger Council im CLI-Modus sind fünf echte Modell-Aufrufe — grob 50–80 s pro Schritt, ~5–7 min gesamt. Der Mock-Modus ist sofort fertig. Env-Variablen werden beim Server-Start gelesen, also starte den Dev-Server neu, nachdem du den Modus geändert hast. Und beachte: Ein Moduswechsel berechnet bestehende Runs nicht neu — lege eine frische Session an.
Wurde ein Run wirklich von den echten CLIs erzeugt? Öffne seine PRODUCT_STRATEGY.md — echte Ausgabe ist spezifisch zu deiner Idee und greift deinen bevorzugten Stack / deine Constraints auf, während Mock-Ausgabe eine feste Vorlage wiederverwendet (sie spleißt deinen Ideen-Text in generische Phrasen wie „…points at a workflow that is currently manual, fragmented, or simply tolerated“).
07Wie CLI-Aufrufe laufen
Im CLI-Modus startet jeder Council-Schritt einen echten Prozess. Beide Backends nutzen Array-Args + stdin (nie einen Shell-String), damit ein Prompt das Escaping nicht brechen oder Shell-Syntax einschleusen kann, und beide erzwingen einen Timeout pro Aufruf (Default 180 s).
Claude-Backend
Kein -p / --print. Wenn der stdout von claude kein TTY ist (hier eine Pipe), läuft die CLI non-interaktiv, gibt eine einzelne Antwort aus und beendet sich. IdeaClyst pipet also nur den Prompt auf stdin und liest stdout — kein Print-Flag nötig. --tools "" hält es bei einer reinen Text-Completion (keine agentischen Datei-Aktionen), und es läuft im eigenen Run-Verzeichnis der Idee (spawn-cwd):
// agents/claude.ts — läuft im Run-Verzeichnis claude --tools "" // Prompt auf stdin, stdout gepiped (non-TTY) [--model <model>] // optional IDEACLYST_CLAUDE_MODEL
Gibt getrimmtes stdout zurück. Ein fehlendes Binary (ENOENT), ein Exit ungleich null ohne Ausgabe oder leere Ausgabe werden jeweils mit einer klaren „zurück zum Mock-Modus“-Meldung abgelehnt.
Warum kein -p? Das saubere non-interaktive Verhalten der CLI wird durch einen Nicht-TTY-stdout ausgelöst, nicht allein durch das Print-Flag — daher liefert das Weglassen von -p (und des nur mit -p gültigen --output-format) weiterhin eine einmalige Completion. Jede Idee läuft in ihrem eigenen Verzeichnis, analog zur Isolation von Codex.
Codex-Backend
Führt Codex non-interaktiv, read-only, in einem Wegwerf-Temp-Verzeichnis aus, damit es dein Dateisystem nicht anfassen kann — wir wollen nur die Text-Completion:
// agents/codex.ts codex exec --json --skip-git-repo-check --ephemeral \ -s read-only --color never \ -C <temp-dir> -o last-message.txt - // Prompt auf stdin
Die saubere finale Nachricht wird aus der -o-Ausgabedatei gelesen; der --json-Event-Stream wird als Fallback geparst (und um einen sauberen API-Fehler sichtbar zu machen). Das Temp-Verzeichnis wird danach immer entfernt. Ein optionales IDEACLYST_CODEX_MODEL ergänzt -m <model>, sonst greift ~/.codex/config.toml.
08Datenmodell & Speicherung
IdeaClyst ist local-first: es gibt keine Datenbank und keinen In-Memory-State. Jeder Run ist ein Verzeichnis, und run.json ist die Single Source of Truth — der Orchestrator schreibt sie nach jedem Schritt neu, die Polling-API liest sie einfach zurück.
Layout auf Platte
Der Run-Datensatz
Ein Run trägt den Brief (Titel, Idee, Ziel, optional Zielkunde / Constraints / bevorzugter Stack), einen status von queued → running → completed | failed, ein menschenlesbares currentStep-Label für die UI und ein outputs-Objekt, das leer beginnt und sich füllt. Run-IDs haben ein Zeitstempel-Präfix, sodass ein umgekehrter String-Sort gratis „neueste zuerst“ liefert.
| Status | Bedeutung |
|---|---|
queued | Angelegt, Council noch nicht gestartet. |
running | Council läuft; currentStep zeigt, wo. |
completed | Alle 5 Schritte fertig; Tabs gefüllt. |
failed | Ein Schritt schlug fehl; error hält die Meldung, vorherige Schritte bleiben erhalten. |
Nachsichtiges Aufteilen der Abschnitte. Schritt 5 verlangt exakte ##-Überschriften, aber markdown.ts matcht sie groß-/kleinschreibungsunabhängig per Schlüsselwort (z.B. „mvp“ / „backlog“ / „scope“) und toleriert ###. Lässt sich ein Abschnitt nicht finden, landet der gesamte Plan im Summary-Tab — so bleibt ein Tab nie leer.
09API-Referenz
/api/runsListet alle Runs, neueste zuerst. Gibt { runs: Run[] } zurück.
/api/runsValidiert den Brief, legt einen queued-Run an, feuert den Council im Hintergrund und gibt { runId } (201) zurück. Validierung: Titel erforderlich; Idee ≥ 10 Zeichen; Ziel ∈ validate · plan · build · pitch · refine.
// Request-Body { "title": "...", // erforderlich "idea": "...", // erforderlich, 10+ Zeichen "goal": "validate", // erforderlich, eins der fünf "targetCustomer": "...", // optional "constraints": "...", // optional "preferredStack": "..." // optional }
/api/runs/[runId]Gibt einen einzelnen Run als { run: Run } zurück — genau das pollt die Detailseite alle 1,5 s.
Einen Run vom Terminal aus steuern
Die UI ist nur ein Client dieser API — alles, was du im Browser tun kannst, geht auch per Skript. Run anlegen, bis zum Abschluss pollen, dann das Paket von der Platte lesen:
# 1. Run anlegen → liefert { "runId": "..." } curl -s -X POST http://localhost:5417/api/runs \ -H 'Content-Type: application/json' \ -d '{"title":"StandupScribe","idea":"Ein Slack-Bot, der einen täglichen Standup-Digest postet.","goal":"plan"}' # 2. Status pollen, bis completed (alle paar Sekunden) curl -s http://localhost:5417/api/runs/<runId> | jq '.run.status, .run.currentStep' # 3. Das fertige Paket lesen cat .ideaclyst/runs/<runId>/FINAL_PLAN.md
10Dateiübersicht
11Konfiguration
Die gesamte Konfiguration liegt in .env.local (Kopie von .env.example). Es sind keine Secrets erforderlich.
| Variable | Default | Zweck |
|---|---|---|
IDEACLYST_AGENT_MODE | mock | mock oder cli |
IDEACLYST_CLAUDE_BIN | claude | Claude-CLI-Binary / Pfad |
IDEACLYST_CLAUDE_MODEL | leer | Konkretes Claude-Modell (z.B. opus), oder CLI-Default nutzen |
IDEACLYST_CODEX_BIN | codex | Codex-CLI-Binary / Pfad |
IDEACLYST_CODEX_MODEL | leer | Konkretes Codex-Modell, oder ~/.codex/config.toml nutzen |
IDEACLYST_AGENT_TIMEOUT_MS | 180000 | Timeout pro Agent-Aufruf |
IDEACLYST_DATA_DIR | .ideaclyst | Wo Runs gespeichert werden |
Recherche & Discovery
Alles best-effort; der Live-Pfad braucht eine Chrome/Chromium-Installation. Research folgt dem Agent-Modus, sofern nicht überschrieben.
| Variable | Default | Zweck |
|---|---|---|
IDEACLYST_RESEARCH_MODE | folgt Agent-Modus | mock- oder live-Override |
IDEACLYST_RESEARCH_STRICT | aus | 1 = zeigt nie Mock-/Offline-Inhalte; bei fehlenden Live-Daten eine klare Notiz (mit live kombinieren) |
IDEACLYST_RESEARCH_ENGINE | duckduckgo | duckduckgo · bing · google |
IDEACLYST_CHROME_BIN | auto-erkannt | Chrome/Chromium-Pfad-Override |
IDEACLYST_RESEARCH_USER_AGENT | Desktop-Chrome-UA | UA-Override (vermeidet Headless-Bot-Challenges) |
IDEACLYST_RESEARCH_CDP_PORT | 9222 | Headless-Chrome-Debug-Port |
IDEACLYST_RESEARCH_TIMEOUT_MS | 20000 | Timeout pro Seiten-Recon |
IDEACLYST_RESEARCH_BUDGET_MS | 60000 | Budget für den ganzen Research-/Scout-Schritt |
IDEACLYST_RESEARCH_MAX_RESULTS | 6 | Suchergebnisse pro Query |
IDEACLYST_RESEARCH_MAX_SOURCES | 3 | Tief reconnte Seiten |
IDEACLYST_RESEARCH_IDLE_MS | 120000 | Idle-Headless-Chrome danach beenden |
Roadmap-Intelligenz (Threlmark)
Woher IdeaClyst Threlmark-Projekte liest. Die /settings-Seite bearbeitet diese ebenfalls; Umgebungsvariablen haben Vorrang.
| Variable | Default | Zweck |
|---|---|---|
IDEACLYST_ROADMAP_SOURCE | Einstellungen / disk | disk oder rest |
THRELMARK_DATA_DIR | ~/.threlmark | Threlmark-Datenwurzel (Disk-Quelle) |
IDEACLYST_ROADMAP_DIR | = THRELMARK_DATA_DIR | Expliziter Pfad-Override |
IDEACLYST_THRELMARK_API | keine | Basis-URL für die REST-Quelle, z. B. http://localhost:5418 |
12Ausführen
# Schnellstart — Mock-Modus, keine CLIs nötig npm install cp .env.example .env.local npm run dev # → http://localhost:5417 # dann: App öffnen → "Start an Idea Session" → absenden → beim Zusammenbauen zusehen
| Skript | Tut |
|---|---|
npm run dev | Dev-Server auf :5417 (Turbopack) |
npm run build | Produktions-Build |
npm run start | Produktions-Build auf :5417 ausliefern |
npm run lint | ESLint |
npm run typecheck | tsc --noEmit |
13Grenzen & Fehlerbehebung
Hot Reload unterbricht laufende Runs. Der Orchestrator läuft in-process. Im Dev-Modus kann das Editieren einer Datei mitten im Lauf einen aktiven Council abbrechen. Starte dev neu und beginne eine frische Session. Bereits auf Platte abgeschlossene Schritte bleiben erhalten.
„The council run failed“ im CLI-Modus. Fast immer eine CLI, die nicht installiert oder nicht eingeloggt ist. Prüfe claude --version und codex login status, oder setze IDEACLYST_AGENT_MODE=mock, um auf Mock-Ausgaben zurückzufallen.
v0-Umfang. Kein Login, kein Billing, keine Teams, keine Datenbank, kein Docker. Runs sind lokale Dateien. Das ist Absicht — IdeaClyst ist ein local-first Planungs-Instrument, kein gehostetes Produkt.