# Provider detection Active contributors: Douwe de Vries, vriesd ## Purpose Provider detection checks whether local AI CLIs are installed, authenticated, and able to provide model choices. QA Scribe does not store provider API keys. ## Key source files | File | Purpose | | --- | --- | | `src-tauri/src/commands/providers.rs` | Tauri commands for provider status. | | `src-tauri/src/commands/providers/detection.rs` | Fast and deep readiness checks. | | `src-tauri/src/commands/providers/probe.rs` | Runs probe commands with timeout and temp outputs. | | `src-tauri/src/commands/providers/models.rs` | Detects or constructs provider model lists. | | `src-tauri/src/commands/providers/cache.rs` | Caches readiness for short periods. | | `src-tauri/src/commands/providers/types.rs` | Frontend-facing provider status types. | | `src-tauri/src/provider_command.rs` | Resolves executables using PATH and fallback locations. | | `crates/qa-scribe-core/src/ai/mod.rs` | Builds provider command arguments for generation. | ## How it works Detection is split between fast executable checks and deeper provider-specific probes. The README documents Claude Code, Codex CLI, and GitHub Copilot CLI support. Provider model and reasoning choices are recorded on AI Runs and passed to CLIs where supported. ## Integration points The Settings UI in `frontend/src/views/SettingsView.tsx` displays provider readiness and model choices. Generation preflight in `frontend/src/workflows/generationPreflight.tsx` checks readiness before starting [Generation jobs](systems--generation-jobs.md). ## Entry points for modification Add provider-specific readiness logic under `src-tauri/src/commands/providers`, command construction in `crates/qa-scribe-core/src/ai/mod.rs`, and frontend settings display changes in `frontend/src/views/SettingsView.tsx`.