diff --git a/rust/crates/rusty-claude-cli/src/main.rs b/rust/crates/rusty-claude-cli/src/main.rs index f2400b65..e5327d98 100644 --- a/rust/crates/rusty-claude-cli/src/main.rs +++ b/rust/crates/rusty-claude-cli/src/main.rs @@ -7086,6 +7086,29 @@ fn run_repl( println!("{}", cli.startup_banner()); println!("{}", format_connected_line(&cli.model)); + // Validate key config fields and prompt setup wizard if missing + { + let cwd = std::env::current_dir().unwrap_or_default(); + if let Ok(config) = runtime::ConfigLoader::default_for(&cwd).load() { + let mut missing: Vec<&str> = Vec::new(); + if config.provider().api_key().is_none() { + missing.push("provider.apiKey"); + } + if config.provider().base_url().is_none() { + missing.push("provider.baseUrl"); + } + if config.subagent_model().is_none() { + missing.push("subagentModel"); + } + if !missing.is_empty() { + eprintln!(" + Warning: Missing config fields: {}", missing.join(", ")); + eprintln!(" Run claw setup or type /setup to configure. +"); + } + } + } + // Discover and register LSP servers let lsp_servers = runtime::lsp_discovery::discover_available_servers(); if !lsp_servers.is_empty() {