llmkit-cli 0.1.0__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.0 → llmkit_cli-0.1.2}/PKG-INFO +93 -72
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/README.md +89 -67
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/PKG-INFO +93 -72
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/pyproject.toml +4 -5
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/agent_cmd.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/check.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/cli.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/env.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/git.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/git_cmds.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/init.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/SOURCES.txt +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/dependency_links.txt +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/entry_points.txt +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/requires.txt +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/llmkit_cli.egg-info/top_level.txt +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/lock.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/__init__.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/anthropic.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/deepseek.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/groq.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/local.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/mistral.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/openai.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/together.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/providers/utils.py +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/setup.cfg +0 -0
- {llmkit_cli-0.1.0 → llmkit_cli-0.1.2}/tests/test_llmkit.py +0 -0
|
@@ -1,13 +1,12 @@
|
|
|
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
|
-
License: MIT
|
|
6
|
-
Project-URL: Homepage, https://github.com/
|
|
7
|
-
Project-URL: Repository, https://github.com/
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/abinz-aiml/llmkit
|
|
7
|
+
Project-URL: Repository, https://github.com/abinz-aiml/llmkit
|
|
8
8
|
Keywords: llm,ai,openai,anthropic,groq,cli
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
10
|
Classifier: Operating System :: OS Independent
|
|
12
11
|
Requires-Python: >=3.10
|
|
13
12
|
Description-Content-Type: text/markdown
|
|
@@ -27,12 +26,24 @@ Requires-Dist: mcp; extra == "all"
|
|
|
27
26
|
|
|
28
27
|
Run any LLM — local or via API — with one config file. No framework lock-in. Works on Windows, Mac, Linux.
|
|
29
28
|
|
|
29
|
+
```bash
|
|
30
|
+
pip install llmkit-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
30
33
|
```bash
|
|
31
34
|
llmkit run "explain this codebase in one sentence"
|
|
32
35
|
```
|
|
33
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
|
+
|
|
34
39
|
## Install
|
|
35
40
|
|
|
41
|
+
**Recommended (PyPI):**
|
|
42
|
+
```bash
|
|
43
|
+
pip install llmkit-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Or clone and run the platform installer:**
|
|
36
47
|
```bash
|
|
37
48
|
# Linux
|
|
38
49
|
bash install.sh
|
|
@@ -44,19 +55,21 @@ bash install.mac.sh
|
|
|
44
55
|
./install.ps1
|
|
45
56
|
```
|
|
46
57
|
|
|
47
|
-
|
|
58
|
+
**VS Code extension:** install `vscode-llmkit` to run prompts and commands from the editor status bar.
|
|
48
59
|
|
|
49
60
|
## Configure
|
|
50
61
|
|
|
51
|
-
|
|
62
|
+
Create `llm.yaml` in your project (or run `llmkit init` for a guided setup):
|
|
52
63
|
|
|
53
64
|
```yaml
|
|
54
65
|
provider: groq # local | openai | anthropic | groq | together | deepseek | mistral
|
|
55
66
|
model: llama-3.3-70b-versatile
|
|
56
|
-
mode: chat
|
|
57
67
|
```
|
|
58
68
|
|
|
59
|
-
For API providers,
|
|
69
|
+
For API providers, add your key to `.env`:
|
|
70
|
+
```
|
|
71
|
+
GROQ_API_KEY=your_key_here
|
|
72
|
+
```
|
|
60
73
|
|
|
61
74
|
## Commands
|
|
62
75
|
|
|
@@ -64,7 +77,7 @@ For API providers, copy `.env.example` to `.env` and add your key.
|
|
|
64
77
|
# One-shot prompt
|
|
65
78
|
llmkit run "explain this codebase in one sentence"
|
|
66
79
|
|
|
67
|
-
# Validate config
|
|
80
|
+
# Validate config and check provider reachability
|
|
68
81
|
llmkit check
|
|
69
82
|
|
|
70
83
|
# Interactive wizard to create llm.yaml
|
|
@@ -73,6 +86,9 @@ llmkit init
|
|
|
73
86
|
# Pin current model to llm.lock (commit this file)
|
|
74
87
|
llmkit lock
|
|
75
88
|
|
|
89
|
+
# Manage API keys in .env
|
|
90
|
+
llmkit env
|
|
91
|
+
|
|
76
92
|
# Generate a commit message from staged changes
|
|
77
93
|
llmkit commit
|
|
78
94
|
|
|
@@ -92,50 +108,45 @@ llmkit agent --plan "add pagination to the API"
|
|
|
92
108
|
llmkit agent --approve "run the test suite and fix any failures"
|
|
93
109
|
```
|
|
94
110
|
|
|
95
|
-
##
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# Chat
|
|
99
|
-
python examples/chat.py
|
|
100
|
-
node examples/chat.js # all providers including Anthropic
|
|
101
|
-
|
|
102
|
-
# Streaming
|
|
103
|
-
python examples/stream.py
|
|
104
|
-
node examples/stream.js # all providers including Anthropic
|
|
111
|
+
## Switch providers
|
|
105
112
|
|
|
106
|
-
|
|
107
|
-
python examples/tools.py
|
|
113
|
+
Change one line in `llm.yaml`, run `llmkit check`, done:
|
|
108
114
|
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
```yaml
|
|
116
|
+
# was: provider: groq
|
|
117
|
+
provider: anthropic
|
|
118
|
+
model: claude-3-5-haiku-20241022
|
|
119
|
+
```
|
|
111
120
|
|
|
112
|
-
|
|
113
|
-
python examples/multiround.py
|
|
121
|
+
No code changes. No redeploy. Works in CI too.
|
|
114
122
|
|
|
115
|
-
|
|
116
|
-
python examples/embed.py
|
|
123
|
+
## Fallback
|
|
117
124
|
|
|
118
|
-
|
|
119
|
-
python examples/agent.py
|
|
125
|
+
If the primary provider fails, llmkit cascades to the next:
|
|
120
126
|
|
|
121
|
-
|
|
122
|
-
|
|
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
|
|
123
135
|
```
|
|
124
136
|
|
|
125
|
-
##
|
|
137
|
+
## Budget
|
|
126
138
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
| 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
|
+
```
|
|
135
146
|
|
|
136
147
|
## API providers
|
|
137
148
|
|
|
138
|
-
| Provider | Env key | Fast
|
|
149
|
+
| Provider | Env key | Fast model |
|
|
139
150
|
|---|---|---|
|
|
140
151
|
| OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` |
|
|
141
152
|
| Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` |
|
|
@@ -144,50 +155,60 @@ python examples/mcp_agent.py
|
|
|
144
155
|
| DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat` |
|
|
145
156
|
| Mistral | `MISTRAL_API_KEY` | `mistral-small-latest` |
|
|
146
157
|
|
|
147
|
-
##
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
# 1 — clone
|
|
151
|
-
git clone https://github.com/your-org/llmkit
|
|
152
|
-
cd llmkit
|
|
153
|
-
|
|
154
|
-
# 2 — install deps + register llmkit command
|
|
155
|
-
bash install.sh # Mac: bash install.mac.sh | Windows: ./install.ps1
|
|
156
|
-
|
|
157
|
-
# 3 — set one API key (Groq free tier works)
|
|
158
|
-
echo "GROQ_API_KEY=your_key_here" > .env
|
|
159
|
-
|
|
160
|
-
# 4 — verify everything is wired up
|
|
161
|
-
llmkit check
|
|
158
|
+
## Local models (via Ollama)
|
|
162
159
|
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
```yaml
|
|
161
|
+
provider: local
|
|
162
|
+
model: llama4 # or qwen3, deepseek-r1, mistral, phi4, gemma3
|
|
165
163
|
```
|
|
166
164
|
|
|
167
|
-
No server. No IDE extension. No code to write. Switch providers by editing one line in `llm.yaml`.
|
|
168
|
-
|
|
169
165
|
## llm.lock
|
|
170
166
|
|
|
171
|
-
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`:
|
|
172
168
|
|
|
173
169
|
```yaml
|
|
174
|
-
# Auto-generated — commit this file to pin your model runtime
|
|
175
170
|
locked_at: "2026-06-26T12:00:00Z"
|
|
176
171
|
provider: groq
|
|
177
172
|
model: llama-3.3-70b-versatile
|
|
178
|
-
mode: chat
|
|
179
173
|
```
|
|
180
174
|
|
|
181
|
-
|
|
175
|
+
## 5-minute team setup
|
|
182
176
|
|
|
183
|
-
|
|
177
|
+
```bash
|
|
178
|
+
# 1 — install
|
|
179
|
+
pip install llmkit-cli
|
|
184
180
|
|
|
185
|
-
|
|
181
|
+
# 2 — set one API key (Groq free tier works)
|
|
182
|
+
echo "GROQ_API_KEY=your_key_here" > .env
|
|
186
183
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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"
|
|
191
192
|
```
|
|
192
193
|
|
|
193
|
-
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,13 +1,12 @@
|
|
|
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
|
-
License: MIT
|
|
6
|
-
Project-URL: Homepage, https://github.com/
|
|
7
|
-
Project-URL: Repository, https://github.com/
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/abinz-aiml/llmkit
|
|
7
|
+
Project-URL: Repository, https://github.com/abinz-aiml/llmkit
|
|
8
8
|
Keywords: llm,ai,openai,anthropic,groq,cli
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
10
|
Classifier: Operating System :: OS Independent
|
|
12
11
|
Requires-Python: >=3.10
|
|
13
12
|
Description-Content-Type: text/markdown
|
|
@@ -27,12 +26,24 @@ Requires-Dist: mcp; extra == "all"
|
|
|
27
26
|
|
|
28
27
|
Run any LLM — local or via API — with one config file. No framework lock-in. Works on Windows, Mac, Linux.
|
|
29
28
|
|
|
29
|
+
```bash
|
|
30
|
+
pip install llmkit-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
30
33
|
```bash
|
|
31
34
|
llmkit run "explain this codebase in one sentence"
|
|
32
35
|
```
|
|
33
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
|
+
|
|
34
39
|
## Install
|
|
35
40
|
|
|
41
|
+
**Recommended (PyPI):**
|
|
42
|
+
```bash
|
|
43
|
+
pip install llmkit-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Or clone and run the platform installer:**
|
|
36
47
|
```bash
|
|
37
48
|
# Linux
|
|
38
49
|
bash install.sh
|
|
@@ -44,19 +55,21 @@ bash install.mac.sh
|
|
|
44
55
|
./install.ps1
|
|
45
56
|
```
|
|
46
57
|
|
|
47
|
-
|
|
58
|
+
**VS Code extension:** install `vscode-llmkit` to run prompts and commands from the editor status bar.
|
|
48
59
|
|
|
49
60
|
## Configure
|
|
50
61
|
|
|
51
|
-
|
|
62
|
+
Create `llm.yaml` in your project (or run `llmkit init` for a guided setup):
|
|
52
63
|
|
|
53
64
|
```yaml
|
|
54
65
|
provider: groq # local | openai | anthropic | groq | together | deepseek | mistral
|
|
55
66
|
model: llama-3.3-70b-versatile
|
|
56
|
-
mode: chat
|
|
57
67
|
```
|
|
58
68
|
|
|
59
|
-
For API providers,
|
|
69
|
+
For API providers, add your key to `.env`:
|
|
70
|
+
```
|
|
71
|
+
GROQ_API_KEY=your_key_here
|
|
72
|
+
```
|
|
60
73
|
|
|
61
74
|
## Commands
|
|
62
75
|
|
|
@@ -64,7 +77,7 @@ For API providers, copy `.env.example` to `.env` and add your key.
|
|
|
64
77
|
# One-shot prompt
|
|
65
78
|
llmkit run "explain this codebase in one sentence"
|
|
66
79
|
|
|
67
|
-
# Validate config
|
|
80
|
+
# Validate config and check provider reachability
|
|
68
81
|
llmkit check
|
|
69
82
|
|
|
70
83
|
# Interactive wizard to create llm.yaml
|
|
@@ -73,6 +86,9 @@ llmkit init
|
|
|
73
86
|
# Pin current model to llm.lock (commit this file)
|
|
74
87
|
llmkit lock
|
|
75
88
|
|
|
89
|
+
# Manage API keys in .env
|
|
90
|
+
llmkit env
|
|
91
|
+
|
|
76
92
|
# Generate a commit message from staged changes
|
|
77
93
|
llmkit commit
|
|
78
94
|
|
|
@@ -92,50 +108,45 @@ llmkit agent --plan "add pagination to the API"
|
|
|
92
108
|
llmkit agent --approve "run the test suite and fix any failures"
|
|
93
109
|
```
|
|
94
110
|
|
|
95
|
-
##
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# Chat
|
|
99
|
-
python examples/chat.py
|
|
100
|
-
node examples/chat.js # all providers including Anthropic
|
|
101
|
-
|
|
102
|
-
# Streaming
|
|
103
|
-
python examples/stream.py
|
|
104
|
-
node examples/stream.js # all providers including Anthropic
|
|
111
|
+
## Switch providers
|
|
105
112
|
|
|
106
|
-
|
|
107
|
-
python examples/tools.py
|
|
113
|
+
Change one line in `llm.yaml`, run `llmkit check`, done:
|
|
108
114
|
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
```yaml
|
|
116
|
+
# was: provider: groq
|
|
117
|
+
provider: anthropic
|
|
118
|
+
model: claude-3-5-haiku-20241022
|
|
119
|
+
```
|
|
111
120
|
|
|
112
|
-
|
|
113
|
-
python examples/multiround.py
|
|
121
|
+
No code changes. No redeploy. Works in CI too.
|
|
114
122
|
|
|
115
|
-
|
|
116
|
-
python examples/embed.py
|
|
123
|
+
## Fallback
|
|
117
124
|
|
|
118
|
-
|
|
119
|
-
python examples/agent.py
|
|
125
|
+
If the primary provider fails, llmkit cascades to the next:
|
|
120
126
|
|
|
121
|
-
|
|
122
|
-
|
|
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
|
|
123
135
|
```
|
|
124
136
|
|
|
125
|
-
##
|
|
137
|
+
## Budget
|
|
126
138
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
| 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
|
+
```
|
|
135
146
|
|
|
136
147
|
## API providers
|
|
137
148
|
|
|
138
|
-
| Provider | Env key | Fast
|
|
149
|
+
| Provider | Env key | Fast model |
|
|
139
150
|
|---|---|---|
|
|
140
151
|
| OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` |
|
|
141
152
|
| Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` |
|
|
@@ -144,50 +155,60 @@ python examples/mcp_agent.py
|
|
|
144
155
|
| DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat` |
|
|
145
156
|
| Mistral | `MISTRAL_API_KEY` | `mistral-small-latest` |
|
|
146
157
|
|
|
147
|
-
##
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
# 1 — clone
|
|
151
|
-
git clone https://github.com/your-org/llmkit
|
|
152
|
-
cd llmkit
|
|
153
|
-
|
|
154
|
-
# 2 — install deps + register llmkit command
|
|
155
|
-
bash install.sh # Mac: bash install.mac.sh | Windows: ./install.ps1
|
|
156
|
-
|
|
157
|
-
# 3 — set one API key (Groq free tier works)
|
|
158
|
-
echo "GROQ_API_KEY=your_key_here" > .env
|
|
159
|
-
|
|
160
|
-
# 4 — verify everything is wired up
|
|
161
|
-
llmkit check
|
|
158
|
+
## Local models (via Ollama)
|
|
162
159
|
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
```yaml
|
|
161
|
+
provider: local
|
|
162
|
+
model: llama4 # or qwen3, deepseek-r1, mistral, phi4, gemma3
|
|
165
163
|
```
|
|
166
164
|
|
|
167
|
-
No server. No IDE extension. No code to write. Switch providers by editing one line in `llm.yaml`.
|
|
168
|
-
|
|
169
165
|
## llm.lock
|
|
170
166
|
|
|
171
|
-
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`:
|
|
172
168
|
|
|
173
169
|
```yaml
|
|
174
|
-
# Auto-generated — commit this file to pin your model runtime
|
|
175
170
|
locked_at: "2026-06-26T12:00:00Z"
|
|
176
171
|
provider: groq
|
|
177
172
|
model: llama-3.3-70b-versatile
|
|
178
|
-
mode: chat
|
|
179
173
|
```
|
|
180
174
|
|
|
181
|
-
|
|
175
|
+
## 5-minute team setup
|
|
182
176
|
|
|
183
|
-
|
|
177
|
+
```bash
|
|
178
|
+
# 1 — install
|
|
179
|
+
pip install llmkit-cli
|
|
184
180
|
|
|
185
|
-
|
|
181
|
+
# 2 — set one API key (Groq free tier works)
|
|
182
|
+
echo "GROQ_API_KEY=your_key_here" > .env
|
|
186
183
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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"
|
|
191
192
|
```
|
|
192
193
|
|
|
193
|
-
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
|
|
@@ -4,15 +4,14 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "llmkit-cli"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.2"
|
|
8
8
|
description = "Run any LLM with one config file. No framework lock-in."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
|
-
license =
|
|
11
|
+
license = "MIT"
|
|
12
12
|
keywords = ["llm", "ai", "openai", "anthropic", "groq", "cli"]
|
|
13
13
|
classifiers = [
|
|
14
14
|
"Programming Language :: Python :: 3",
|
|
15
|
-
"License :: OSI Approved :: MIT License",
|
|
16
15
|
"Operating System :: OS Independent",
|
|
17
16
|
]
|
|
18
17
|
dependencies = [
|
|
@@ -35,5 +34,5 @@ py-modules = ["cli", "agent_cmd", "check", "init", "lock", "env", "git_cmds", "g
|
|
|
35
34
|
packages = ["providers"]
|
|
36
35
|
|
|
37
36
|
[project.urls]
|
|
38
|
-
Homepage = "https://github.com/
|
|
39
|
-
Repository = "https://github.com/
|
|
37
|
+
Homepage = "https://github.com/abinz-aiml/llmkit"
|
|
38
|
+
Repository = "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
|