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 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 |
|---|---|---|
| OpenAI | OpenAIProvider | OPENAI_API_KEY |
| Anthropic | ClaudeProvider | ANTHROPIC_API_KEY |
| GeminiProvider | GEMINI_API_KEY | |
| Mistral | MistralProvider | MISTRAL_API_KEY |
Specifying the Model
All four adapters require a model to be specified — there is no built-in default. Pass it to the provider constructor, or override it per-agent via Agent.model, or per-run by passing it to run() or runStream(). If no model is available at call time, the provider throws an error.
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.