coro-code

by Blushyes (community) · OpenAI, Anthropic, OpenAI-совместимые API, macOS, Linux, Windows, Rust 1.70+

Assistant AI Assistants Open Source v0.0.8 · 30.10.2025 активный

Open-source CLI coding-агент, бесплатная альтернатива Claude Code — генерация, отладка и управление кодом.

v0.0.8
30.10.2025 current

Установка
cargo install --git https://github.com/Blushyes/coro-code --bin coro
показать оригинал переведено ИИ

🚀 Coro Code

Язык: English | 中文

Высокопроизводительный AI coding-агент на Rust с богатым терминальным UI

demo

Rust License


Coro Code — высокопроизводительный AI coding-агент на Rust с богатым терминальным UI. Ранее известен как Trae Agent Rust, сохраняет совместимость со спецификацией оригинального инструмента, фокусируясь на скорости, надёжности и удобстве использования.

✨ Ключевые особенности

  • 🚀 Высокая производительность: написан на Rust ради скорости и безопасности памяти
  • 🎨 Богатый терминальный UI: красивый интерактивный интерфейс с обновлением в реальном времени
  • 🔧 Простая конфигурация: поддержка нескольких LLM-провайдеров с гибкими настройками
  • 🛠️ Мощные инструменты: встроенное выполнение bash, файловые операции, расширяемая система инструментов
  • 🔄 Переменные окружения: полная поддержка API-ключей, base URL и конфигурации моделей
  • 📦 Кроссплатформенность: работает на macOS, Linux и Windows

🚀 Быстрый старт

📋 Требования

  • 🦀 Rust stable (1.70+)
  • 🔑 API-ключ (рекомендуется OpenAI; Anthropic/Google скоро)

📦 Установка

cargo install --git https://github.com/Blushyes/coro-code --bin coro

▶️ Запуск

# Интерактивный режим (рекомендуется)
coro

# Одиночная задача
coro "Fix the bug in main.rs"

Конфигурация

Вариант A: Переменные окружения

# OpenAI
export OPENAI_API_KEY="ваш_openai_api_ключ"
export OPENAI_MODEL="gpt-4o"

# Опционально: кастомный base URL и модель для OpenAI-совместимых API
export OPENAI_BASE_URL="https://api.deepseek.com"
export OPENAI_MODEL="deepseek-chat"

# Либо общие переопределения для любого протокола
export CORO_BASE_URL="https://api.custom.com"
export CORO_MODEL="custom-model"

Вариант B: Файл конфигурации

Создайте файл coro.json:

{
  "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
  }
}

Использование

# Интерактивный режим
coro

# Прямая команда
coro "Help me refactor this function"

# С конкретной конфигурацией
coro --config custom.json "Analyze this codebase"

🤖 Поддерживаемые модели

Провайдер Модели Статус
🟢 OpenAI gpt-4o, gpt-4o-mini ✅ Готово
🟡 Anthropic семейство claude-3.5 🚧 Скоро
🔵 Google семейство gemini-1.5 🚧 Скоро

🔧 Справочник переменных окружения

Переменная Описание Пример
OPENAI_API_KEY API-ключ OpenAI sk-...
OPENAI_BASE_URL Кастомный base URL для OpenAI-совместимых API https://api.deepseek.com
OPENAI_MODEL Кастомная модель для OpenAI-совместимых API gpt-4o, deepseek-chat
ANTHROPIC_API_KEY API-ключ Anthropic sk-ant-...
ANTHROPIC_BASE_URL Кастомный base URL для Anthropic API https://api.anthropic.com
ANTHROPIC_MODEL Кастомная модель для Anthropic API claude-3-5-sonnet-20241022
GOOGLE_API_KEY API-ключ Google AI AIza...
GOOGLE_BASE_URL Кастомный base URL для Google AI API https://generativelanguage.googleapis.com
GOOGLE_MODEL Кастомная модель для Google AI API gemini-pro, gemini-1.5-pro
AZURE_OPENAI_API_KEY API-ключ Azure OpenAI ...
AZURE_OPENAI_BASE_URL Эндпоинт Azure OpenAI https://your-resource.openai.azure.com
AZURE_OPENAI_MODEL Кастомная модель для Azure OpenAI gpt-4, gpt-35-turbo
CORO_BASE_URL Общее переопределение base URL (любой протокол) https://api.custom.com
CORO_PROTOCOL Принудительный протокол openai, anthropic
CORO_MODEL Общее переопределение модели (любой протокол) gpt-4o, claude-3-5-sonnet

🗺️ Roadmap

Легенда статусов: ✅ Завершено | 🚧 В работе | 📋 Запланировано

🚀 Фаза 1: Базовый опыт

Приоритет Статус Функция Описание
🔥 Высокий 🚧 Управление первичной настройкой Мастер настройки (обнаружение/создание openai.json или env-переменных), валидация ключей, модели/примеры по умолчанию
🔥 Высокий ✅ Рефакторинг загрузки конфига Единый приоритет (CLI-аргументы > env > JSON-файл), дружелюбные ошибки и диагностика, опциональная горячая перезагрузка
🔥 Высокий 📋 Система прав вызова инструментов Белый список инструментов/команд/директорий, интерактивное подтверждение, предупреждения об эскалации привилегий

🎨 Фаза 2: Улучшение UX

Приоритет Статус Функция Описание
🟡 Средний 📋 Поддержка кастомных промптов CORO.md Переопределения на уровне проекта/подпапки, шаблоны сценариев (bugfix/refactor/docs/test)
🟡 Средний 🚧 Оптимизация и унификация UI Единый стиль Header/Status/Input, оптимизация горячих клавиш и взаимодействия
🟡 Средний 📋 Воспроизведение и экспорт траекторий Визуализация траекторий, воспроизведение в один клик, экспорт в JSON/Markdown
🎨 Низкий 📋 Дизайн логотипа (в стиле gemini-cli) Визуальная идентичность

🤖 Фаза 3: Интеллект и производительность

Приоритет Статус Функция Описание
🟡 Средний 📋 Мульти-модели и авто-роутинг Автовыбор модели по типу задачи, авто-даунгрейд и повтор при сбое
🟡 Средний 📋 Оптимизация и кеширование контекста Кеширование сводок файлов, дедупликация повторяющихся ссылок, контроль бюджета токенов
🟡 Средний ✅ Сжатие токенов Интеллектуальное сжатие контекста, выборочное сокращение токенов, адаптивные окна контекста
🔵 Низкий 📋 Экосистема расширений MCP Готовые пресеты и шаблоны провайдеров, запуск/остановка внешних инструментов в один клик

🌐 Фаза 4: Платформа и экосистема

Приоритет Статус Функция Описание
🔵 Низкий 📋 Поддержка core WASM Готовность к среде браузера/плагина, изоморфный интерфейс инструментов, минимальный рантайм
🔵 Низкий 📋 Улучшение кроссплатформенности Доработка деталей macOS/Linux/Windows/WSL, повышение стабильности
🔵 Низкий 📋 Система плагинов-инструментов Спецификация регистрации сторонних инструментов, декларация версий и зависимостей

🛡️ Фаза 5: Безопасность и качество

Приоритет Статус Функция Описание
🟡 Средний 📋 Безопасность и rate limiting Sandbox-режим (ограничения bash/сети), контроль конкурентности и rate limiting
🔵 Низкий 📋 Тестирование и бенчмарки End-to-end тест-кейсы, бенчмарки производительности и сравнительные отчёты

🛠️ Разработка

Экспорт/восстановление контекста (персистентность)

Ядро поддерживает экспорт диалога и контекста выполнения в JSON и последующее восстановление:

use coro_core::agent::{AgentBuilder, PersistedAgentContext};

// Экспорт
let json = agent.export_context_json()?;                    // как JSON-строка
agent.export_context_to_file(".coro/context.json")?;       // или в файл

// Восстановление
agent.restore_context_from_json(&json)?;                    // из JSON
agent.restore_context_from_file(".coro/context.json")?;    // или из файла

// Работа со структурированным снапшотом напрямую:
let snap = agent.export_context_snapshot()?;
let json2 = snap.to_json()?;
let snap2 = PersistedAgentContext::from_json(&json2)?;
agent.restore_context_from_snapshot(snap2)?;

Примечания:

  • Снапшот содержит conversation_history, AgentExecutionContext и опционально AgentConfig.
  • При восстановлении применяется сохранённая конфигурация (если есть); недостающие пары tool-result обрабатываются автоматически при следующем выполнении.
  • Не нужно вручную повторно вставлять системный промпт — агент делает это по необходимости.

Pre-commit хуки

Настоятельно рекомендуется настроить pre-commit хуки для поддержания качества кода. В репозитории есть скрипты для автоматической установки хуков, запускающих форматирование, линтинг и тесты перед каждым коммитом.

Выберите скрипт для своей платформы:

# Linux/macOS
./scripts/setup-pre-commit-hooks.sh

# Windows PowerShell
.\scripts\setup-pre-commit-hooks.ps1

# Windows Command Prompt
scripts\setup-pre-commit-hooks.bat

Pre-commit хук автоматически запускает:

  • Форматирование кода (cargo fmt --check)
  • Линтинг (cargo clippy)
  • Тесты (cargo test)

Подробнее — в scripts/README.md.

Контрибьютинг

  1. Сделайте форк репозитория
  2. Создайте feature-ветку
  3. Настройте pre-commit хуки (рекомендуется)
  4. Внесите изменения
  5. Убедитесь, что все тесты проходят
  6. Отправьте pull request

📄 Лицензия

Двойное лицензирование на выбор:

🙏 Благодарности

  • Trae Agent за оригинальную реализацию на Python и спецификацию
  • iocraft за прекрасный фреймворк терминального UI
  • OpenAI, Anthropic и Google за API моделей
  • Сообществу Rust за потрясающую экосистему

Сделано с ❤️ на Rust

Войдите, чтобы оставить комментарий