llmkit-cli 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/PKG-INFO +90 -68
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/README.md +89 -67
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/PKG-INFO +90 -68
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/pyproject.toml +1 -1
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/agent_cmd.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/check.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/cli.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/env.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/git.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/git_cmds.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/init.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/SOURCES.txt +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/dependency_links.txt +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/entry_points.txt +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/requires.txt +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/top_level.txt +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/lock.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/__init__.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/anthropic.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/deepseek.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/groq.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/local.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/mistral.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/openai.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/together.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/providers/utils.py +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/setup.cfg +0 -0
- {llmkit_cli-0.1.1 → llmkit_cli-0.1.2}/tests/test_llmkit.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: llmkit-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Run any LLM with one config file. No framework lock-in.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/abinz-aiml/llmkit
|
|
@@ -26,12 +26,24 @@ Requires-Dist: mcp; extra == "all"
|
|
|
26
26
|
|
|
27
27
|
Run any LLM — local or via API — with one config file. No framework lock-in. Works on Windows, Mac, Linux.
|
|
28
28
|
|
|
29
|
+
```bash
|
|
30
|
+
pip install llmkit-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
29
33
|
```bash
|
|
30
34
|
llmkit run "explain this codebase in one sentence"
|
|
31
35
|
```
|
|
32
36
|
|
|
37
|
+
Switch between OpenAI, Anthropic, Groq, Mistral, DeepSeek, Together, and local Ollama models by changing **one line** in `llm.yaml`. No code changes. No redeploy.
|
|
38
|
+
|
|
33
39
|
## Install
|
|
34
40
|
|
|
41
|
+
**Recommended (PyPI):**
|
|
42
|
+
```bash
|
|
43
|
+
pip install llmkit-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Or clone and run the platform installer:**
|
|
35
47
|
```bash
|
|
36
48
|
# Linux
|
|
37
49
|
bash install.sh
|
|
@@ -43,19 +55,21 @@ bash install.mac.sh
|
|
|
43
55
|
./install.ps1
|
|
44
56
|
```
|
|
45
57
|
|
|
46
|
-
|
|
58
|
+
**VS Code extension:** install `vscode-llmkit` to run prompts and commands from the editor status bar.
|
|
47
59
|
|
|
48
60
|
## Configure
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
Create `llm.yaml` in your project (or run `llmkit init` for a guided setup):
|
|
51
63
|
|
|
52
64
|
```yaml
|
|
53
65
|
provider: groq # local | openai | anthropic | groq | together | deepseek | mistral
|
|
54
66
|
model: llama-3.3-70b-versatile
|
|
55
|
-
mode: chat
|
|
56
67
|
```
|
|
57
68
|
|
|
58
|
-
For API providers,
|
|
69
|
+
For API providers, add your key to `.env`:
|
|
70
|
+
```
|
|
71
|
+
GROQ_API_KEY=your_key_here
|
|
72
|
+
```
|
|
59
73
|
|
|
60
74
|
## Commands
|
|
61
75
|
|
|
@@ -63,7 +77,7 @@ For API providers, copy `.env.example` to `.env` and add your key.
|
|
|
63
77
|
# One-shot prompt
|
|
64
78
|
llmkit run "explain this codebase in one sentence"
|
|
65
79
|
|
|
66
|
-
# Validate config
|
|
80
|
+
# Validate config and check provider reachability
|
|
67
81
|
llmkit check
|
|
68
82
|
|
|
69
83
|
# Interactive wizard to create llm.yaml
|
|
@@ -72,6 +86,9 @@ llmkit init
|
|
|
72
86
|
# Pin current model to llm.lock (commit this file)
|
|
73
87
|
llmkit lock
|
|
74
88
|
|
|
89
|
+
# Manage API keys in .env
|
|
90
|
+
llmkit env
|
|
91
|
+
|
|
75
92
|
# Generate a commit message from staged changes
|
|
76
93
|
llmkit commit
|
|
77
94
|
|
|
@@ -91,50 +108,45 @@ llmkit agent --plan "add pagination to the API"
|
|
|
91
108
|
llmkit agent --approve "run the test suite and fix any failures"
|
|
92
109
|
```
|
|
93
110
|
|
|
94
|
-
##
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# Chat
|
|
98
|
-
python examples/chat.py
|
|
99
|
-
node examples/chat.js # all providers including Anthropic
|
|
100
|
-
|
|
101
|
-
# Streaming
|
|
102
|
-
python examples/stream.py
|
|
103
|
-
node examples/stream.js # all providers including Anthropic
|
|
111
|
+
## Switch providers
|
|
104
112
|
|
|
105
|
-
|
|
106
|
-
python examples/tools.py
|
|
113
|
+
Change one line in `llm.yaml`, run `llmkit check`, done:
|
|
107
114
|
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
```yaml
|
|
116
|
+
# was: provider: groq
|
|
117
|
+
provider: anthropic
|
|
118
|
+
model: claude-3-5-haiku-20241022
|
|
119
|
+
```
|
|
110
120
|
|
|
111
|
-
|
|
112
|
-
python examples/multiround.py
|
|
121
|
+
No code changes. No redeploy. Works in CI too.
|
|
113
122
|
|
|
114
|
-
|
|
115
|
-
python examples/embed.py
|
|
123
|
+
## Fallback
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
python examples/agent.py
|
|
125
|
+
If the primary provider fails, llmkit cascades to the next:
|
|
119
126
|
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
```yaml
|
|
128
|
+
provider: groq
|
|
129
|
+
model: llama-3.3-70b-versatile
|
|
130
|
+
fallback:
|
|
131
|
+
- provider: openai
|
|
132
|
+
model: gpt-4o-mini
|
|
133
|
+
- provider: anthropic
|
|
134
|
+
model: claude-3-5-haiku-20241022
|
|
122
135
|
```
|
|
123
136
|
|
|
124
|
-
##
|
|
137
|
+
## Budget
|
|
125
138
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
| Gemma 3 | `model: gemma3` |
|
|
139
|
+
Cap token usage per run:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
budget:
|
|
143
|
+
max_tokens_per_run: 10000
|
|
144
|
+
warn_at: 8000
|
|
145
|
+
```
|
|
134
146
|
|
|
135
147
|
## API providers
|
|
136
148
|
|
|
137
|
-
| Provider | Env key | Fast
|
|
149
|
+
| Provider | Env key | Fast model |
|
|
138
150
|
|---|---|---|
|
|
139
151
|
| OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` |
|
|
140
152
|
| Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` |
|
|
@@ -143,50 +155,60 @@ python examples/mcp_agent.py
|
|
|
143
155
|
| DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat` |
|
|
144
156
|
| Mistral | `MISTRAL_API_KEY` | `mistral-small-latest` |
|
|
145
157
|
|
|
146
|
-
##
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
# 1 — clone
|
|
150
|
-
git clone https://github.com/your-org/llmkit
|
|
151
|
-
cd llmkit
|
|
152
|
-
|
|
153
|
-
# 2 — install deps + register llmkit command
|
|
154
|
-
bash install.sh # Mac: bash install.mac.sh | Windows: ./install.ps1
|
|
155
|
-
|
|
156
|
-
# 3 — set one API key (Groq free tier works)
|
|
157
|
-
echo "GROQ_API_KEY=your_key_here" > .env
|
|
158
|
-
|
|
159
|
-
# 4 — verify everything is wired up
|
|
160
|
-
llmkit check
|
|
158
|
+
## Local models (via Ollama)
|
|
161
159
|
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
```yaml
|
|
161
|
+
provider: local
|
|
162
|
+
model: llama4 # or qwen3, deepseek-r1, mistral, phi4, gemma3
|
|
164
163
|
```
|
|
165
164
|
|
|
166
|
-
No server. No IDE extension. No code to write. Switch providers by editing one line in `llm.yaml`.
|
|
167
|
-
|
|
168
165
|
## llm.lock
|
|
169
166
|
|
|
170
|
-
Run `llmkit lock` to pin your model runtime. Commit `llm.lock` alongside your code
|
|
167
|
+
Run `llmkit lock` to pin your model runtime. Commit `llm.lock` alongside your code — same idea as `package-lock.json`:
|
|
171
168
|
|
|
172
169
|
```yaml
|
|
173
|
-
# Auto-generated — commit this file to pin your model runtime
|
|
174
170
|
locked_at: "2026-06-26T12:00:00Z"
|
|
175
171
|
provider: groq
|
|
176
172
|
model: llama-3.3-70b-versatile
|
|
177
|
-
mode: chat
|
|
178
173
|
```
|
|
179
174
|
|
|
180
|
-
|
|
175
|
+
## 5-minute team setup
|
|
181
176
|
|
|
182
|
-
|
|
177
|
+
```bash
|
|
178
|
+
# 1 — install
|
|
179
|
+
pip install llmkit-cli
|
|
183
180
|
|
|
184
|
-
|
|
181
|
+
# 2 — set one API key (Groq free tier works)
|
|
182
|
+
echo "GROQ_API_KEY=your_key_here" > .env
|
|
185
183
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
184
|
+
# 3 — create config
|
|
185
|
+
llmkit init
|
|
186
|
+
|
|
187
|
+
# 4 — verify
|
|
188
|
+
llmkit check
|
|
189
|
+
|
|
190
|
+
# 5 — run
|
|
191
|
+
llmkit run "explain this codebase in one sentence"
|
|
190
192
|
```
|
|
191
193
|
|
|
192
|
-
No
|
|
194
|
+
No server. No IDE plugin required. No code to write.
|
|
195
|
+
|
|
196
|
+
## Examples
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
python examples/chat.py
|
|
200
|
+
python examples/stream.py
|
|
201
|
+
python examples/tools.py # function calling
|
|
202
|
+
python examples/multiround.py # multi-round conversation
|
|
203
|
+
python examples/embed.py # embeddings + cosine similarity
|
|
204
|
+
python examples/agent.py # coding agent
|
|
205
|
+
python examples/mcp_agent.py # MCP agent
|
|
206
|
+
|
|
207
|
+
node examples/chat.js # JS — all providers
|
|
208
|
+
node examples/stream.js # JS — streaming
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Links
|
|
212
|
+
|
|
213
|
+
- PyPI: https://pypi.org/project/llmkit-cli/
|
|
214
|
+
- GitHub: https://github.com/abinz-aiml/llmkit
|
|
@@ -2,12 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Run any LLM — local or via API — with one config file. No framework lock-in. Works on Windows, Mac, Linux.
|
|
4
4
|
|
|
5
|
+
```bash
|
|
6
|
+
pip install llmkit-cli
|
|
7
|
+
```
|
|
8
|
+
|
|
5
9
|
```bash
|
|
6
10
|
llmkit run "explain this codebase in one sentence"
|
|
7
11
|
```
|
|
8
12
|
|
|
13
|
+
Switch between OpenAI, Anthropic, Groq, Mistral, DeepSeek, Together, and local Ollama models by changing **one line** in `llm.yaml`. No code changes. No redeploy.
|
|
14
|
+
|
|
9
15
|
## Install
|
|
10
16
|
|
|
17
|
+
**Recommended (PyPI):**
|
|
18
|
+
```bash
|
|
19
|
+
pip install llmkit-cli
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Or clone and run the platform installer:**
|
|
11
23
|
```bash
|
|
12
24
|
# Linux
|
|
13
25
|
bash install.sh
|
|
@@ -19,19 +31,21 @@ bash install.mac.sh
|
|
|
19
31
|
./install.ps1
|
|
20
32
|
```
|
|
21
33
|
|
|
22
|
-
|
|
34
|
+
**VS Code extension:** install `vscode-llmkit` to run prompts and commands from the editor status bar.
|
|
23
35
|
|
|
24
36
|
## Configure
|
|
25
37
|
|
|
26
|
-
|
|
38
|
+
Create `llm.yaml` in your project (or run `llmkit init` for a guided setup):
|
|
27
39
|
|
|
28
40
|
```yaml
|
|
29
41
|
provider: groq # local | openai | anthropic | groq | together | deepseek | mistral
|
|
30
42
|
model: llama-3.3-70b-versatile
|
|
31
|
-
mode: chat
|
|
32
43
|
```
|
|
33
44
|
|
|
34
|
-
For API providers,
|
|
45
|
+
For API providers, add your key to `.env`:
|
|
46
|
+
```
|
|
47
|
+
GROQ_API_KEY=your_key_here
|
|
48
|
+
```
|
|
35
49
|
|
|
36
50
|
## Commands
|
|
37
51
|
|
|
@@ -39,7 +53,7 @@ For API providers, copy `.env.example` to `.env` and add your key.
|
|
|
39
53
|
# One-shot prompt
|
|
40
54
|
llmkit run "explain this codebase in one sentence"
|
|
41
55
|
|
|
42
|
-
# Validate config
|
|
56
|
+
# Validate config and check provider reachability
|
|
43
57
|
llmkit check
|
|
44
58
|
|
|
45
59
|
# Interactive wizard to create llm.yaml
|
|
@@ -48,6 +62,9 @@ llmkit init
|
|
|
48
62
|
# Pin current model to llm.lock (commit this file)
|
|
49
63
|
llmkit lock
|
|
50
64
|
|
|
65
|
+
# Manage API keys in .env
|
|
66
|
+
llmkit env
|
|
67
|
+
|
|
51
68
|
# Generate a commit message from staged changes
|
|
52
69
|
llmkit commit
|
|
53
70
|
|
|
@@ -67,50 +84,45 @@ llmkit agent --plan "add pagination to the API"
|
|
|
67
84
|
llmkit agent --approve "run the test suite and fix any failures"
|
|
68
85
|
```
|
|
69
86
|
|
|
70
|
-
##
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# Chat
|
|
74
|
-
python examples/chat.py
|
|
75
|
-
node examples/chat.js # all providers including Anthropic
|
|
76
|
-
|
|
77
|
-
# Streaming
|
|
78
|
-
python examples/stream.py
|
|
79
|
-
node examples/stream.js # all providers including Anthropic
|
|
87
|
+
## Switch providers
|
|
80
88
|
|
|
81
|
-
|
|
82
|
-
python examples/tools.py
|
|
89
|
+
Change one line in `llm.yaml`, run `llmkit check`, done:
|
|
83
90
|
|
|
84
|
-
|
|
85
|
-
|
|
91
|
+
```yaml
|
|
92
|
+
# was: provider: groq
|
|
93
|
+
provider: anthropic
|
|
94
|
+
model: claude-3-5-haiku-20241022
|
|
95
|
+
```
|
|
86
96
|
|
|
87
|
-
|
|
88
|
-
python examples/multiround.py
|
|
97
|
+
No code changes. No redeploy. Works in CI too.
|
|
89
98
|
|
|
90
|
-
|
|
91
|
-
python examples/embed.py
|
|
99
|
+
## Fallback
|
|
92
100
|
|
|
93
|
-
|
|
94
|
-
python examples/agent.py
|
|
101
|
+
If the primary provider fails, llmkit cascades to the next:
|
|
95
102
|
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
```yaml
|
|
104
|
+
provider: groq
|
|
105
|
+
model: llama-3.3-70b-versatile
|
|
106
|
+
fallback:
|
|
107
|
+
- provider: openai
|
|
108
|
+
model: gpt-4o-mini
|
|
109
|
+
- provider: anthropic
|
|
110
|
+
model: claude-3-5-haiku-20241022
|
|
98
111
|
```
|
|
99
112
|
|
|
100
|
-
##
|
|
113
|
+
## Budget
|
|
101
114
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
| Gemma 3 | `model: gemma3` |
|
|
115
|
+
Cap token usage per run:
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
budget:
|
|
119
|
+
max_tokens_per_run: 10000
|
|
120
|
+
warn_at: 8000
|
|
121
|
+
```
|
|
110
122
|
|
|
111
123
|
## API providers
|
|
112
124
|
|
|
113
|
-
| Provider | Env key | Fast
|
|
125
|
+
| Provider | Env key | Fast model |
|
|
114
126
|
|---|---|---|
|
|
115
127
|
| OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` |
|
|
116
128
|
| Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` |
|
|
@@ -119,50 +131,60 @@ python examples/mcp_agent.py
|
|
|
119
131
|
| DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat` |
|
|
120
132
|
| Mistral | `MISTRAL_API_KEY` | `mistral-small-latest` |
|
|
121
133
|
|
|
122
|
-
##
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
# 1 — clone
|
|
126
|
-
git clone https://github.com/your-org/llmkit
|
|
127
|
-
cd llmkit
|
|
128
|
-
|
|
129
|
-
# 2 — install deps + register llmkit command
|
|
130
|
-
bash install.sh # Mac: bash install.mac.sh | Windows: ./install.ps1
|
|
131
|
-
|
|
132
|
-
# 3 — set one API key (Groq free tier works)
|
|
133
|
-
echo "GROQ_API_KEY=your_key_here" > .env
|
|
134
|
-
|
|
135
|
-
# 4 — verify everything is wired up
|
|
136
|
-
llmkit check
|
|
134
|
+
## Local models (via Ollama)
|
|
137
135
|
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
```yaml
|
|
137
|
+
provider: local
|
|
138
|
+
model: llama4 # or qwen3, deepseek-r1, mistral, phi4, gemma3
|
|
140
139
|
```
|
|
141
140
|
|
|
142
|
-
No server. No IDE extension. No code to write. Switch providers by editing one line in `llm.yaml`.
|
|
143
|
-
|
|
144
141
|
## llm.lock
|
|
145
142
|
|
|
146
|
-
Run `llmkit lock` to pin your model runtime. Commit `llm.lock` alongside your code
|
|
143
|
+
Run `llmkit lock` to pin your model runtime. Commit `llm.lock` alongside your code — same idea as `package-lock.json`:
|
|
147
144
|
|
|
148
145
|
```yaml
|
|
149
|
-
# Auto-generated — commit this file to pin your model runtime
|
|
150
146
|
locked_at: "2026-06-26T12:00:00Z"
|
|
151
147
|
provider: groq
|
|
152
148
|
model: llama-3.3-70b-versatile
|
|
153
|
-
mode: chat
|
|
154
149
|
```
|
|
155
150
|
|
|
156
|
-
|
|
151
|
+
## 5-minute team setup
|
|
157
152
|
|
|
158
|
-
|
|
153
|
+
```bash
|
|
154
|
+
# 1 — install
|
|
155
|
+
pip install llmkit-cli
|
|
159
156
|
|
|
160
|
-
|
|
157
|
+
# 2 — set one API key (Groq free tier works)
|
|
158
|
+
echo "GROQ_API_KEY=your_key_here" > .env
|
|
161
159
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
160
|
+
# 3 — create config
|
|
161
|
+
llmkit init
|
|
162
|
+
|
|
163
|
+
# 4 — verify
|
|
164
|
+
llmkit check
|
|
165
|
+
|
|
166
|
+
# 5 — run
|
|
167
|
+
llmkit run "explain this codebase in one sentence"
|
|
166
168
|
```
|
|
167
169
|
|
|
168
|
-
No
|
|
170
|
+
No server. No IDE plugin required. No code to write.
|
|
171
|
+
|
|
172
|
+
## Examples
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
python examples/chat.py
|
|
176
|
+
python examples/stream.py
|
|
177
|
+
python examples/tools.py # function calling
|
|
178
|
+
python examples/multiround.py # multi-round conversation
|
|
179
|
+
python examples/embed.py # embeddings + cosine similarity
|
|
180
|
+
python examples/agent.py # coding agent
|
|
181
|
+
python examples/mcp_agent.py # MCP agent
|
|
182
|
+
|
|
183
|
+
node examples/chat.js # JS — all providers
|
|
184
|
+
node examples/stream.js # JS — streaming
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Links
|
|
188
|
+
|
|
189
|
+
- PyPI: https://pypi.org/project/llmkit-cli/
|
|
190
|
+
- GitHub: https://github.com/abinz-aiml/llmkit
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: llmkit-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Run any LLM with one config file. No framework lock-in.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/abinz-aiml/llmkit
|
|
@@ -26,12 +26,24 @@ Requires-Dist: mcp; extra == "all"
|
|
|
26
26
|
|
|
27
27
|
Run any LLM — local or via API — with one config file. No framework lock-in. Works on Windows, Mac, Linux.
|
|
28
28
|
|
|
29
|
+
```bash
|
|
30
|
+
pip install llmkit-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
29
33
|
```bash
|
|
30
34
|
llmkit run "explain this codebase in one sentence"
|
|
31
35
|
```
|
|
32
36
|
|
|
37
|
+
Switch between OpenAI, Anthropic, Groq, Mistral, DeepSeek, Together, and local Ollama models by changing **one line** in `llm.yaml`. No code changes. No redeploy.
|
|
38
|
+
|
|
33
39
|
## Install
|
|
34
40
|
|
|
41
|
+
**Recommended (PyPI):**
|
|
42
|
+
```bash
|
|
43
|
+
pip install llmkit-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Or clone and run the platform installer:**
|
|
35
47
|
```bash
|
|
36
48
|
# Linux
|
|
37
49
|
bash install.sh
|
|
@@ -43,19 +55,21 @@ bash install.mac.sh
|
|
|
43
55
|
./install.ps1
|
|
44
56
|
```
|
|
45
57
|
|
|
46
|
-
|
|
58
|
+
**VS Code extension:** install `vscode-llmkit` to run prompts and commands from the editor status bar.
|
|
47
59
|
|
|
48
60
|
## Configure
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
Create `llm.yaml` in your project (or run `llmkit init` for a guided setup):
|
|
51
63
|
|
|
52
64
|
```yaml
|
|
53
65
|
provider: groq # local | openai | anthropic | groq | together | deepseek | mistral
|
|
54
66
|
model: llama-3.3-70b-versatile
|
|
55
|
-
mode: chat
|
|
56
67
|
```
|
|
57
68
|
|
|
58
|
-
For API providers,
|
|
69
|
+
For API providers, add your key to `.env`:
|
|
70
|
+
```
|
|
71
|
+
GROQ_API_KEY=your_key_here
|
|
72
|
+
```
|
|
59
73
|
|
|
60
74
|
## Commands
|
|
61
75
|
|
|
@@ -63,7 +77,7 @@ For API providers, copy `.env.example` to `.env` and add your key.
|
|
|
63
77
|
# One-shot prompt
|
|
64
78
|
llmkit run "explain this codebase in one sentence"
|
|
65
79
|
|
|
66
|
-
# Validate config
|
|
80
|
+
# Validate config and check provider reachability
|
|
67
81
|
llmkit check
|
|
68
82
|
|
|
69
83
|
# Interactive wizard to create llm.yaml
|
|
@@ -72,6 +86,9 @@ llmkit init
|
|
|
72
86
|
# Pin current model to llm.lock (commit this file)
|
|
73
87
|
llmkit lock
|
|
74
88
|
|
|
89
|
+
# Manage API keys in .env
|
|
90
|
+
llmkit env
|
|
91
|
+
|
|
75
92
|
# Generate a commit message from staged changes
|
|
76
93
|
llmkit commit
|
|
77
94
|
|
|
@@ -91,50 +108,45 @@ llmkit agent --plan "add pagination to the API"
|
|
|
91
108
|
llmkit agent --approve "run the test suite and fix any failures"
|
|
92
109
|
```
|
|
93
110
|
|
|
94
|
-
##
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# Chat
|
|
98
|
-
python examples/chat.py
|
|
99
|
-
node examples/chat.js # all providers including Anthropic
|
|
100
|
-
|
|
101
|
-
# Streaming
|
|
102
|
-
python examples/stream.py
|
|
103
|
-
node examples/stream.js # all providers including Anthropic
|
|
111
|
+
## Switch providers
|
|
104
112
|
|
|
105
|
-
|
|
106
|
-
python examples/tools.py
|
|
113
|
+
Change one line in `llm.yaml`, run `llmkit check`, done:
|
|
107
114
|
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
```yaml
|
|
116
|
+
# was: provider: groq
|
|
117
|
+
provider: anthropic
|
|
118
|
+
model: claude-3-5-haiku-20241022
|
|
119
|
+
```
|
|
110
120
|
|
|
111
|
-
|
|
112
|
-
python examples/multiround.py
|
|
121
|
+
No code changes. No redeploy. Works in CI too.
|
|
113
122
|
|
|
114
|
-
|
|
115
|
-
python examples/embed.py
|
|
123
|
+
## Fallback
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
python examples/agent.py
|
|
125
|
+
If the primary provider fails, llmkit cascades to the next:
|
|
119
126
|
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
```yaml
|
|
128
|
+
provider: groq
|
|
129
|
+
model: llama-3.3-70b-versatile
|
|
130
|
+
fallback:
|
|
131
|
+
- provider: openai
|
|
132
|
+
model: gpt-4o-mini
|
|
133
|
+
- provider: anthropic
|
|
134
|
+
model: claude-3-5-haiku-20241022
|
|
122
135
|
```
|
|
123
136
|
|
|
124
|
-
##
|
|
137
|
+
## Budget
|
|
125
138
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
| Gemma 3 | `model: gemma3` |
|
|
139
|
+
Cap token usage per run:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
budget:
|
|
143
|
+
max_tokens_per_run: 10000
|
|
144
|
+
warn_at: 8000
|
|
145
|
+
```
|
|
134
146
|
|
|
135
147
|
## API providers
|
|
136
148
|
|
|
137
|
-
| Provider | Env key | Fast
|
|
149
|
+
| Provider | Env key | Fast model |
|
|
138
150
|
|---|---|---|
|
|
139
151
|
| OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` |
|
|
140
152
|
| Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` |
|
|
@@ -143,50 +155,60 @@ python examples/mcp_agent.py
|
|
|
143
155
|
| DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat` |
|
|
144
156
|
| Mistral | `MISTRAL_API_KEY` | `mistral-small-latest` |
|
|
145
157
|
|
|
146
|
-
##
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
# 1 — clone
|
|
150
|
-
git clone https://github.com/your-org/llmkit
|
|
151
|
-
cd llmkit
|
|
152
|
-
|
|
153
|
-
# 2 — install deps + register llmkit command
|
|
154
|
-
bash install.sh # Mac: bash install.mac.sh | Windows: ./install.ps1
|
|
155
|
-
|
|
156
|
-
# 3 — set one API key (Groq free tier works)
|
|
157
|
-
echo "GROQ_API_KEY=your_key_here" > .env
|
|
158
|
-
|
|
159
|
-
# 4 — verify everything is wired up
|
|
160
|
-
llmkit check
|
|
158
|
+
## Local models (via Ollama)
|
|
161
159
|
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
```yaml
|
|
161
|
+
provider: local
|
|
162
|
+
model: llama4 # or qwen3, deepseek-r1, mistral, phi4, gemma3
|
|
164
163
|
```
|
|
165
164
|
|
|
166
|
-
No server. No IDE extension. No code to write. Switch providers by editing one line in `llm.yaml`.
|
|
167
|
-
|
|
168
165
|
## llm.lock
|
|
169
166
|
|
|
170
|
-
Run `llmkit lock` to pin your model runtime. Commit `llm.lock` alongside your code
|
|
167
|
+
Run `llmkit lock` to pin your model runtime. Commit `llm.lock` alongside your code — same idea as `package-lock.json`:
|
|
171
168
|
|
|
172
169
|
```yaml
|
|
173
|
-
# Auto-generated — commit this file to pin your model runtime
|
|
174
170
|
locked_at: "2026-06-26T12:00:00Z"
|
|
175
171
|
provider: groq
|
|
176
172
|
model: llama-3.3-70b-versatile
|
|
177
|
-
mode: chat
|
|
178
173
|
```
|
|
179
174
|
|
|
180
|
-
|
|
175
|
+
## 5-minute team setup
|
|
181
176
|
|
|
182
|
-
|
|
177
|
+
```bash
|
|
178
|
+
# 1 — install
|
|
179
|
+
pip install llmkit-cli
|
|
183
180
|
|
|
184
|
-
|
|
181
|
+
# 2 — set one API key (Groq free tier works)
|
|
182
|
+
echo "GROQ_API_KEY=your_key_here" > .env
|
|
185
183
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
184
|
+
# 3 — create config
|
|
185
|
+
llmkit init
|
|
186
|
+
|
|
187
|
+
# 4 — verify
|
|
188
|
+
llmkit check
|
|
189
|
+
|
|
190
|
+
# 5 — run
|
|
191
|
+
llmkit run "explain this codebase in one sentence"
|
|
190
192
|
```
|
|
191
193
|
|
|
192
|
-
No
|
|
194
|
+
No server. No IDE plugin required. No code to write.
|
|
195
|
+
|
|
196
|
+
## Examples
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
python examples/chat.py
|
|
200
|
+
python examples/stream.py
|
|
201
|
+
python examples/tools.py # function calling
|
|
202
|
+
python examples/multiround.py # multi-round conversation
|
|
203
|
+
python examples/embed.py # embeddings + cosine similarity
|
|
204
|
+
python examples/agent.py # coding agent
|
|
205
|
+
python examples/mcp_agent.py # MCP agent
|
|
206
|
+
|
|
207
|
+
node examples/chat.js # JS — all providers
|
|
208
|
+
node examples/stream.js # JS — streaming
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Links
|
|
212
|
+
|
|
213
|
+
- PyPI: https://pypi.org/project/llmkit-cli/
|
|
214
|
+
- GitHub: https://github.com/abinz-aiml/llmkit
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|