API Keys
Fliiq needs at least one LLM API key. Add them to~/.fliiq/.env:
.env
Recommended Models
For best results with Anthropic (recommended provider):
Fliiq works with any model your provider supports. Sonnet 5 is the sweet spot for daily use.
Provider Switching
When multiple API keys are set, Fliiq uses the default priority order (Anthropic > OpenAI > Gemini). Override this per-command with the--provider flag:
FLIIQ_PROVIDER in your .env:
.env
--providerflag (highest priority)FLIIQ_PROVIDERenvironment variable- First API key found (Anthropic > OpenAI > Gemini)
--provider.
Model Selection
Switch models per-command with--model (or -m):
Built-in Aliases
Default aliases shipped withfliiq init:
Custom Aliases
Aliases are defined in~/.fliiq/models.yaml (created by fliiq init). Add your own for Ollama, Mistral, DeepSeek, or any other provider:
Persistent Model Override
Override the default model for a provider via environment variable in your.env:
.env
--model flag (highest) > env var (ANTHROPIC_MODEL, etc.) > hardcoded default.
Output Limits and Truncation
Defaultmax_tokens per response is 16384. Override it with FLIIQ_MAX_TOKENS in .env.
Anthropic requests automatically use prompt-prefix caching — the stable system prompt and tool schemas are cached, and cache hits bill at roughly 10% of normal input token price. No configuration needed. For long-running Anthropic sessions approaching the context window limit, opt into server-side context compaction with FLIIQ_CONTEXT_COMPACTION=1.
If a response is cut off by the output token limit or the agent hits its iteration limit, Fliiq now says so explicitly rather than silently returning a clipped or empty reply — truncated tool calls are discarded instead of executed, and iteration-limited runs get a final wrap-up summarizing what was done and what’s left.
Self-Hosted LLMs
Fliiq can connect to any OpenAI-compatible server — Ollama, vLLM, llama.cpp, LM Studio, LocalAI, or any other server that implements the OpenAI API. SetOPENAI_BASE_URL to point Fliiq at your local server:
.env
OPENAI_API_KEY must still be set (most local servers ignore it — any non-empty value works).
Quick Start with Ollama
~/.fliiq/.env:
.env
--provider:
Anthropic-Compatible Proxies
If you use a proxy that implements the Anthropic API, setANTHROPIC_BASE_URL:
.env
Self-hosted models vary in capability. Fliiq’s agent loop works best with models that support tool/function calling. Most large models (Llama 3.2+, Mistral, Qwen) support it via the OpenAI-compatible API.
Integration Credentials
Optional — add these when you need the corresponding skills:Google (OAuth)
.env
fliiq google auth — the OAuth flow that authorizes Fliiq to access Gmail, Google Calendar, Drive, Sheets, Docs, and Slides. See Google Integration for full setup.
Used by: send_email, receive_emails, mark_email_read, archive_email, delete_email, google_calendar, google_drive, google_sheets, google_docs, google_slides
Gmail — Fliiq’s Bot Email
.env
Gmail — App Password (legacy)
.env
Twilio (SMS)
.env
send_sms, receive_sms
Telegram
.env
TELEGRAM_ALLOWED_CHAT_IDS restricts which chats the bot responds to.
Used by: send_telegram, send_telegram_audio, Telegram real-time listener (daemon)
Slack
.env
SLACK_APP_TOKEN and SLACK_BOT_TOKEN together activate the daemon’s real-time listener for DMs and @-mentions. SLACK_ALLOWED_CHANNELS is optional — see Slack channel guide for setup details.
Used by: slack, Slack real-time listener (daemon)
MiniMax (Text-to-Speech)
.env
text_to_speech
Web Search
.env
web_search
Spotify
.env
spotify
Directory Structure
Global (~/.fliiq/)
Created by fliiq init. Used from any terminal.
Project (.fliiq/) — optional
Created by fliiq init --project. Overrides global for this project.
Bundled (inside the package)
Ships with Fliiq. Cannot be modified directly.Config Resolution
When Fliiq looks for a resource (skills, SOUL.md, playbooks, memory):- Project
.fliiq/— checked first - Global
~/.fliiq/— fallback - Bundled defaults — final fallback