by Blushyes
Open-source CLI coding agent, a free alternative to Claude Code. Generate, debug, and manage code seamlessly.
# Add to your Claude Code skills
git clone https://github.com/Blushyes/coro-codeA high-performance AI coding agent written in Rust with a rich terminal UI

Coro Code is a high-performance AI coding agent written in Rust with a rich terminal UI. Formerly known as Trae Agent Rust, it remains compatible with the original tool spec while focusing on speed, reliability, and great UX.
cargo install --git https://github.com/Blushyes/coro-code --bin coro
No comments yet. Be the first to share your thoughts!
# Interactive mode (recommended)
coro
# Single task
coro "Fix the bug in main.rs"
Option A: Environment variables
# OpenAI
export OPENAI_API_KEY="your_openai_api_key"
export OPENAI_MODEL="gpt-4o"
# Optional: Custom base URL and model for OpenAI-compatible APIs
export OPENAI_BASE_URL="https://api.deepseek.com"
export OPENAI_MODEL="deepseek-chat"
# Or use generic overrides for any protocol
export CORO_BASE_URL="https://api.custom.com"
export CORO_MODEL="custom-model"
Option B: Configuration file
Create a coro.json file:
{
"protocol": "openai",
"base_url": "https://api.deepseek.com",
"api_key": "your-api-key",
"model": "deepseek-chat",
"params": {
"max_tokens": 131072,
"temperature": 0.7,
"top_p": 0.9
}
}
# Interactive mode
coro
# Direct command
coro "Help me refactor this function"
# With specific config
coro --config custom.json "Analyze this codebase"
| Provider | Models | Status |
| ---------------- | ----------------------- | --------- |
| π’ OpenAI | gpt-4o, gpt-4o-mini | β
Ready |
| π‘ Anthropic | claude-3.5 family | π§ Coming |
| π΅ Google | gemini-1.5 family | π§ Coming |
| Variable | Description | Example |
| ----------------------- | ------------------------------------------ | ------------------------------------------- |
| OPENAI_API_KEY | OpenAI API key | sk-... |
| OPENAI_BASE_URL | Custom base URL for OpenAI-compatible APIs | https://api.deepseek.com |
| OPENAI_MODEL | Custom model for OpenAI-compatible APIs | gpt-4o, deepseek-chat |
| ANTHROPIC_API_KEY | Anthropic API key | sk-ant-... |
| ANTHROPIC_BASE_URL | Custom base URL for Anthropic API | https://api.anthropic.com |
| ANTHROPIC_MODEL | Custom model for Anthropic API | claude-3-5-sonnet-20241022 |
| GOOGLE_API_KEY | Google AI API key | AIza... |
| GOOGLE_BASE_URL | Custom base URL for Google AI API | https://generativelanguage.googleapis.com |
| GOOGLE_MODEL | Custom model for Google AI API | gemini-pro, gemini-1.5-pro |
| AZURE_OPENAI_API_KEY | Azure OpenAI API key | ... |
| AZURE_OPENAI_BASE_URL | Azure OpenAI endpoint | https://your-resource.openai.azure.com |
| AZURE_OPENAI_MODEL | Custom model for Azure OpenAI | gpt-4, gpt-35-turbo |
| CORO_BASE_URL | Generic base URL override (any protocol) | https://api.custom.com |
| CORO_PROTOCOL | Force specific protocol | openai, anthropic |
| CORO_MODEL | Generic model override (any protocol) | gpt-4o, claude-3-5-sonnet |
Status Legend: β Completed | π§ In Progress | π Planned
| Priority | Status | Feature | Description | | -------- | ------ | --------------------------------- | --------------------------------------------------------------------------------------------------------------- | | π₯ High | π§ | First-time Setup Management | Guided wizard (detect/create openai.json or env vars), API key validation, default models & examples | | π₯ High | β | Refactor Config Loading Logic | Unified priority (CLI args > env vars > JSON file), friendly error messages & diagnostics, optional hot reload | | π₯ High | π | Tool Call Permission System | Tool/command/directory whitelist, interactive confirmation, privilege escalation & sensitive operation warnings |
| Priority | Status | Feature | Description | | --------- | ------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------ | | π‘ Medium | π | CORO.md Custom Prompts Support | Project/subdirectory level overrides, scenario templates (bugfix/refactor/docs/test) | | π‘ Medium | π§ | UI Layout Optimization & Unification | Header/Status/Input style consistency, keyboard shortcuts & interaction consistency optimization | | π‘ Medium | π | Trajectory Replay & Export | Trajectory visualization, one-click replay, export to JSON/Markdown | | π¨ Low | π | Logo Design (gemini-cli style) | Visual identity design |
| Priority | Status | Feature | Description | | --------- | ------ | ---------------------------------- | ------------------------------------------------------------------------------------ | | π‘ Medium | π | Multi-model & Auto Routing | Auto model selection by task type, failure auto-downgrade & retry strategies | | π‘ Medium | π | Context Optimization & Caching | File summary caching, duplicate reference deduplication, token budget control | | π‘ Medium | β | Token Compression | Intelligent context compression, selective token reduction, adaptive context windows | | π΅ Low | π | MCP Extension Ecosystem | Common provider presets & templates, one-click start/stop external tools |
| Priority | Status | Feature | Description | | -------- | ------ | ------------------------------ | ----------------------------------------------------------------------------- | | π΅ Low | π | Core WASM Support | Browser/plugin environment ready, isomorphic tool interface & minimal runtime | | π΅ Low | π | Cross-platform Enhancement | macOS/Linux/Windows/WSL detail adaptation & stability improvements | | π΅ Low | π | Plugin Tool System | Third-party tool registration spec, version & dependency declaration |
| Priority | Status | Feature | Description | | --------- | ------ | ---------------------------- | ---------------------------------------------------------------------------- | | π‘ Medium | π | Security & Rate Limiting | Sandbox mode (restricted bash/network switches), concurrency & rate limiting | | π΅ Low | π | Testing & Benchmarks | End-to-end test cases, performance benchmarks & comparison reports |
The core supports exporting the conversation and execution context to JSON and restoring it later:
use coro_core::agent::{AgentBuilder, PersistedAgentContext};
// Export
let json = agent.export_context_json()?; // as JSON string
agent.export_context_to_file(".coro/context.json")?; // or to file
// Restore
agent.restore_context_from_json(&json)?; // from JSON
agent.restore_context_from_file(".coro/context.json")?; // or from file
// Work with the structured snapshot directly:
let snap = agent.export_context_snapshot()?;
let json2 = snap.to_json()?;
let snap2 = PersistedAgentContext::from_json(&json2)?;
agent.re