Date: April 15, 2026 For: Guillaume Descoteaux-Isabelle Context: Evaluating cloud AI provider plugins for OpenClaw to complement local Ollama inference on Mac Mini. Guillaume has existing GitHub Copilot and OpenAI Codex subscriptions.
GEMINI_API_KEY from Google AI Studio (free tier available with rate limits). (Source: OpenClaw monorepo extensions/google/)extensions/perplexity/, Perplexity Pricing)The github-copilot provider is a bundled OpenClaw extension maintained in the official monorepo at extensions/github-copilot/. It is enabled by default and handles authentication, model discovery, transport selection, and token exchange — all without requiring a separate API key or VS Code. (Source: OpenClaw monorepo — extensions/github-copilot/openclaw.plugin.json)
# One-time setup
openclaw models auth login-github-copilot
# 1. OpenClaw prints a URL and device code
# 2. Visit the URL in your browser
# 3. Enter the device code
# 4. Authorize — token stored in auth profile
At runtime, OpenClaw exchanges the stored GitHub token for a short-lived Copilot API token. The device-login flow token takes precedence over environment variables.
Environment variable fallbacks (if device-login not used):
| Priority | Variable | Notes |
|---|---|---|
| 1 | COPILOT_GITHUB_TOKEN |
Highest priority, Copilot-specific |
| 2 | GH_TOKEN |
GitHub CLI token (fallback) |
| 3 | GITHUB_TOKEN |
Standard GitHub token (lowest) |
(Source: OpenClaw extensions/github-copilot/ source code)
The provider automatically selects the correct API transport based on the model ID:
// From extensions/github-copilot/models.ts
export function resolveCopilotTransportApi(
modelId: string,
): "anthropic-messages" | "openai-responses" {
return (normalizeOptionalLowercaseString(modelId) ?? "").includes("claude")
? "anthropic-messages"
: "openai-responses";
}
anthropic-messages transportopenai-responses transport⚠️ Critical correction: The initial research listed gpt-4o as a current model. GPT-4o is deprecated in GitHub Copilot, replaced by GPT-4.1. All configuration examples in this document use the corrected model IDs. (Source: GitHub blog changelog)
| Model ID | Family | Transport | Notes |
|---|---|---|---|
gpt-4.1 |
OpenAI | openai-responses | Current default — unlimited for paid users |
gpt-4.1-mini |
OpenAI | openai-responses | Lighter variant |
gpt-4.1-nano |
OpenAI | openai-responses | Lightest variant |
gpt-5-mini |
OpenAI | openai-responses | Fast, cheap — new GPT-5 family |
gpt-5.2 |
OpenAI | openai-responses | Standard GPT-5 |
gpt-5.2-codex |
OpenAI | openai-responses | Code-optimized GPT-5 |
gpt-5.3-codex |
OpenAI | openai-responses | Enhanced code-optimized |
gpt-5.4 |
OpenAI | openai-responses | Latest flagship |
gpt-5.4-mini |
OpenAI | openai-responses | Fast flagship variant |
claude-sonnet-4.5 |
Anthropic | anthropic-messages | Via Copilot proxy |
claude-sonnet-4.6 |
Anthropic | anthropic-messages | GA since Feb 17, 2026 |
claude-opus-4.5 |
Anthropic | anthropic-messages | Advanced reasoning (premium) |
claude-opus-4.6 |
Anthropic | anthropic-messages | Premium reasoning (premium) |
claude-haiku-4.5 |
Anthropic | anthropic-messages | Fast, lightweight |
o1 |
OpenAI | openai-responses | Reasoning model |
o3-mini |
OpenAI | openai-responses | Reasoning model |
gemini-2.5-pro |
openai-responses | Via Copilot | |
gemini-3-flash |
openai-responses | Via Copilot |
(Source: GitHub Copilot Supported Models, reviewer verification April 2026)
Forward compatibility: The provider has a catch-all mechanism — any unknown model ID is accepted and synthesized as a dynamic model definition. If GitHub Copilot adds gpt-6 tomorrow, you set it in config without waiting for an OpenClaw update. The Copilot API rejects unavailable models at request time.
While all model costs through the Copilot provider are technically $0, GitHub enforces premium request quotas for certain models. This is a critical nuance the initial research oversimplified.
| Plan | Monthly Premium Requests | Can Select GPT-5.4? | Can Select Claude Opus? | Manual Model Selection? |
|---|---|---|---|---|
| Free | 50 | No | No | No |
| Pro | 300 | Yes | Yes | Yes |
| Pro+ | 1,500 | Yes | Yes (all models) | Yes |
Key facts: - GPT-4.1 is unlimited for all paid Copilot users — does not consume premium requests - GPT-5 mini code completions are unlimited - Premium models (Claude Opus, GPT-5.4, o1) consume monthly quota - Additional requests: $0.04/request beyond monthly quota on all paid tiers - Model availability depends on plan tier — Free and Student plans cannot manually select flagship models
(Source: GitHub Copilot Plans & Pricing, GitHub Copilot Docs)
| Dimension | Via Copilot Provider | Via Direct API Key |
|---|---|---|
| Cost | $0 (included in subscription) | Pay-per-token |
| Context window | May be smaller/filtered | Full provider limits |
| Rate limits | Copilot throttling applies | Provider-specific limits |
| Model control | Depends on plan tier | Full control |
| Filtering | Additional safety filtering | Provider defaults |
| Best for | General use, cost savings | Large-context agentic workloads |
For most of Guillaume's workflows, the Copilot provider offers excellent value. For intensive agentic workloads requiring large context windows or sustained high-throughput, direct API keys may be worth the cost.
The Copilot provider also serves as an embedding provider for OpenClaw's memory search — a valuable bonus feature:
/models endpointtext-embedding-3-small{
agents: {
defaults: {
memorySearch: {
provider: "github-copilot",
model: "text-embedding-3-small"
}
}
}
}
(Source: OpenClaw extensions/github-copilot/ source code)
On April 4, 2026, Anthropic blocked all consumer subscription OAuth tokens (Free, Pro, Max, Team) in third-party tools including OpenClaw. This means:
For Guillaume: this block is irrelevant because Claude access via Copilot subscription still works fine. (Source: Confirmed via TechCrunch, dev.to, natural20.com, kersai.com)
The Google plugin (extensions/google/ in the OpenClaw monorepo) is the most capability-rich single plugin in OpenClaw. It registers itself as a provider for five distinct capability contracts: media understanding, image generation, music generation, video generation, and web search. (Source: OpenClaw monorepo extensions/google/openclaw.plugin.json)
| Capability | Supported | Details |
|---|---|---|
| Chat completions (LLM) | ✅ | Gemini 2.5 Pro, Gemini 3 Flash, etc. |
| Image generation | ✅ | Up to 4 images/request, edit mode (5 inputs) |
| Video generation | ✅ | Veo 3.1, text-to-video, image-to-video (4–8s clips) |
| Music generation | ✅ | Lyria 3, mp3/wav, with lyrics/instrumental controls |
| Image understanding | ✅ | Analyze images via Gemini |
| Audio transcription | ✅ | Via media understanding |
| Video understanding | ✅ | Via media understanding |
| Web search (Grounding) | ✅ | Gemini Grounding for factual search |
| Thinking/reasoning | ✅ | Gemini 2.5+ with thinkingBudget |
| Model Ref | Use |
|---|---|
google/gemini-2.5-pro |
Primary LLM chat (verified current) |
google/gemini-3-flash-preview |
Fast/cheap chat |
google/gemini-3.1-flash-image-preview |
Image generation |
google/gemini-3-pro-image-preview |
Image generation (higher quality) |
google/veo-3.1-fast-generate-preview |
Video generation |
google/lyria-3-clip-preview |
Music generation |
google/lyria-3-pro-preview |
Music generation (pro) |
⚠️ Note on model naming: Some model names (e.g., "Gemini 3.1 Pro") from the initial research may be preview/speculative naming. Verified current models include Gemini 2.5 Pro and Gemini 3 Flash. Always check openclaw models list --provider google for the latest available models.
Method 1: API Key (recommended)
# Get a key from Google AI Studio (https://aistudio.google.com/)
export GEMINI_API_KEY="your-key-here"
# Or use OpenClaw onboarding:
openclaw onboard --auth-choice gemini-api-key
Method 2: Gemini CLI OAuth (unofficial)
# Install Gemini CLI
brew install gemini-cli # or: npm install -g @google/gemini-cli
# Login via OpenClaw
openclaw models auth login --provider google-gemini-cli --set-default
⚠️ The OAuth method is an unofficial integration — some users report Google account restrictions. The API key method is more reliable.
API key rotation: Google supports multiple API keys for high-throughput use:
- GEMINI_API_KEYS (comma-separated)
- GEMINI_API_KEY_1, GEMINI_API_KEY_2, etc.
- GOOGLE_API_KEY (fallback)
- OPENCLAW_LIVE_GEMINI_KEY (single override)
Google AI Studio offers a free tier with no billing required, but with rate limits:
| Model | Requests/Minute | Requests/Day | Tokens/Minute |
|---|---|---|---|
| Gemini 2.5 Pro | 5 RPM | 100 RPD | 250,000 TPM (shared) |
| Gemini 2.5 Flash | 10 RPM | 250 RPD | 250,000 TPM (shared) |
| Gemini 2.5 Flash-Lite | 15 RPM | 1,000 RPD | 250,000 TPM (shared) |
Important changes (early 2026): - December 2025: Google reduced free limits by 50–80% due to abuse - March/April 2026: Pro models now require paid tier — free tier only works with Flash and Flash-Lite models - Paid tier pricing: Gemini 2.5 Pro at ~$1.25/M input tokens, ~$10/M output tokens; Flash models significantly cheaper (~$0.10/M input)
(Source: Google AI Studio pricing, bswen.com free tier limits)
{
"contracts": {
"mediaUnderstandingProviders": ["google"],
"imageGenerationProviders": ["google"],
"musicGenerationProviders": ["google"],
"videoGenerationProviders": ["google"],
"webSearchProviders": ["gemini"]
}
}
This makes the Google plugin the only single plugin that provides five distinct capability types. No other plugin comes close to this breadth.
The Perplexity plugin (extensions/perplexity/ in the OpenClaw monorepo) is a web search provider only — it is NOT an LLM provider. It gives OpenClaw agents the ability to search the web with rich filtering, complementing local models that have no internet access. (Source: OpenClaw extensions/perplexity/openclaw.plugin.json)
openclaw plugins install @openclaw/perplexity-plugin
openclaw config set 'tools.web.search' --json '{
"provider": "perplexity",
"apiKey": "$PERPLEXITY_API_KEY"
}'
Three configuration fields:
| Field | Type | Purpose |
|---|---|---|
webSearch.apiKey |
string | Perplexity or OpenRouter API key |
webSearch.baseUrl |
string | Optional endpoint URL override |
webSearch.model |
string | Optional Sonar/OpenRouter model override |
| Key Prefix | Transport | Features |
|---|---|---|
pplx- |
Native Perplexity Search API | Structured results, domain/language/date filters, country filtering |
sk-or- |
OpenRouter (Sonar) | AI-synthesized answers with inline citations |
Native API filtering (pplx- keys only):
- Country: 2-letter code (us, ca, fr)
- Language: ISO 639-1 (en, fr)
- Date range: day, week, month, year
- Domain filters: allow/deny list (max 20 domains)
- Content budget: max_tokens, max_tokens_per_page
| Feature | Google (Gemini Grounding) | Perplexity |
|---|---|---|
| Type | Gemini-powered grounding | Dedicated search API |
| Auth | GEMINI_API_KEY |
PERPLEXITY_API_KEY or OPENROUTER_API_KEY |
| Filtering | Limited | Rich (country, language, date, domains) |
| Output | Integrated into LLM response | Structured results OR synthesized answers |
| Cost | Included in Gemini API usage | Separate subscription |
| Independence | Requires Google API key | Works with Perplexity OR OpenRouter key |
| Best for | Quick fact-grounding during conversations | Deep research with precise source filtering |
When to use Perplexity instead of Google: - You need date-range filtering (e.g., "only results from last week") - You need domain-specific filtering (e.g., "only results from arxiv.org") - You want structured citation data separate from the LLM response - You're using OpenRouter and want to consolidate API keys
When to use Google instead of Perplexity: - You already have a Gemini API key (no additional subscription needed) - You want search results integrated directly into the LLM conversation - You want to minimize the number of services you manage
No free API tier. API access requires paid credits:
| Item | Cost |
|---|---|
| Pro subscription | $20/month (includes $5 API credits) |
| Sonar (budget) | $1/M input tokens, $1/M output tokens |
| Sonar Reasoning | $1/M input, $5/M output tokens |
| Sonar Pro | $3/M input, $15/M output tokens |
| Search API (raw results) | $5/1,000 requests |
| Extra requests above quota | ~$0.005–$0.014/request |
For Guillaume's usage: Light web-search augmentation would cost approximately $20/month (Pro sub) + $5–10/month in token usage = ~$25–30/month.
(Source: Perplexity Pricing, deploybase.ai pricing)
OpenClaw uses a primary + fallbacks model configuration per agent. This is an ordered failover chain — not round-robin or load-balanced.
{
agents: {
defaults: {
// LLM: Copilot primary (unlimited GPT-4.1), local fallback
model: {
primary: "github-copilot/gpt-4.1",
fallbacks: ["github-copilot/gpt-5.2", "ollama/gemma4", "ollama/llama3.3"]
},
// Image generation: Google (only option — Ollama can't do this)
imageGenerationModel: {
primary: "google/gemini-3.1-flash-image-preview"
},
// Memory embeddings: Copilot (free with subscription)
memorySearch: {
provider: "github-copilot",
model: "text-embedding-3-small"
}
}
},
tools: {
web: {
search: {
// Choose: "gemini" (free tier) or "perplexity" ($20/mo)
provider: "gemini"
}
}
}
}
| Scenario | Best Provider | Why |
|---|---|---|
| General coding tasks | Copilot/GPT-4.1 | Unlimited, high quality, $0 |
| Complex reasoning | Copilot/Claude Opus 4.6 or GPT-5.4 | Best quality, but consumes premium quota |
| Privacy-sensitive data | Ollama/local model | Data never leaves the Mac Mini |
| Offline work | Ollama/local model | No internet required |
| Code-optimized tasks | Copilot/GPT-5.3-Codex | Tuned for code generation |
| Image generation | Google/Gemini Flash Image | Only option — not available locally |
| Video generation | Google/Veo 3.1 | Only option — not available locally |
| Web search (grounded) | Gemini Grounding or Perplexity | Local models have no internet access |
| Embeddings for memory | Copilot (free) | Already included in subscription |
| Fast lightweight tasks | Copilot/Claude Haiku 4.5 | Fast and cheap in premium quota |
OpenClaw supports policy-based routing that automatically directs sensitive work to local models:
{
models: {
routing: {
policy: {
sensitive: "ollama/*", // Private data stays local
general: "github-copilot/gpt-4.1", // General tasks use cloud
code: "github-copilot/gpt-5.3-codex" // Code tasks use optimized model
}
}
}
}
primary model firstfallbacksclassifyFailoverReasonPractical example: If Guillaume hits his 300 monthly premium requests on Copilot/Claude Opus, the failover chain automatically routes to ollama/gemma4 locally — ensuring uninterrupted service without manual intervention.
| Subscription | Cost | What It Provides in OpenClaw |
|---|---|---|
| GitHub Copilot Pro | ~$10/month | Access to 17+ models via Copilot provider, 300 premium requests/month, unlimited GPT-4.1, free embeddings |
| OpenAI Codex | ~$20/month (varies) | Direct OpenAI API access via bundled OpenAI provider |
| Service | Required? | Free Tier? | Estimated Monthly Cost |
|---|---|---|---|
| Google Gemini API | Optional | Yes — 5–15 RPM, 100–1,000 RPD | $0 (free tier) to $5–20 (paid) |
| Perplexity API | Optional | No free API tier | ~$25–30/month |
| Anthropic Direct API | Not needed | N/A | N/A (use Copilot instead) |
| OpenRouter | Optional | No | Pay-per-token |
| Scenario | Monthly Cost (incremental) | What You Get |
|---|---|---|
| Minimal (Copilot + Ollama only) | $0 | Full LLM access (cloud + local), embeddings, code completion |
| + Google free tier | $0 | Add image gen, video gen, music gen, Gemini Grounding search |
| + Google paid tier | $5–20 | Higher rate limits, Pro model access |
| + Perplexity | $25–30 | Rich filtered web search with citations |
| All cloud plugins active | $25–50 | Full cloud + local capability set |
Bottom line: Guillaume's existing Copilot subscription already provides substantial cloud AI access at no additional cost. The Google plugin's free tier adds multimodal capabilities for $0. Perplexity is the main optional expense at ~$25–30/month. The Copilot provider alone — with 17+ models, unlimited GPT-4.1, and free embeddings — represents exceptional value relative to direct API pricing.
With Copilot Pro (300 premium requests/month):
| Usage Pattern | Premium Requests Used | Remaining |
|---|---|---|
| 5 Claude Opus queries/day | ~150/month | 150 |
| 3 GPT-5.4 queries/day | ~90/month | 60 |
| Occasional o1 reasoning | ~20/month | 40 |
| Total | ~260/month | 40 buffer |
If Guillaume needs more premium requests, options include: - Upgrade to Copilot Pro+ ($39/month) for 1,500 requests/month - Purchase additional requests at $0.04/request - Route more queries to Ollama local models or GPT-4.1 (unlimited)
extensions/github-copilot/openclaw.plugin.json — Copilot plugin manifestextensions/github-copilot/models-defaults.ts — Default Copilot model catalogextensions/github-copilot/models.ts — Transport selection + forward-compat logicextensions/google/openclaw.plugin.json — Google plugin manifestextensions/perplexity/openclaw.plugin.json — Perplexity plugin manifestdocs/providers/github-copilot.md — Copilot provider setup guidedocs/providers/google.md — Google/Gemini provider setup guidedocs/providers/perplexity-provider.md — Perplexity provider setup guideFinal document compiled April 15, 2026. All reviewer corrections incorporated. GPT-4o references replaced with GPT-4.1. GPT-5 family and Claude Opus/Haiku models added. Premium request quota information included. All claims sourced.