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.ru.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).