Skip to content

[4.D.3] CLI flags: --llm-provider and --llm-model on cf work start / batch run #545

Description

@frankbria

Parent

Part of #542 — Multi-provider LLM support

Depends on

#544 — env var wiring must work first

What

Add --llm-provider and --llm-model CLI flags so users can select provider and model per-run without setting environment variables.

Files to modify

  • codeframe/cli/app.py — add flags to work_start and work_batch_run commands
  • codeframe/core/conductor.py — pass provider/model through BatchRun
  • codeframe/core/runtime.py — accept provider/model params, pass to get_provider()
  • tests/ — CLI integration tests for new flags

Implementation notes

cf work start:

cf work start <task-id> --execute \
  --llm-provider openai \
  --llm-model qwen2.5-coder:7b

cf work batch run:

cf work batch run --all-ready \
  --llm-provider openai \
  --llm-model gpt-4o

Flag defaults: None — falls back to CODEFRAME_LLM_PROVIDER env var, then anthropic.

BatchRun model update: Add llm_provider: str | None = None and llm_model: str | None = None fields to the BatchRun dataclass.

Priority order for provider selection:

  1. CLI flag (--llm-provider)
  2. Env var (CODEFRAME_LLM_PROVIDER)
  3. Default: anthropic

Help text example:

--llm-provider  LLM provider: anthropic, openai (default: anthropic or $CODEFRAME_LLM_PROVIDER)
--llm-model     Model name for the chosen provider (default: provider's recommended model)
                Examples: claude-sonnet-4-5, gpt-4o, qwen2.5-coder:7b, deepseek-coder

Acceptance criteria

  • cf work start <id> --execute --llm-provider openai --llm-model gpt-4o works
  • cf work batch run --all-ready --llm-provider openai works
  • cf --help shows new flags with clear descriptions
  • No flags → unchanged Anthropic behavior
  • CLI integration tests cover flag parsing and env var fallback

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase-4Phase 4: Multi-Agent Coordination

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions