content/providers/03-community-providers/18-gemini-cli.mdx
The ai-sdk-provider-gemini-cli community provider enables using Google's Gemini models through the @google/gemini-cli-core library. It's useful for developers who want to use their existing Gemini Code Assist subscription or API key authentication.
| Provider Version | AI SDK Version | NPM Tag | Status |
|---|---|---|---|
| 2.x | v6 | latest | Stable |
| 1.x | v5 | ai-sdk-v5 | Maintenance |
| 0.x | v4 | ai-sdk-v4 | Legacy |
# AI SDK v6 (default)
npm install ai-sdk-provider-gemini-cli ai
# AI SDK v5
npm install ai-sdk-provider-gemini-cli@ai-sdk-v5 ai@^5.0.0
# AI SDK v4
npm install ai-sdk-provider-gemini-cli@ai-sdk-v4 ai@^4.0.0
<Tabs items={['pnpm', 'npm', 'yarn', 'bun']}> <Tab> <Snippet text="pnpm add ai-sdk-provider-gemini-cli" dark /> </Tab> <Tab> <Snippet text="npm install ai-sdk-provider-gemini-cli" dark /> </Tab> <Tab> <Snippet text="yarn add ai-sdk-provider-gemini-cli" dark /> </Tab> <Tab> <Snippet text="bun add ai-sdk-provider-gemini-cli" dark /> </Tab> </Tabs>
Import createGeminiProvider and create a provider instance with your authentication settings:
import { createGeminiProvider } from 'ai-sdk-provider-gemini-cli';
// OAuth authentication (default if authType omitted)
const gemini = createGeminiProvider({ authType: 'oauth-personal' });
// API key authentication
const gemini = createGeminiProvider({
authType: 'api-key', // or 'gemini-api-key'
apiKey: process.env.GEMINI_API_KEY,
});
// Vertex AI authentication
const gemini = createGeminiProvider({
authType: 'vertex-ai',
vertexAI: {
projectId: 'my-project',
location: 'us-central1',
},
});
// Google Auth Library
const gemini = createGeminiProvider({
authType: 'google-auth-library',
googleAuth: myGoogleAuthInstance,
});
Authentication options:
'oauth-personal'.'api-key' / 'gemini-api-key'.'vertex-ai'.'google-auth-library'.Create models that call Gemini through the CLI using the provider instance:
const model = gemini('gemini-2.5-pro');
Supported models:
thinkingLevel)thinkingLevel)thinkingLevel)thinkingBudget)thinkingBudget)import { createGeminiProvider } from 'ai-sdk-provider-gemini-cli';
import { generateText } from 'ai';
const gemini = createGeminiProvider({
authType: 'oauth-personal',
});
const { text } = await generateText({
model: gemini('gemini-2.5-pro'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
const model = gemini('gemini-3.1-pro-preview', {
temperature: 0.7,
topP: 0.95,
topK: 40,
maxOutputTokens: 8192,
thinkingConfig: {
thinkingLevel: 'medium', // 'low' | 'medium' | 'high' | 'minimal'
},
verbose: true, // Enable debug logging
logger: customLogger, // Custom logger (or false to disable)
});
| Model | Image Input | Object Generation | Tool Usage | Tool Streaming |
|---|---|---|---|---|
gemini-3.1-pro-preview | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
gemini-3-pro-preview | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
gemini-3-flash-preview | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
gemini-2.5-pro | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
gemini-2.5-flash | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> | <Check size={18} /> |
Install and authenticate the Gemini CLI globally:
npm install -g @google/gemini-cli
gemini # Follow the interactive authentication setup
Then use OAuth authentication in your code with authType: 'oauth-personal'.
export GEMINI_API_KEY="YOUR_API_KEY"authType: 'api-key' with your key.For more details, see the provider documentation.