Supported providers
| Provider | Env var | Example model string |
|---|---|---|
| Google Gemini | GEMINI_API_KEY | gemini/gemini-2.5-flash |
| OpenAI | OPENAI_API_KEY | gpt-4o |
| Anthropic | ANTHROPIC_API_KEY | claude-3-5-sonnet-20241022 |
| Groq | GROQ_API_KEY | groq/llama3-70b-8192 |
| xAI | XAI_API_KEY | xai/grok-2 |
| Mistral | MISTRAL_API_KEY | mistral/mistral-large-latest |
| Cohere | COHERE_API_KEY | command-r-plus |
| DeepSeek | DEEPSEEK_API_KEY | deepseek/deepseek-chat |
Setting your API key
- Setup wizard (recommended)
- Environment variable
- Config file
Run the interactive wizard once to configure your provider, model, and API key:The wizard prompts you to choose a provider, select a model from a live list fetched from LiteLLM, and enter your API key. Everything is saved to
~/.notewise/config.env with owner-only file permissions (0o600).Overriding the model per run
Use--model (or -m) to change the model for a single invocation without touching your config:
config.env — --model only changes which model is used, not which key is read.
LiteLLM model string format
LiteLLM uses aprovider/model-name convention for most providers. The prefix tells LiteLLM which API endpoint and authentication header to use:
Provider details
Google Gemini
Google Gemini
Default provider. Gemini 2.5 Flash offers a generous free tier and is fast enough for real-time note generation on most videos.
Other available Gemini models (from the setup wizard):
| Setting | Value |
|---|---|
| Env var | GEMINI_API_KEY |
| Default model | gemini/gemini-2.5-flash |
| Key source | aistudio.google.com/app/apikey |
OpenAI
OpenAI
| Setting | Value |
|---|---|
| Env var | OPENAI_API_KEY |
| Example model | gpt-4o |
| Key source | platform.openai.com/api-keys |
o1, o3, o4 series) are also supported. Note that reasoning models do not accept a temperature parameter — NoteWise passes the configured temperature for all models, so you may see a warning from LiteLLM if you use a reasoning model with a non-default temperature.Available models include:Anthropic
Anthropic
| Setting | Value |
|---|---|
| Env var | ANTHROPIC_API_KEY |
| Example model | claude-3-5-sonnet-20241022 |
| Key source | console.anthropic.com/settings/keys |
max_tokens and temperature as normal. If MAX_TOKENS is not set in config, NoteWise lets LiteLLM use the model’s default.Available models include:Groq
Groq
| Setting | Value |
|---|---|
| Env var | GROQ_API_KEY |
| Example model | groq/llama3-70b-8192 |
| Key source | console.groq.com/keys |
groq/ prefix.Available models include:xAI
xAI
| Setting | Value |
|---|---|
| Env var | XAI_API_KEY |
| Example model | xai/grok-2 |
| Key source | console.x.ai |
xai/ prefix.Available models include:Mistral
Mistral
| Setting | Value |
|---|---|
| Env var | MISTRAL_API_KEY |
| Example model | mistral/mistral-large-latest |
| Key source | console.mistral.ai/api-keys |
mistral/ prefix.Available models include:Cohere
Cohere
| Setting | Value |
|---|---|
| Env var | COHERE_API_KEY |
| Example model | command-r-plus |
| Key source | dashboard.cohere.com/api-keys |
cohere/ prefix required).Available models include:DeepSeek
DeepSeek
| Setting | Value |
|---|---|
| Env var | DEEPSEEK_API_KEY |
| Example model | deepseek/deepseek-chat |
| Key source | platform.deepseek.com/api_keys |
deepseek/ prefix.Available models include:Generation parameters
Two parameters affect LLM output quality and length, and can be set globally in config or overridden per run:| Parameter | Config key | CLI flag | Default | Range |
|---|---|---|---|---|
| Temperature | TEMPERATURE | --temperature / -t | 0.7 | 0.0 – 1.0 |
| Max tokens | MAX_TOKENS | --max-tokens / -k | model default | provider-dependent |
TEMPERATURE controls how creative or deterministic the output is. Lower values (closer to 0.0) produce more consistent, factual notes. Higher values (closer to 1.0) produce more varied phrasing.
MAX_TOKENS caps the length of each LLM response. If not set, NoteWise lets LiteLLM use the model’s built-in default. For long chapters, a low MAX_TOKENS may cause notes to be truncated — leave this unset unless you have a specific reason to cap output length.