opendev

App Listed

Open-Source Coding Agent in the terminal

Checked · Sources

Downloads
740
Dependents
Not applicable
Stars
853
Forks
89
Contributors
6
Commits
865
Latest release
0.1.4 ·

About

From the project README ·

OpenDev Logo

Open-source AI coding agent that spawns parallel agents, each bound to the LLM of your choice.

Website and documentation coming soon!

OpenDev Demo


Introduction

OpenDev is an open-source, terminal-native coding agent built as a compound AI system. Instead of a single monolithic LLM, it uses a structured ensemble of agents and workflows -- each independently bound to a user-configured model.

Work is organized into concurrent sessions composed of specialized sub-agents. Each agent executes typed workflows (Execution, Thinking, Compaction) that independently bind to an LLM, enabling fine-grained cost, latency, and capability trade-offs per workflow.

OpenDev automatically routes each phase of work to the right model. Five workflow slots — Normal (execution), Thinking (reasoning), Compact (context summarization), Self-Critique (output verification), and VLM (vision) — each bind independently to any LLM you configure. For example, Claude Opus handles execution, GPT-o3 handles reasoning, and a lightweight Qwen model handles compaction — all routed automatically. Together, these form a compound AI system where multiple models collaborate, each optimized for its role.

Read the full README

OpenDev is written in Rust — it starts in 4.3 ms, uses just 9.4 MB of memory, and ships as a single 18 MB binary. That makes it the fastest and lightest coding agent available today — up to 128x faster startup and 30x less memory than alternatives.

AgentStartup (mean ± σ)Peak Memory (median)Install Size
OpenDev 0.1.44.3 ms ± 0.4 ms9.4 MB18 MB
Codex 0.116.037.8 ms ± 0.8 ms (9x)43.7 MB (4.6x)116 MB
Claude Code 2.1.8787.3 ms ± 2.0 ms (20x)214.6 MB (22.8x)188 MB
OpenCode 1.2.27557.4 ms ± 31.8 ms (128x)285.9 MB (30.4x)90 MB

macOS ARM64 (Apple Silicon) · Startup: hyperfine --shell=none --warmup 10 --runs 100 · Memory: /usr/bin/time -l median of 20 runs · Multipliers relative to OpenDev

OpenDev Compound AI Architecture


Why OpenDev?
  • Blazing fast, ultra lightweight. 4.3 ms startup, 9.4 MB RAM, 18 MB on disk. Written in Rust with zero interpreter overhead — it launches before other agents finish loading their runtime.
  • Proactive, not reactive. OpenDev can plan, execute, and iterate autonomously. Kick off a refactoring, walk away, and come back to a PR ready for review.
  • Multi-provider, multi-model. Assign different models from different providers to every workflow and session, all running in parallel. Your models, your rules.
  • TUI + Web UI. A full terminal UI for power users and a Web UI for visual monitoring. The Web UI supports remote sessions, so you can start a task from your phone and let OpenDev work while you sleep.

⚡ Agent Fleet — Parallel Execution at Scale

OpenDev Agent Fleet

A fleet of agents, each independently exploring a different crate — all running concurrently in a single session.

Need to survey an entire codebase? Refactor across 20 crates? Run a dozen tool calls at once? Spawn a fleet.

OpenDev's agent fleet launches multiple sub-agents in parallel, each with its own LLM binding, context window, and tool access. Because the runtime is written in Rust with fully async I/O, there is zero interpreter overhead — agents fan out across your workspace and converge results back in seconds, not minutes.

You                          OpenDev Fleet
 │                           ┌─ Agent 1 → crate/agents
 │   "survey all crates"     ├─ Agent 2 → crate/http
 │ ─────────────────────►    ├─ Agent 3 → crate/tui
 │                           ├─ Agent 4 → crate/tools
 │                           ├─  ...
 │   ◄── aggregated results  └─ Agent N → crate/config
  • Concurrent, not sequential. Every agent runs its own async task — no GIL, no queue, no waiting.
  • Rust-native performance. Near-zero overhead per agent. Memory-safe parallelism via Tokio.
  • Independent LLM bindings. Each agent in the fleet can target a different model or provider.

Installation
From crates.io (all platforms)
cargo install opendev-cli
macOS
# Homebrew (recommended)
brew install opendev-to/tap/opendev

# Shell installer
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/opendev-to/opendev/releases/latest/download/opendev-cli-installer.sh | sh

# Or download the binary directly from GitHub Releases:
#   opendev-cli-aarch64-apple-darwin.tar.xz  (Apple Silicon)
#   opendev-cli-x86_64-apple-darwin.tar.xz   (Intel)
Linux
# Shell installer (x86_64 and ARM64)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/opendev-to/opendev/releases/latest/download/opendev-cli-installer.sh | sh

# Or download the binary directly from GitHub Releases:
#   opendev-cli-x86_64-unknown-linux-gnu.tar.xz   (x86_64)
#   opendev-cli-aarch64-unknown-linux-gnu.tar.xz   (ARM64 / Raspberry Pi)
Windows
# PowerShell installer
powershell -ExecutionPolicy ByPass -c "irm https://github.com/opendev-to/opendev/releases/latest/download/opendev-cli-installer.ps1 | iex"

# Or download opendev-cli-x86_64-pc-windows-msvc.zip from GitHub Releases
From source (all platforms)

Requires Rust 1.94+.

git clone https://github.com/opendev-to/opendev.git
cd opendev
cargo build --release -p opendev-cli
# Binary at target/release/opendev (or opendev.exe on Windows)

If you use the repo for development, you may also have a local symlink at ~/.local/bin/opendev pointing at target/release/opendev. That can take precedence over the Homebrew binary in /opt/homebrew/bin/opendev.

To test a Homebrew install from a clean shell state:

rm -f ~/.local/bin/opendev
hash -r
brew uninstall opendev
brew untap opendev-to/tap
brew tap opendev-to/tap
brew install opendev-to/tap/opendev
which opendev
opendev --version

See DEVELOPMENT.md for the full local development and Homebrew testing workflow.

All release binaries, checksums, and installers are available on the GitHub Releases page.

Supported platforms
PlatformArchitectureBinary
macOSApple Silicon (M1+)opendev-cli-aarch64-apple-darwin.tar.xz
macOSIntelopendev-cli-x86_64-apple-darwin.tar.xz
Linuxx86_64opendev-cli-x86_64-unknown-linux-gnu.tar.xz
LinuxARM64opendev-cli-aarch64-unknown-linux-gnu.tar.xz
Windowsx86_64opendev-cli-x86_64-pc-windows-msvc.zip
Verify installation
opendev --version

If Homebrew reports Not a valid ref: refs/remotes/origin/main while auto-updating the tap, remove the stale local tap clone and retry:

brew untap opendev-to/tap
brew tap opendev-to/tap
brew install opendev-to/tap/opendev
Quick Start
# Set an API key (OpenAI, Anthropic, or Fireworks -- any one will do)
export OPENAI_API_KEY="sk-..."
# export ANTHROPIC_API_KEY="sk-ant-..."
# export FIREWORKS_API_KEY="fw_..."

# Start the interactive TUI
opendev

# Or start the Web UI
opendev run ui

# Single prompt (non-interactive)
opendev -p "explain this codebase"

# Resume most recent session
opendev --continue

Prefer a guided walkthrough? Run opendev config setup to interactively choose providers, models, and workflow bindings.

See the Provider Setup Guide for all 9 supported providers, authentication details, and advanced configuration.

OpenDev Web UI

Multi-Provider Support

OpenDev supports 9 LLM providers: OpenAI, Anthropic, Fireworks, Google, Groq, Mistral, DeepInfra, OpenRouter, and Azure OpenAI.

Each provider's models can be independently assigned to 5 workflow slots:

  • Normal -- Primary execution model for coding tasks and tool calls
  • Thinking -- Complex reasoning and planning (falls back to Normal)
  • Compact -- Context summarization when history grows long (falls back to Normal)
  • Critique -- Self-critique of agent reasoning (falls back to Thinking)
  • VLM -- Vision/image processing (falls back to Normal if it supports vision)

Mix and match providers per slot in ~/.opendev/settings.json:

{
  "model_provider": "anthropic",
  "model": "claude-sonnet-4-20250514",
  "model_thinking_provider": "openai",
  "model_thinking": "o3"
}

See the Provider Setup Guide for the full list of env vars, fallback chains, and configuration options.

OpenDev also works fully offline against local OpenAI-compatible endpoints (Ollama, LM Studio, llama-server): set OPENDEV_DISABLE_REMOTE_MODELS=1 to skip the models.dev catalog fetch and point OPENDEV_API_BASE_URL (or api_base_url in settings) at your local endpoint. See Offline and Air-Gapped Use.

MCP Integration

Dynamic tool discovery via the Model Context Protocol for connecting to external tools and data sources.

opendev mcp list
opendev mcp add myserver uvx mcp-server-sqlite
opendev mcp enable/disable myserver
Development
git clone https://github.com/opendev-to/opendev.git
cd opendev
cargo build --workspace
cargo test --workspace
cargo check --workspace       # Type check
cargo clippy --workspace      # Lint
cargo fmt --all               # Format
cargo test -p opendev-cli     # Test a specific crate

Detailed local-dev, symlink, Homebrew, and release-testing notes are in DEVELOPMENT.md.

Web UI

The frontend is a React/Vite app in web-ui/:

cd web-ui && npm ci && npm run build
Contributing

If you're interested in contributing to OpenDev, please open an issue or submit a pull request.

See the Roadmap for current priorities and areas where community contributions are most welcome.


How OpenDev Compares
  • vs. Claude Code / Codex CLI / Gemini CLI: Closed-source tools that lock you into a single provider. OpenDev is fully open source and lets you mix models from any provider, independently bound per workflow (execution, thinking, critique, compaction, vision).
  • vs. OpenCode: OpenCode is a great open-source coding agent with TUI, Web UI, and LSP support. However, its architecture is not modular enough to support per-workflow model binding, concurrent multi-agent sessions, or compound AI orchestration.
  • vs. OpenClaw: OpenDev and OpenClaw share similar concepts around autonomous AI agents. The key difference is focus: OpenDev is purpose-built for the software development lifecycle, with context engineering, structured agent workflows, and deep code understanding.

Star History
Runs on
GPU support unknown
What shows it
  • no dependency or feature matches a backend row
Native code
None found
  • No native code found
Python bindings
No Python binding crate found
License
MIT

Compare with similar projects

Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.

opendev beside the projects that share a topic with it
ProjectDownloadsDependentsStarsLatest releaseRuns on (GPU)Native codeLicense
opendev This page App Listed

Open-Source Coding Agent in the terminal

740 binary downloads per release Not applicable 853 0.1.4 GPU support unknown No native code found MIT

Core protocol types and traits for the Agent Client Protocol

941,949 downloads over 30 days 145 245 5.0.0 GPU support unknown No native code found Apache-2.0
goose App Featured

an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

63,795 binary downloads per release Not applicable 56,377 Not measured Not measured Apache-2.0
octomind App Listed

Open-source AI coding agent and agent runtime: one binary, any model, MCP-native. Runs in terminal, CI, or as a daemon — guardrails in scripts, not approval popups.

110 binary downloads per release Not applicable 624 0.69.0 GPU support unknown Binds native code: zstd-sys Apache-2.0
pi-rust App Listed

Rust-native, library-first coding-agent runtime and terminal CLI inspired by Pi, with composable LLM providers, tools, sessions, and plugin ABI

16 binary downloads per release Not applicable 231 Not measured Not measured MIT
axp App Listed

An open protocol that gives AI agents a secure, sandboxed place to run code and use tools — with lean context usage. AXP works alongside MCP

Not measured Not applicable 3 Not measured Not measured Not measured Apache-2.0
codewhale App New

Terminal UI for open-source and open-weight coding models

19,483 binary downloads per release Not applicable 41,158 0.10.2 GPU support unknown Binds native code: aws-lc-rs, ring, liblzma-sys, libsqlite3-sys, rquickjs-sys and 1 more MIT
Why ListedNo archive, New or Featured rule places it, so it is Listed.

What it lacks for Featured

  • The check holds no value for Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days. A gate that lacks its signal does not pass.

What else the check found

  • The last activity is on 8 Aug 2026, 93 days ago. The rules expect an update within 365 days. Dormancy rule

Not measured: Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days.

Check notes

  • the latest release was packaged from a dirty working tree

Exact rules: Listed, Featured app. The check on applied thresholds version 9.

Every rule outcome, as the check records it
  • expected-interval: app: E = 365 days
  • dormancy: last activity 2026-08-08, 93 days ago, E = 365: active
  • featured: not featured: unknown homebrew_on_request_365d, repology_families, docker_pull_growth_90d
  • listed: listed: no archive, new or featured rule applies

Measurements and sources

Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.

Sources6 sources
Adoption740 binary downloads per release4 not measured
Adoption measurements
SignalValueSourceFetchedCounts
Active dependentsNot measuredYes
New dependents (365 days)Not measuredYes
Peak active dependentsNot measuredYes
Active dependents as a share of the peakNot measuredYes
Binary downloads per release740GitHub releasesYes
MaintenanceLatest human commit: 3 months ago4 not measured
Maintenance measurements
SignalValueSourceFetchedCounts
Latest human commit2026-08-08GitHub repositoryYes
Latest release2026-07-10GitHub releasesYes
First release2026-03-29crates.io database dumpYes
Latest version0.1.4crates.io database dumpNo
Days the oldest outside issue waits for a reply240GitHub repositoryYes
Maintainer replies over 365 days0GitHub repositoryYes
Repository archivedfalseGitHub repositoryYes
Repository gonefalseGitHub repositoryYes
Release commit or manifest in the repotruecrates.io packageNo
Published docsNot measuredYes
Latest release fails cargo checkNot measuredYes
Build check dateNot measuredYes
Build check toolchainNot measuredYes
SecurityNot measured
Security measurements
SignalValueSourceFetchedCounts
Unpatched vulnerabilities past the grace windowNot measuredYes
RustSec unmaintained advisoryNot measuredYes
Deprecation noticeNot measuredYes
Deprecated requirementNot measuredYes
Distribution1 releases, 1 downloads over 30 days6 not measured
Distribution measurements
SignalValueSourceFetchedCounts
Releases1crates.io database dumpNo
Downloads over 30 days1crates.io database dumpNo
Binary downloads over the last 3 releases2221GitHub releasesYes
Homebrew installs on request over 365 daysNot measuredYes
Repology repository familiesNot measuredYes
Docker pull growth over 90 daysNot measuredYes
Docker pulls at the growth baselineNot measuredYes
Every version a prereleasefalsecrates.io database dumpYes
Every version 0.0.xfalsecrates.io database dumpYes
Every version yankedNot measuredYes
Crate deleted from crates.ioNot measuredYes
Repository853 stars, 89 forks, 6 contributors, 865 commits. Stars alone never qualify a project.
Repository measurements
SignalValueSourceFetchedCounts
GitHub stars853GitHub repositoryYes — one part of the repository route
GitHub forks89GitHub repositoryYes — one part of the repository route
Contributors with a GitHub account6GitHub contributorsYes — one part of the repository route
Commits on the default branch865GitHub repositoryNo
Repository's main crate left out of the entrynonecrates.io database dumpYes
Facts that never count
Facts that never count measurements
SignalValueSourceFetchedCounts
LicenseMITcrates.io database dumpNo
Runs on, from listed crates and their direct dependenciesGPU support unknowncrates.io database dumpNo
What shows each backendno dependency or feature matches a backend rowcrates.io database dumpNo
Native code, from listed crates and their dependenciesNo native code foundcrates.io database dumpNo
Python bindings, from direct dependencies of listed cratesNo Python binding crate foundcrates.io database dumpNo
Crates that depend on a listed crate directlyNot measuredNo

Corrections and review history

Report a correction

No correction applies to this entry.

Judgments

A judgment enters only through an approved issue and a merged pull request.

No judgment applies to this entry.