igf integrates with LLM providers for features like the GUI assistant and the /mastg skill. Configuration is via environment variables.
# Anthropic
LLM_PROVIDER=anthropic LLM_API_KEY=sk-ant-... LLM_MODEL=claude-sonnet-4-20250514 igf
# OpenAI
LLM_PROVIDER=openai LLM_API_KEY=sk-... LLM_MODEL=gpt-4o igf
# Local (Ollama)
LLM_BASE_URL=http://localhost:11434/v1 LLM_MODEL=llama3 igf| Variable | Required | Description |
|---|---|---|
LLM_PROVIDER |
No* | Built-in provider name (see below) |
LLM_BASE_URL |
No* | Custom API base URL |
LLM_API_KEY |
No | API key (skipped if empty, for local endpoints) |
LLM_MODEL |
Yes | Model identifier |
*At least one of LLM_PROVIDER or LLM_BASE_URL must be set.
| Provider | Endpoint | Format |
|---|---|---|
anthropic |
https://api.anthropic.com |
Anthropic Messages API |
openai |
https://api.openai.com |
OpenAI Chat Completions |
gemini |
https://generativelanguage.googleapis.com |
Google Gemini |
openrouter |
https://openrouter.ai/api |
OpenAI-compatible |
When using a built-in provider, LLM_BASE_URL is optional — the known endpoint is used automatically.
Any endpoint that implements the OpenAI Chat Completions format (POST /v1/chat/completions) works via LLM_BASE_URL:
# Ollama (local, no API key needed)
LLM_BASE_URL=http://localhost:11434/v1 LLM_MODEL=llama3
# vLLM
LLM_BASE_URL=http://localhost:8000/v1 LLM_MODEL=meta-llama/Llama-3-70b
# Together AI
LLM_BASE_URL=https://api.together.xyz LLM_API_KEY=... LLM_MODEL=meta-llama/Llama-3-70b-chat-hf
# Groq
LLM_BASE_URL=https://api.groq.com/openai LLM_API_KEY=... LLM_MODEL=llama3-70b-8192
# Fireworks
LLM_BASE_URL=https://api.fireworks.ai/inference LLM_API_KEY=... LLM_MODEL=accounts/fireworks/models/llama-v3-70b
# LM Studio (local)
LLM_BASE_URL=http://localhost:1234/v1 LLM_MODEL=local-modelThe request/response format is determined automatically:
LLM_PROVIDER=anthropic→ Anthropic Messages API formatLLM_PROVIDER=gemini→ Google Gemini format- Everything else (including custom
LLM_BASE_URL) → OpenAI Chat Completions format
The server exposes POST /api/llm which accepts a plain text body and returns the LLM response as plain text. This is used by the GUI for inline analysis features.
curl -X POST http://localhost:31337/api/llm \
-H "Content-Type: text/plain" \
-d "Explain what this class does: NSURLSession"For streaming responses, use POST /api/llm/stream with the same plain text request body.