From 1aacd5622575716dac4a70197931a855039163b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eckhart=20K=C3=B6ppen?= Date: Wed, 11 Feb 2026 19:09:13 +0200 Subject: [PATCH] feat: Allow overriding default bat themes using environment variables (#7140) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Eckhart Köppen --- crates/goose-cli/src/session/output.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/goose-cli/src/session/output.rs b/crates/goose-cli/src/session/output.rs index d7875377..8b539c71 100644 --- a/crates/goose-cli/src/session/output.rs +++ b/crates/goose-cli/src/session/output.rs @@ -18,6 +18,8 @@ use std::sync::Arc; use std::time::Duration; pub const DEFAULT_MIN_PRIORITY: f32 = 0.0; +pub const DEFAULT_CLI_LIGHT_THEME: &str = "GitHub"; +pub const DEFAULT_CLI_DARK_THEME: &str = "zenburn"; // Re-export theme for use in main #[derive(Clone, Copy)] @@ -28,11 +30,15 @@ pub enum Theme { } impl Theme { - fn as_str(&self) -> &'static str { + fn as_str(&self) -> String { match self { - Theme::Light => "GitHub", - Theme::Dark => "zenburn", - Theme::Ansi => "base16", + Theme::Light => Config::global() + .get_param::("GOOSE_CLI_LIGHT_THEME") + .unwrap_or(DEFAULT_CLI_LIGHT_THEME.to_string()), + Theme::Dark => Config::global() + .get_param::("GOOSE_CLI_DARK_THEME") + .unwrap_or(DEFAULT_CLI_DARK_THEME.to_string()), + Theme::Ansi => "base16".to_string(), } }