Codewhale

Модель может быть чьей угодно. Агент должен быть вашим.

Codewhale — агент для программирования с открытым исходным кодом для вашего терминала, написанный на Rust. Он работает с любой моделью, умеет разделить одну задачу между несколькими агентами, и каждую его строку можно прочитать. ```bash curl -fsSL https://codewhale.net/install.sh | sh ``` Эта команда устанавливает последний выпуск на macOS или Linux, и учётная запись не нужна. [Windows, npm и Cargo](#установка) описаны ниже. [![Latest release](https://img.shields.io/github/v/release/codewhale-hq/Codewhale?label=release)](https://github.com/codewhale-hq/Codewhale/releases/latest) [![CI](https://github.com/codewhale-hq/Codewhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/Codewhale/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](../../LICENSE) [![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/37gfS3ksug) [Сайт](https://codewhale.net) · [Документация](../README.md) · [Журнал изменений](../../CHANGELOG.md) · [Участие](../../CONTRIBUTING.md) [English](../../README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Українська](README.uk.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [繁體中文](README.zh-TW.md) · [हिन्दी](README.hi.md) · [Türkçe](README.tr.md) · [Italiano](README.it.md) · [Polski](README.pl.md) · [العربية](README.ar.md) · [Català](README.ca.md) Этот перевод — машинный черновик, ещё не проверенный носителями языка. Codewhale в терминале после демонстрационной задачи. Он сообщает, что добавил флаг --json в export.py, что все 3 локальных теста прошли и что делегированная проверка не нашла проблем. Список задач ниже показывает три выполненных шага, а строка состояния — Full Access и локального провайдера website-demo. Сборка разработки версии 0.10.3, которая ещё не выпущена, со сценарной тестовой моделью, в режиме Full Access в одноразовом рабочем пространстве. Правка, три теста и проверка субагентом выполнялись по-настоящему.
## Установка Команда выше помещает проверенный по контрольной сумме `codewhale` и его короткий псевдоним `codew` в `~/.local/bin`. Если после этого оболочка пишет `command not found`, следуйте подсказке про PATH, которую выводит установщик ([подробнее](../INSTALL.md#put-it-on-your-path)). `codewhale update` обновляет его. ```bash winget install --id HunterBown.CodeWhale --exact --source winget # Windows x64 npm install -g codewhale # wraps the same release binaries cargo install codewhale-cli --locked # builds from source; can trail GitHub Releases ``` Готовые бинарные файлы есть для Linux, macOS и Windows на x64 и arm64. Scoop, Nix, Homebrew в Linux, Android и Termux (предварительная версия) и ручная загрузка описаны в [руководстве по установке](../INSTALL.md), а контейнеры — в [Docker](../DOCKER.md). Используйте на одной машине только один способ установки; иначе в `PATH` окажутся две копии, и сработает та, что найдётся первой. ## Быстрый старт 1. Закоммитьте или спрячьте в stash свою работу, затем запустите `codewhale` в корне git-репозитория. По умолчанию он применяет правки файлов в репозитории без вопросов и спрашивает перед каждой shell-командой, которая не только читает. 2. Выполните `/provider` (или нажмите `F3`), выберите провайдера, вставьте его API-ключ и выберите модель. Провайдер по умолчанию — DeepSeek. При первом запуске без ключа Codewhale спрашивает провайдера, когда вы отправляете первое сообщение, и предлагает локальную модель, если отвечает локальный сервер Ollama. 3. Введите задачу: ```text Fix the failing tests and explain what changed. ``` Команды только для чтения выполняются сразу. Для любой другой команды оболочки Codewhale сначала спрашивает: `y` выполняет её один раз, `a` разрешает похожие команды до конца беседы, а `n` отказывает. `/undo` отменяет ваш последний запрос и его изменения в файлах, а `/help` показывает команды и клавиши. Для скриптов и CI `codewhale exec` выполняет одну задачу без интерфейса. Прочитайте о [запуске без интерфейса](../INSTALL.md#headless-scripts-ci), прежде чем давать ему инструменты через `--auto`, потому что `--auto` использует Full Access, если вы не добавите песочницу. ## Что он делает Дайте Codewhale задачу, и он прочитает репозиторий, отредактирует файлы и выполнит команды, пока задача не будет готова или ему не понадобится ваш ответ. В [заметках к последнему релизу](https://github.com/codewhale-hq/Codewhale/releases/latest) перечислены новейшие изменения, а в [журнале изменений](../../CHANGELOG.md) есть все версии. ### Любая модель Встроено более 40 провайдеров, среди них Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter и xAI. Подходит любая конечная точка, совместимая с OpenAI, а также локальные модели через Ollama, vLLM или SGLang. Модель по умолчанию — `deepseek-flash` от DeepSeek, за которой теперь стоит DeepSeek V4.1 Flash ([подробнее](../PROVIDERS.md#deepseek-v41-flash)). `/model` меняет модель между ходами, а `/model auto` выбирает модель для каждого хода (как именно, задаёт `/router`). `/turn inspect` показывает, какую модель использовал ход, сколько он стоил и сколько длился. См. [Провайдеры](../PROVIDERS.md). ### Квитанции и отмена `/receipts` или `codewhale receipts --last` после выхода перечисляет файлы, изменённые за сеанс, выполненные команды, веб- и MCP-вызовы, запущенных агентов, каждое подтверждение и того, кто его дал, а также неудачи. `/undo` за один шаг отменяет ваш последний запрос и изменённые им файлы. `/restore` возвращает всё рабочее пространство к более раннему снимку; так как это перезаписывает последующие правки, нужен `/trust on` или Full Access. См. [Квитанции](../RECEIPTS.md). ### Несколько агентов на одной задаче `/goal` задаёт цель, которая сохраняется между ходами. Codewhale может разделить работу между [субагентами](../SUBAGENTS.md), запустить [Fleet](../FLEET.md) агентов со своими ролями и моделями или следовать [рабочему процессу](../WORKFLOW_AUTHORING.md), сохранённому в репозитории. ### Расширения Подключайте [MCP-серверы](../MCP.md), добавляйте [навыки](../SKILLS.md) и [плагины](../PLUGINS.md) и запускайте [хуки](../HOOKS.md) на события сеанса и инструментов. Режим кода (экспериментальный, включён по умолчанию) позволяет модели написать одну программу `execute_tools`, которая вызывает несколько инструментов MCP и плагинов; каждый вызов по-прежнему подчиняется вашим правилам подтверждения и сохраняет квитанцию. Плагин Computer Use, входящий в v0.10.2 (экспериментальный, только macOS), может наблюдать за другими приложениями и управлять ими; он выключен, пока вы не проверите его доступ и не включите его ([руководство](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Появится в 0.10.3: плагин будет выпускаться [отдельно](https://github.com/codewhale-hq/codewhale-cu-plugin). ### Способы запуска | Команда | Что делает | | --- | --- | | `codewhale` | Интерактивное терминальное приложение | | `codewhale exec "…"` | Одна задача без интерфейса, для скриптов и CI ([запуск без интерфейса](../INSTALL.md#headless-scripts-ci)) | | `codewhale web` | Локальный веб-клиент на `127.0.0.1` ([руководство](../WEB.md)) | | `codewhale review --pr N` | Рекомендательная проверка pull request на GitHub; [настройка бота GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) запускает её с вашим собственным ключом модели | | `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md) — локальный HTTP API для потоков, событий, подтверждений и изменений файлов каждого хода | | `codewhale serve --acp` | Agent Client Protocol через stdio, для редакторов вроде Zed | Терминальное приложение, `exec`, `web` и Runtime API используют один движок ([архитектура](../ARCHITECTURE.md)). [Расширение для VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode), которое поддерживает сообщество, подключается к нему из боковой панели ([исходный код](https://github.com/HengQuWorld/CodeWhale-VSCode)). ## Как он обеспечивает безопасность Два переключателя определяют, сколько Codewhale может делать сам. Когда поле ввода пусто, `Tab` меняет режим: **Plan** читает и ищет, но ничего не меняет, **Work** редактирует файлы и выполняет команды, а **Operate** имеет те же права, что и Work, и продолжает работу, пока цель не будет проверена или ему не понадобитесь вы. `Shift+Tab` меняет разрешение. **Ask**, режим по умолчанию, применяет правки файлов в вашем репозитории без вопросов и спрашивает перед shell-командами, которые не только читают. **Auto-Review** позволяет правилам и модели-рецензенту одобрять обычные вызовы и отклоняет рискованные; переключитесь на Ask, чтобы одобрить их самостоятельно. **Full Access** никогда не спрашивает и отключает песочницу Codewhale, хотя правила репозитория и управляемая политика продолжают действовать. Подробности — в [руководстве для v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md). Появится в 0.10.3: `Shift+Tab` станет одним переключателем по кругу Ask, Accept Edits, Plan, Auto-Review и Full Access, `Tab` больше не будет менять режим, а Operate будет упразднён. Ask будет спрашивать и перед каждой правкой файла, а новый режим по умолчанию, Accept Edits, будет применять правки внутри git-репозитория и по-прежнему спрашивать перед командами. Это описано в [текущем руководстве](../MODES.md). В Ask и Auto-Review команды выполняются в песочнице ОС, если она есть в системе: Seatbelt в macOS и bubblewrap в Linux, если он установлен. В Windows песочницы ОС пока нет, а Full Access отключает песочницу. Внутри песочницы команды оболочки и терминальные сеансы не могут читать хранилища учётных данных, такие как `~/.ssh`, `~/.aws` и файлы `.env`. `/preview-request` показывает следующий запрос со скрытыми данными, не отправляя его. Учётная запись не нужна, а ключи, добавленные через `/provider`, остаются на вашей машине. Со своим API-ключом вы платите провайдеру напрямую, а локальным моделям ключ не нужен. Нижняя строка и `/cost` показывают стоимость сеанса, когда цена известна; неизвестная цена показывается как неизвестная, но никогда как бесплатная. Телеметрия включена по умолчанию. Она отправляет агрегированные счётчики (версия и платформа, длительность и итог сеанса, какие встроенные провайдеры вы использовали, счётчики функций и ошибок) со случайным идентификатором установки, который меняется каждые 90 дней, и никогда не отправляет беседы, код, промпты, названия моделей, имена файлов или репозиториев и учётные данные. Эта команда её выключает: ```bash codewhale config set telemetry false ``` При запуске Codewhale также проверяет на GitHub, нет ли нового выпуска; задайте `CODEWHALE_NO_UPDATE_CHECK=1`, чтобы пропустить проверку. Подробнее — в разделах [порядок авторизации](../AUTHORIZATION_ORDER.md), [песочница](../SANDBOX.md) и [телеметрия](../TELEMETRY.md). ## Куда он движется Codewhale становится единой средой, охватывающей ваш терминал, настольное приложение, браузер и облачные компьютеры; всё это работает на одном движке. Каждая часть ниже говорит, на каком этапе она сегодня. | Часть | Состояние | Сегодня | | --- | --- | --- | | Терминальное приложение | Выпущено | Установите его на macOS, Linux или Windows и запускайте `codewhale` в любом репозитории. | | Локальный браузерный клиент | Выпущено | Запустите `codewhale web`, чтобы читать беседу, отправлять задачу и отвечать на запросы подтверждения в браузере; он входит в состав терминального приложения и не требует учётной записи. | | Много агентов на одной задаче | Выпущено | Субагенты, Fleet и рабочие процессы позволяют нескольким агентам делить одну задачу, каждому со своей ролью. | | Настольное приложение | В разработке, без загрузки | Мы создаём настольное приложение на том же движке, и публичной загрузки у него пока нет. | | Облачные компьютеры | Только по приглашению | Облачные компьютеры доступны только по приглашению, и мы создаём их, чтобы сеанс мог продолжать работу на машине в облаке. | | Один сеанс на всех | Создаётся | Мы создаём один сеанс, который идёт с вами от терминала к настольному приложению, браузеру и облаку и остаётся вашим на всём пути. | В [дорожной карте](../ROADMAP.md) сказано, что входит в каждый выпуск и где вы можете помочь. ## Если вы переходите с другого агента Codewhale сам читает `AGENTS.md`. Файлы инструкций, написанные для других инструментов, например `CLAUDE.md`, `.cursorrules` или `.github/copilot-instructions.md`, загружаются, только если вы включите их через `project_instruction_imports = ["claude"]` (или `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) в конфигурации; см. [config.example.toml](../../config.example.toml). Codewhale предупреждает, когда находит такой файл, который не загрузил. `/import-claude` готовит импорт ваших настроек Claude Code и MCP-серверов, чтобы вы его проверили. `/plugin install` принимает плагины Claude Code с навыками, командами, профилями агентов и MCP-серверами и отклоняет плагины, которым нужны хуки или LSP-серверы ([подробнее](../CLAUDE_PLUGIN_COMPAT.md)). ## Документация Эти руководства следуют основной ветке и могут описывать изменения, которых ещё нет в последнем выпуске. | С чего начать | Справочник | | --- | --- | | [Руководство пользователя](../GUIDE.md) | [Конфигурация](../CONFIGURATION.md) | | [Установка](../INSTALL.md) | [Архитектура](../ARCHITECTURE.md) | | [Провайдеры и локальные модели](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) | | [Режимы и разрешения](../MODES.md) | [Создание плагинов](../PLUGIN_AUTHORING.md) | | [Сочетания клавиш](../KEYBINDINGS.md) | [Квитанции](../RECEIPTS.md) | | [Проверка pull request на GitHub](../GITHUB_ACTION.md) | [Вся документация](../README.md) | ## Участие Codewhale открыто создают те, кто им пользуется, на многих языках. Стена участников Codewhale: по аватару на каждого человека, чей код, коммиты в соавторстве, продолженные pull request или отмеченные сообщения есть в Codewhale, а вверху общее число. [Стена участников](../CONTRIBUTORS.md) учитывает всех, чей код, коммиты в соавторстве, продолженные pull request или отмеченные сообщения есть в Codewhale, включая тех, кого пропускает собственный список участников GitHub. `scripts/contributor-wall.py` заново создаёт картинку и список по истории git и данным GitHub. Любой отзыв приветствуется: ошибка, идея или что-то, что выглядело или ощущалось не так. [Откройте issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) по любому из этих поводов; issue — также лучшее место, чтобы начать новую функцию. Pull request приветствуются для исправлений, переводов, провайдеров и запланированной работы. Вопросы задавайте в [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). [Руководство для участников](../../CONTRIBUTING.md) показывает, куда идёт каждый вид помощи, как ваша работа попадает в проект под вашим именем и [где что лежит](../../CONTRIBUTING.md#project-structure). Общайтесь в [Discord](https://discord.gg/37gfS3ksug) или добавьте сопровождающего, Hunter, в WeChat (`hunterbown`) и попросите добавить вас в группу Whale Brothers. Рады всем. ## История и лицензия Codewhale начинался как `deepseek-tui` и до сих пор читает конфигурацию и сеансы того проекта. Он поддерживается независимо и не связан ни с DeepSeek, ни с другим провайдером моделей. [MIT](../../LICENSE). Код, заимствованный из других проектов с открытым исходным кодом, перечислен в уведомлениях о третьих сторонах для [включённых исходников](../../THIRD_PARTY_NOTICES.md) и [заимствованных решений](../THIRD_PARTY_NOTICES.md).