Multi-provider AI coding assistant CLI with 13+ providers
Project description
DevOrch
A multi-provider AI coding assistant CLI, similar to Claude Code and Gemini CLI.
Screenshots
| Startup | Chat |
|---|---|
| Provider Selection | Model Selection |
|---|---|
| Tool Execution | Terminal Session |
|---|---|
Features
- 13 AI Providers - OpenAI, Anthropic, Gemini, Groq, Mistral, Together AI, OpenRouter, GitHub Copilot, DeepSeek, Kimi, Ollama, LM Studio, and Custom
- Memory System - Persistent memory across conversations (user preferences, feedback, project context)
- MCP Support - Connect Model Context Protocol servers for extensible tools
- Skills System - Built-in and custom skills (
/commit,/review,/test,/fix,/explain,/simplify) - Terminal Sessions - Background processes with GUI option, persist across restarts
- Dynamic Model Listing - Fetches latest available models from provider APIs
- Secure API Key Storage - Uses system keychain (Windows, macOS, Linux)
- Session Persistence - SQLite-based chat history with resume capability
- Powerful Tools - Shell, terminal sessions, file operations, search, grep, code editing, web access, memory
- Interactive UI - Arrow-key navigation, numbered selections, bottom status bar, markdown responses
- Permission System - Configurable allow/deny rules with interactive prompts
- In-Chat Auth - Set or update API keys with
/authwithout restarting - Multiple Modes - Plan mode, Auto mode, and Ask mode
Installation
Option 1: Install with pipx (Recommended)
pip install pipx
pipx install devorch
Option 2: Install with pip
pip install devorch
Option 3: Install from source
git clone https://github.com/Amanbig/DevOrch.git
cd DevOrch
pip install -e .
Quick Start
# Start DevOrch (first run shows interactive setup)
devorch
# Specify a provider
devorch -p openai
devorch -p anthropic
devorch -p local # Ollama
Slash Commands
Navigation & Switching
| Command | Description |
|---|---|
/help |
Show all commands grouped by category |
/models |
Browse and switch models (interactive, numbered list) |
/model <name> |
Switch model (supports partial match, e.g. /model opus) |
/providers |
Browse and switch providers (interactive, numbered list) |
/provider <name> |
Switch provider directly |
/mode |
Switch between Plan/Auto/Ask modes |
/status |
Show provider, model, mode, memories, skills, MCP |
/auth [provider] |
Set or update API key for current or specified provider |
Memory
| Command | Description |
|---|---|
/memory |
Show all saved memories |
/remember <text> |
Save something to memory |
/forget |
Delete a memory (interactive) |
Memories persist across conversations in ~/.devorch/memory/. Types:
- user - Your role, preferences, expertise
- feedback - Corrections and guidance for the AI
- project - Project decisions, context, ongoing work
- reference - Links to external resources
Skills
| Command | Description |
|---|---|
/skills |
List all available skills |
/skill <name> |
Run a skill |
/commit |
Create a git commit with a descriptive message |
/review |
Review code changes for bugs and issues |
/test |
Run project tests and analyze results |
/fix |
Fix the last error or failing test |
/explain |
Explain the current project structure |
/simplify |
Simplify recent code changes |
Custom skills can be added as YAML files 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.
Session
| Command | Description |
|---|---|
/session |
Show current session info |
/history |
Show conversation history |
/clear |
Clear conversation history |
/compact |
Summarize and compact history |
/save |
Save conversation to file |
/undo |
Undo last message |
MCP
| Command | Description |
|---|---|
/mcp |
Show connected MCP servers and their tools |
MCP (Model Context Protocol)
Connect external tool servers via MCP. Configure in ~/.devorch/config.yaml:
mcp_servers:
filesystem:
command: npx
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: "ghp_xxx"
sqlite:
command: uvx
args: ["mcp-server-sqlite", "--db-path", "mydb.sqlite"]
MCP tools automatically appear alongside built-in tools and can be used by the AI.
Modes
- ASK (default) - Asks before each tool execution
- AUTO - Executes tools automatically (dangerous commands still blocked)
- PLAN - Shows plan before executing, asks for approval
Terminal Sessions
Unified terminal tool with optional GUI window. The AI can monitor output and send input.
> Start a dev server (headless, AI monitors)
> terminal_session start command="npm run dev"
✓ Session 'swift-fox-a3f2' started (PID 12345)
> Open a visible terminal (user can type, AI reads output)
> terminal_session start command="bash" gui=true
✓ Session 'calm-owl-b7e1' started in visible terminal
> Check output
> terminal_session read session_id="swift-fox-a3f2"
✓ [Session 'swift-fox-a3f2' — running]
> Stop it
> terminal_session stop session_id="swift-fox-a3f2"
✓ Session stopped.
Sessions are tracked in ~/.devorch/sessions/ and can be reconnected after restarting DevOrch.
Tool Permissions
Interactive permission system with arrow-key navigation:
? Choose an action:
» Allow once
Allow for this session
Always allow (save to config)
Deny
devorch permissions list # Show permissions
devorch permissions set shell allow # Always allow shell
devorch permissions allow shell "git *" # Allow git commands
devorch permissions deny shell "rm -rf *" # Block dangerous commands
Supported Providers
Cloud Providers
| Provider | Models | API Key |
|---|---|---|
| OpenAI | GPT-4o, GPT-4, o1 | OPENAI_API_KEY |
| Anthropic | Claude 4, Claude 3.5 | ANTHROPIC_API_KEY |
| Google Gemini | Gemini 2.0, 1.5 Pro/Flash | GOOGLE_API_KEY |
| Groq | Llama 3.3, Mixtral | GROQ_API_KEY |
| Mistral | Large, Codestral | MISTRAL_API_KEY |
| Together AI | Llama 3, Mixtral, Qwen | TOGETHER_API_KEY |
| OpenRouter | 100+ models | OPENROUTER_API_KEY |
| GitHub Copilot | GPT-4o, Claude 3.5 | GITHUB_TOKEN |
| DeepSeek | Chat, Coder, Reasoner | DEEPSEEK_API_KEY |
| Kimi (Moonshot) | 8K, 32K, 128K context | MOONSHOT_API_KEY |
Local & Self-Hosted
| Provider | Setup |
|---|---|
| Ollama | Install Ollama, run models locally |
| LM Studio | Install LM Studio, GUI for local models |
| Custom | Any OpenAI-compatible API (vLLM, TGI, llama.cpp) |
Tools
| Tool | Description |
|---|---|
| shell | Execute shell commands |
| terminal_session | Managed sessions with optional GUI (start, read, send, stop) |
| filesystem | Read, write, and list files |
| search | Find files by name patterns (glob) |
| grep | Search for text patterns in files |
| edit | Make targeted edits to existing files |
| task | Track progress on multi-step work |
| memory | Save/search persistent memories across conversations |
| websearch | Search the web (DuckDuckGo) |
| webfetch | Fetch content from a URL |
Configuration
API Keys
# From CLI
devorch set-key openai
devorch set-key anthropic
# From within chat
/auth openai
/auth anthropic
# Or use environment variables
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
export GOOGLE_API_KEY=...
export GROQ_API_KEY=gsk_...
Config File
~/.devorch/config.yaml:
default_provider: openai
providers:
openai:
default_model: gpt-4o
anthropic:
default_model: claude-sonnet-4-20250514
# MCP servers
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: "ghp_xxx"
Directory Structure
~/.devorch/
├── config.yaml # Provider settings, MCP servers
├── permissions.yaml # Tool permission rules
├── sessions.db # Chat history (SQLite)
├── memory/ # Persistent memories
│ ├── MEMORY.md # Memory index
│ ├── user_*.md # User profile memories
│ ├── feedback_*.md # Feedback memories
│ └── project_*.md # Project context memories
├── skills/ # Custom skill definitions
│ └── *.yaml # User-defined skills
└── sessions/ # Terminal session logs
├── registry.json # Session registry
└── *.log # Session output logs
Requirements
- Python 3.10+
- Dependencies: typer, rich, pydantic, openai, anthropic, google-genai, httpx, keyring, prompt_toolkit, questionary, pyyaml, duckduckgo-search
License
MIT
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.2.1.tar.gz.
File metadata
- Download URL: devorch-0.2.1.tar.gz
- Upload date:
- Size: 392.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fafe85e9b2df44de4b2732b398078a916436f2118e8709aad3d006b0f33546bd
|
|
| MD5 |
fb7664426b6a57c8bc58f5412a4cf83c
|
|
| BLAKE2b-256 |
10ad04a1b15b6d3be4edc1a8ea43528e755ea0358c3bebff32c0813611266b32
|
File details
Details for the file devorch-0.2.1-py3-none-any.whl.
File metadata
- Download URL: devorch-0.2.1-py3-none-any.whl
- Upload date:
- Size: 101.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c13dabfbb05d69d103c8bdbd74b253e84989cb85780d1b8111ca9a3bdd904032
|
|
| MD5 |
9cc71d23824200a94c13c325e9dfde00
|
|
| BLAKE2b-256 |
8c737c5e45e380d3b0c32ff7f06588382380cbf78a6b688f2afb84426cc56099
|