Handbooks
Referencia

Referencia de configuración

Todos los ajustes de Handbooks, con su flag, variable de entorno, clave del archivo de configuración, tipo y valor por defecto — generado a partir del registro.

Esta página es la traducción de una página generada. El original en inglés lo genera pnpm run config:docs a partir del registro de ajustes y está protegido por una prueba de deriva; esta traducción se mantiene a mano: cuando cambie el original, actualízala también.

Precedencia

Cada ajuste se resuelve a través de las mismas capas, de mayor a menor prioridad: flag > shell env > .env > handbook.config.yaml > por defecto. Gana la primera capa que aporta un valor, y todas las capas por debajo se ignoran para ese ajuste. Ejecuta handbook config — o handbook config --command <name> para ver un único subcomando — para comprobar qué se resolvió realmente y de qué capa procede.

Nomenclatura

Una sola key en camelCase dentro del registro gobierna las tres superficies a la vez: un flag, una variable de entorno y una clave del archivo de configuración. Anteponer a cualquiera de ellas el nombre de un comando acota esa superficie a un único subcomando, y es la misma transformación en las tres — HANDBOOK_<KEY> pasa a ser HANDBOOK_<COMMAND>_<KEY>, y key pasa a ser <command>Key, tanto si se escribe de forma plana como anidada un nivel bajo <command>:. Un ajuste marcado como (acotado) más abajo solo acepta el nombre de variable de entorno con prefijo, porque su significado cambia según el comando (--out, --lang en el paquete skill).

Arranque

Tres ajustes de nivel superior apuntan a las capas anteriores y quedan ellos mismos fuera del registro, resueltos una sola vez antes que cualquier otro ajuste — que es también la razón por la que ninguno de ellos puede establecerse desde aquello que cargan: una clave --env dentro de handbook.config.yaml, una línea --env-file dentro de .env o una clave --config dentro de ese mismo archivo no tendrían ya nada que las leyera.

  • --env <name> (o HANDBOOK_ENV) selecciona una cascada por entorno — el único de los tres con forma de flag y de variable de entorno a la vez, ya que nombra un entorno en lugar de apuntar a un archivo concreto.
  • --env-file <path> carga exactamente ese archivo, saltándose la cascada de más abajo.
  • --config <path> nombra un archivo de configuración concreto, saltándose el descubrimiento sensible al entorno de más abajo (por defecto: el archivo de la familia handbook.config.yaml más cercano, encontrado subiendo desde el directorio de trabajo actual y deteniéndose en el límite del repositorio).

La cascada de .env

Sin --env-file, la CLI carga una cascada de archivos .env* en lugar de un único archivo fijo, de mayor a menor precedencia. La regla ya existente de applyEnvFile — nunca sobrescribir una clave ya establecida — es lo que hace que una cascada no sea más que "llámalo en este orden; gana el primer archivo que establece una clave":

#archivoquiénámbito¿versionado?
1entorno del shellsiempre gana
2.env.<name>.localpersonalsolo este entornono (ignorado por git)
3.env.<name>equiposolo este entorno
4.env.localpersonaltodos los entornosno (ignorado por git)
5.envequipolínea base

Las filas 2 y 3 solo se aplican cuando --env/HANDBOOK_ENV nombra un entorno. Sin ninguno de los dos establecido, solo se cargan las filas 4 y 5 — exactamente lo que se cargaba antes de que esta cascada existiera, de modo que una instalación existente sin .env.local no ve ningún cambio.

Descubrimiento del archivo de configuración con un entorno

--config aparte, el descubrimiento sigue subiendo desde el directorio de trabajo actual y deteniéndose en el límite del repositorio, pero en cada directorio visitado comprueba ahora primero si existe handbook.config.<name>.{yaml,yml,json} (solo cuando se nombra un entorno) antes que el handbook.config.yaml sin más y compañía — de modo que un archivo con nombre siempre gana a un archivo sin nombre situado en ese mismo directorio, incluso cuando existe un archivo sin nombre en un nivel más cercano al directorio de trabajo actual. Si no se nombra ningún entorno, el descubrimiento no cambia.

Ejecuta handbook config para ver qué entorno está activo y exactamente qué archivos cargó, en orden de precedencia — una cascada sobre cuatro capas de valores son demasiadas fuentes posibles como para seguirlas de memoria, y una capa que este comando no puede mostrar no se diferencia en nada de una capa que no funciona.

Ejemplo práctico para readWorkers (flag --read-workers <n>, valor por defecto 12):

superficieplanoacotado a generate
envHANDBOOK_READ_WORKERSHANDBOOK_GENERATE_READ_WORKERS
clave de handbook.config.yamlreadWorkersgenerateReadWorkers

Las formas del archivo de configuración son intercambiables: un readWorkers: ... plano y un generate: { readWorkers: ... } anidado significan lo mismo, porque el archivo se aplana con la misma unión camelCase antes de leerse.

analyze

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
source--source <dir>HANDBOOK_SOURCEpathobligatorioraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
work--work <dir>HANDBOOK_WORKpathobligatoriodirectorio de trabajo que contiene los artefactos del pipeline; opcional para skill, donde añade coverage.json
lang--lang <lang>HANDBOOK_LANGenum (auto, más cualquier lenguaje registrado)autolenguaje del código fuente; auto detecta y fusiona todos los lenguajes registrados

generate

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vacío)clave de API para el endpoint del LLM; usa EMPTY para endpoints locales sin clave. Nunca es un flag y nunca se permite en el archivo de configuración
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte del LLM; 'openai' cubre cualquier endpoint compatible con OpenAI (la mayoría lo son)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador del modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1cualquier endpoint compatible con OpenAI (alojado, vLLM, LiteLLM, un proxy); una URL con credenciales incrustadas se rechaza en el archivo de configuración, que se sube al repositorio
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de salida por petición
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300plazo por petición en segundos; una llamada atascada se reintenta en lugar de dejar que mantenga una fase como rehén
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6intentos de reintento por petición; 0 significa un único intento
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre reintentos, en segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16límite global de peticiones concurrentes a través de un mismo cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos del proveedor fusionados en el cuerpo de cada petición; los campos model/messages/token no se pueden sobrescribir. De formato libre, así que se trata como un secreto: nunca es un flag y nunca se permite en el archivo de configuración
source--source <dir>HANDBOOK_SOURCEpathobligatorioraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
work--work <dir>HANDBOOK_WORKpathobligatoriodirectorio de trabajo que contiene los artefactos del pipeline; opcional para skill, donde añade coverage.json
lang--lang <lang>HANDBOOK_LANGenum (auto, más cualquier lenguaje registrado)autolenguaje del código fuente; auto detecta y fusiona todos los lenguajes registrados
phase--phase <spec>HANDBOOK_PHASEstringallall | 1 | 2 | 2a | 2b | 2c | 3, o una lista separada por comas
strategy--strategy <s>HANDBOOK_STRATEGYenum (file|member)file (por defecto) o member; si no se establece, se conserva la estrategia registrada en el directorio de trabajo
skeleton--skeleton <path>HANDBOOK_SKELETONpathskeleton.yaml escrito por el usuario, obligatorio para la estrategia member
narrateLang--narrate-lang <l>HANDBOOK_NARRATE_LANGenum (en|zh)enidioma de la prosa
detail--detail <d>HANDBOOK_DETAILenum (brief|deep)briefprofundidad de las fichas
synthMode--synth-mode <m>HANDBOOK_SYNTH_MODEenum (oneshot|doctor)oneshotmodo de síntesis del esqueleto
maxDoctorRounds--max-doctor-rounds <n>HANDBOOK_MAX_DOCTOR_ROUNDSint6rondas de convergencia de doctor
readWorkers--read-workers <n>HANDBOOK_READ_WORKERSint12lotes de fichas concurrentes
readBatchSize--read-batch-size <n>HANDBOOK_READ_BATCH_SIZEintarchivos por lote de fichas; si no se establece, significa 1 para --detail deep y 8 para brief
maxCharsPerFile--max-chars-per-file <n>HANDBOOK_MAX_CHARS_PER_FILEint0trunca cada archivo a n caracteres; 0 significa sin límite
assignBatchSize--assign-batch-size <n>HANDBOOK_ASSIGN_BATCH_SIZEint25fichas por lote de asignación
assignWorkers--assign-workers <n>HANDBOOK_ASSIGN_WORKERSint12lotes de asignación concurrentes
organizeWorkers--organize-workers <n>HANDBOOK_ORGANIZE_WORKERSint8llamadas concurrentes de organización de etapas
narrateWorkers--narrate-workers <n>HANDBOOK_NARRATE_WORKERSint8llamadas de narración concurrentes
resume--resumeHANDBOOK_RESUMEboolfalseomite los archivos que ya tienen una ficha completada
refresh--refreshHANDBOOK_REFRESHboolfalseignora las cachés de Phase 3
llmCache--llm-cacheHANDBOOK_LLM_CACHEboolfalsecachea las respuestas crudas del LLM en /phase3/cache; se desactiva con --refresh

render

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
work--work <dir>HANDBOOK_WORKpathobligatoriodirectorio de trabajo que contiene los artefactos del pipeline; opcional para skill, donde añade coverage.json
title--title <title>HANDBOOK_TITLEstringSystem Handbooktítulo del handbook para las salidas renderizadas
out--out <dir>HANDBOOK_RENDER_OUT (acotado)pathubicación de salida; render usa por defecto /handbook, plan escribe un archivo, skill escribe un directorio
html--htmlHANDBOOK_HTMLboolfalserenderiza además el sitio HTML multipágina en /html
htmlSingle--html-singleHANDBOOK_HTML_SINGLEboolfalserenderiza además una única página HTML autocontenida
agentSite--agent-siteHANDBOOK_AGENT_SITEboolfalserenderiza además el índice localizador para agentes en /agent
llmsTxt--llms-txtHANDBOOK_LLMS_TXTboolfalseescribe además llms.txt y llms-full.txt junto al markdown
sourceBaseUrl--source-base-url <url>HANDBOOK_SOURCE_BASE_URLstringenlaza las fichas de archivo con el código fuente en /

skill

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
source--source <dir>HANDBOOK_SOURCEpathraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
work--work <dir>HANDBOOK_WORKpathdirectorio de trabajo que contiene los artefactos del pipeline; opcional para skill, donde añade coverage.json
out--out <dir>HANDBOOK_SKILL_OUT (acotado)pathobligatorioubicación de salida; render usa por defecto /handbook, plan escribe un archivo, skill escribe un directorio
handbook--handbook <dir>HANDBOOK_SKILL_HANDBOOK (acotado)pathobligatoriodirectorio del handbook renderizado; obligatorio para skill, contexto opcional para plan
name--name <slug>HANDBOOK_NAMEstringobligatorioslug de la skill (minúsculas y guiones)
project--project <name>HANDBOOK_PROJECTstringnombre legible del proyecto para la prosa
agentDir--agent-dir <dir>HANDBOOK_AGENT_DIRpathsitio localizador para agentes ya renderizado; se incluye en references/agent/
bodyLang--lang <l>HANDBOOK_SKILL_BODY_LANG (acotado)enum (en|zh)enidioma del cuerpo de SKILL.md; el frontmatter permanece en inglés para el enrutado

validate

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
source--source <dir>HANDBOOK_SOURCEpathraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
skill--skill <dir>HANDBOOK_SKILLpathobligatoriodirectorio de la skill que se va a validar

plan

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vacío)clave de API para el endpoint del LLM; usa EMPTY para endpoints locales sin clave. Nunca es un flag y nunca se permite en el archivo de configuración
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte del LLM; 'openai' cubre cualquier endpoint compatible con OpenAI (la mayoría lo son)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador del modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1cualquier endpoint compatible con OpenAI (alojado, vLLM, LiteLLM, un proxy); una URL con credenciales incrustadas se rechaza en el archivo de configuración, que se sube al repositorio
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de salida por petición
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300plazo por petición en segundos; una llamada atascada se reintenta en lugar de dejar que mantenga una fase como rehén
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6intentos de reintento por petición; 0 significa un único intento
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre reintentos, en segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16límite global de peticiones concurrentes a través de un mismo cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos del proveedor fusionados en el cuerpo de cada petición; los campos model/messages/token no se pueden sobrescribir. De formato libre, así que se trata como un secreto: nunca es un flag y nunca se permite en el archivo de configuración
source--source <dir>HANDBOOK_SOURCEpathobligatorioraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
out--out <dir>HANDBOOK_PLAN_OUT (acotado)pathubicación de salida; render usa por defecto /handbook, plan escribe un archivo, skill escribe un directorio
handbook--handbook <dir>HANDBOOK_PLAN_HANDBOOK (acotado)pathdirectorio del handbook renderizado; obligatorio para skill, contexto opcional para plan
request--request <text>HANDBOOK_REQUESTstringobligatoriola petición de cambio en lenguaje natural
maxTurns--max-turns <n>HANDBOOK_MAX_TURNSint30presupuesto de turnos del agente

apply

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
source--source <dir>HANDBOOK_SOURCEpathobligatorioraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
plan--plan <file>HANDBOOK_PLANpathobligatorioarchivo de plan producido por handbook plan
dryRun--dry-runHANDBOOK_DRY_RUNboolfalsesolo verifica, nunca escribe
backupRoot--backup-root <dir>HANDBOOK_BACKUP_ROOTpathdónde van las copias de seguridad; por defecto /.handbook-patches

rollback

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
source--source <dir>HANDBOOK_SOURCEpathraíz del código fuente; obligatoria para analyze/generate/plan/apply, opcional en el resto (frescura de hashes para validate/skill, y el árbol al que pertenece una copia de seguridad para rollback)
backup--backup <dir>HANDBOOK_BACKUPpathobligatoriodirectorio de copia de seguridad que contiene manifest.json
force--forceHANDBOOK_FORCEboolfalserestaura incluso los archivos que cambiaron después del parche

resync

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vacío)clave de API para el endpoint del LLM; usa EMPTY para endpoints locales sin clave. Nunca es un flag y nunca se permite en el archivo de configuración
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte del LLM; 'openai' cubre cualquier endpoint compatible con OpenAI (la mayoría lo son)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador del modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1cualquier endpoint compatible con OpenAI (alojado, vLLM, LiteLLM, un proxy); una URL con credenciales incrustadas se rechaza en el archivo de configuración, que se sube al repositorio
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de salida por petición
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300plazo por petición en segundos; una llamada atascada se reintenta en lugar de dejar que mantenga una fase como rehén
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6intentos de reintento por petición; 0 significa un único intento
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre reintentos, en segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16límite global de peticiones concurrentes a través de un mismo cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos del proveedor fusionados en el cuerpo de cada petición; los campos model/messages/token no se pueden sobrescribir. De formato libre, así que se trata como un secreto: nunca es un flag y nunca se permite en el archivo de configuración
work--work <dir>HANDBOOK_WORKpathobligatoriodirectorio de trabajo que contiene los artefactos del pipeline; opcional para skill, donde añade coverage.json
title--title <title>HANDBOOK_TITLEstringSystem Handbooktítulo del handbook para las salidas renderizadas
case--case <dir>HANDBOOK_CASEpathobligatoriodirectorio del caso: edited/ + plan.md + change.diff
useLlm--no-llmHANDBOOK_USE_LLMbooltrueponlo en false para una actualización solo estructural, con la prosa marcada como obsoleta
refreshRendered--no-renderHANDBOOK_REFRESH_RENDEREDbooltrueponlo en false para omitir la actualización de las salidas ya renderizadas en /handbook
corrections--corrections <file>HANDBOOK_CORRECTIONSpathcorrections.jsonl reportado por el agente; sus archivos amplían el conjunto a actualizar
cardDetail--detail <d>HANDBOOK_RESYNC_CARD_DETAIL (acotado)enum (brief|deep)profundidad de las fichas regeneradas; si no se establece, coincide con el handbook existente
proseLang--narrate-lang <l>HANDBOOK_RESYNC_PROSE_LANG (acotado)enum (en|zh)idioma de la prosa para las fichas regeneradas; si no se establece, coincide con el handbook existente

studio

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vacío)clave de API para el endpoint del LLM; usa EMPTY para endpoints locales sin clave. Nunca es un flag y nunca se permite en el archivo de configuración
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte del LLM; 'openai' cubre cualquier endpoint compatible con OpenAI (la mayoría lo son)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador del modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1cualquier endpoint compatible con OpenAI (alojado, vLLM, LiteLLM, un proxy); una URL con credenciales incrustadas se rechaza en el archivo de configuración, que se sube al repositorio
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de salida por petición
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300plazo por petición en segundos; una llamada atascada se reintenta en lugar de dejar que mantenga una fase como rehén
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6intentos de reintento por petición; 0 significa un único intento
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre reintentos, en segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16límite global de peticiones concurrentes a través de un mismo cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos del proveedor fusionados en el cuerpo de cada petición; los campos model/messages/token no se pueden sobrescribir. De formato libre, así que se trata como un secreto: nunca es un flag y nunca se permite en el archivo de configuración
port--port <n>HANDBOOK_PORTint4860puerto en el que escuchar
host--host <addr>HANDBOOK_HOSTstring127.0.0.1dirección de escucha; se mantiene en loopback salvo que la establezcas (los contenedores necesitan 0.0.0.0). La protección CSRF sigue exigiendo una cabecera Host de loopback
stateDir--state-dir <dir>HANDBOOK_STATE_DIRpathdónde viven studio.json y los directorios de trabajo gestionados; por defecto $HOME/.handbook-studio

config

claveflagenvtipopor defectodescripción
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidad del log; -v/--verbose y -q/--quiet son atajos de debug/error
forCommand--command <name>HANDBOOK_FOR_COMMANDstringmuestra solo los ajustes que se aplican a este subcomando; sus capas de env/archivo/valor por defecto se pueden inspeccionar aquí, pero los flags propios de ese comando no (pásaselos al comando en sí)
json--jsonHANDBOOK_JSONboolfalsesalida legible por máquina
check--checkHANDBOOK_CHECKboolfalsesolo valida; sale con un código distinto de cero si algo es inválido o falta

En esta página