Multi-provider AI coding assistant CLI with 13+ providers
Project description
DevOrch
A multi-provider AI coding assistant CLI — like Claude Code and Gemini CLI, but open source.
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.
Screenshots
| Startup | Chat |
|---|---|
| Provider Selection | Model Selection |
|---|---|
| Tool Execution | Terminal Session |
|---|---|
Why DevOrch?
- Provider freedom — Switch between OpenAI, Anthropic, Gemini, Mistral, Groq, and 8 more providers (including local models) with a single command. No vendor lock-in.
- Actually does things — Runs shell commands, edits files, manages background processes, searches the web. Not just a chatbot.
- Remembers you — Persistent memory system stores your preferences, project context, and feedback across conversations.
- Extensible — Add custom skills as YAML files, connect MCP servers for additional tools, configure permissions per-tool.
Quick Start
Install
# Recommended
pipx install devorch
# Or with pip
pip install devorch
# Or from source
git clone https://github.com/Amanbig/DevOrch.git
cd DevOrch && pip install -e .
Run
devorch # Interactive setup on first run
devorch -p openai # Use a specific provider
devorch -p local # Use Ollama (local models)
devorch --resume abc123 # Resume a previous session
# Non-interactive (scripting / CI)
devorch ask "explain this project"
devorch ask --skill commit
devorch run review "focus on security"
devorch edit src/auth.py "add input validation"
On first run, DevOrch walks you through provider selection and API key setup.
Features
13+ AI Providers
| Cloud | Local / Self-Hosted |
|---|---|
| OpenAI (GPT-4o, o1) | Ollama (Llama, Mistral, CodeLlama) |
| Anthropic (Claude 4, 3.5) | LM Studio (any GGUF model) |
| Google Gemini (2.0, 1.5 Pro) | Custom (vLLM, TGI, llama.cpp) |
| Groq (ultra-fast Llama, Mixtral) | |
| Mistral (Large, Codestral) | |
| Together AI, OpenRouter, GitHub Copilot, DeepSeek, Kimi |
Switch anytime with /providers (interactive) or /provider <name> (direct).
Built-in Tools
DevOrch can act on your system, not just talk about it:
| Tool | What it does |
|---|---|
shell |
Execute commands (git status, npm install, etc.) |
terminal_session |
Managed background processes with optional GUI window |
filesystem |
Read, write, list files |
search / grep |
Find files and search contents |
edit |
Targeted find-and-replace edits |
task |
Track progress on multi-step work |
memory |
Persistent memory across conversations |
websearch / webfetch |
Search the web, fetch URLs |
Memory System
DevOrch remembers context across conversations:
/remember I prefer TypeScript over JavaScript
/remember This project uses PostgreSQL, not MySQL
/memory # View all saved memories
/forget # Delete a memory interactively
Memory types: user (preferences), feedback (corrections), project (context), reference (external links).
Skills
Reusable prompt templates for common workflows. Use them in chat or directly from the CLI:
# In chat
/commit # Generate a descriptive git commit
/review # Review code changes for bugs
/test # Run tests and analyze results
/fix # Fix the last error
/explain # Explain project structure
/simplify # Simplify recent code changes
# From the terminal (non-interactive)
devorch run commit
devorch run review "focus on auth module"
devorch run test
devorch skills # List all available skills
Add your own in ~/.devorch/skills/:
# ~/.devorch/skills/deploy.yaml
name: deploy
description: Deploy to production
prompt: |
Run the deploy script and verify it succeeds.
Check the deploy logs for any errors.
Terminal Sessions
Background processes that persist across DevOrch restarts:
# Headless — AI monitors output
> terminal_session start command="npm run dev"
Session 'swift-fox-a3f2' started (PID 12345)
# With GUI — user gets a visible terminal, AI can still read output
> terminal_session start command="bash" gui=true
Session 'calm-owl-b7e1' started in visible terminal
# Check output / send input / stop
> terminal_session read session_id="swift-fox-a3f2"
> terminal_session send session_id="swift-fox-a3f2" input="rs\n"
> terminal_session stop session_id="swift-fox-a3f2"
MCP (Model Context Protocol)
Extend DevOrch with external tool servers:
# ~/.devorch/config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: "ghp_xxx"
filesystem:
command: npx
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
MCP tools appear alongside built-in tools automatically.
Manage MCP servers live in chat:
/mcp # Show connected servers and their tools
/mcp add github npx -y @modelcontextprotocol/server-github
/mcp start github # Reconnect a server from config
/mcp stop github # Disconnect and remove its tools
Filter MCP servers per CLI run:
devorch ask --mcp github "review open PRs" # Use only the github server
devorch ask --mcp github --mcp filesystem "..." # Use specific servers
devorch run commit --no-mcp # Skip MCP entirely
Modes
| Mode | Behavior |
|---|---|
| ASK (default) | Asks permission before each tool execution |
| AUTO | Executes tools automatically (dangerous commands still blocked) |
| PLAN | Shows a plan before executing, asks for approval |
Permission System
Fine-grained control over what DevOrch can do:
devorch permissions list # View current rules
devorch permissions set shell allow # Always allow shell
devorch permissions allow shell "git *" # Allow specific patterns
devorch permissions deny shell "rm -rf *" # Block dangerous commands
Or use /auth in-chat to set API keys without restarting.
Non-Interactive CLI Commands
DevOrch works as a scriptable CLI too — no REPL needed:
# Ask a one-shot question
devorch ask "what does this codebase do?"
devorch ask --skill review "focus on security"
devorch ask --mode plan "refactor the auth module"
# Run a skill directly (shorthand for ask --skill)
devorch run commit
devorch run test "only unit tests"
devorch run review --no-mcp
# Edit a file with an instruction
devorch edit src/auth.py "add input validation to login"
devorch edit README.md "update the installation section"
devorch edit app/models.py "add created_at field" --mcp sqlite
# List available skills
devorch skills
All non-interactive commands support --provider, --model, --mode, --mcp, and --no-mcp.
All Slash Commands
| Command | Description |
|---|---|
/help |
Show all commands |
/models |
Browse and switch models (interactive) |
/model <name> |
Switch model (partial match supported) |
/providers |
Browse and switch providers (interactive) |
/provider <name> |
Switch provider directly |
/mode |
Switch mode (Plan/Auto/Ask) |
/status |
Show current config |
/auth [provider] |
Set/update API key |
/memory |
Show saved memories |
/remember <text> |
Save to memory |
/forget |
Delete a memory |
/skills |
List available skills |
/skill <name> |
Run a skill |
/commit /review /test /fix /explain /simplify |
Skill shortcuts |
/session |
Session info |
/history |
Conversation history |
/clear |
Clear history |
/compact |
Summarize history |
/save |
Save to file |
/undo |
Undo last message |
/mcp |
Show MCP server status |
/mcp add <name> <cmd> [args] |
Connect a new MCP server mid-session |
/mcp start <name> |
Reconnect a server from config |
/mcp stop <name> |
Disconnect a server and remove its tools |
/config |
Show configuration |
/permissions |
Show permissions |
/tasks |
Show task list |
Configuration
API Keys
# Secure keychain storage
devorch set-key openai
devorch set-key anthropic
# Or in-chat
/auth openai
# Or environment variables
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
export GOOGLE_API_KEY=...
export GROQ_API_KEY=gsk_...
export MISTRAL_API_KEY=...
export OPENROUTER_API_KEY=sk-or-...
export TOGETHER_API_KEY=...
export GITHUB_TOKEN=ghp_...
export DEEPSEEK_API_KEY=sk-...
export MOONSHOT_API_KEY=sk-...
Config File
# ~/.devorch/config.yaml
default_provider: openai
providers:
openai:
default_model: gpt-4o
anthropic:
default_model: claude-sonnet-4-20250514
custom_vllm:
default_model: meta-llama/Meta-Llama-3-70B-Instruct
base_url: http://localhost:8000/v1
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: "ghp_xxx"
Directory Layout
~/.devorch/
├── config.yaml # Provider settings, MCP servers
├── permissions.yaml # Tool permission rules
├── sessions.db # Chat history (SQLite)
├── memory/ # Persistent memories
│ ├── MEMORY.md
│ └── *.md
├── skills/ # Custom skill definitions
│ └── *.yaml
└── sessions/ # Terminal session logs
├── registry.json
└── *.log
Contributing
Contributions are welcome! Here's how to get started:
# Clone and install in development mode
git clone https://github.com/Amanbig/DevOrch.git
cd DevOrch
pip install -e ".[dev]"
# Run linting
ruff check .
ruff format .
# Run tests
pytest
Guidelines
- Run
ruff check .andruff format .before submitting - Add tests for new features
- Keep PRs focused — one feature or fix per PR
- Update the README if adding user-facing features
Project Structure
DevOrch/
├── cli/
│ ├── main.py # App wiring, REPL, sessions/config commands
│ ├── constants.py # VERSION, banners, slash-command registry, styles
│ └── commands/
│ ├── _shared.py # Shared helpers (agent builder, tool setup, etc.)
│ ├── ask.py # devorch ask
│ ├── run.py # devorch run
│ └── edit.py # devorch edit
├── core/ # Agent, executor, memory, MCP, skills, modes
├── config/ # Settings, permissions
├── providers/ # AI provider implementations
├── tools/ # Built-in tools (shell, edit, search, etc.)
├── schemas/ # Pydantic models
├── utils/ # Logging, display helpers
└── tests/ # Test suite
Roadmap
- Streaming responses
- Multi-file context awareness
- Plugin marketplace
- VS Code extension
- Agent-to-agent delegation
Requirements
- Python 3.10+
- Works on Linux, macOS, and Windows
License
Built by Aman — star the repo if you find it useful!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file devorch-0.3.0.tar.gz.
File metadata
- Download URL: devorch-0.3.0.tar.gz
- Upload date:
- Size: 399.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3b10f9ee215e8d018a03b80e734fe7880282ab75458db2db46428305f3b3839
|
|
| MD5 |
93834336a61c16f617cfb00fe1e168ee
|
|
| BLAKE2b-256 |
97bfb63263653c26bbaadd562ecf44bb3679045abcbe5e43e9b71a8187ff087c
|
File details
Details for the file devorch-0.3.0-py3-none-any.whl.
File metadata
- Download URL: devorch-0.3.0-py3-none-any.whl
- Upload date:
- Size: 112.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b9372382c7ad48e459adc9c1d20330c9132bd83799bff00659588a9c783b77e
|
|
| MD5 |
e39d7bbf54eaf88cb1410e03267c81f8
|
|
| BLAKE2b-256 |
f9feb562de9728eed30ffc684a859662cc83e819306c95041906f833fda0ebc5
|