Model Management
Wilson supports 10 LLM providers with dozens of models. Use /model to switch between them and /pull to download local models.
Switching Models
Section titled “Switching Models”/model — Interactive Selector
Section titled “/model — Interactive Selector”Run /model without arguments to open the interactive model selector:
- Pick a provider (Ollama, Transformers.js, OpenAI, Anthropic, etc.)
- Pick a model from the provider’s list, or type a custom model name
- Wilson switches immediately — the next message uses the new model
/model/model <name> — Direct Switch
Section titled “/model <name> — Direct Switch”Skip the selector by passing a model name directly:
/model ollama:qwen3:8b/model gpt-4.1/model claude-sonnet-4-6/model transformers:HuggingFaceTB/SmolLM3-3B-ONNXDownloading Models
Section titled “Downloading Models”/pull <model> — Download for Local Use
Section titled “/pull <model> — Download for Local Use”Download Ollama or Transformers.js models with progress reporting:
/pull qwen3:8b # Ollama model/pull transformers:HuggingFaceTB/SmolLM3-3B-ONNX # Transformers.js modelFor Ollama models, this calls ollama pull under the hood. For Transformers.js models, it downloads ONNX weights from HuggingFace Hub to ~/.openaccountant/models/.
Recommended Ollama Models
Section titled “Recommended Ollama Models”Tool-Calling Models
Section titled “Tool-Calling Models”These models work with Wilson’s agent tool system — they can call tools like search_transactions, categorize, and import_csv.
| Model | Size | Description |
|---|---|---|
qwen3:0.6b | 523 MB | Alibaba — smallest tool-calling model |
qwen3:4b | 2.5 GB | Alibaba — rivals 72B quality, tool-calling |
qwen3:8b | 5.2 GB | Alibaba — best balance, tool-calling |
granite4:3b | 2.1 GB | IBM Granite 4 — tool-calling, 128K context |
granite4:tiny-h | 4.2 GB | IBM Granite 4 MoE — 7B, tool-calling |
ministral-3:3b | 2.1 GB | Mistral — vision + tool-calling, 256K context |
General-Purpose Models
Section titled “General-Purpose Models”Good for conversation and analysis, but may not reliably call tools.
| Model | Size | Description |
|---|---|---|
gemma3:4b | 3.3 GB | Google — multimodal, 140+ languages |
smollm2:1.7b | 1.8 GB | HuggingFace — tiny but capable |
gemma3:1b | 815 MB | Google — ultralight, 32K context |
granite4:350m | 708 MB | IBM — smallest Granite, edge-ready |
Default Model
Section titled “Default Model”Set DEFAULT_MODEL in .env for headless mode and cron jobs:
DEFAULT_MODEL=ollama:qwen3:8bThis is used when Wilson starts without an interactive model selection — for example, with wilson --run "..." or wilson --sync.
Model Prefixes
Section titled “Model Prefixes”The model name prefix determines which provider handles the request:
| Prefix | Provider | Example |
|---|---|---|
ollama: | Ollama | ollama:qwen3:8b |
transformers: | Transformers.js | transformers:HuggingFaceTB/SmolLM3-3B-ONNX |
openrouter: | OpenRouter | openrouter:anthropic/claude-3.5-sonnet |
litellm: | LiteLLM | litellm:gpt-4o |
claude- | Anthropic | claude-sonnet-4-6 |
gpt- | OpenAI | gpt-4.1 |
gemini- | gemini-3-flash-preview | |
grok- | xAI | grok-4-0709 |
kimi- | Moonshot | kimi-k2-5 |
deepseek- | DeepSeek | deepseek-chat |
No prefix defaults to OpenAI.
See Also
Section titled “See Also”- LLM Providers — Provider-specific setup and API keys
- Transformers.js — Local ONNX model inference
- Small Language Models — Ollama SLM guide