devorch 0.2.1__tar.gz → 0.3.0__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.
- devorch-0.3.0/LICENSE +21 -0
- devorch-0.3.0/PKG-INFO +456 -0
- devorch-0.3.0/README.md +414 -0
- devorch-0.3.0/cli/commands/_shared.py +270 -0
- devorch-0.3.0/cli/commands/ask.py +68 -0
- devorch-0.3.0/cli/commands/edit.py +52 -0
- devorch-0.3.0/cli/commands/run.py +59 -0
- devorch-0.3.0/cli/constants.py +161 -0
- {devorch-0.2.1 → devorch-0.3.0}/cli/main.py +172 -339
- {devorch-0.2.1 → devorch-0.3.0}/core/agent.py +48 -69
- {devorch-0.2.1 → devorch-0.3.0}/core/executor.py +7 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/mcp.py +32 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/modes.py +6 -8
- {devorch-0.2.1 → devorch-0.3.0}/pyproject.toml +1 -1
- devorch-0.3.0/tools/agent.py +105 -0
- devorch-0.2.1/PKG-INFO +0 -363
- devorch-0.2.1/README.md +0 -322
- devorch-0.2.1/cli/commands/ask.py +0 -0
- devorch-0.2.1/cli/commands/edit.py +0 -0
- devorch-0.2.1/cli/commands/run.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/.github/workflows/ci.yml +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/.github/workflows/publish.yml +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/.gitignore +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/assets/chat.png +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/assets/models.png +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/assets/providers.png +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/assets/startup.png +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/assets/terminal.png +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/assets/tools.png +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/config/permissions.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/config/profiles.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/config/settings.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/context.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/memory.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/planner.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/sessions.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/skills.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/core/tasks.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/__init__.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/anthropic.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/base.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/custom.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/deepseek.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/gemini.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/github_copilot.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/groq.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/kimi.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/lmstudio.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/local.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/mistral.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/openai.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/openrouter.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/providers/together.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/schemas/message.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/schemas/task.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/schemas/tool.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tests/__init__.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tests/test_core.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tests/test_integration.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tests/test_permissions.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tests/test_schemas.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tests/test_tools.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/__init__.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/base.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/edit.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/filesystem.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/git.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/grep.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/search.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/shell.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/task.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/terminal_session.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/tests.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/tools/websearch.py +0 -0
- {devorch-0.2.1 → devorch-0.3.0}/utils/logger.py +0 -0
devorch-0.3.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Amanpreet Singh
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
devorch-0.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devorch
|
|
3
|
+
Version: 0.3.0
|
|
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
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: ai,anthropic,assistant,claude,cli,coding,copilot,deepseek,gemini,gpt,kimi,llm,llmstudio,mistral,openai,openrouter,together
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Topic :: Utilities
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Requires-Dist: anthropic>=0.25.8
|
|
24
|
+
Requires-Dist: duckduckgo-search>=6.0.0
|
|
25
|
+
Requires-Dist: google-genai>=1.0.0
|
|
26
|
+
Requires-Dist: httpx>=0.27.0
|
|
27
|
+
Requires-Dist: keyring>=25.0.0
|
|
28
|
+
Requires-Dist: openai>=1.28.0
|
|
29
|
+
Requires-Dist: prompt-toolkit>=3.0.0
|
|
30
|
+
Requires-Dist: pydantic>=2.7.1
|
|
31
|
+
Requires-Dist: pyyaml>=6.0
|
|
32
|
+
Requires-Dist: questionary>=2.0.0
|
|
33
|
+
Requires-Dist: rich>=13.7.1
|
|
34
|
+
Requires-Dist: typer>=0.12.3
|
|
35
|
+
Provides-Extra: dev
|
|
36
|
+
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<h1 align="center">DevOrch</h1>
|
|
45
|
+
<p align="center">
|
|
46
|
+
A multi-provider AI coding assistant CLI — like Claude Code and Gemini CLI, but open source.
|
|
47
|
+
</p>
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
<p align="center">
|
|
51
|
+
<a href="https://pypi.org/project/devorch/"><img src="https://img.shields.io/pypi/v/devorch?color=blue&label=PyPI" alt="PyPI"></a>
|
|
52
|
+
<a href="https://pypi.org/project/devorch/"><img src="https://img.shields.io/pypi/pyversions/devorch" alt="Python"></a>
|
|
53
|
+
<a href="https://github.com/Amanbig/DevOrch/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Amanbig/DevOrch" alt="License"></a>
|
|
54
|
+
<a href="https://github.com/Amanbig/DevOrch/stargazers"><img src="https://img.shields.io/github/stars/Amanbig/DevOrch?style=social" alt="Stars"></a>
|
|
55
|
+
</p>
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
DevOrch gives you a coding assistant in your terminal that can execute shell commands, edit files, search your codebase, manage terminal sessions, and remember context across conversations — powered by any of 13+ AI providers or your own local models.
|
|
60
|
+
|
|
61
|
+
## Screenshots
|
|
62
|
+
|
|
63
|
+
| Startup | Chat |
|
|
64
|
+
|---------|------|
|
|
65
|
+
|  |  |
|
|
66
|
+
|
|
67
|
+
| Provider Selection | Model Selection |
|
|
68
|
+
|--------------------|-----------------|
|
|
69
|
+
|  |  |
|
|
70
|
+
|
|
71
|
+
| Tool Execution | Terminal Session |
|
|
72
|
+
|----------------|-----------------|
|
|
73
|
+
|  |  |
|
|
74
|
+
|
|
75
|
+
## Why DevOrch?
|
|
76
|
+
|
|
77
|
+
- **Provider freedom** — Switch between OpenAI, Anthropic, Gemini, Mistral, Groq, and 8 more providers (including local models) with a single command. No vendor lock-in.
|
|
78
|
+
- **Actually does things** — Runs shell commands, edits files, manages background processes, searches the web. Not just a chatbot.
|
|
79
|
+
- **Remembers you** — Persistent memory system stores your preferences, project context, and feedback across conversations.
|
|
80
|
+
- **Extensible** — Add custom skills as YAML files, connect MCP servers for additional tools, configure permissions per-tool.
|
|
81
|
+
|
|
82
|
+
## Quick Start
|
|
83
|
+
|
|
84
|
+
### Install
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Recommended
|
|
88
|
+
pipx install devorch
|
|
89
|
+
|
|
90
|
+
# Or with pip
|
|
91
|
+
pip install devorch
|
|
92
|
+
|
|
93
|
+
# Or from source
|
|
94
|
+
git clone https://github.com/Amanbig/DevOrch.git
|
|
95
|
+
cd DevOrch && pip install -e .
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Run
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
devorch # Interactive setup on first run
|
|
102
|
+
devorch -p openai # Use a specific provider
|
|
103
|
+
devorch -p local # Use Ollama (local models)
|
|
104
|
+
devorch --resume abc123 # Resume a previous session
|
|
105
|
+
|
|
106
|
+
# Non-interactive (scripting / CI)
|
|
107
|
+
devorch ask "explain this project"
|
|
108
|
+
devorch ask --skill commit
|
|
109
|
+
devorch run review "focus on security"
|
|
110
|
+
devorch edit src/auth.py "add input validation"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
On first run, DevOrch walks you through provider selection and API key setup.
|
|
114
|
+
|
|
115
|
+
## Features
|
|
116
|
+
|
|
117
|
+
### 13+ AI Providers
|
|
118
|
+
|
|
119
|
+
| Cloud | Local / Self-Hosted |
|
|
120
|
+
|-------|---------------------|
|
|
121
|
+
| OpenAI (GPT-4o, o1) | Ollama (Llama, Mistral, CodeLlama) |
|
|
122
|
+
| Anthropic (Claude 4, 3.5) | LM Studio (any GGUF model) |
|
|
123
|
+
| Google Gemini (2.0, 1.5 Pro) | Custom (vLLM, TGI, llama.cpp) |
|
|
124
|
+
| Groq (ultra-fast Llama, Mixtral) | |
|
|
125
|
+
| Mistral (Large, Codestral) | |
|
|
126
|
+
| Together AI, OpenRouter, GitHub Copilot, DeepSeek, Kimi | |
|
|
127
|
+
|
|
128
|
+
Switch anytime with `/providers` (interactive) or `/provider <name>` (direct).
|
|
129
|
+
|
|
130
|
+
### Built-in Tools
|
|
131
|
+
|
|
132
|
+
DevOrch can act on your system, not just talk about it:
|
|
133
|
+
|
|
134
|
+
| Tool | What it does |
|
|
135
|
+
|------|-------------|
|
|
136
|
+
| `shell` | Execute commands (`git status`, `npm install`, etc.) |
|
|
137
|
+
| `terminal_session` | Managed background processes with optional GUI window |
|
|
138
|
+
| `filesystem` | Read, write, list files |
|
|
139
|
+
| `search` / `grep` | Find files and search contents |
|
|
140
|
+
| `edit` | Targeted find-and-replace edits |
|
|
141
|
+
| `task` | Track progress on multi-step work |
|
|
142
|
+
| `memory` | Persistent memory across conversations |
|
|
143
|
+
| `websearch` / `webfetch` | Search the web, fetch URLs |
|
|
144
|
+
|
|
145
|
+
### Memory System
|
|
146
|
+
|
|
147
|
+
DevOrch remembers context across conversations:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
/remember I prefer TypeScript over JavaScript
|
|
151
|
+
/remember This project uses PostgreSQL, not MySQL
|
|
152
|
+
/memory # View all saved memories
|
|
153
|
+
/forget # Delete a memory interactively
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Memory types: **user** (preferences), **feedback** (corrections), **project** (context), **reference** (external links).
|
|
157
|
+
|
|
158
|
+
### Skills
|
|
159
|
+
|
|
160
|
+
Reusable prompt templates for common workflows. Use them in chat or directly from the CLI:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# In chat
|
|
164
|
+
/commit # Generate a descriptive git commit
|
|
165
|
+
/review # Review code changes for bugs
|
|
166
|
+
/test # Run tests and analyze results
|
|
167
|
+
/fix # Fix the last error
|
|
168
|
+
/explain # Explain project structure
|
|
169
|
+
/simplify # Simplify recent code changes
|
|
170
|
+
|
|
171
|
+
# From the terminal (non-interactive)
|
|
172
|
+
devorch run commit
|
|
173
|
+
devorch run review "focus on auth module"
|
|
174
|
+
devorch run test
|
|
175
|
+
|
|
176
|
+
devorch skills # List all available skills
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Add your own in `~/.devorch/skills/`:
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
# ~/.devorch/skills/deploy.yaml
|
|
183
|
+
name: deploy
|
|
184
|
+
description: Deploy to production
|
|
185
|
+
prompt: |
|
|
186
|
+
Run the deploy script and verify it succeeds.
|
|
187
|
+
Check the deploy logs for any errors.
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Terminal Sessions
|
|
191
|
+
|
|
192
|
+
Background processes that persist across DevOrch restarts:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Headless — AI monitors output
|
|
196
|
+
> terminal_session start command="npm run dev"
|
|
197
|
+
Session 'swift-fox-a3f2' started (PID 12345)
|
|
198
|
+
|
|
199
|
+
# With GUI — user gets a visible terminal, AI can still read output
|
|
200
|
+
> terminal_session start command="bash" gui=true
|
|
201
|
+
Session 'calm-owl-b7e1' started in visible terminal
|
|
202
|
+
|
|
203
|
+
# Check output / send input / stop
|
|
204
|
+
> terminal_session read session_id="swift-fox-a3f2"
|
|
205
|
+
> terminal_session send session_id="swift-fox-a3f2" input="rs\n"
|
|
206
|
+
> terminal_session stop session_id="swift-fox-a3f2"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### MCP (Model Context Protocol)
|
|
210
|
+
|
|
211
|
+
Extend DevOrch with external tool servers:
|
|
212
|
+
|
|
213
|
+
```yaml
|
|
214
|
+
# ~/.devorch/config.yaml
|
|
215
|
+
mcp_servers:
|
|
216
|
+
github:
|
|
217
|
+
command: npx
|
|
218
|
+
args: ["-y", "@modelcontextprotocol/server-github"]
|
|
219
|
+
env:
|
|
220
|
+
GITHUB_TOKEN: "ghp_xxx"
|
|
221
|
+
filesystem:
|
|
222
|
+
command: npx
|
|
223
|
+
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
MCP tools appear alongside built-in tools automatically.
|
|
227
|
+
|
|
228
|
+
**Manage MCP servers live in chat:**
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
/mcp # Show connected servers and their tools
|
|
232
|
+
/mcp add github npx -y @modelcontextprotocol/server-github
|
|
233
|
+
/mcp start github # Reconnect a server from config
|
|
234
|
+
/mcp stop github # Disconnect and remove its tools
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Filter MCP servers per CLI run:**
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
devorch ask --mcp github "review open PRs" # Use only the github server
|
|
241
|
+
devorch ask --mcp github --mcp filesystem "..." # Use specific servers
|
|
242
|
+
devorch run commit --no-mcp # Skip MCP entirely
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Modes
|
|
246
|
+
|
|
247
|
+
| Mode | Behavior |
|
|
248
|
+
|------|----------|
|
|
249
|
+
| **ASK** (default) | Asks permission before each tool execution |
|
|
250
|
+
| **AUTO** | Executes tools automatically (dangerous commands still blocked) |
|
|
251
|
+
| **PLAN** | Shows a plan before executing, asks for approval |
|
|
252
|
+
|
|
253
|
+
### Permission System
|
|
254
|
+
|
|
255
|
+
Fine-grained control over what DevOrch can do:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
devorch permissions list # View current rules
|
|
259
|
+
devorch permissions set shell allow # Always allow shell
|
|
260
|
+
devorch permissions allow shell "git *" # Allow specific patterns
|
|
261
|
+
devorch permissions deny shell "rm -rf *" # Block dangerous commands
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Or use `/auth` in-chat to set API keys without restarting.
|
|
265
|
+
|
|
266
|
+
## Non-Interactive CLI Commands
|
|
267
|
+
|
|
268
|
+
DevOrch works as a scriptable CLI too — no REPL needed:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Ask a one-shot question
|
|
272
|
+
devorch ask "what does this codebase do?"
|
|
273
|
+
devorch ask --skill review "focus on security"
|
|
274
|
+
devorch ask --mode plan "refactor the auth module"
|
|
275
|
+
|
|
276
|
+
# Run a skill directly (shorthand for ask --skill)
|
|
277
|
+
devorch run commit
|
|
278
|
+
devorch run test "only unit tests"
|
|
279
|
+
devorch run review --no-mcp
|
|
280
|
+
|
|
281
|
+
# Edit a file with an instruction
|
|
282
|
+
devorch edit src/auth.py "add input validation to login"
|
|
283
|
+
devorch edit README.md "update the installation section"
|
|
284
|
+
devorch edit app/models.py "add created_at field" --mcp sqlite
|
|
285
|
+
|
|
286
|
+
# List available skills
|
|
287
|
+
devorch skills
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
All non-interactive commands support `--provider`, `--model`, `--mode`, `--mcp`, and `--no-mcp`.
|
|
291
|
+
|
|
292
|
+
## All Slash Commands
|
|
293
|
+
|
|
294
|
+
| Command | Description |
|
|
295
|
+
|---------|-------------|
|
|
296
|
+
| `/help` | Show all commands |
|
|
297
|
+
| `/models` | Browse and switch models (interactive) |
|
|
298
|
+
| `/model <name>` | Switch model (partial match supported) |
|
|
299
|
+
| `/providers` | Browse and switch providers (interactive) |
|
|
300
|
+
| `/provider <name>` | Switch provider directly |
|
|
301
|
+
| `/mode` | Switch mode (Plan/Auto/Ask) |
|
|
302
|
+
| `/status` | Show current config |
|
|
303
|
+
| `/auth [provider]` | Set/update API key |
|
|
304
|
+
| `/memory` | Show saved memories |
|
|
305
|
+
| `/remember <text>` | Save to memory |
|
|
306
|
+
| `/forget` | Delete a memory |
|
|
307
|
+
| `/skills` | List available skills |
|
|
308
|
+
| `/skill <name>` | Run a skill |
|
|
309
|
+
| `/commit` `/review` `/test` `/fix` `/explain` `/simplify` | Skill shortcuts |
|
|
310
|
+
| `/session` | Session info |
|
|
311
|
+
| `/history` | Conversation history |
|
|
312
|
+
| `/clear` | Clear history |
|
|
313
|
+
| `/compact` | Summarize history |
|
|
314
|
+
| `/save` | Save to file |
|
|
315
|
+
| `/undo` | Undo last message |
|
|
316
|
+
| `/mcp` | Show MCP server status |
|
|
317
|
+
| `/mcp add <name> <cmd> [args]` | Connect a new MCP server mid-session |
|
|
318
|
+
| `/mcp start <name>` | Reconnect a server from config |
|
|
319
|
+
| `/mcp stop <name>` | Disconnect a server and remove its tools |
|
|
320
|
+
| `/config` | Show configuration |
|
|
321
|
+
| `/permissions` | Show permissions |
|
|
322
|
+
| `/tasks` | Show task list |
|
|
323
|
+
|
|
324
|
+
## Configuration
|
|
325
|
+
|
|
326
|
+
### API Keys
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# Secure keychain storage
|
|
330
|
+
devorch set-key openai
|
|
331
|
+
devorch set-key anthropic
|
|
332
|
+
|
|
333
|
+
# Or in-chat
|
|
334
|
+
/auth openai
|
|
335
|
+
|
|
336
|
+
# Or environment variables
|
|
337
|
+
export OPENAI_API_KEY=sk-...
|
|
338
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
339
|
+
export GOOGLE_API_KEY=...
|
|
340
|
+
export GROQ_API_KEY=gsk_...
|
|
341
|
+
export MISTRAL_API_KEY=...
|
|
342
|
+
export OPENROUTER_API_KEY=sk-or-...
|
|
343
|
+
export TOGETHER_API_KEY=...
|
|
344
|
+
export GITHUB_TOKEN=ghp_...
|
|
345
|
+
export DEEPSEEK_API_KEY=sk-...
|
|
346
|
+
export MOONSHOT_API_KEY=sk-...
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Config File
|
|
350
|
+
|
|
351
|
+
```yaml
|
|
352
|
+
# ~/.devorch/config.yaml
|
|
353
|
+
default_provider: openai
|
|
354
|
+
|
|
355
|
+
providers:
|
|
356
|
+
openai:
|
|
357
|
+
default_model: gpt-4o
|
|
358
|
+
anthropic:
|
|
359
|
+
default_model: claude-sonnet-4-20250514
|
|
360
|
+
custom_vllm:
|
|
361
|
+
default_model: meta-llama/Meta-Llama-3-70B-Instruct
|
|
362
|
+
base_url: http://localhost:8000/v1
|
|
363
|
+
|
|
364
|
+
mcp_servers:
|
|
365
|
+
github:
|
|
366
|
+
command: npx
|
|
367
|
+
args: ["-y", "@modelcontextprotocol/server-github"]
|
|
368
|
+
env:
|
|
369
|
+
GITHUB_TOKEN: "ghp_xxx"
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Directory Layout
|
|
373
|
+
|
|
374
|
+
```
|
|
375
|
+
~/.devorch/
|
|
376
|
+
├── config.yaml # Provider settings, MCP servers
|
|
377
|
+
├── permissions.yaml # Tool permission rules
|
|
378
|
+
├── sessions.db # Chat history (SQLite)
|
|
379
|
+
├── memory/ # Persistent memories
|
|
380
|
+
│ ├── MEMORY.md
|
|
381
|
+
│ └── *.md
|
|
382
|
+
├── skills/ # Custom skill definitions
|
|
383
|
+
│ └── *.yaml
|
|
384
|
+
└── sessions/ # Terminal session logs
|
|
385
|
+
├── registry.json
|
|
386
|
+
└── *.log
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Contributing
|
|
390
|
+
|
|
391
|
+
Contributions are welcome! Here's how to get started:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
# Clone and install in development mode
|
|
395
|
+
git clone https://github.com/Amanbig/DevOrch.git
|
|
396
|
+
cd DevOrch
|
|
397
|
+
pip install -e ".[dev]"
|
|
398
|
+
|
|
399
|
+
# Run linting
|
|
400
|
+
ruff check .
|
|
401
|
+
ruff format .
|
|
402
|
+
|
|
403
|
+
# Run tests
|
|
404
|
+
pytest
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### Guidelines
|
|
408
|
+
|
|
409
|
+
- Run `ruff check .` and `ruff format .` before submitting
|
|
410
|
+
- Add tests for new features
|
|
411
|
+
- Keep PRs focused — one feature or fix per PR
|
|
412
|
+
- Update the README if adding user-facing features
|
|
413
|
+
|
|
414
|
+
### Project Structure
|
|
415
|
+
|
|
416
|
+
```
|
|
417
|
+
DevOrch/
|
|
418
|
+
├── cli/
|
|
419
|
+
│ ├── main.py # App wiring, REPL, sessions/config commands
|
|
420
|
+
│ ├── constants.py # VERSION, banners, slash-command registry, styles
|
|
421
|
+
│ └── commands/
|
|
422
|
+
│ ├── _shared.py # Shared helpers (agent builder, tool setup, etc.)
|
|
423
|
+
│ ├── ask.py # devorch ask
|
|
424
|
+
│ ├── run.py # devorch run
|
|
425
|
+
│ └── edit.py # devorch edit
|
|
426
|
+
├── core/ # Agent, executor, memory, MCP, skills, modes
|
|
427
|
+
├── config/ # Settings, permissions
|
|
428
|
+
├── providers/ # AI provider implementations
|
|
429
|
+
├── tools/ # Built-in tools (shell, edit, search, etc.)
|
|
430
|
+
├── schemas/ # Pydantic models
|
|
431
|
+
├── utils/ # Logging, display helpers
|
|
432
|
+
└── tests/ # Test suite
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
## Roadmap
|
|
436
|
+
|
|
437
|
+
- [ ] Streaming responses
|
|
438
|
+
- [ ] Multi-file context awareness
|
|
439
|
+
- [ ] Plugin marketplace
|
|
440
|
+
- [ ] VS Code extension
|
|
441
|
+
- [ ] Agent-to-agent delegation
|
|
442
|
+
|
|
443
|
+
## Requirements
|
|
444
|
+
|
|
445
|
+
- Python 3.10+
|
|
446
|
+
- Works on Linux, macOS, and Windows
|
|
447
|
+
|
|
448
|
+
## License
|
|
449
|
+
|
|
450
|
+
[MIT](LICENSE)
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
<p align="center">
|
|
455
|
+
Built by <a href="https://github.com/Amanbig">Aman</a> — star the repo if you find it useful!
|
|
456
|
+
</p>
|