Installation Guide
How to install Stark-Kit and its peer dependencies, configure your environment variables for each supported provider, and set up dotenv for local development.
Package Installation
Stark-Kit has a single required peer dependency: zod for tool parameter schemas. Install both together:
bun add @mehularora/stark-kit zodnpm install @mehularora/stark-kit zodpnpm add @mehularora/stark-kit zodyarn add @mehularora/stark-kit zodLoading Environment Variables
Stark-Kit reads API keys from process.env automatically. For local development, use a .env file and the dotenv package to load it before your code runs.
Install dotenv
bun add dotenvCreate .env file
# .env — keep this out of version controlOPENAI_API_KEY=sk-...ANTHROPIC_API_KEY=sk-ant-...GEMINI_API_KEY=AI...MISTRAL_API_KEY=...Import dotenv/config first
The import "dotenv/config" call must be the very first line in your entry file — before any Stark-Kit imports — so the environment variables are populated before any provider constructor runs.
// This MUST be the first import in your entry fileimport "dotenv/config";
// Now Stark-Kit can read OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.import { Agent, run, OpenAIProvider } from "@mehularora/stark-kit";Supported Providers
Each provider adapter class reads its own key from a dedicated environment variable. The table below lists all four built-in providers:
| Provider | Adapter Class | Env Variable | Default Model |
|---|---|---|---|
| OpenAI | OpenAIProvider | OPENAI_API_KEY | gpt-4o |
| Anthropic | ClaudeProvider | ANTHROPIC_API_KEY | claude-3-5-sonnet-latest |
| GeminiProvider | GEMINI_API_KEY | gemini-1.5-flash | |
| Mistral | MistralProvider | MISTRAL_API_KEY | mistral-large-latest |
Overriding the Model
All four adapters accept an optional model option in their constructor. You can also override the model per-run by passing it to run() or runStream().
import "dotenv/config";import { OpenAIProvider, ClaudeProvider, GeminiProvider, MistralProvider,} from "@mehularora/stark-kit";
// Each provider reads its key automatically from env vars.// You can optionally override the key or model:const openai = new OpenAIProvider({ model: "gpt-4o-mini" });const claude = new ClaudeProvider({ model: "claude-3-haiku-20240307" });const gemini = new GeminiProvider({ model: "gemini-1.5-pro" });const mistral = new MistralProvider({ model: "open-mistral-7b" });TypeScript Setup
Stark-Kit ships with full TypeScript types. No @types/* package is required. Make sure your tsconfig.json targets ES2020 or later and has "moduleResolution": "bundler" or "node16" to resolve the package exports correctly.
"type": "module" in your package.json and use .mts extensions or explicit ESM imports. Stark-Kit ships as pure ESM.