Handbooks
Referência

Referência de configuração

Cada configuração do Handbooks, com sua flag, variável de ambiente, chave de arquivo de configuração, tipo e padrão — gerada a partir do registro.

Esta página é a tradução de uma página gerada. O original em inglês é gerado por pnpm run config:docs a partir do registro de configurações e é protegido por um teste de deriva; esta tradução é mantida à mão — quando o original mudar, atualize-a também.

Precedência

Cada configuração é resolvida através das mesmas camadas, da maior prioridade para a menor: flag > env do shell > .env > handbook.config.yaml > padrão. A primeira camada que fornece um valor vence e todas as camadas abaixo dela são ignoradas para aquela configuração. Execute handbook config — ou handbook config --command <name> para ver apenas um subcomando — para verificar o que de fato foi resolvido e de qual camada veio.

Nomenclatura

Uma única key em camelCase no registro controla as três superfícies de uma vez: uma flag, uma variável de ambiente e uma chave de arquivo de configuração. Prefixar qualquer uma delas com o nome de um comando restringe aquela superfície a um único subcomando, e é a mesma transformação nas três — HANDBOOK_<KEY> vira HANDBOOK_<COMMAND>_<KEY>, e key vira <command>Key, seja escrita de forma plana ou aninhada um nível abaixo de <command>:. Uma configuração marcada como (com escopo) abaixo aceita apenas o nome de env prefixado, porque seu significado muda conforme o comando (--out, --lang no pacote skill).

Inicialização

Três configurações de nível superior apontam para as camadas acima e estão, elas próprias, fora do registro, sendo resolvidas uma única vez antes de qualquer outra configuração — que é também o motivo pelo qual nenhuma delas pode ser definida por aquilo que carregam: uma chave --env dentro de handbook.config.yaml, uma linha --env-file dentro de .env ou uma chave --config dentro desse mesmo arquivo não teriam mais ninguém para lê-las.

  • --env <name> (ou HANDBOOK_ENV) seleciona uma cascata por ambiente — a única das três que tem tanto a forma de flag quanto a de variável de ambiente, já que nomeia um ambiente em vez de apontar para um arquivo exato.
  • --env-file <path> carrega exatamente aquele único arquivo, contornando a cascata abaixo.
  • --config <path> nomeia um arquivo de configuração exato, contornando a descoberta sensível ao ambiente descrita abaixo (padrão: o arquivo mais próximo da família handbook.config.yaml, encontrado subindo a partir do diretório de trabalho e parando na fronteira do repositório).

A cascata .env

Sem --env-file, a CLI carrega uma cascata de arquivos .env* em vez de um único arquivo fixo, da maior precedência para a menor. A regra existente de applyEnvFile — nunca sobrescrever uma chave já definida — é o que faz de uma cascata nada mais que "chame na ordem, o primeiro arquivo a definir uma chave vence":

#arquivoquemescopoversionado?
1ambiente do shellsempre vence
2.env.<name>.localpessoalapenas este ambientenão (no gitignore)
3.env.<name>equipeapenas este ambientesim
4.env.localpessoaltodos os ambientesnão (no gitignore)
5.envequipelinha de basesim

As linhas 2 e 3 só se aplicam quando --env/HANDBOOK_ENV nomeia um ambiente. Sem nenhum dos dois definido, apenas as linhas 4 e 5 são carregadas — exatamente o que era carregado antes de esta cascata existir, de modo que uma instalação existente sem .env.local não vê mudança alguma.

Descoberta do arquivo de configuração com um ambiente

--config à parte, a descoberta continua subindo a partir do diretório de trabalho e parando na fronteira do repositório, mas em cada diretório visitado ela agora procura primeiro por handbook.config.<name>.{yaml,yml,json} (somente quando um ambiente é nomeado) antes do simples handbook.config.yaml e afins — de modo que um arquivo nomeado sempre vence um arquivo simples que esteja nesse mesmo diretório, mesmo quando existe um arquivo simples em um nível mais próximo do diretório de trabalho. Sem nenhum ambiente nomeado, a descoberta permanece inalterada.

Execute handbook config para ver qual ambiente está ativo e exatamente quais arquivos ele carregou, em ordem de precedência — uma cascata sobre quatro camadas de valores são fontes possíveis demais para acompanhar de memória, e uma camada que este comando não consegue mostrar não é diferente de uma camada que não funciona.

Exemplo prático para readWorkers (flag --read-workers <n>, padrão 12):

superfícieplanacom escopo em generate
envHANDBOOK_READ_WORKERSHANDBOOK_GENERATE_READ_WORKERS
chave de handbook.config.yamlreadWorkersgenerateReadWorkers

As formas do arquivo de configuração são intercambiáveis: um readWorkers: ... plano e um generate: { readWorkers: ... } aninhado significam a mesma coisa, porque o arquivo é achatado pela mesma junção camelCase antes de ser lido.

analyze

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
source--source <dir>HANDBOOK_SOURCEpathobrigatórioraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
work--work <dir>HANDBOOK_WORKpathobrigatóriodiretório de trabalho que guarda os artefatos do pipeline; opcional para skill, onde acrescenta coverage.json
lang--lang <lang>HANDBOOK_LANGenum (auto, mais qualquer linguagem registrada)autolinguagem do código-fonte; auto detecta e mescla todas as linguagens registradas

generate

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vazia)chave de API para o endpoint do LLM; use EMPTY para endpoints locais sem chave. Nunca é uma flag e nunca é permitida no arquivo de configuração
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte do LLM; 'openai' cobre qualquer endpoint compatível com OpenAI (a maioria é)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador do modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1qualquer endpoint compatível com OpenAI (hospedado, vLLM, LiteLLM, um proxy); uma URL com credenciais embutidas é recusada no arquivo de configuração, que acaba commitado
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de saída por requisição
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300prazo por requisição, em segundos; uma chamada travada é retentada em vez de poder manter uma fase refém
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6tentativas de repetição por requisição; 0 significa uma única tentativa
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre as tentativas, em segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16limite global de requisições concorrentes através de um cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos do fornecedor mesclados ao corpo de toda requisição; os campos model/messages/token não podem ser sobrescritos. De formato livre, por isso é tratado como segredo: nunca é uma flag e nunca é permitido no arquivo de configuração
source--source <dir>HANDBOOK_SOURCEpathobrigatórioraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
work--work <dir>HANDBOOK_WORKpathobrigatóriodiretório de trabalho que guarda os artefatos do pipeline; opcional para skill, onde acrescenta coverage.json
lang--lang <lang>HANDBOOK_LANGenum (auto, mais qualquer linguagem registrada)autolinguagem do código-fonte; auto detecta e mescla todas as linguagens registradas
phase--phase <spec>HANDBOOK_PHASEstringallall | 1 | 2 | 2a | 2b | 2c | 3, ou uma lista separada por vírgulas
strategy--strategy <s>HANDBOOK_STRATEGYenum (file|member)file (padrão) ou member; não definida mantém a estratégia registrada no diretório de trabalho
skeleton--skeleton <path>HANDBOOK_SKELETONpathskeleton.yaml escrito pelo usuário, obrigatório para a estratégia member
narrateLang--narrate-lang <l>HANDBOOK_NARRATE_LANGenum (en|zh)enidioma da prosa
detail--detail <d>HANDBOOK_DETAILenum (brief|deep)briefprofundidade da ficha
synthMode--synth-mode <m>HANDBOOK_SYNTH_MODEenum (oneshot|doctor)oneshotmodo de síntese do esqueleto
maxDoctorRounds--max-doctor-rounds <n>HANDBOOK_MAX_DOCTOR_ROUNDSint6rodadas de convergência do doctor
readWorkers--read-workers <n>HANDBOOK_READ_WORKERSint12lotes de fichas concorrentes
readBatchSize--read-batch-size <n>HANDBOOK_READ_BATCH_SIZEintarquivos por lote de fichas; não definido significa 1 para --detail deep e 8 para brief
maxCharsPerFile--max-chars-per-file <n>HANDBOOK_MAX_CHARS_PER_FILEint0trunca cada arquivo em n caracteres; 0 significa sem limite
assignBatchSize--assign-batch-size <n>HANDBOOK_ASSIGN_BATCH_SIZEint25fichas por lote de atribuição
assignWorkers--assign-workers <n>HANDBOOK_ASSIGN_WORKERSint12lotes de atribuição concorrentes
organizeWorkers--organize-workers <n>HANDBOOK_ORGANIZE_WORKERSint8chamadas concorrentes de organização de etapas
narrateWorkers--narrate-workers <n>HANDBOOK_NARRATE_WORKERSint8chamadas de narração concorrentes
resume--resumeHANDBOOK_RESUMEboolfalsepula os arquivos que já têm uma ficha concluída
refresh--refreshHANDBOOK_REFRESHboolfalseignora os caches da Phase 3
llmCache--llm-cacheHANDBOOK_LLM_CACHEboolfalsearmazena em cache as respostas brutas do LLM em /phase3/cache; desativado por --refresh

render

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
work--work <dir>HANDBOOK_WORKpathobrigatóriodiretório de trabalho que guarda os artefatos do pipeline; opcional para skill, onde acrescenta coverage.json
title--title <title>HANDBOOK_TITLEstringSystem Handbooktítulo do handbook para as saídas renderizadas
out--out <dir>HANDBOOK_RENDER_OUT (com escopo)pathlocal de saída; render usa /handbook por padrão, plan escreve um arquivo, skill escreve um diretório
html--htmlHANDBOOK_HTMLboolfalsetambém renderiza o site HTML de várias páginas em /html
htmlSingle--html-singleHANDBOOK_HTML_SINGLEboolfalsetambém renderiza uma única página HTML autocontida
agentSite--agent-siteHANDBOOK_AGENT_SITEboolfalsetambém renderiza o índice localizador para agentes em /agent
llmsTxt--llms-txtHANDBOOK_LLMS_TXTboolfalsetambém escreve llms.txt e llms-full.txt ao lado do markdown
sourceBaseUrl--source-base-url <url>HANDBOOK_SOURCE_BASE_URLstringvincula as fichas de arquivo ao código-fonte em /

skill

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
source--source <dir>HANDBOOK_SOURCEpathraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
work--work <dir>HANDBOOK_WORKpathdiretório de trabalho que guarda os artefatos do pipeline; opcional para skill, onde acrescenta coverage.json
out--out <dir>HANDBOOK_SKILL_OUT (com escopo)pathobrigatóriolocal de saída; render usa /handbook por padrão, plan escreve um arquivo, skill escreve um diretório
handbook--handbook <dir>HANDBOOK_SKILL_HANDBOOK (com escopo)pathobrigatóriodiretório do handbook renderizado; obrigatório para skill, contexto opcional para plan
name--name <slug>HANDBOOK_NAMEstringobrigatórioslug da skill (minúsculas-com-hífen)
project--project <name>HANDBOOK_PROJECTstringnome humano do projeto para a prosa
agentDir--agent-dir <dir>HANDBOOK_AGENT_DIRpathsite localizador para agentes renderizado; é entregue em references/agent/
bodyLang--lang <l>HANDBOOK_SKILL_BODY_LANG (com escopo)enum (en|zh)enidioma do corpo do SKILL.md; o frontmatter permanece em inglês para o roteamento

validate

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
source--source <dir>HANDBOOK_SOURCEpathraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
skill--skill <dir>HANDBOOK_SKILLpathobrigatóriodiretório da skill a validar

plan

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vazia)chave de API para o endpoint do LLM; use EMPTY para endpoints locais sem chave. Nunca é uma flag e nunca é permitida no arquivo de configuração
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte do LLM; 'openai' cobre qualquer endpoint compatível com OpenAI (a maioria é)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador do modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1qualquer endpoint compatível com OpenAI (hospedado, vLLM, LiteLLM, um proxy); uma URL com credenciais embutidas é recusada no arquivo de configuração, que acaba commitado
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de saída por requisição
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300prazo por requisição, em segundos; uma chamada travada é retentada em vez de poder manter uma fase refém
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6tentativas de repetição por requisição; 0 significa uma única tentativa
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre as tentativas, em segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16limite global de requisições concorrentes através de um cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos do fornecedor mesclados ao corpo de toda requisição; os campos model/messages/token não podem ser sobrescritos. De formato livre, por isso é tratado como segredo: nunca é uma flag e nunca é permitido no arquivo de configuração
source--source <dir>HANDBOOK_SOURCEpathobrigatórioraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
out--out <dir>HANDBOOK_PLAN_OUT (com escopo)pathlocal de saída; render usa /handbook por padrão, plan escreve um arquivo, skill escreve um diretório
handbook--handbook <dir>HANDBOOK_PLAN_HANDBOOK (com escopo)pathdiretório do handbook renderizado; obrigatório para skill, contexto opcional para plan
request--request <text>HANDBOOK_REQUESTstringobrigatórioa solicitação de mudança em linguagem natural
maxTurns--max-turns <n>HANDBOOK_MAX_TURNSint30orçamento de turnos do agente

apply

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
source--source <dir>HANDBOOK_SOURCEpathobrigatórioraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
plan--plan <file>HANDBOOK_PLANpathobrigatórioarquivo de plano produzido por handbook plan
dryRun--dry-runHANDBOOK_DRY_RUNboolfalseapenas verifica, nunca escreve
backupRoot--backup-root <dir>HANDBOOK_BACKUP_ROOTpathonde ficam os backups; o padrão é /.handbook-patches

rollback

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
source--source <dir>HANDBOOK_SOURCEpathraiz do código-fonte; obrigatória para analyze/generate/plan/apply, opcional nos demais (atualidade do hash para validate/skill, e a árvore à qual um backup pertence para rollback)
backup--backup <dir>HANDBOOK_BACKUPpathobrigatóriodiretório de backup contendo manifest.json
force--forceHANDBOOK_FORCEboolfalserestaura até mesmo os arquivos que mudaram depois do patch

resync

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vazia)chave de API para o endpoint do LLM; use EMPTY para endpoints locais sem chave. Nunca é uma flag e nunca é permitida no arquivo de configuração
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte do LLM; 'openai' cobre qualquer endpoint compatível com OpenAI (a maioria é)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador do modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1qualquer endpoint compatível com OpenAI (hospedado, vLLM, LiteLLM, um proxy); uma URL com credenciais embutidas é recusada no arquivo de configuração, que acaba commitado
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de saída por requisição
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300prazo por requisição, em segundos; uma chamada travada é retentada em vez de poder manter uma fase refém
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6tentativas de repetição por requisição; 0 significa uma única tentativa
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre as tentativas, em segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16limite global de requisições concorrentes através de um cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos do fornecedor mesclados ao corpo de toda requisição; os campos model/messages/token não podem ser sobrescritos. De formato livre, por isso é tratado como segredo: nunca é uma flag e nunca é permitido no arquivo de configuração
work--work <dir>HANDBOOK_WORKpathobrigatóriodiretório de trabalho que guarda os artefatos do pipeline; opcional para skill, onde acrescenta coverage.json
title--title <title>HANDBOOK_TITLEstringSystem Handbooktítulo do handbook para as saídas renderizadas
case--case <dir>HANDBOOK_CASEpathobrigatóriodiretório do caso: edited/ + plan.md + change.diff
useLlm--no-llmHANDBOOK_USE_LLMbooltruedefina como false para apenas uma atualização estrutural, com a prosa marcada como desatualizada
refreshRendered--no-renderHANDBOOK_REFRESH_RENDEREDbooltruedefina como false para pular a atualização das saídas já renderizadas em /handbook
corrections--corrections <file>HANDBOOK_CORRECTIONSpathcorrections.jsonl reportado pelo agente; seus arquivos ampliam o conjunto a ser atualizado
cardDetail--detail <d>HANDBOOK_RESYNC_CARD_DETAIL (com escopo)enum (brief|deep)profundidade das fichas regeneradas; não definida acompanha o handbook existente
proseLang--narrate-lang <l>HANDBOOK_RESYNC_PROSE_LANG (com escopo)enum (en|zh)idioma da prosa das fichas regeneradas; não definido acompanha o handbook existente

studio

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (vazia)chave de API para o endpoint do LLM; use EMPTY para endpoints locais sem chave. Nunca é uma flag e nunca é permitida no arquivo de configuração
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiformato de transporte do LLM; 'openai' cobre qualquer endpoint compatível com OpenAI (a maioria é)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-miniidentificador do modelo
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1qualquer endpoint compatível com OpenAI (hospedado, vLLM, LiteLLM, um proxy); uma URL com credenciais embutidas é recusada no arquivo de configuração, que acaba commitado
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000máximo de tokens de saída por requisição
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300prazo por requisição, em segundos; uma chamada travada é retentada em vez de poder manter uma fase refém
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6tentativas de repetição por requisição; 0 significa uma única tentativa
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3backoff base entre as tentativas, em segundos
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16limite global de requisições concorrentes através de um cliente
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsoncampos do fornecedor mesclados ao corpo de toda requisição; os campos model/messages/token não podem ser sobrescritos. De formato livre, por isso é tratado como segredo: nunca é uma flag e nunca é permitido no arquivo de configuração
port--port <n>HANDBOOK_PORTint4860porta em que escutar
host--host <addr>HANDBOOK_HOSTstring127.0.0.1endereço de bind; permanece no loopback a menos que você o defina (contêineres precisam de 0.0.0.0). A proteção CSRF continua exigindo um cabeçalho Host de loopback
stateDir--state-dir <dir>HANDBOOK_STATE_DIRpathonde ficam o studio.json e os diretórios de trabalho gerenciados; o padrão é $HOME/.handbook-studio

config

keyflagenvtipopadrãodescrição
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infoverbosidade do log; -v/--verbose e -q/--quiet são atalhos para debug/error
forCommand--command <name>HANDBOOK_FOR_COMMANDstringmostra apenas as configurações que se aplicam a este subcomando; suas camadas de env/arquivo/padrão são inspecionáveis aqui, mas as flags do próprio comando não são (passe-as ao próprio comando)
json--jsonHANDBOOK_JSONboolfalsesaída legível por máquina
check--checkHANDBOOK_CHECKboolfalseapenas valida; sai com código diferente de zero se algo for inválido ou estiver faltando

Nesta página