> Discover all available pages from the documentation index: https://mastra.zisheng.pro/en/llms.txt # ![Kenari logo](https://models.dev/logos/kenari.svg)Kenari Access 38 Kenari models through Mastra's model router. Authentication is handled automatically using the `KENARI_API_KEY` environment variable. Learn more in the [Kenari documentation](https://kenari.id/docs). ```bash KENARI_API_KEY=your-api-key ``` ```typescript import { Agent } from "@mastra/core/agent"; const agent = new Agent({ id: "my-agent", name: "My Agent", instructions: "You are a helpful assistant", model: "kenari/claude-fable-5" }); // Generate a response const response = await agent.generate("Hello!"); // Stream a response const stream = await agent.stream("Tell me a story"); for await (const chunk of stream) { console.log(chunk); } ``` > **Info:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [Kenari documentation](https://kenari.id/docs) for details. ## Models | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M | | ---------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- | | `kenari/claude-fable-5` | 1.0M | | | | | | — | — | | `kenari/claude-opus-4-7` | 1.0M | | | | | | — | — | | `kenari/claude-opus-4-8` | 1.0M | | | | | | — | — | | `kenari/claude-sonnet-5` | 1.0M | | | | | | — | — | | `kenari/deepseek-v4-flash` | 1.0M | | | | | | — | — | | `kenari/deepseek-v4-flash:free` | 1.0M | | | | | | — | — | | `kenari/deepseek-v4-pro` | 1.0M | | | | | | — | — | | `kenari/gemini-2-5-flash` | 1.0M | | | | | | — | — | | `kenari/gemini-2-5-flash-lite` | 1.0M | | | | | | — | — | | `kenari/gemini-3-1-flash-lite` | 1.0M | | | | | | — | — | | `kenari/gemma-4-31b-it` | 262K | | | | | | — | — | | `kenari/glm-4-7-flash:free` | 200K | | | | | | — | — | | `kenari/glm-5-1` | 200K | | | | | | — | — | | `kenari/glm-5-2` | 1.0M | | | | | | — | — | | `kenari/gpt-5-4-mini` | 400K | | | | | | — | — | | `kenari/gpt-5-5` | 1.1M | | | | | | — | — | | `kenari/gpt-5-6-luna` | 1.1M | | | | | | — | — | | `kenari/gpt-5-6-sol` | 1.1M | | | | | | — | — | | `kenari/gpt-5-6-terra` | 1.1M | | | | | | — | — | | `kenari/gpt-image-2` | 272K | | | | | | — | — | | `kenari/gpt-oss-120b` | 131K | | | | | | — | — | | `kenari/gpt-oss-20b` | 131K | | | | | | — | — | | `kenari/grok-4-5` | 500K | | | | | | — | — | | `kenari/grok-build-0-1` | 256K | | | | | | — | — | | `kenari/kimi-k2-6` | 262K | | | | | | — | — | | `kenari/kimi-k2-6:free` | 262K | | | | | | — | — | | `kenari/kimi-k2-7-code` | 262K | | | | | | — | — | | `kenari/kimi-k2-7-code:free` | 262K | | | | | | — | — | | `kenari/kimi-k3` | 1.0M | | | | | | — | — | | `kenari/mimo-v2-5` | 1.0M | | | | | | — | — | | `kenari/mimo-v2-5-pro` | 1.0M | | | | | | — | — | | `kenari/mimo-v2-5:free` | 1.0M | | | | | | — | — | | `kenari/minimax-m3` | 512K | | | | | | — | — | | `kenari/nemotron-3-nano-30b-a3b` | 262K | | | | | | — | — | | `kenari/nemotron-3-super-120b-a12b` | 262K | | | | | | — | — | | `kenari/nemotron-3-super-120b-a12b:free` | 262K | | | | | | — | — | | `kenari/nemotron-3-ultra-550b-a55b` | 1.0M | | | | | | — | — | | `kenari/qwen3-7-plus` | 1.0M | | | | | | — | — | ## Advanced configuration ### Custom headers ```typescript const agent = new Agent({ id: "custom-agent", name: "custom-agent", model: { url: "https://kenari.id/v1", id: "kenari/claude-fable-5", apiKey: process.env.KENARI_API_KEY, headers: { "X-Custom-Header": "value" } } }); ``` ### Dynamic model selection ```typescript const agent = new Agent({ id: "dynamic-agent", name: "Dynamic Agent", model: ({ requestContext }) => { const useAdvanced = requestContext.task === "complex"; return useAdvanced ? "kenari/qwen3-7-plus" : "kenari/claude-fable-5"; } }); ```