devorch 0.1.2__py3-none-any.whl
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.
- cli/commands/ask.py +0 -0
- cli/commands/edit.py +0 -0
- cli/commands/run.py +0 -0
- cli/main.py +1527 -0
- config/permissions.py +285 -0
- config/profiles.py +0 -0
- config/settings.py +185 -0
- core/agent.py +433 -0
- core/context.py +0 -0
- core/executor.py +213 -0
- core/modes.py +141 -0
- core/planner.py +16 -0
- core/sessions.py +271 -0
- core/tasks.py +142 -0
- devorch-0.1.2.dist-info/METADATA +528 -0
- devorch-0.1.2.dist-info/RECORD +50 -0
- devorch-0.1.2.dist-info/WHEEL +4 -0
- devorch-0.1.2.dist-info/entry_points.txt +2 -0
- providers/__init__.py +130 -0
- providers/anthropic.py +127 -0
- providers/base.py +51 -0
- providers/custom.py +186 -0
- providers/deepseek.py +170 -0
- providers/gemini.py +192 -0
- providers/github_copilot.py +196 -0
- providers/groq.py +158 -0
- providers/kimi.py +181 -0
- providers/lmstudio.py +147 -0
- providers/local.py +214 -0
- providers/mistral.py +161 -0
- providers/openai.py +114 -0
- providers/openrouter.py +195 -0
- providers/together.py +159 -0
- schemas/message.py +32 -0
- schemas/task.py +115 -0
- schemas/tool.py +0 -0
- tools/__init__.py +30 -0
- tools/base.py +40 -0
- tools/edit.py +236 -0
- tools/filesystem.py +224 -0
- tools/git.py +0 -0
- tools/grep.py +280 -0
- tools/search.py +150 -0
- tools/shell.py +55 -0
- tools/task.py +91 -0
- tools/terminal.py +123 -0
- tools/terminal_session.py +298 -0
- tools/tests.py +0 -0
- tools/websearch.py +166 -0
- utils/logger.py +52 -0
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devorch
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Multi-provider AI coding assistant CLI with 13+ providers
|
|
5
|
+
Project-URL: Homepage, https://github.com/Amanbig/DevOrch
|
|
6
|
+
Project-URL: Repository, https://github.com/Amanbig/DevOrch
|
|
7
|
+
Project-URL: Issues, https://github.com/Amanbig/DevOrch/issues
|
|
8
|
+
Author-email: Aman <amanpreetsinghjhiwant@outlook.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: ai,anthropic,assistant,claude,cli,coding,copilot,deepseek,gemini,gpt,kimi,llm,llmstudio,mistral,openai,openrouter,together
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Software Development
|
|
19
|
+
Classifier: Topic :: Utilities
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: anthropic>=0.25.8
|
|
22
|
+
Requires-Dist: duckduckgo-search>=6.0.0
|
|
23
|
+
Requires-Dist: google-genai>=1.0.0
|
|
24
|
+
Requires-Dist: httpx>=0.27.0
|
|
25
|
+
Requires-Dist: keyring>=25.0.0
|
|
26
|
+
Requires-Dist: openai>=1.28.0
|
|
27
|
+
Requires-Dist: prompt-toolkit>=3.0.0
|
|
28
|
+
Requires-Dist: pydantic>=2.7.1
|
|
29
|
+
Requires-Dist: pyyaml>=6.0
|
|
30
|
+
Requires-Dist: questionary>=2.0.0
|
|
31
|
+
Requires-Dist: rich>=13.7.1
|
|
32
|
+
Requires-Dist: typer>=0.12.3
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# DevOrch
|
|
42
|
+
|
|
43
|
+
A multi-provider AI coding assistant CLI, similar to Claude Code and Gemini CLI.
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+

|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- **13 AI Providers** - OpenAI, Anthropic, Gemini, Groq, Mistral, Together AI, OpenRouter, GitHub Copilot, DeepSeek, Kimi, Ollama, LM Studio, and Custom
|
|
52
|
+
- **Custom Provider Support** - Connect to ANY OpenAI-compatible API (vLLM, TGI, llama.cpp, etc.)
|
|
53
|
+
- **Dynamic Model Listing** - Fetches latest available models from provider APIs
|
|
54
|
+
- **Secure API Key Storage** - Uses system keychain (Windows Credential Manager, macOS Keychain, Linux Secret Service)
|
|
55
|
+
- **Session Persistence** - SQLite-based chat history with resume capability
|
|
56
|
+
- **Powerful Tools** - Shell, terminal sessions, file operations, search, grep, code editing, and web access
|
|
57
|
+
- **Interactive UI** - Arrow-key navigation for selections, syntax-highlighted output
|
|
58
|
+
- **Permission System** - Configurable allow/deny rules with interactive prompts
|
|
59
|
+
- **Terminal Session Management** - Run long-running servers and background processes
|
|
60
|
+
- **Multiple Modes** - Plan mode, Auto mode, and Ask mode
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
### Option 1: Install with pipx (Recommended)
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Install pipx if you don't have it
|
|
68
|
+
pip install pipx
|
|
69
|
+
|
|
70
|
+
# Install DevOrch
|
|
71
|
+
pipx install devorch
|
|
72
|
+
|
|
73
|
+
# DevOrch is now available globally
|
|
74
|
+
devorch --help
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Option 2: Install with pip
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pip install devorch
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Option 3: Install from source
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Clone the repository
|
|
87
|
+
git clone https://github.com/Amanbig/DevOrch.git
|
|
88
|
+
cd DevOrch
|
|
89
|
+
|
|
90
|
+
# Install with pip
|
|
91
|
+
pip install -e .
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Why pipx?
|
|
95
|
+
|
|
96
|
+
- ✅ Isolated environment (no conflicts with other packages)
|
|
97
|
+
- ✅ Available globally like `npm install -g`
|
|
98
|
+
- ✅ Easy to uninstall: `pipx uninstall devorch`
|
|
99
|
+
- ✅ Easy to upgrade: `pipx upgrade devorch`
|
|
100
|
+
|
|
101
|
+
## Quick Start
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Start DevOrch (first run will show interactive setup)
|
|
105
|
+
devorch
|
|
106
|
+
|
|
107
|
+
# Or specify a provider
|
|
108
|
+
devorch -p openai
|
|
109
|
+
devorch -p anthropic
|
|
110
|
+
devorch -p groq
|
|
111
|
+
devorch -p local # Ollama
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Interactive Onboarding
|
|
115
|
+
|
|
116
|
+
On first run, DevOrch guides you through setup with an interactive UI:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
╭─────────────────────────────────────────────────╮
|
|
120
|
+
│ Welcome to DevOrch! │
|
|
121
|
+
│ │
|
|
122
|
+
│ Let's set up your AI provider to get started. │
|
|
123
|
+
╰─────────────────────────────────────────────────╯
|
|
124
|
+
|
|
125
|
+
? Select your AI provider: (Use arrow keys)
|
|
126
|
+
❯ OpenAI (GPT-4o, GPT-4, etc.)
|
|
127
|
+
Anthropic (Claude Sonnet, Opus, etc.)
|
|
128
|
+
Google Gemini (Gemini Pro, Flash, etc.)
|
|
129
|
+
Groq (Ultra-fast Llama, Mixtral)
|
|
130
|
+
──────────────
|
|
131
|
+
Ollama - Local (No API key needed)
|
|
132
|
+
LM Studio - Local (No API key needed)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Usage
|
|
136
|
+
|
|
137
|
+
### Interactive REPL
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
devorch # Start interactive session
|
|
141
|
+
devorch -p groq # Use specific provider
|
|
142
|
+
devorch -m gpt-4o # Use specific model
|
|
143
|
+
devorch --resume abc123 # Resume a previous session
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Slash Commands
|
|
147
|
+
|
|
148
|
+
| Command | Description |
|
|
149
|
+
|---------|-------------|
|
|
150
|
+
| `/help` | Show available commands |
|
|
151
|
+
| `/mode` | Interactive mode selection (plan/auto/ask) |
|
|
152
|
+
| `/model` | Interactive model selection |
|
|
153
|
+
| `/provider` | Interactive provider switching |
|
|
154
|
+
| `/models` | List available models for current provider |
|
|
155
|
+
| `/providers` | List all available providers |
|
|
156
|
+
| `/status` | Show current provider, model, and mode |
|
|
157
|
+
| `/session` | Show current session info |
|
|
158
|
+
| `/history` | Show conversation history |
|
|
159
|
+
| `/clear` | Clear conversation history |
|
|
160
|
+
| `/compact` | Summarize and compact history |
|
|
161
|
+
| `/save` | Save conversation to file |
|
|
162
|
+
| `/undo` | Undo last message |
|
|
163
|
+
| `/tasks` | Show current task list |
|
|
164
|
+
|
|
165
|
+
### Modes
|
|
166
|
+
|
|
167
|
+
- **ASK** (default) - Asks before each tool execution
|
|
168
|
+
- **AUTO** - Executes tools automatically (dangerous commands still blocked)
|
|
169
|
+
- **PLAN** - Shows plan before executing, asks for approval
|
|
170
|
+
|
|
171
|
+
Switch modes interactively:
|
|
172
|
+
```
|
|
173
|
+
? Select mode: (Use arrow keys)
|
|
174
|
+
❯ PLAN - Shows plan before executing, asks for approval
|
|
175
|
+
AUTO - Executes tools automatically (trusted mode)
|
|
176
|
+
ASK - Asks before each tool execution (default)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Tool Permissions
|
|
180
|
+
|
|
181
|
+
DevOrch uses an interactive permission system with arrow-key navigation:
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
╭─────────── Permission Required ───────────╮
|
|
185
|
+
│ Tool: shell │
|
|
186
|
+
│ Command: npm create vite@latest │
|
|
187
|
+
╰───────────────────────────────────────────╯
|
|
188
|
+
|
|
189
|
+
? Choose an action: (Use arrow keys)
|
|
190
|
+
❯ Allow once
|
|
191
|
+
Allow for this session
|
|
192
|
+
Always allow (save to config)
|
|
193
|
+
Deny
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Tool Output Display
|
|
197
|
+
|
|
198
|
+
Tool calls are displayed in a clean, compact format:
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
╭──────────── Shell ────────────╮
|
|
202
|
+
│ npm create vite@latest my-app │
|
|
203
|
+
╰───────────────────────────────╯
|
|
204
|
+
|
|
205
|
+
╭─────────── Output ────────────╮
|
|
206
|
+
│ STDOUT: │
|
|
207
|
+
│ Scaffolding project in ./my- │
|
|
208
|
+
│ app │
|
|
209
|
+
│ Done! │
|
|
210
|
+
╰───────────────────────────────╯
|
|
211
|
+
|
|
212
|
+
> write 45 lines to src/App.tsx
|
|
213
|
+
✓ Successfully wrote 45 lines to src/App.tsx
|
|
214
|
+
|
|
215
|
+
> read package.json
|
|
216
|
+
✓ Read 32 lines
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## New Provider Features
|
|
220
|
+
|
|
221
|
+
### GitHub Copilot Integration
|
|
222
|
+
|
|
223
|
+
Use your GitHub Copilot subscription to access multiple premium models:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Get GitHub token with 'copilot' scope from:
|
|
227
|
+
# https://github.com/settings/tokens
|
|
228
|
+
|
|
229
|
+
export GITHUB_TOKEN=ghp_your_token
|
|
230
|
+
|
|
231
|
+
# Use Copilot
|
|
232
|
+
devorch -p github_copilot
|
|
233
|
+
devorch -p github_copilot -m claude-3.5-sonnet
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Available models:** GPT-4o, GPT-4o-mini, Claude 3.5 Sonnet, o1-preview, o1-mini
|
|
237
|
+
|
|
238
|
+
### DeepSeek AI
|
|
239
|
+
|
|
240
|
+
Powerful reasoning and coding models from DeepSeek:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
export DEEPSEEK_API_KEY=sk-...
|
|
244
|
+
devorch -p deepseek -m deepseek-reasoner
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Models:** deepseek-chat, deepseek-coder, deepseek-reasoner (R1)
|
|
248
|
+
|
|
249
|
+
### Kimi (Moonshot AI)
|
|
250
|
+
|
|
251
|
+
Long context models with up to 128K tokens:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
export MOONSHOT_API_KEY=sk-...
|
|
255
|
+
devorch -p kimi -m moonshot-v1-128k
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Models:** moonshot-v1-8k, moonshot-v1-32k, moonshot-v1-128k
|
|
259
|
+
|
|
260
|
+
### Custom Providers
|
|
261
|
+
|
|
262
|
+
Connect to ANY OpenAI-compatible API:
|
|
263
|
+
|
|
264
|
+
#### Self-Hosted vLLM
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
# ~/.devorch/config.yaml
|
|
268
|
+
providers:
|
|
269
|
+
my_vllm:
|
|
270
|
+
default_model: meta-llama/Meta-Llama-3-70B-Instruct
|
|
271
|
+
base_url: http://localhost:8000/v1
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# Start vLLM server
|
|
276
|
+
python -m vllm.entrypoints.openai.api_server \
|
|
277
|
+
--model meta-llama/Meta-Llama-3-70B-Instruct \
|
|
278
|
+
--port 8000
|
|
279
|
+
|
|
280
|
+
# Use it
|
|
281
|
+
devorch -p my_vllm
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
#### Text Generation Inference (TGI)
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
providers:
|
|
288
|
+
my_tgi:
|
|
289
|
+
default_model: mistralai/Mistral-7B-Instruct
|
|
290
|
+
base_url: http://localhost:8080/v1
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
#### llama.cpp Server
|
|
294
|
+
|
|
295
|
+
```yaml
|
|
296
|
+
providers:
|
|
297
|
+
llamacpp:
|
|
298
|
+
default_model: llama-3-8b
|
|
299
|
+
base_url: http://localhost:8080/v1
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
#### Private API Endpoint
|
|
303
|
+
|
|
304
|
+
```yaml
|
|
305
|
+
providers:
|
|
306
|
+
company_api:
|
|
307
|
+
default_model: custom-model-v1
|
|
308
|
+
base_url: https://api.company.com/v1
|
|
309
|
+
# Set CUSTOM_API_KEY environment variable
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Dynamic Model Listing
|
|
313
|
+
|
|
314
|
+
All providers now fetch available models from their APIs automatically:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
# List available models
|
|
318
|
+
devorch models list -p deepseek
|
|
319
|
+
devorch models list -p github_copilot
|
|
320
|
+
devorch models list -p my_vllm
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Models are fetched in real-time from provider APIs, so you always see the latest available models!
|
|
324
|
+
|
|
325
|
+
## Configuration
|
|
326
|
+
|
|
327
|
+
### API Keys
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
# Store API keys securely in system keyring
|
|
331
|
+
devorch set-key openai
|
|
332
|
+
devorch set-key anthropic
|
|
333
|
+
devorch set-key groq
|
|
334
|
+
devorch set-key github_copilot # Uses GITHUB_TOKEN
|
|
335
|
+
devorch set-key deepseek
|
|
336
|
+
devorch set-key kimi
|
|
337
|
+
|
|
338
|
+
# Or use environment variables
|
|
339
|
+
export OPENAI_API_KEY=sk-...
|
|
340
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
341
|
+
export GOOGLE_API_KEY=...
|
|
342
|
+
export GROQ_API_KEY=gsk_...
|
|
343
|
+
export MISTRAL_API_KEY=...
|
|
344
|
+
export OPENROUTER_API_KEY=sk-or-...
|
|
345
|
+
export TOGETHER_API_KEY=...
|
|
346
|
+
export GITHUB_TOKEN=ghp_...
|
|
347
|
+
export DEEPSEEK_API_KEY=sk-...
|
|
348
|
+
export MOONSHOT_API_KEY=sk-...
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### View Configuration
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
devorch config
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Configuration File
|
|
358
|
+
|
|
359
|
+
Create `~/.devorch/config.yaml` to configure providers:
|
|
360
|
+
|
|
361
|
+
```yaml
|
|
362
|
+
# Set default provider
|
|
363
|
+
default_provider: openai
|
|
364
|
+
|
|
365
|
+
# Configure each provider
|
|
366
|
+
providers:
|
|
367
|
+
openai:
|
|
368
|
+
default_model: gpt-4o
|
|
369
|
+
|
|
370
|
+
anthropic:
|
|
371
|
+
default_model: claude-sonnet-4-20250514
|
|
372
|
+
|
|
373
|
+
github_copilot:
|
|
374
|
+
default_model: gpt-4o
|
|
375
|
+
|
|
376
|
+
deepseek:
|
|
377
|
+
default_model: deepseek-chat
|
|
378
|
+
|
|
379
|
+
kimi:
|
|
380
|
+
default_model: moonshot-v1-32k
|
|
381
|
+
|
|
382
|
+
# Custom providers
|
|
383
|
+
my_vllm:
|
|
384
|
+
default_model: meta-llama/Meta-Llama-3-70B-Instruct
|
|
385
|
+
base_url: http://localhost:8000/v1
|
|
386
|
+
|
|
387
|
+
company_api:
|
|
388
|
+
default_model: custom-model-v1
|
|
389
|
+
base_url: https://api.company.com/v1
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
**Note:** Don't put API keys in config files! Use environment variables or keyring.
|
|
393
|
+
|
|
394
|
+
### Session Management
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
devorch sessions list # List all sessions
|
|
398
|
+
devorch sessions show <id> # Show session details
|
|
399
|
+
devorch sessions delete <id> # Delete a session
|
|
400
|
+
devorch sessions clear # Delete all sessions
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### Permissions
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
devorch permissions list # Show permissions
|
|
407
|
+
devorch permissions set shell allow # Always allow shell commands
|
|
408
|
+
devorch permissions allow shell "git *" # Allow git commands
|
|
409
|
+
devorch permissions deny shell "rm -rf *" # Block dangerous commands
|
|
410
|
+
devorch permissions reset # Reset to defaults
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Supported Providers
|
|
414
|
+
|
|
415
|
+
### Cloud Providers
|
|
416
|
+
|
|
417
|
+
| Provider | Models | API Key | Notes |
|
|
418
|
+
|----------|--------|---------|-------|
|
|
419
|
+
| **OpenAI** | GPT-4o, GPT-4, o1-preview | `OPENAI_API_KEY` | Full support with tool calling |
|
|
420
|
+
| **Anthropic** | Claude 4.5, Claude 3.5, Claude 3 | `ANTHROPIC_API_KEY` | Best for coding tasks |
|
|
421
|
+
| **Google Gemini** | Gemini 2.0, 1.5 Pro/Flash | `GOOGLE_API_KEY` | 2M token context |
|
|
422
|
+
| **Groq** | Llama 3.3, Mixtral, Gemma | `GROQ_API_KEY` | Ultra-fast inference |
|
|
423
|
+
| **Mistral** | Large, Medium, Codestral | `MISTRAL_API_KEY` | Specialized for code |
|
|
424
|
+
| **Together AI** | Llama 3, Mixtral, Qwen | `TOGETHER_API_KEY` | Open source models |
|
|
425
|
+
| **OpenRouter** | 100+ models | `OPENROUTER_API_KEY` | Access many providers via one API |
|
|
426
|
+
|
|
427
|
+
### Developer Tools
|
|
428
|
+
|
|
429
|
+
| Provider | Models | API Key | Notes |
|
|
430
|
+
|----------|--------|---------|-------|
|
|
431
|
+
| **GitHub Copilot** ⭐ | GPT-4o, Claude 3.5, o1 | `GITHUB_TOKEN` | Requires Copilot subscription |
|
|
432
|
+
|
|
433
|
+
### International Providers
|
|
434
|
+
|
|
435
|
+
| Provider | Models | API Key | Notes |
|
|
436
|
+
|----------|--------|---------|-------|
|
|
437
|
+
| **DeepSeek** ⭐ | Chat, Coder, Reasoner | `DEEPSEEK_API_KEY` | Powerful reasoning models |
|
|
438
|
+
| **Kimi (Moonshot)** ⭐ | 8K, 32K, 128K | `MOONSHOT_API_KEY` | Long context (128K tokens) |
|
|
439
|
+
|
|
440
|
+
### Local & Self-Hosted
|
|
441
|
+
|
|
442
|
+
| Provider | Models | Setup | Notes |
|
|
443
|
+
|----------|--------|-------|-------|
|
|
444
|
+
| **Ollama** | Llama 3, Mistral, CodeLlama | Install Ollama | Run models locally |
|
|
445
|
+
| **LM Studio** | Any GGUF model | Install LM Studio | GUI for local models |
|
|
446
|
+
| **Custom** ⭐ | Your choice | Configure endpoint | vLLM, TGI, llama.cpp, etc. |
|
|
447
|
+
|
|
448
|
+
⭐ = New providers
|
|
449
|
+
|
|
450
|
+
## Tools
|
|
451
|
+
|
|
452
|
+
DevOrch has access to these tools:
|
|
453
|
+
|
|
454
|
+
| Tool | Description |
|
|
455
|
+
|------|-------------|
|
|
456
|
+
| **shell** | Execute shell commands (quick commands with output capture) |
|
|
457
|
+
| **open_terminal** ⭐ | Open new terminal window for interactive/long-running commands |
|
|
458
|
+
| **terminal_session** ⭐ | Managed background sessions (start, read, send input, stop) |
|
|
459
|
+
| **filesystem** | Read, write, and list files |
|
|
460
|
+
| **search** | Find files by name patterns (glob) |
|
|
461
|
+
| **grep** | Search for text patterns in files |
|
|
462
|
+
| **edit** | Make targeted edits to existing files |
|
|
463
|
+
| **task** | Track progress on multi-step work with visual task list |
|
|
464
|
+
| **websearch** | Search the web for current information (uses DuckDuckGo) |
|
|
465
|
+
| **webfetch** | Fetch and read content from a URL |
|
|
466
|
+
|
|
467
|
+
### Terminal Session Management
|
|
468
|
+
|
|
469
|
+
Run long-running servers and interact with them without blocking the chat:
|
|
470
|
+
|
|
471
|
+
```bash
|
|
472
|
+
# LLM can start a dev server in background
|
|
473
|
+
> terminal_session start vite_server "npm run dev"
|
|
474
|
+
✓ Session 'vite_server' started (PID 12345)
|
|
475
|
+
|
|
476
|
+
# Continue chatting while server runs
|
|
477
|
+
|
|
478
|
+
# Check server output
|
|
479
|
+
> terminal_session read vite_server
|
|
480
|
+
[Session 'vite_server' — running]
|
|
481
|
+
VITE v5.0.0 ready in 450 ms
|
|
482
|
+
➜ Local: http://localhost:5173/
|
|
483
|
+
|
|
484
|
+
# Send input to the process
|
|
485
|
+
> terminal_session send vite_server "rs\n" # Restart
|
|
486
|
+
|
|
487
|
+
# Stop when done
|
|
488
|
+
> terminal_session stop vite_server
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
## Task Tracking
|
|
492
|
+
|
|
493
|
+
DevOrch can track progress on complex tasks:
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
╭─────────── Tasks (2/4) ───────────╮
|
|
497
|
+
│ ✓ Create project structure │
|
|
498
|
+
│ ✓ Set up dependencies │
|
|
499
|
+
│ ● Installing packages │
|
|
500
|
+
│ ○ Run initial build │
|
|
501
|
+
╰───────────────────────────────────╯
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
Use `/tasks` to view current task list anytime.
|
|
505
|
+
|
|
506
|
+
## Config Files
|
|
507
|
+
|
|
508
|
+
DevOrch stores configuration in `~/.devorch/`:
|
|
509
|
+
|
|
510
|
+
```
|
|
511
|
+
~/.devorch/
|
|
512
|
+
├── config.yaml # Provider settings and default models
|
|
513
|
+
├── permissions.yaml # Tool permission rules
|
|
514
|
+
└── sessions.db # SQLite database for chat history
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
## Requirements
|
|
518
|
+
|
|
519
|
+
- Python 3.10+
|
|
520
|
+
- Dependencies:
|
|
521
|
+
- typer, rich, pydantic
|
|
522
|
+
- openai, anthropic, google-genai
|
|
523
|
+
- httpx, keyring, prompt_toolkit
|
|
524
|
+
- questionary, pyyaml, duckduckgo-search
|
|
525
|
+
|
|
526
|
+
## License
|
|
527
|
+
|
|
528
|
+
MIT
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
cli/main.py,sha256=ZPLieeimX_dhUNTpvfKJpbeF6I96QBrTuRBKLjCY5yA,59752
|
|
2
|
+
cli/commands/ask.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
cli/commands/edit.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
cli/commands/run.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
config/permissions.py,sha256=kB0yKLJQ3J5JJlY02MWV5gcs7_lBA1rvfmzfcSPlPCM,8546
|
|
6
|
+
config/profiles.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
config/settings.py,sha256=w5mkKjWG_y3wkI69oEdcz7pl4_xjZMOmpyuwL0Lfqs0,6526
|
|
8
|
+
core/agent.py,sha256=XolPmaEeJhoFbj2UkMGwdB0leFx04mLPqIACT7D2JVU,17484
|
|
9
|
+
core/context.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
core/executor.py,sha256=IbDz9Neb1uZcDx0bn7KTVRsJ_dKXx38BYuTVbkmxPZ0,7952
|
|
11
|
+
core/modes.py,sha256=LUe4wTSrtlETKQMMJMrUCi-URI7JHJR7P2FCsc_ExDQ,4710
|
|
12
|
+
core/planner.py,sha256=fpwU12d6dwCaQoXd2iB6arnuFBJkFYNqRdYJ08onV8I,324
|
|
13
|
+
core/sessions.py,sha256=R33JUlpTFUIRpRZdR9wGYaLM2XRQDj3ndYha4AOl9eU,8829
|
|
14
|
+
core/tasks.py,sha256=MG15rDwQpWNxdplMJSRdtTuMMha6zTCsk5eqdCrMunM,4484
|
|
15
|
+
providers/__init__.py,sha256=LAzZrt77LRhfPiK_BI7nkRibL90gDBsbYqcU3wXPm3w,4119
|
|
16
|
+
providers/anthropic.py,sha256=H7tMzTEEX9CADlOT9bmH0xzoyFErDrwPh3MYBQnBFu0,4764
|
|
17
|
+
providers/base.py,sha256=EJnFNymL4R8bA4jEhuZ4Gk1-ilpzfAm0vK5wSZ2oxEA,1194
|
|
18
|
+
providers/custom.py,sha256=xrAWriF64btcVLAHtHkSUQIFM6nQd1EvJXChWUrC3Yo,6411
|
|
19
|
+
providers/deepseek.py,sha256=jXrxpXlNgPB_R0FaXcmUvio4buY877ZyhF-k4af_-Qg,5628
|
|
20
|
+
providers/gemini.py,sha256=dSI0q5Oh__F99_HbX_qstu5d9tfjba2Vwvc5fXMsfuw,7605
|
|
21
|
+
providers/github_copilot.py,sha256=m2f912QkQnagNvejaqwHIM4ZpIL9n_1Rfv4vWKFqfLc,6505
|
|
22
|
+
providers/groq.py,sha256=HAe2tb-qJsjZmv6kOeBO4ArubbliYVZMJtRyJYNxnjI,4951
|
|
23
|
+
providers/kimi.py,sha256=dtggnoHiaV_RiCjH4OgSsLVK_eQc--NuVtc69IW5AAs,6020
|
|
24
|
+
providers/lmstudio.py,sha256=kcaDCSAZCA_9P2HOhv4Ih7Th4rL93zQtU0a9gQuJuqE,4720
|
|
25
|
+
providers/local.py,sha256=U8fLAHwjwKkPhFBHuV_jUyOi4xI20QKa3FgCR2V8-EQ,7382
|
|
26
|
+
providers/mistral.py,sha256=qc_0r4lZr-xTE4858tra0HlrvAy6Z6ilFmTgE0tJCbs,4942
|
|
27
|
+
providers/openai.py,sha256=XGIVwcPjgEFzCsWrDySr3Y4up4oRbrJbRkulfIXIYRI,3979
|
|
28
|
+
providers/openrouter.py,sha256=b5P6YtfWHJlujZRwjLwqT48yoRzSLe7IbMIVEmf-xi4,6689
|
|
29
|
+
providers/together.py,sha256=KXFjdFRarTOlxptevQw7sp8vKtKB92KTqE-MXZIHd3w,5264
|
|
30
|
+
schemas/message.py,sha256=8UuO5I4UuUqiTlrFNPQCxzw89jHDdMOgjm3lwEsfLBs,588
|
|
31
|
+
schemas/task.py,sha256=Wk8ekd1aTKHzof6o4g_AZQFVVff0ZxU5PeB9cMsBb44,3522
|
|
32
|
+
schemas/tool.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
tools/__init__.py,sha256=wB7JfVUA3JHOjXo-EZ9cy8bUpPNnfDDaVgU21kwXmLo,926
|
|
34
|
+
tools/base.py,sha256=8YuUX1nT03QKhXh8E6sf3rfYlX2DVDurypIo38bAvY4,995
|
|
35
|
+
tools/edit.py,sha256=R5B51X9kRU3iR1tIKNMfCwdnWbGmM7Wt18fwLObGTwc,9495
|
|
36
|
+
tools/filesystem.py,sha256=2xPats31mG3j7futGJwdTKp_obziCb1W75-iYfYpVAw,7983
|
|
37
|
+
tools/git.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
tools/grep.py,sha256=I-_1jkAqbuBCb3_MP5_kzeew392cB5k2PaNWNCYSvmI,8430
|
|
39
|
+
tools/search.py,sha256=jnH1C_UO47qtWJFyItR5OHf8emESa_nfZgt2eW280Wo,5063
|
|
40
|
+
tools/shell.py,sha256=aOvKl1nZsA3OkCMOgkOKPO7uK_5uzehnRZ1hvh6exKc,1736
|
|
41
|
+
tools/task.py,sha256=4QpfYGpZ3ormH47Fd_5tndINuCxW5WSGHyfc7OAX0p4,2972
|
|
42
|
+
tools/terminal.py,sha256=Jw8VvRZSS3rK78fW1pCfiB87xo9Y9YukwMCCf8KFPao,4846
|
|
43
|
+
tools/terminal_session.py,sha256=H4wyEyXmdwEbkHisNC2lB_gJtFbHHeSTHCDLSfRemLs,11245
|
|
44
|
+
tools/tests.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
+
tools/websearch.py,sha256=Pln5c87av3wADzk4YAEaCh5fHMHWFRt6ZdFQ8e_UW3g,5293
|
|
46
|
+
utils/logger.py,sha256=Nawi9zwKgcotPFbGsvtx5XzWLPEk1OjzAo_h1wx6kuQ,1540
|
|
47
|
+
devorch-0.1.2.dist-info/METADATA,sha256=FJFbBsLJK8iXY4GRByA4xKtRXZpz6I93SSXngkzQDXI,15399
|
|
48
|
+
devorch-0.1.2.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
49
|
+
devorch-0.1.2.dist-info/entry_points.txt,sha256=Au5QOywu9C7Az-rKrl0s2H4SbB2i-_2s5WcgCKMZQgw,42
|
|
50
|
+
devorch-0.1.2.dist-info/RECORD,,
|