@@ -338,6 +338,21 @@ def _find_affected(tree, parent_names=None):
338338 help = "Add prompt-cache breakpoints to agentic LLM calls; auto-falls back to "
339339 "normal calls if the provider rejects them (default: enabled)" ,
340340)
341+ @click .option (
342+ "--main-model" ,
343+ default = None ,
344+ help = "Model for documentation agents (overrides config)" ,
345+ )
346+ @click .option (
347+ "--cluster-model" ,
348+ default = None ,
349+ help = "Model for module clustering (overrides config)" ,
350+ )
351+ @click .option (
352+ "--fallback-model" ,
353+ default = None ,
354+ help = "Model used when the main model fails (overrides config)" ,
355+ )
341356@click .option (
342357 "--artifacts/--no-artifacts" ,
343358 default = True ,
@@ -454,6 +469,9 @@ def generate_command(
454469 request_limit : int | None ,
455470 agent_retries : int | None ,
456471 prompt_caching : bool | None ,
472+ main_model : str | None = None ,
473+ cluster_model : str | None = None ,
474+ fallback_model : str | None = None ,
457475 artifacts : bool = True ,
458476 artifact_token_budget : int = 200_000 ,
459477 with_prose : bool = False ,
@@ -518,6 +536,10 @@ def generate_command(
518536 \b
519537 # Override max depth for hierarchical decomposition
520538 $ codewiki generate --max-depth 3
539+
540+ \b
541+ # Use other models for this generation
542+ $ codewiki generate --main-model claude-haiku-5-5 --cluster-model claude-haiku-5-5
521543 """
522544 print_banner ()
523545 logger = create_logger (verbose = verbose )
@@ -724,6 +746,8 @@ def generate_command(
724746 effective_prompt_caching = (
725747 prompt_caching if prompt_caching is not None else config .prompt_caching
726748 )
749+ logger .debug (f"Main model: { main_model or config .main_model } " )
750+ logger .debug (f"Cluster model: { cluster_model or config .cluster_model } " )
727751 logger .debug (f"Max tokens: { effective_max_tokens } " )
728752 logger .debug (f"Max token/module: { effective_max_token_per_module } " )
729753 logger .debug (f"Max token/leaf module: { effective_max_token_per_leaf } " )
@@ -761,9 +785,10 @@ def generate_command(
761785 repo_path = repo_path ,
762786 output_dir = output_dir ,
763787 config = {
764- "main_model" : config .main_model ,
765- "cluster_model" : config .cluster_model ,
766- "fallback_model" : config .fallback_model ,
788+ # Models (runtime overrides take precedence)
789+ "main_model" : main_model or config .main_model ,
790+ "cluster_model" : cluster_model or config .cluster_model ,
791+ "fallback_model" : fallback_model or config .fallback_model ,
767792 "base_url" : config .base_url ,
768793 "api_key" : api_key ,
769794 "provider" : getattr (config , "provider" , "openai-compatible" ),
0 commit comments