From 695153f88ee52d81f0f24aaa559167afdca34dc6 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Tue, 8 Sep 2026 16:47:40 -0600 Subject: [PATCH] feat: Added new environment variable to force showing tool call logging when not in a tty --- src/function/mod.rs | 10 ++++++++-- src/utils/mod.rs | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/function/mod.rs b/src/function/mod.rs index 76e095f..362eedc 100644 --- a/src/function/mod.rs +++ b/src/function/mod.rs @@ -1485,7 +1485,10 @@ impl ToolCall { let json_data = self.parse_arguments()?; let cmd_name = self.name.as_str(); let quiet = ctx.current_depth > 0; - if *IS_STDOUT_TERMINAL && ctx.current_depth == 0 && !HEADLESS.load(Ordering::SeqCst) { + if (*IS_STDOUT_TERMINAL || *SHOW_TOOL_CALLS) + && ctx.current_depth == 0 + && !HEADLESS.load(Ordering::SeqCst) + { println!( "{}", format_call_log(cmd_name, &[json_data.to_string()], &json_data) @@ -1562,7 +1565,10 @@ impl ToolCall { cmd_args.push(json_data.to_string()); - if *IS_STDOUT_TERMINAL && current_depth == 0 && !HEADLESS.load(Ordering::SeqCst) { + if (*IS_STDOUT_TERMINAL || *SHOW_TOOL_CALLS) + && current_depth == 0 + && !HEADLESS.load(Ordering::SeqCst) + { println!("{}", format_call_log(&cmd_name, &cmd_args, &json_data)); } diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 4a5be52..f9a5868 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -47,6 +47,12 @@ pub static CODE_BLOCK_RE: LazyLock = pub static THINK_TAG_RE: LazyLock = LazyLock::new(|| Regex::new(r"(?s)^\s*.*?(\s*|$)").unwrap()); pub static IS_STDOUT_TERMINAL: LazyLock = LazyLock::new(|| io::stdout().is_terminal()); +pub static SHOW_TOOL_CALLS: LazyLock = LazyLock::new(|| { + env::var(get_env_name("show_tool_calls")) + .ok() + .and_then(|v| parse_bool(&v)) + .unwrap_or_default() +}); pub static HEADLESS: AtomicBool = AtomicBool::new(false); pub static ACP_SERVER: AtomicBool = AtomicBool::new(false);