Handbooks
Referenz

Konfigurationsreferenz

Jede Handbooks-Einstellung mit ihrem Flag, ihrer Umgebungsvariable, ihrem Konfigurationsdatei-Schlüssel, Typ und Standardwert — generiert aus der Registry.

Diese Seite ist die Übersetzung einer generierten Seite. Das englische Original wird von pnpm run config:docs aus der Einstellungs-Registry generiert und durch einen Drift-Test geschützt; diese Übersetzung wird von Hand gepflegt — ändert sich das Original, aktualisiere sie mit.

Vorrang

Jede Einstellung wird über dieselben Schichten aufgelöst, höchste Priorität zuerst: Flag > Shell-Umgebung > .env > handbook.config.yaml > Standardwert. Die erste Schicht, die einen Wert liefert, gewinnt, und jede darunterliegende Schicht wird für diese Einstellung ignoriert. Führe handbook config aus — oder handbook config --command <name>, um nur einen Unterbefehl zu sehen —, um zu prüfen, was tatsächlich aufgelöst wurde und aus welcher Schicht es kam.

Benennung

Ein einziger camelCase-key in der Registry steuert alle drei Oberflächen zugleich: ein Flag, eine Umgebungsvariable und einen Konfigurationsdatei-Schlüssel. Stellt man einer davon einen Befehlsnamen voran, beschränkt das diese Oberfläche auf einen Unterbefehl, und es ist bei allen dreien dieselbe Transformation — HANDBOOK_<KEY> wird zu HANDBOOK_<COMMAND>_<KEY>, und key wird zu <command>Key, ob flach geschrieben oder eine Ebene unter <command>: verschachtelt. Eine unten mit (befehlsbezogen) markierte Einstellung akzeptiert nur den präfixierten Env-Namen, weil sich ihre Bedeutung je Befehl ändert (--out, --lang im skill-Paket).

Bootstrap

Drei Einstellungen auf oberster Ebene zeigen auf die Schichten oben und stehen selbst außerhalb der Registry; sie werden einmal vor allen anderen Einstellungen aufgelöst — weshalb auch keine von ihnen von dem gesetzt werden kann, was sie lädt: ein --env-Schlüssel in handbook.config.yaml, eine --env-file-Zeile in .env oder ein --config-Schlüssel in eben dieser Datei hätten niemanden mehr, der sie liest.

  • --env <name> (oder HANDBOOK_ENV) wählt eine umgebungsspezifische Kaskade — als einzige der drei mit sowohl einer Flag- als auch einer Umgebungsvariablen-Form, da sie eine Umgebung benennt, statt auf genau eine Datei zu zeigen.
  • --env-file <path> lädt genau diese eine Datei und umgeht die Kaskade unten.
  • --config <path> benennt genau eine Konfigurationsdatei und umgeht die umgebungsbewusste Suche unten (Standard: die nächstgelegene Datei der handbook.config.yaml-Familie, gefunden durch Hochlaufen vom Arbeitsverzeichnis, mit Halt an einer Repository-Grenze).

Die .env-Kaskade

Ohne --env-file lädt die CLI statt einer festen Datei eine Kaskade von .env*-Dateien, höchster Vorrang zuerst. Die bestehende applyEnvFile-Regel — einen bereits gesetzten Schlüssel nie überschreiben — ist es, die aus einer Kaskade nicht mehr macht als „rufe sie in dieser Reihenfolge auf, die erste Datei, die einen Schlüssel setzt, gewinnt“:

#DateiwerGeltungsbereichcommittet?
1Shell-Umgebunggewinnt immer
2.env.<name>.localpersönlichnur diese Umgebungnein (gitignored)
3.env.<name>Teamnur diese Umgebungja
4.env.localpersönlichjede Umgebungnein (gitignored)
5.envTeamBasislinieja

Zeilen 2 und 3 gelten nur, wenn --env/HANDBOOK_ENV eine Umgebung benennt. Ist keines von beiden gesetzt, laden nur die Zeilen 4 und 5 — genau das, was auch vor dieser Kaskade geladen wurde, sodass ein bestehendes Setup ohne .env.local überhaupt keine Änderung sieht.

Konfigurationsdatei-Suche mit einer Umgebung

Von --config abgesehen läuft die Suche weiterhin vom Arbeitsverzeichnis nach oben und hält an einer Repository-Grenze, prüft aber in jedem besuchten Verzeichnis nun zuerst auf handbook.config.<name>.{yaml,yml,json} (nur wenn eine Umgebung benannt ist), bevor die schlichte handbook.config.yaml usw. an die Reihe kommt — eine benannte Datei schlägt also stets eine schlichte Datei im selben Verzeichnis, selbst wenn eine schlichte Datei auf einer Ebene näher am Arbeitsverzeichnis existiert. Ist keine Umgebung benannt, bleibt die Suche unverändert.

Führe handbook config aus, um zu sehen, welche Umgebung aktiv ist und welche Dateien sie genau geladen hat, in Vorrangreihenfolge — eine Kaskade über vier Wertschichten sind zu viele mögliche Quellen, um sie aus dem Kopf zu verfolgen, und eine Schicht, die dieser Befehl nicht zeigen kann, unterscheidet sich nicht von einer Schicht, die nicht funktioniert.

Durchgerechnetes Beispiel für readWorkers (Flag --read-workers <n>, Standard 12):

Oberflächeflachbezogen auf generate
envHANDBOOK_READ_WORKERSHANDBOOK_GENERATE_READ_WORKERS
handbook.config.yaml-SchlüsselreadWorkersgenerateReadWorkers

Die Konfigurationsdatei-Formen sind austauschbar: ein flaches readWorkers: ... und ein verschachteltes generate: { readWorkers: ... } bedeuten dasselbe, weil die Datei vor dem Lesen durch dieselbe camelCase-Verkettung flachgeklopft wird.

analyze

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
source--source <dir>HANDBOOK_SOURCEpatherforderlichQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
work--work <dir>HANDBOOK_WORKpatherforderlichArbeitsverzeichnis mit den Pipeline-Artefakten; optional für skill, wo es coverage.json ergänzt
lang--lang <lang>HANDBOOK_LANGenum (auto, plus jede registrierte Sprache)autoQuellsprache; auto erkennt und verschmilzt jede registrierte Sprache

generate

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (leer)API-Schlüssel für den LLM-Endpunkt; nutze EMPTY für lokale Endpunkte ohne Schlüssel. Nie ein Flag und nie in der Konfigurationsdatei erlaubt
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM-Übertragungsformat; 'openai' deckt jeden OpenAI-kompatiblen Endpunkt ab (also die meisten)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniModellkennung
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1jeder OpenAI-kompatible Endpunkt (gehostet, vLLM, LiteLLM, ein Proxy); eine URL mit eingebetteten Zugangsdaten wird in der Konfigurationsdatei abgelehnt, denn die wird committet
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000maximale Ausgabe-Tokens pro Anfrage
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300Frist pro Anfrage in Sekunden; ein hängender Aufruf wird wiederholt, statt eine Phase als Geisel zu halten
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6Wiederholungsversuche pro Anfrage; 0 bedeutet ein einziger Versuch
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3Basis-Wartezeit zwischen Wiederholungen, in Sekunden
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16globale Obergrenze für gleichzeitige Anfragen über einen Client
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonHersteller-Felder, die in jeden Anfrage-Body gemischt werden; Modell-/Nachrichten-/Token-Felder lassen sich nicht überschreiben. Frei formulierbar und daher als Geheimnis behandelt: nie ein Flag und nie in der Konfigurationsdatei erlaubt
source--source <dir>HANDBOOK_SOURCEpatherforderlichQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
work--work <dir>HANDBOOK_WORKpatherforderlichArbeitsverzeichnis mit den Pipeline-Artefakten; optional für skill, wo es coverage.json ergänzt
lang--lang <lang>HANDBOOK_LANGenum (auto, plus jede registrierte Sprache)autoQuellsprache; auto erkennt und verschmilzt jede registrierte Sprache
phase--phase <spec>HANDBOOK_PHASEstringallall | 1 | 2 | 2a | 2b | 2c | 3, oder eine Komma-Liste
strategy--strategy <s>HANDBOOK_STRATEGYenum (file|member)file (Standard) oder member; ungesetzt behält die im Arbeitsverzeichnis vermerkte Strategie
skeleton--skeleton <path>HANDBOOK_SKELETONpathselbst verfasste skeleton.yaml, erforderlich für die member-Strategie
narrateLang--narrate-lang <l>HANDBOOK_NARRATE_LANGenum (en|zh)enSprache des Fließtextes
detail--detail <d>HANDBOOK_DETAILenum (brief|deep)briefKartentiefe
synthMode--synth-mode <m>HANDBOOK_SYNTH_MODEenum (oneshot|doctor)oneshotModus der Skelett-Synthese
maxDoctorRounds--max-doctor-rounds <n>HANDBOOK_MAX_DOCTOR_ROUNDSint6Doctor-Konvergenzrunden
readWorkers--read-workers <n>HANDBOOK_READ_WORKERSint12gleichzeitige Kartenstapel
readBatchSize--read-batch-size <n>HANDBOOK_READ_BATCH_SIZEintDateien pro Kartenstapel; ungesetzt bedeutet 1 bei --detail deep und 8 bei brief
maxCharsPerFile--max-chars-per-file <n>HANDBOOK_MAX_CHARS_PER_FILEint0jede Datei bei n Zeichen abschneiden; 0 bedeutet kein Limit
assignBatchSize--assign-batch-size <n>HANDBOOK_ASSIGN_BATCH_SIZEint25Karten pro Zuordnungsstapel
assignWorkers--assign-workers <n>HANDBOOK_ASSIGN_WORKERSint12gleichzeitige Zuordnungsstapel
organizeWorkers--organize-workers <n>HANDBOOK_ORGANIZE_WORKERSint8gleichzeitige Etappen-Organisationsaufrufe
narrateWorkers--narrate-workers <n>HANDBOOK_NARRATE_WORKERSint8gleichzeitige Erzähltext-Aufrufe
resume--resumeHANDBOOK_RESUMEboolfalseDateien überspringen, die schon eine fertige Karte haben
refresh--refreshHANDBOOK_REFRESHboolfalsePhase-3-Caches ignorieren
llmCache--llm-cacheHANDBOOK_LLM_CACHEboolfalserohe LLM-Antworten unter /phase3/cache cachen; von --refresh deaktiviert

render

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
work--work <dir>HANDBOOK_WORKpatherforderlichArbeitsverzeichnis mit den Pipeline-Artefakten; optional für skill, wo es coverage.json ergänzt
title--title <title>HANDBOOK_TITLEstringSystem HandbookHandbuch-Titel für die gerenderten Ausgaben
out--out <dir>HANDBOOK_RENDER_OUT (befehlsbezogen)pathAusgabeort; render verwendet standardmäßig /handbook, plan schreibt eine Datei, skill schreibt ein Verzeichnis
html--htmlHANDBOOK_HTMLboolfalsezusätzlich die mehrseitige HTML-Site unter /html rendern
htmlSingle--html-singleHANDBOOK_HTML_SINGLEboolfalsezusätzlich eine einzelne, in sich geschlossene HTML-Seite rendern
agentSite--agent-siteHANDBOOK_AGENT_SITEboolfalsezusätzlich den Agent-Locator-Index unter /agent rendern
llmsTxt--llms-txtHANDBOOK_LLMS_TXTboolfalsezusätzlich llms.txt und llms-full.txt neben dem Markdown schreiben
sourceBaseUrl--source-base-url <url>HANDBOOK_SOURCE_BASE_URLstringDateikarten unter / auf die Quelle verlinken

skill

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
source--source <dir>HANDBOOK_SOURCEpathQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
work--work <dir>HANDBOOK_WORKpathArbeitsverzeichnis mit den Pipeline-Artefakten; optional für skill, wo es coverage.json ergänzt
out--out <dir>HANDBOOK_SKILL_OUT (befehlsbezogen)patherforderlichAusgabeort; render verwendet standardmäßig /handbook, plan schreibt eine Datei, skill schreibt ein Verzeichnis
handbook--handbook <dir>HANDBOOK_SKILL_HANDBOOK (befehlsbezogen)patherforderlichVerzeichnis des gerenderten Handbuchs; erforderlich für skill, optionaler Kontext für plan
name--name <slug>HANDBOOK_NAMEstringerforderlichSkill-Slug (Kleinbuchstaben mit Bindestrichen)
project--project <name>HANDBOOK_PROJECTstringmenschenlesbarer Projektname für den Fließtext
agentDir--agent-dir <dir>HANDBOOK_AGENT_DIRpathgerenderte Agent-Locator-Site; wird unter references/agent/ ausgeliefert
bodyLang--lang <l>HANDBOOK_SKILL_BODY_LANG (befehlsbezogen)enum (en|zh)enSprache des SKILL.md-Rumpfs; das Frontmatter bleibt fürs Routing englisch

validate

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
source--source <dir>HANDBOOK_SOURCEpathQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
skill--skill <dir>HANDBOOK_SKILLpatherforderlichzu prüfendes Skill-Verzeichnis

plan

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (leer)API-Schlüssel für den LLM-Endpunkt; nutze EMPTY für lokale Endpunkte ohne Schlüssel. Nie ein Flag und nie in der Konfigurationsdatei erlaubt
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM-Übertragungsformat; 'openai' deckt jeden OpenAI-kompatiblen Endpunkt ab (also die meisten)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniModellkennung
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1jeder OpenAI-kompatible Endpunkt (gehostet, vLLM, LiteLLM, ein Proxy); eine URL mit eingebetteten Zugangsdaten wird in der Konfigurationsdatei abgelehnt, denn die wird committet
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000maximale Ausgabe-Tokens pro Anfrage
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300Frist pro Anfrage in Sekunden; ein hängender Aufruf wird wiederholt, statt eine Phase als Geisel zu halten
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6Wiederholungsversuche pro Anfrage; 0 bedeutet ein einziger Versuch
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3Basis-Wartezeit zwischen Wiederholungen, in Sekunden
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16globale Obergrenze für gleichzeitige Anfragen über einen Client
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonHersteller-Felder, die in jeden Anfrage-Body gemischt werden; Modell-/Nachrichten-/Token-Felder lassen sich nicht überschreiben. Frei formulierbar und daher als Geheimnis behandelt: nie ein Flag und nie in der Konfigurationsdatei erlaubt
source--source <dir>HANDBOOK_SOURCEpatherforderlichQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
out--out <dir>HANDBOOK_PLAN_OUT (befehlsbezogen)pathAusgabeort; render verwendet standardmäßig /handbook, plan schreibt eine Datei, skill schreibt ein Verzeichnis
handbook--handbook <dir>HANDBOOK_PLAN_HANDBOOK (befehlsbezogen)pathVerzeichnis des gerenderten Handbuchs; erforderlich für skill, optionaler Kontext für plan
request--request <text>HANDBOOK_REQUESTstringerforderlichder Änderungswunsch in natürlicher Sprache
maxTurns--max-turns <n>HANDBOOK_MAX_TURNSint30Zugbudget des Agenten

apply

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
source--source <dir>HANDBOOK_SOURCEpatherforderlichQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
plan--plan <file>HANDBOOK_PLANpatherforderlichPlandatei, erzeugt von handbook plan
dryRun--dry-runHANDBOOK_DRY_RUNboolfalsenur prüfen, nie schreiben
backupRoot--backup-root <dir>HANDBOOK_BACKUP_ROOTpathwohin die Sicherungen kommen; standardmäßig /.handbook-patches

rollback

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
source--source <dir>HANDBOOK_SOURCEpathQuell-Wurzel; erforderlich für analyze/generate/plan/apply, sonst optional (Hash-Frische für validate/skill und der Baum, zu dem eine Sicherung gehört, für rollback)
backup--backup <dir>HANDBOOK_BACKUPpatherforderlichSicherungsverzeichnis mit manifest.json
force--forceHANDBOOK_FORCEboolfalseauch Dateien wiederherstellen, die sich nach dem Patch geändert haben

resync

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (leer)API-Schlüssel für den LLM-Endpunkt; nutze EMPTY für lokale Endpunkte ohne Schlüssel. Nie ein Flag und nie in der Konfigurationsdatei erlaubt
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM-Übertragungsformat; 'openai' deckt jeden OpenAI-kompatiblen Endpunkt ab (also die meisten)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniModellkennung
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1jeder OpenAI-kompatible Endpunkt (gehostet, vLLM, LiteLLM, ein Proxy); eine URL mit eingebetteten Zugangsdaten wird in der Konfigurationsdatei abgelehnt, denn die wird committet
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000maximale Ausgabe-Tokens pro Anfrage
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300Frist pro Anfrage in Sekunden; ein hängender Aufruf wird wiederholt, statt eine Phase als Geisel zu halten
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6Wiederholungsversuche pro Anfrage; 0 bedeutet ein einziger Versuch
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3Basis-Wartezeit zwischen Wiederholungen, in Sekunden
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16globale Obergrenze für gleichzeitige Anfragen über einen Client
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonHersteller-Felder, die in jeden Anfrage-Body gemischt werden; Modell-/Nachrichten-/Token-Felder lassen sich nicht überschreiben. Frei formulierbar und daher als Geheimnis behandelt: nie ein Flag und nie in der Konfigurationsdatei erlaubt
work--work <dir>HANDBOOK_WORKpatherforderlichArbeitsverzeichnis mit den Pipeline-Artefakten; optional für skill, wo es coverage.json ergänzt
title--title <title>HANDBOOK_TITLEstringSystem HandbookHandbuch-Titel für die gerenderten Ausgaben
case--case <dir>HANDBOOK_CASEpatherforderlichFall-Verzeichnis: edited/ + plan.md + change.diff
useLlm--no-llmHANDBOOK_USE_LLMbooltrueauf false setzen für einen rein strukturellen Refresh, mit als veraltet markiertem Fließtext
refreshRendered--no-renderHANDBOOK_REFRESH_RENDEREDbooltrueauf false setzen, um das Auffrischen bereits gerenderter Ausgaben unter /handbook zu überspringen
corrections--corrections <file>HANDBOOK_CORRECTIONSpathvom Agenten gemeldete corrections.jsonl; ihre Dateien erweitern die Refresh-Menge
cardDetail--detail <d>HANDBOOK_RESYNC_CARD_DETAIL (befehlsbezogen)enum (brief|deep)Kartentiefe für neu erzeugte Karten; ungesetzt entspricht dem bestehenden Handbuch
proseLang--narrate-lang <l>HANDBOOK_RESYNC_PROSE_LANG (befehlsbezogen)enum (en|zh)Sprache des Fließtextes für neu erzeugte Karten; ungesetzt entspricht dem bestehenden Handbuch

studio

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (leer)API-Schlüssel für den LLM-Endpunkt; nutze EMPTY für lokale Endpunkte ohne Schlüssel. Nie ein Flag und nie in der Konfigurationsdatei erlaubt
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM-Übertragungsformat; 'openai' deckt jeden OpenAI-kompatiblen Endpunkt ab (also die meisten)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniModellkennung
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1jeder OpenAI-kompatible Endpunkt (gehostet, vLLM, LiteLLM, ein Proxy); eine URL mit eingebetteten Zugangsdaten wird in der Konfigurationsdatei abgelehnt, denn die wird committet
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000maximale Ausgabe-Tokens pro Anfrage
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300Frist pro Anfrage in Sekunden; ein hängender Aufruf wird wiederholt, statt eine Phase als Geisel zu halten
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6Wiederholungsversuche pro Anfrage; 0 bedeutet ein einziger Versuch
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3Basis-Wartezeit zwischen Wiederholungen, in Sekunden
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16globale Obergrenze für gleichzeitige Anfragen über einen Client
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonHersteller-Felder, die in jeden Anfrage-Body gemischt werden; Modell-/Nachrichten-/Token-Felder lassen sich nicht überschreiben. Frei formulierbar und daher als Geheimnis behandelt: nie ein Flag und nie in der Konfigurationsdatei erlaubt
port--port <n>HANDBOOK_PORTint4860Port, auf dem gelauscht wird
host--host <addr>HANDBOOK_HOSTstring127.0.0.1Bind-Adresse; bleibt auf Loopback, solange du sie nicht setzt (Container brauchen 0.0.0.0). Der CSRF-Schutz verlangt weiterhin einen Loopback-Host-Header
stateDir--state-dir <dir>HANDBOOK_STATE_DIRpathwo studio.json und die verwalteten Arbeitsverzeichnisse liegen; standardmäßig $HOME/.handbook-studio

config

SchlüsselFlagenvTypStandardBeschreibung
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoLog-Ausführlichkeit; -v/--verbose und -q/--quiet sind Kurzformen für debug/error
forCommand--command <name>HANDBOOK_FOR_COMMANDstringnur die Einstellungen zeigen, die für diesen Unterbefehl gelten; seine env-/Datei-/Standard-Schichten sind hier einsehbar, die eigenen Flags dieses Befehls jedoch nicht (die übergibt man dem Befehl selbst)
json--jsonHANDBOOK_JSONboolfalsemaschinenlesbare Ausgabe
check--checkHANDBOOK_CHECKboolfalsenur validieren; Exit-Code ungleich null, wenn etwas ungültig ist oder fehlt

Auf dieser Seite