Run any LLM with one config file. No framework lock-in.
Project description
llmkit
Run any LLM — local or via API — with one config file. No framework lock-in. Works on Windows, Mac, Linux.
llmkit run "explain this codebase in one sentence"
Install
# Linux
bash install.sh
# Mac
bash install.mac.sh
# Windows (PowerShell as admin)
./install.ps1
Each script installs deps, sets up Ollama if needed, and adds llmkit to your PATH.
Configure
Edit llm.yaml (or run llmkit init for a guided setup):
provider: groq # local | openai | anthropic | groq | together | deepseek | mistral
model: llama-3.3-70b-versatile
mode: chat
For API providers, copy .env.example to .env and add your key.
Commands
# One-shot prompt
llmkit run "explain this codebase in one sentence"
# Validate config + check provider reachability
llmkit check
# Interactive wizard to create llm.yaml
llmkit init
# Pin current model to llm.lock (commit this file)
llmkit lock
# Generate a commit message from staged changes
llmkit commit
# Generate a PR title + body vs main/master
llmkit pr
# Review staged/unstaged diff for bugs
llmkit review
# Run a coding agent on a task
llmkit agent "refactor this module to use dataclasses"
# Plan only — no tools executed, just a numbered plan
llmkit agent --plan "add pagination to the API"
# Approve mode — confirm each shell command before it runs
llmkit agent --approve "run the test suite and fix any failures"
Examples
# Chat
python examples/chat.py
node examples/chat.js # all providers including Anthropic
# Streaming
python examples/stream.py
node examples/stream.js # all providers including Anthropic
# Function calling / tools
python examples/tools.py
# Vision (image input)
python examples/vision.py
# Multi-round conversation
python examples/multiround.py
# Embeddings + cosine similarity
python examples/embed.py
# Coding agent
python examples/agent.py
# MCP agent (connects to MCP servers defined in llm.yaml)
python examples/mcp_agent.py
Local models (via Ollama)
| Model | Config |
|---|---|
| Llama 4 | model: llama4 |
| Qwen 3 | model: qwen3 |
| DeepSeek R1 | model: deepseek-r1 |
| Mistral | model: mistral |
| Phi-4 | model: phi4 |
| Gemma 3 | model: gemma3 |
API providers
| Provider | Env key | Fast cheap model |
|---|---|---|
| OpenAI | OPENAI_API_KEY |
gpt-4o-mini |
| Anthropic | ANTHROPIC_API_KEY |
claude-3-5-haiku-20241022 |
| Groq | GROQ_API_KEY |
llama-3.1-8b-instant |
| Together | TOGETHER_API_KEY |
meta-llama/Llama-3.3-70B-Instruct-Turbo |
| DeepSeek | DEEPSEEK_API_KEY |
deepseek-chat |
| Mistral | MISTRAL_API_KEY |
mistral-small-latest |
5-minute team setup
# 1 — clone
git clone https://github.com/your-org/llmkit
cd llmkit
# 2 — install deps + register llmkit command
bash install.sh # Mac: bash install.mac.sh | Windows: ./install.ps1
# 3 — set one API key (Groq free tier works)
echo "GROQ_API_KEY=your_key_here" > .env
# 4 — verify everything is wired up
llmkit check
# 5 — run your first prompt
llmkit run "explain this codebase in one sentence"
No server. No IDE extension. No code to write. Switch providers by editing one line in llm.yaml.
llm.lock
Run llmkit lock to pin your model runtime. Commit llm.lock alongside your code:
# Auto-generated — commit this file to pin your model runtime
locked_at: "2026-06-26T12:00:00Z"
provider: groq
model: llama-3.3-70b-versatile
mode: chat
Same idea as package-lock.json — reproducible environments, no surprise model swaps between teammates.
Switch providers
Change one line in llm.yaml, run llmkit check, done:
# was: provider: groq
provider: anthropic
model: claude-3-5-haiku-20241022
No code changes. No redeploy. Works in CI too.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llmkit_cli-0.1.1.tar.gz.
File metadata
- Download URL: llmkit_cli-0.1.1.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b480f5e0024f0d643cb7b927bda4892a9e393397e64b9aba8b547371551f59f0
|
|
| MD5 |
1ff6e234fa7db3807c49b3d44cb8d67d
|
|
| BLAKE2b-256 |
f455215440e948659d670348655b2afd795be6fa3314cae8941e78d45bf8bc92
|
File details
Details for the file llmkit_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: llmkit_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ae79d1ce4d9a7bd473aba72c664c38b581f69a9cf753cebf9035fb77ad287a
|
|
| MD5 |
8f0b9a6412fe56da06f9ffa29cb8756c
|
|
| BLAKE2b-256 |
1db7c57281624ebbc81132b5416ce950138e51425c3ecd2b160f61fbe47543fd
|