summaryrefslogtreecommitdiff
path: root/internal/cli/flags.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-01 21:19:18 +0300
committerPaul Buetow <paul@buetow.org>2026-04-01 21:19:18 +0300
commitd1c6d860214be8895f4ed90ff74bff664fbb4422 (patch)
tree4983cce4b69ffebdff02e1a2c3cc869d0603b4e4 /internal/cli/flags.go
parentaeeb3c6ffea828773f849b88d97c5ffead706a97 (diff)
Add Gemini audio CLI flags
Diffstat (limited to 'internal/cli/flags.go')
-rw-r--r--internal/cli/flags.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/internal/cli/flags.go b/internal/cli/flags.go
index 5fcab40..4813b05 100644
--- a/internal/cli/flags.go
+++ b/internal/cli/flags.go
@@ -1,5 +1,7 @@
package cli
+import "codeberg.org/snonux/totalrecall/internal/audio"
+
const (
defaultNanoBananaModel = "gemini-3.1-flash-image-preview"
defaultNanoBananaTextModel = "gemini-2.5-flash"
@@ -8,9 +10,11 @@ const (
// Flags holds all command-line flag values
type Flags struct {
// General flags
- CfgFile string
- OutputDir string
- AudioFormat string
+ CfgFile string
+ OutputDir string
+ AudioFormat string
+ // AudioProvider selects the text-to-speech backend ("gemini" or "openai").
+ AudioProvider string
ImageAPI string
ImageAPISpecified bool
BatchFile string
@@ -36,6 +40,12 @@ type Flags struct {
OpenAIImageQuality string
OpenAIImageStyle string
+ // Gemini audio flags
+ // GeminiTTSModel is the Gemini TTS model used when Gemini audio is selected.
+ GeminiTTSModel string
+ // GeminiVoice selects a specific Gemini voice; empty uses the model default.
+ GeminiVoice string
+
// NanoBananaModel is the Gemini image model used for Nano Banana generation.
NanoBananaModel string
// NanoBananaModelSpecified records whether the Nano Banana image model was explicitly set on the CLI.
@@ -48,8 +58,11 @@ type Flags struct {
// NewFlags creates a new Flags instance with default values
func NewFlags() *Flags {
+ defaults := audio.DefaultProviderConfig()
+
return &Flags{
AudioFormat: "mp3",
+ AudioProvider: defaults.Provider,
ImageAPI: "openai",
DeckName: "Bulgarian Vocabulary",
OpenAIModel: "gpt-4o-mini-tts",
@@ -58,6 +71,7 @@ func NewFlags() *Flags {
OpenAIImageSize: "512x512",
OpenAIImageQuality: "standard",
OpenAIImageStyle: "natural",
+ GeminiTTSModel: defaults.GeminiTTSModel,
NanoBananaModel: defaultNanoBananaModel,
NanoBananaTextModel: defaultNanoBananaTextModel,
}