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.
Files changed (75) hide show
  1. devorch-0.3.0/LICENSE +21 -0
  2. devorch-0.3.0/PKG-INFO +456 -0
  3. devorch-0.3.0/README.md +414 -0
  4. devorch-0.3.0/cli/commands/_shared.py +270 -0
  5. devorch-0.3.0/cli/commands/ask.py +68 -0
  6. devorch-0.3.0/cli/commands/edit.py +52 -0
  7. devorch-0.3.0/cli/commands/run.py +59 -0
  8. devorch-0.3.0/cli/constants.py +161 -0
  9. {devorch-0.2.1 → devorch-0.3.0}/cli/main.py +172 -339
  10. {devorch-0.2.1 → devorch-0.3.0}/core/agent.py +48 -69
  11. {devorch-0.2.1 → devorch-0.3.0}/core/executor.py +7 -0
  12. {devorch-0.2.1 → devorch-0.3.0}/core/mcp.py +32 -0
  13. {devorch-0.2.1 → devorch-0.3.0}/core/modes.py +6 -8
  14. {devorch-0.2.1 → devorch-0.3.0}/pyproject.toml +1 -1
  15. devorch-0.3.0/tools/agent.py +105 -0
  16. devorch-0.2.1/PKG-INFO +0 -363
  17. devorch-0.2.1/README.md +0 -322
  18. devorch-0.2.1/cli/commands/ask.py +0 -0
  19. devorch-0.2.1/cli/commands/edit.py +0 -0
  20. devorch-0.2.1/cli/commands/run.py +0 -0
  21. {devorch-0.2.1 → devorch-0.3.0}/.github/workflows/ci.yml +0 -0
  22. {devorch-0.2.1 → devorch-0.3.0}/.github/workflows/publish.yml +0 -0
  23. {devorch-0.2.1 → devorch-0.3.0}/.gitignore +0 -0
  24. {devorch-0.2.1 → devorch-0.3.0}/assets/chat.png +0 -0
  25. {devorch-0.2.1 → devorch-0.3.0}/assets/models.png +0 -0
  26. {devorch-0.2.1 → devorch-0.3.0}/assets/providers.png +0 -0
  27. {devorch-0.2.1 → devorch-0.3.0}/assets/startup.png +0 -0
  28. {devorch-0.2.1 → devorch-0.3.0}/assets/terminal.png +0 -0
  29. {devorch-0.2.1 → devorch-0.3.0}/assets/tools.png +0 -0
  30. {devorch-0.2.1 → devorch-0.3.0}/config/permissions.py +0 -0
  31. {devorch-0.2.1 → devorch-0.3.0}/config/profiles.py +0 -0
  32. {devorch-0.2.1 → devorch-0.3.0}/config/settings.py +0 -0
  33. {devorch-0.2.1 → devorch-0.3.0}/core/context.py +0 -0
  34. {devorch-0.2.1 → devorch-0.3.0}/core/memory.py +0 -0
  35. {devorch-0.2.1 → devorch-0.3.0}/core/planner.py +0 -0
  36. {devorch-0.2.1 → devorch-0.3.0}/core/sessions.py +0 -0
  37. {devorch-0.2.1 → devorch-0.3.0}/core/skills.py +0 -0
  38. {devorch-0.2.1 → devorch-0.3.0}/core/tasks.py +0 -0
  39. {devorch-0.2.1 → devorch-0.3.0}/providers/__init__.py +0 -0
  40. {devorch-0.2.1 → devorch-0.3.0}/providers/anthropic.py +0 -0
  41. {devorch-0.2.1 → devorch-0.3.0}/providers/base.py +0 -0
  42. {devorch-0.2.1 → devorch-0.3.0}/providers/custom.py +0 -0
  43. {devorch-0.2.1 → devorch-0.3.0}/providers/deepseek.py +0 -0
  44. {devorch-0.2.1 → devorch-0.3.0}/providers/gemini.py +0 -0
  45. {devorch-0.2.1 → devorch-0.3.0}/providers/github_copilot.py +0 -0
  46. {devorch-0.2.1 → devorch-0.3.0}/providers/groq.py +0 -0
  47. {devorch-0.2.1 → devorch-0.3.0}/providers/kimi.py +0 -0
  48. {devorch-0.2.1 → devorch-0.3.0}/providers/lmstudio.py +0 -0
  49. {devorch-0.2.1 → devorch-0.3.0}/providers/local.py +0 -0
  50. {devorch-0.2.1 → devorch-0.3.0}/providers/mistral.py +0 -0
  51. {devorch-0.2.1 → devorch-0.3.0}/providers/openai.py +0 -0
  52. {devorch-0.2.1 → devorch-0.3.0}/providers/openrouter.py +0 -0
  53. {devorch-0.2.1 → devorch-0.3.0}/providers/together.py +0 -0
  54. {devorch-0.2.1 → devorch-0.3.0}/schemas/message.py +0 -0
  55. {devorch-0.2.1 → devorch-0.3.0}/schemas/task.py +0 -0
  56. {devorch-0.2.1 → devorch-0.3.0}/schemas/tool.py +0 -0
  57. {devorch-0.2.1 → devorch-0.3.0}/tests/__init__.py +0 -0
  58. {devorch-0.2.1 → devorch-0.3.0}/tests/test_core.py +0 -0
  59. {devorch-0.2.1 → devorch-0.3.0}/tests/test_integration.py +0 -0
  60. {devorch-0.2.1 → devorch-0.3.0}/tests/test_permissions.py +0 -0
  61. {devorch-0.2.1 → devorch-0.3.0}/tests/test_schemas.py +0 -0
  62. {devorch-0.2.1 → devorch-0.3.0}/tests/test_tools.py +0 -0
  63. {devorch-0.2.1 → devorch-0.3.0}/tools/__init__.py +0 -0
  64. {devorch-0.2.1 → devorch-0.3.0}/tools/base.py +0 -0
  65. {devorch-0.2.1 → devorch-0.3.0}/tools/edit.py +0 -0
  66. {devorch-0.2.1 → devorch-0.3.0}/tools/filesystem.py +0 -0
  67. {devorch-0.2.1 → devorch-0.3.0}/tools/git.py +0 -0
  68. {devorch-0.2.1 → devorch-0.3.0}/tools/grep.py +0 -0
  69. {devorch-0.2.1 → devorch-0.3.0}/tools/search.py +0 -0
  70. {devorch-0.2.1 → devorch-0.3.0}/tools/shell.py +0 -0
  71. {devorch-0.2.1 → devorch-0.3.0}/tools/task.py +0 -0
  72. {devorch-0.2.1 → devorch-0.3.0}/tools/terminal_session.py +0 -0
  73. {devorch-0.2.1 → devorch-0.3.0}/tools/tests.py +0 -0
  74. {devorch-0.2.1 → devorch-0.3.0}/tools/websearch.py +0 -0
  75. {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
+ | ![Startup](https://raw.githubusercontent.com/Amanbig/DevOrch/main/assets/startup.png) | ![Chat](https://raw.githubusercontent.com/Amanbig/DevOrch/main/assets/chat.png) |
66
+
67
+ | Provider Selection | Model Selection |
68
+ |--------------------|-----------------|
69
+ | ![Providers](https://raw.githubusercontent.com/Amanbig/DevOrch/main/assets/providers.png) | ![Models](https://raw.githubusercontent.com/Amanbig/DevOrch/main/assets/models.png) |
70
+
71
+ | Tool Execution | Terminal Session |
72
+ |----------------|-----------------|
73
+ | ![Tools](https://raw.githubusercontent.com/Amanbig/DevOrch/main/assets/tools.png) | ![Terminal](https://raw.githubusercontent.com/Amanbig/DevOrch/main/assets/terminal.png) |
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>