@@ -708,6 +708,8 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
708708 params.use_jinja = true ;
709709 }
710710
711+ params.use_color = tty_can_use_colors ();
712+
711713 // load dynamic backends
712714 ggml_backend_load_all ();
713715
@@ -790,10 +792,20 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
790792 }
791793 ).set_examples ({LLAMA_EXAMPLE_MAIN}));
792794 add_opt (common_arg (
793- {" -co" , " --color" },
794- string_format (" colorise output to distinguish prompt and user input from generations (default: %s)" , params.use_color ? " true" : " false" ),
795- [](common_params & params) {
796- params.use_color = true ;
795+ {" -co" , " --color" }, " [on|off|auto]" ,
796+ " Colorize output to distinguish prompt and user input from generations ('on', 'off', or 'auto', default: 'auto')\n "
797+ " 'auto' enables colors when output is to a terminal" ,
798+ [](common_params & params, const std::string & value) {
799+ if (is_truthy (value)) {
800+ params.use_color = true ;
801+ } else if (is_falsey (value)) {
802+ params.use_color = false ;
803+ } else if (is_autoy (value)) {
804+ params.use_color = tty_can_use_colors ();
805+ } else {
806+ throw std::invalid_argument (
807+ string_format (" error: unknown value for --color: '%s'\n " , value.c_str ()));
808+ }
797809 }
798810 ).set_examples ({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_LOOKUP}));
799811 add_opt (common_arg (
@@ -1022,7 +1034,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
10221034 params.flash_attn_type = LLAMA_FLASH_ATTN_TYPE_AUTO;
10231035 } else {
10241036 throw std::runtime_error (
1025- string_format (" error: unkown value for --flash-attn: '%s'\n " , value.c_str ()));
1037+ string_format (" error: unknown value for --flash-attn: '%s'\n " , value.c_str ()));
10261038 }
10271039 }).set_env (" LLAMA_ARG_FLASH_ATTN" ));
10281040 add_opt (common_arg (
@@ -2696,7 +2708,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
26962708 common_log_set_colors (common_log_main (), LOG_COLORS_AUTO);
26972709 } else {
26982710 throw std::invalid_argument (
2699- string_format (" error: unkown value for --log-colors: '%s'\n " , value.c_str ()));
2711+ string_format (" error: unknown value for --log-colors: '%s'\n " , value.c_str ()));
27002712 }
27012713 }
27022714 ).set_env (" LLAMA_LOG_COLORS" ));
0 commit comments