@@ -382,8 +382,6 @@ def check_tool(tool: str, install_hint: str) -> bool:
382382 if shutil .which (tool ):
383383 return True
384384 else :
385- console .print (f"[yellow]⚠️ { tool } not found[/yellow]" )
386- console .print (f" Install with: [cyan]{ install_hint } [/cyan]" )
387385 return False
388386
389387
@@ -817,7 +815,15 @@ def init(
817815 project_path = Path (project_name ).resolve ()
818816 # Check if project directory already exists
819817 if project_path .exists ():
820- console .print (f"[red]Error:[/red] Directory '{ project_name } ' already exists" )
818+ error_panel = Panel (
819+ f"Directory '[cyan]{ project_name } [/cyan]' already exists\n "
820+ "Please choose a different project name or remove the existing directory." ,
821+ title = "[red]Directory Conflict[/red]" ,
822+ border_style = "red" ,
823+ padding = (1 , 2 )
824+ )
825+ console .print ()
826+ console .print (error_panel )
821827 raise typer .Exit (1 )
822828
823829 # Create formatted setup info with column alignment
@@ -861,35 +867,45 @@ def init(
861867 # Check agent tools unless ignored
862868 if not ignore_agent_tools :
863869 agent_tool_missing = False
870+ install_url = ""
864871 if selected_ai == "claude" :
865- if not check_tool ("claude" , "Install from: https://docs.anthropic.com/en/docs/claude-code/setup" ):
866- console . print ( "[red]Error:[/red] Claude CLI is required for Claude Code projects" )
872+ if not check_tool ("claude" , "https://docs.anthropic.com/en/docs/claude-code/setup" ):
873+ install_url = "https://docs.anthropic.com/en/docs/claude-code/setup"
867874 agent_tool_missing = True
868875 elif selected_ai == "gemini" :
869- if not check_tool ("gemini" , "Install from: https://github.com/google-gemini/gemini-cli" ):
870- console . print ( "[red]Error:[/red] Gemini CLI is required for Gemini projects" )
876+ if not check_tool ("gemini" , "https://github.com/google-gemini/gemini-cli" ):
877+ install_url = "https://github.com/google-gemini/gemini-cli"
871878 agent_tool_missing = True
872879 elif selected_ai == "qwen" :
873- if not check_tool ("qwen" , "Install from: https://github.com/QwenLM/qwen-code" ):
874- console . print ( "[red]Error:[/red] Qwen CLI is required for Qwen Code projects" )
880+ if not check_tool ("qwen" , "https://github.com/QwenLM/qwen-code" ):
881+ install_url = "https://github.com/QwenLM/qwen-code"
875882 agent_tool_missing = True
876883 elif selected_ai == "opencode" :
877- if not check_tool ("opencode" , "Install from: https://opencode.ai" ):
878- console . print ( "[red]Error:[/red] opencode CLI is required for opencode projects" )
884+ if not check_tool ("opencode" , "https://opencode.ai" ):
885+ install_url = "https:// opencode.ai"
879886 agent_tool_missing = True
880887 elif selected_ai == "codex" :
881- if not check_tool ("codex" , "Install from: https://github.com/openai/codex" ):
882- console . print ( "[red]Error:[/red] Codex CLI is required for Codex projects" )
888+ if not check_tool ("codex" , "https://github.com/openai/codex" ):
889+ install_url = "https://github.com/openai/codex"
883890 agent_tool_missing = True
884891 elif selected_ai == "auggie" :
885- if not check_tool ("auggie" , "Install from: https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli" ):
886- console . print ( "[red]Error:[/red] Auggie CLI is required for Auggie CLI projects" )
892+ if not check_tool ("auggie" , "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli" ):
893+ install_url = "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli"
887894 agent_tool_missing = True
888895 # GitHub Copilot and Cursor checks are not needed as they're typically available in supported IDEs
889896
890897 if agent_tool_missing :
891- console .print ("\n [red]Required AI tool is missing![/red]" )
892- console .print ("[yellow]Tip:[/yellow] Use --ignore-agent-tools to skip this check" )
898+ error_panel = Panel (
899+ f"[cyan]{ selected_ai } [/cyan] not found\n "
900+ f"Install with: [cyan]{ install_url } [/cyan]\n "
901+ f"{ AI_CHOICES [selected_ai ]} is required to continue with this project type.\n \n "
902+ "Tip: Use [cyan]--ignore-agent-tools[/cyan] to skip this check" ,
903+ title = "[red]Agent Detection Error[/red]" ,
904+ border_style = "red" ,
905+ padding = (1 , 2 )
906+ )
907+ console .print ()
908+ console .print (error_panel )
893909 raise typer .Exit (1 )
894910
895911 # Determine script type (explicit, interactive, or OS default)
0 commit comments