Settings File
All settings live in~/.vibelearn/settings.json. Created automatically with defaults on first run.
~/.vibelearn/settings.json
AI Provider Settings
VibeLearn uses LLMs for two steps: concept extraction and quiz generation. Priority order: Gemini → OpenRouter → Anthropic API.Gemini
| Key | Default | Description |
|---|---|---|
VIBELEARN_GEMINI_API_KEY | "" | API key from aistudio.google.com |
VIBELEARN_GEMINI_MODEL | gemini-2.5-flash-lite | Model name |
VIBELEARN_GEMINI_RATE_LIMITING_ENABLED | true | Respect free-tier rate limits |
OpenRouter
| Key | Default | Description |
|---|---|---|
VIBELEARN_OPENROUTER_API_KEY | "" | API key from openrouter.ai |
VIBELEARN_OPENROUTER_MODEL | google/gemini-2.0-flash-exp:free | Default model |
google/gemini-2.0-flash-exp:free, xiaomi/mimo-v2-flash:free
Anthropic
UsesANTHROPIC_API_KEY from the environment — automatically available in Claude Code sessions. No extra configuration required.
Sync Settings
| Key | Default | Description |
|---|---|---|
VIBELEARN_AUTO_SYNC | true | Sync to vibelearn.dev after each session |
vl login <api-key>). Failures queue in vl_sync_queue and retry next session. Set "false" to disable sync entirely — data stays local.
Worker Settings
| Key | Default | Description |
|---|---|---|
VIBELEARN_WORKER_PORT | 37778 | Worker HTTP port |
VIBELEARN_WORKER_HOST | 127.0.0.1 | Worker bind address |
VIBELEARN_LOG_LEVEL | info | Log level: debug, info, warn, error |
Hook Settings
| Key | Default | Description |
|---|---|---|
VIBELEARN_EXCLUDED_PROJECTS | [] | Project paths to skip |
VIBELEARN_SKIP_TOOLS | [] | Tool names to skip in observation capture |
Auth Config
Written automatically byvl login <api-key>:
~/.vibelearn/config.json
vl login --status.
Minimal Config Examples
- Offline (no sync)
- With vibelearn.dev
- OpenRouter only

