Stark-Kit / Docs

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
bun add @mehularora/stark-kit zod
npm
npm install @mehularora/stark-kit zod
pnpm
pnpm add @mehularora/stark-kit zod
yarn
yarn add @mehularora/stark-kit zod

Loading 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

bash
bun add dotenv

Create .env file

.env
# .env — keep this out of version control
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=AI...
MISTRAL_API_KEY=...
Warning: Add .env to your .gitignore. Never commit API keys to version control.

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.

agent.ts
// This MUST be the first import in your entry file
import "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:

ProviderAdapter ClassEnv Variable
OpenAIOpenAIProviderOPENAI_API_KEY
AnthropicClaudeProviderANTHROPIC_API_KEY
GoogleGeminiProviderGEMINI_API_KEY
MistralMistralProviderMISTRAL_API_KEY

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().

providers.ts
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.

Tip: Using Node.js instead of Bun? Set "type": "module" in your package.json and use .mts extensions or explicit ESM imports. Stark-Kit ships as pure ESM.