Compare commits

...
4 Commits
Author SHA1 Message Date
CodeWhale BotandClaude Fable 5.2 207144cdcb docs(changelog): the README front page, translated READMEs and the contributor count
The three commits beneath this one were reviewed in three rounds by an independent
reviewer (verdict land); preflight OK, 18 README translations in sync, 1766 links
resolve, web tests 1301 passed. This commit adds only their changelog line.

Co-Authored-By: Claude Fable 5.2 <[email protected]>
2026-11-12 01:35:59 -08:00
CodeWhale BotandClaude Opus 5.5 419270f2b5 docs(readme): the front page says what the website's first screen says
README.md now opens the way the rebuilt home page does: the official
black mark (white on dark themes), the locked line "The model can be
anyone's. The agent should be yours." as the heading, one plain sentence
on what Codewhale is, the install command, and the terminal capture the
website shows. That capture comes from a 0.10.3 development build, so its
caption now says "A development build of 0.10.3, which is not released
yet"; the old caption called it a 0.10.2 build. Then the shortest path: Install,
Quickstart, What it does, How it stays safe, Where it is going (the
website's labelled map: Released, In development, Invite-only, Being
built), Coming from another agent, Documentation, Contributing and
History and license. The top section names no other coding agent; the
import section lower down names the tools it imports from.

The README describes the released v0.10.2. Where the source on main has
already moved on, the sentence says "Coming in 0.10.3":
- Permissions: v0.10.2 has Plan, Work and Operate on Tab and Ask,
  Auto-Review and Full Access on Shift+Tab, and Ask applies edits inside
  the repository without asking. The 0.10.3 dial (Ask, Accept Edits,
  Plan, Auto-Review, Full Access), Tab no longer changing the mode,
  Operate's retirement, Ask asking before every edit, and Accept Edits as
  the default are one labelled paragraph. The details link goes to the
  v0.10.2 guide at the tag, and the current guide is linked as 0.10.3.
- Computer Use: the plugin is bundled with v0.10.2 (guide at the tag);
  the separately released plugin is labelled as 0.10.3.

Moved, not deleted:
- The "New in 0.10.2" list is in the CHANGELOG's 0.10.2 section and on
  the release page; README links both instead of keeping a third copy.
  The DeepSeek V4.1 Flash switch date is in docs/PROVIDERS.md, linked.
- The `exec` flag detail and the exec receipt edge cases already live in
  docs/INSTALL.md#headless-scripts-ci and docs/RECEIPTS.md#surfaces;
  README links there.
- The modes table becomes one paragraph; docs/MODES.md holds the rest.

The Documentation section says the linked guides follow the main branch
and can describe changes that are not in the latest release yet.

Badges: release (generated by shields from GitHub Releases), CI, license
and Discord. The crates.io and npm badges went: they repeated the release
badge and Cargo can trail it.

The OrcaRouter offer sits below "What it does", with the campaign
disclosure in the words decided for featured placements ("This link is
part of a referral campaign; Codewhale may earn a referral reward on
top-ups made through it.") and its end date, November 21, 2026. That
replaces the line saying Codewhale "earns a referral fee from
OrcaRouter". Its links are HTML with rel="sponsored", and like the
website it appears in English only.

Contributors are featured as on the website: the generated wall image
links the full list, and the text says which script regenerates it.

Image fixes: the terminal capture's alt text says what it shows, the
mark has explicit width and height, the offer image is smaller than the
capture, and the wall image keeps its dark ground in both themes.

All 18 translations follow the new structure, generated from one
template so code blocks, links and section counts match. Each carries
the website footer's machine-draft sentence for its language; the
headline, intro and map rows reuse the website's own translations. They
leave out the OrcaRouter block, as the website does. Like the other 16,
zh-CN and zh-TW now name the permissions Ask, Auto-Review and Full
Access, as the terminal shows them.

Checks: scripts/preflight.sh --check OK; check-readme-translations.py
OK, 18 translations in sync (sha256:fd76d718e3a2); check-readme-locales.sh
PASS; web check:docs PASS; web vitest public-surface-contract, faq-source
and the facts tests, 6 files, 60 passed; links in 22 files, 1816 links,
no missing file or anchor, 23 external URLs all HTTP 200.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-12 01:13:32 -08:00
CodeWhale BotandClaude Opus 5.5 1a274c6135 chore: fewer files at the repository root; a support page; CODEOWNERS says only what is true
- DEPENDENCY_SECURITY.md described one thing, the VS Code extension
  packager's MSAL override. It is now the "VS Code extension packager"
  section of docs/dependency-maintenance.md, word for word. Nothing read
  the file; the one reference was a comment in security-audit.yml, which
  also still said an advisory was "admitted by name" although
  `extensions/vscode/scripts/audit-dependencies.mjs` blocks every reported
  vulnerability. The comment now points at the new section and says that.
  The file was not moved into extensions/vscode/ because `vsce package`
  would ship it inside the VSIX.
- .github/SUPPORT.md: where questions, bugs, ideas and security reports
  go. GitHub links it from the new-issue page. `codewhale doctor` exists
  in v0.10.2 and the bug template already asks for it.
- .github/CODEOWNERS kept the owner line and dropped a comment that named
  a `claude-review.yml` workflow that does not exist and a review
  integration that is not enabled.

Every root entry was inventoried with its references; the other moves
need a founder decision or touch release, packaging or test paths and are
proposed separately.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-12 00:56:36 -08:00
CodeWhale BotandClaude Opus 5.5 a37c6d0850 docs: the contributor wall counts 433 people, and the website counts the same people
`scripts/contributor-wall.py refresh` then `render` from git history and
GitHub: 407 accounts (was 393) and 26 more people from commit names not
linked to an account, 433 in all (was 421). Fifteen accounts are new,
among them the contributors whose fixes merged this week. `angus-guo` is
now `imgusguo` (the same GitHub user id, resolved by the script), and the
unlinked name `z27014` folds into `zhuowp` through `.github/AUTHOR_MAP`,
so nobody left the wall. GitHub's own contributor list sees 212 of them.

"LeHaiDang" and "Lê Hải Đăng" are one person: both names sign commits
with the same email. `unlinked_aliases` in docs/contributors.json now maps
the second to the first, so the wall shows one tile, not two.

The website counted only the linked accounts while the wall it links to
said 421 people. `deriveContributorCount` in `web/scripts/facts-lib.mjs`
now adds the unlinked commit names exactly as the wall's renderer does,
and rejects a malformed `unlinked_commit_names` list as it already
rejected malformed accounts. `node web/scripts/derive-facts.mjs` wrote
`contributorCount: 433`; `web/data/agent-docs.generated.json` picks up the
new CONTRIBUTORS.md.

Checks: `npx vitest run lib/facts lib/check-facts lib/facts-invariants
lib/facts-drift` 4 files, 47 passed, 0 failed; `node
web/scripts/check-facts.mjs` (through preflight) OK.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-12 00:56:35 -08:00
33 changed files with 2148 additions and 4090 deletions

No files matched your search

-6
View File
@@ -1,8 +1,2 @@
# Default owner for everything in the repo.
* @Hmbown
# AI code review is advisory and not wired through CODEOWNERS: GitHub CODEOWNERS
# only accepts users and teams, not bots. @Hmbown stays the human code owner.
# - Claude: .github/workflows/claude-review.yml (GitHub Actions).
# - Codex/ChatGPT: the ChatGPT Codex cloud integration (chatgpt.com/codex ->
# connect GitHub -> enable Code review), authed by the ChatGPT subscription.
+19
View File
@@ -0,0 +1,19 @@
# Getting help with Codewhale
- **A question about using Codewhale:** ask in
[Discussions Q&A](https://github.com/codewhale-hq/Codewhale/discussions/categories/q-a)
or on [Discord](https://discord.gg/37gfS3ksug). The
[user guide](../docs/GUIDE.md) and the [documentation index](../docs/README.md)
answer many questions already.
- **A bug, a crash or behavior that surprised you:** open a
[bug report](https://github.com/codewhale-hq/Codewhale/issues/new?template=bug_report.yml).
`codewhale doctor` prints the version and setup details a report needs.
- **An idea or feedback:** open an
[issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose), or talk it
through first in
[Ideas](https://github.com/codewhale-hq/Codewhale/discussions/categories/ideas).
- **A security problem:** report it privately as described in the
[security policy](SECURITY.md), never in a public issue.
The [contributing guide](../CONTRIBUTING.md) explains where each kind of help
goes and how a pull request lands.
+2 -3
View File
@@ -76,9 +76,8 @@ jobs:
- name: Audit website with verified build dependency mitigation
if: matrix.name == 'web'
run: npm run audit:dependencies -- --report "${{ runner.temp }}/npm-audit.json"
# The VS Code extension's packager toolchain carries one unfixed high
# advisory that never runs for users (DEPENDENCY_SECURITY.md at the repo
# root). It is admitted by name; anything else fails the job.
# The VS Code extension's packager dependency override is recorded in
# docs/dependency-maintenance.md; any reported vulnerability fails the job.
- name: Audit extension with reviewed packager advisory acceptance
if: matrix.name == 'vscode'
run: npm run audit:dependencies -- --report "${{ runner.temp }}/npm-audit.json"
+1
View File
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
- **README and contributor credit:** the repository front page now opens the way the website does: the line "The model can be anyone's. The agent should be yours.", one sentence on what Codewhale is, the install command and one picture, with reference detail moved into the linked guides; the 18 translated READMEs follow the same structure and say they are machine-drafted. The contributor wall and the website now count the same 433 people (407 GitHub accounts and the commit authors whose email is not linked to an account), where the website had counted accounts only. `DEPENDENCY_SECURITY.md` moved into `docs/dependency-maintenance.md`, and `.github/SUPPORT.md` says where to ask for help.
- **Context window labels:** the model picker and fleet capability badges now show `1.5M` and `2.1M` for 1,500,000- and 2,100,000-token windows instead of `1.50M` and `2.10M`. Thanks [@Aboysky](https://github.com/Aboysky) (PR 7295).
- **REPL output limit:** REPL output is now cut to its byte limit, so Chinese, Japanese, Korean or emoji output no longer comes back up to three times longer than the limit, and the cut never splits a character. Thanks [@Aboysky](https://github.com/Aboysky) (PR 7296).
- **Git status with renamed files:** the Git and Changes views no longer fail with "git status failed" or show a phantom row when a file is renamed on the worktree side (for example a moved file marked with `git add -N`), including when the original name starts with non-ASCII text such as Chinese. Thanks [@luochen211](https://github.com/luochen211) (PR 7310).
-20
View File
@@ -1,20 +0,0 @@
# Extension packager dependency security
The VS Code extension's packaging toolchain uses `@vscode/vsce` →
`@azure/identity` → `@azure/msal-node`. MSAL Node versions before 7.1.0 are
affected by [GHSA-xcx6-jx8p-x3h5](https://github.com/AzureAD/microsoft-authentication-library-for-js/security/advisories/GHSA-xcx6-jx8p-x3h5).
The extension manifest overrides Azure Identity's MSAL Node dependency to
`^7.1.2`; its lockfile resolves 7.1.2. Keep the override until Azure Identity
requires a patched version itself.
`npm run audit:dependencies -- --report <path>` audits the complete lockfile
and keeps the raw report. Every reported vulnerability blocks the check.
Incomplete reports, count mismatches and critical findings also fail. There
is no advisory exception.
After changing this dependency, materialize the lockfile with `npm ci`, run
the extension's existing `npm test` checks and build a local package with
`npm run package`. Packaging uses `vsce package --no-dependencies`, which
excludes development dependencies from the VSIX. A local package build does
not establish that a publishing authentication flow works; verify that flow
only when publication is separately authorized.
+188 -186
View File
@@ -1,21 +1,25 @@
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="brand/wordmark-inverted.svg">
<img src="brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="brand/mark-reversed.svg">
<img src="brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**An open-source coding agent for your terminal that works with any model.**
<h1>The model can be anyone's. The agent should be yours.</h1>
Give Codewhale a task and it reads the repository, edits files, and runs
commands until the task is done or it needs input from you. It works with more
than 40 built-in providers, DeepSeek V4.1 Flash by default, and with models running on
your own machine. `/receipts` lists the files it changed, the commands it ran,
and the web and MCP calls it made.
Codewhale is an open-source coding agent for your terminal, written in Rust.
It works with any model, can split one task across several agents, and every
line of it is yours to read.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
This installs the latest release on macOS or Linux, and it needs no account.
[Windows, npm and Cargo](#install) are below.
[![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)
@@ -23,63 +27,41 @@ and the web and MCP calls it made.
[简体中文](docs/i18n/README.zh-CN.md) · [日本語](docs/i18n/README.ja-JP.md) · [Tiếng Việt](docs/i18n/README.vi.md) · [Bahasa Indonesia](docs/i18n/README.id.md) · [한국어](docs/i18n/README.ko-KR.md) · [Español](docs/i18n/README.es-419.md) · [Português](docs/i18n/README.pt-BR.md) · [Русский](docs/i18n/README.ru.md) · [Українська](docs/i18n/README.uk.md) · [Français](docs/i18n/README.fr.md) · [Deutsch](docs/i18n/README.de.md) · [繁體中文](docs/i18n/README.zh-TW.md) · [हिन्दी](docs/i18n/README.hi.md) · [Türkçe](docs/i18n/README.tr.md) · [Italiano](docs/i18n/README.it.md) · [Polski](docs/i18n/README.pl.md) · [العربية](docs/i18n/README.ar.md) · [Català](docs/i18n/README.ca.md)
<img src="web/public/codewhale-tui-0102-demo.png" alt="A Codewhale terminal session" width="760">
<img src="web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale in a terminal after a demo task. It reports that it added a --json flag to export.py, that all 3 local tests passed and that a delegated review found no issues. The task list below shows three completed steps, and the status line shows Full Access and the local website-demo provider.">
<sub>A 0.10.2 development build with a scripted test model, in Full Access inside a throwaway workspace. The edit, three tests and a sub-agent review ran for real.</sub>
<sub>A development build of 0.10.3, which is not released yet, with a scripted test model, in Full Access inside a throwaway workspace. The edit, three tests and a sub-agent review ran for real.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — +30% DeepSeek v4.1 Flash usage" width="760">
</a>
</p>
[View the Codewhale × OrcaRouter offer](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale earns a referral fee from OrcaRouter.
## Install
macOS and Linux:
The command above puts checksum-verified `codewhale` and its short alias
`codew` in `~/.local/bin`. If your shell then says `command not found`,
follow the PATH note the installer prints
([details](docs/INSTALL.md#put-it-on-your-path)). `codewhale update` upgrades
it.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
The installer puts checksum-verified `codewhale` and its short alias `codew`
in `~/.local/bin`. If your shell then says `command not found`, run the PATH
line the installer prints ([details](docs/INSTALL.md#put-it-on-your-path)).
`codewhale update` upgrades it. These commands install the latest release.
This page follows `main`, so a feature marked with a version arrives in that
release; the [changelog](CHANGELOG.md) lists what each release adds.
<details>
<summary><b>Windows, npm, Cargo, and other ways to install</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Prebuilt binaries cover Linux, macOS, and Windows on x64 and arm64. Nix,
Homebrew on Linux, Android/Termux (preview), and manual downloads are in the
[installation guide](docs/INSTALL.md), and containers in
[Docker](docs/DOCKER.md). Stick to one install method per machine; otherwise
two copies end up on `PATH` and whichever comes first wins.
</details>
Prebuilt binaries cover Linux, macOS and Windows on x64 and arm64. Scoop, Nix,
Homebrew on Linux, Android and Termux (preview) and manual downloads are in the
[installation guide](docs/INSTALL.md), and containers are in
[Docker](docs/DOCKER.md). Use one install method per machine; otherwise two
copies end up on your `PATH` and whichever comes first wins.
## Quickstart
1. Commit or stash your work, then run `codewhale` from the root of a git
repository. By default (**Accept Edits**) it edits files in the repository
without asking and asks before each command; `Shift+Tab` steps the
permission dial when you want it to ask more or less.
2. Run `/provider` (or press `F3`), pick a provider, paste its API key, and
choose a model. DeepSeek is the default provider. With no key, pick a local
runtime instead. If no provider is configured and Ollama is already serving
a chat model, Codewhale uses it automatically; from 0.10.2 it offers it when
you send your first message.
repository. By default it applies file edits there without asking and asks
before each shell command that is not read-only.
2. Run `/provider` (or press `F3`), pick a provider, paste its API key and
choose a model. DeepSeek is the default provider. On a first launch with no
key, Codewhale asks for a provider when you send your first message, and it
offers a local model when a local Ollama server answers.
3. Type a task:
```text
@@ -88,105 +70,48 @@ Fix the failing tests and explain what changed.
Read-only commands run straight away. For any other shell command Codewhale
asks first: `y` runs it once, `a` allows commands like it for the rest of the
conversation, `n` refuses. `/undo` takes back your last request and its file
changes. `/help` lists commands and keys.
conversation, and `n` refuses. `/undo` takes back your last request and its
file changes, and `/help` lists commands and keys.
For scripts and CI, `codewhale exec` runs one task without the interface. By
default, `--auto` uses Full Access: tools run without asking, shell commands
have no Codewhale sandbox, and trust mode lets file tools write outside the
workspace. Add `--sandbox workspace-write` to keep the shell sandbox and
file-tool workspace restrictions, with trust mode off:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modes and permissions
A fresh install starts in Work mode with the Accept Edits permission. One dial
switches both: `Shift+Tab` steps Ask → Accept Edits → Plan → Auto-Review →
Full Access.
| | Switch with | Options |
| --- | --- | --- |
| Mode | the Plan stop on `Shift+Tab`, or `/mode` | **Plan** reads and searches but changes nothing. **Work** (every other stop) edits files and runs commands; start a goal with `/goal` when a request needs more than one turn. |
| Permission | `Shift+Tab` | **Ask** asks before every file edit and every shell command that is not read-only. **Accept Edits** applies file edits in your git repository without asking and still asks before commands. **Auto-Review** lets rules and a reviewer model approve routine calls and refuses high-risk ones; switch to Ask to approve those yourself. **Full Access** never asks, and commands can reach anything on this computer; repository rules and managed policy still apply. |
See the [modes and permissions guide](docs/MODES.md) for the details.
For scripts and CI, `codewhale exec` runs one task without the interface. Read
[headless runs](docs/INSTALL.md#headless-scripts-ci) before you give it tools
with `--auto`, because `--auto` uses Full Access unless you add a sandbox.
## What it does
### New in 0.10.2
Give Codewhale a task and it reads the repository, edits files and runs
commands until the task is done or it needs your input. The
[latest release notes](https://github.com/codewhale-hq/Codewhale/releases/latest)
list the newest changes, and the [changelog](CHANGELOG.md) has every
version.
- `/pet on` turns your terminal into an animated whale that shows what the
agent is doing, while the message box stays live. Its 980 particles spell
the current step in English, Chinese or Japanese.
- `/workbar terminal` shows the shells the agent is running as they run. Type
into one, or press `Ctrl+N` for a shell of your own (macOS and Linux).
- `/undo` takes back your whole last request in one step, including every file
it changed, and `/diff` works in folders without Git.
- When a plan is ready, Codewhale asks whether to start Work with Ask or
Auto-Review, or keep planning.
- `/color` gives each chat its own composer color, saved with the session.
- `web_search` can use DeepSeek's new Search API: set
`[search] provider = "deepseek"` with a DeepSeek key.
- Outside Full Access, a `curl` or `wget` that would upload a credential never
runs without your approval, and a command that hides invisible Unicode is
refused. `write` no longer replaces a file the agent has not read, or one
that changed after it read it.
### Models
### Any model
More than 40 providers are built in, including Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter, and xAI. Any OpenAI-compatible endpoint
works, and so do local models through Ollama, vLLM, or SGLang. The default is
DeepSeek's `deepseek-flash`, which DeepSeek moved to DeepSeek-V4.1-Flash-1017
on 2026-10-17; 0.10.1 runs it without an update
Google, Mistral, Moonshot, OpenRouter and xAI. Any OpenAI-compatible endpoint
works, and so do local models through Ollama, vLLM or SGLang. The default
model is DeepSeek's `deepseek-flash`, which now serves DeepSeek V4.1 Flash
([details](docs/PROVIDERS.md#deepseek-v41-flash)).
`/model` switches models between turns, and `/model auto` picks one for each
turn (`/router` sets up how). `/turn inspect` shows which model a turn used,
what it cost and how long it took. `codewhale auth chatgpt` lets you use a
ChatGPT plan instead of an API key (experimental). See
[Providers](docs/PROVIDERS.md).
what it cost and how long it took. See [Providers](docs/PROVIDERS.md).
### Receipts and undo
`/receipts`, or `codewhale receipts --last` after you quit, lists the files
changed, commands run, web and MCP calls, agents started, approvals and who
gave them, and failures. `/undo` takes back your last request and the files it
changed, in one step and without trust mode. `/restore`
rolls the whole workspace back to an earlier snapshot; because that overwrites
later edits, it needs `/trust on` or Full Access. See [Receipts](docs/RECEIPTS.md).
`/receipts`, or `codewhale receipts --last` after you quit, lists the files a
session changed, the commands it ran, its web and MCP calls, the agents it
started, each approval and who gave it, and what failed. `/undo` takes back
your last request and the files it changed in one step. `/restore` rolls the
whole workspace back to an earlier snapshot, and because that overwrites later
edits it needs `/trust on` or Full Access. See [Receipts](docs/RECEIPTS.md).
Exec runs that offer tools are saved in every output format, so
`codewhale receipts --last` works after `exec --auto`, including `--json`.
Answer-only text and `--json` runs are saved only when resuming or when
conversation compaction starts; use `--output-format stream-json` to always
save them for receipts or `exec --continue`.
### Longer work
### Several agents on one task
`/goal` sets an objective that carries across turns. Codewhale can split work
across [sub-agents](docs/SUBAGENTS.md), run a [fleet](docs/FLEET.md) of agents,
or follow a [workflow](docs/WORKFLOW_AUTHORING.md) checked into the
repository.
### Coming from another agent
Codewhale reads `AGENTS.md` on its own. Instruction files written for other
tools, such as `CLAUDE.md`, `.cursorrules`, or
`.github/copilot-instructions.md`, load only when you opt in with
`project_instruction_imports = ["claude"]` (or `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`) in your config; see
[config.example.toml](config.example.toml). Codewhale warns when it finds one
it did not load.
`/import-claude` prepares an import of your Claude Code settings and MCP
servers for you to review. `/plugin install` accepts Claude Code plugins
containing skills, commands, agent profiles, and MCP servers, and refuses
plugins that need hooks or LSP servers
([details](docs/CLAUDE_PLUGIN_COMPAT.md)).
across [sub-agents](docs/SUBAGENTS.md), run a [Fleet](docs/FLEET.md) of agents
with their own roles and models, or follow a
[workflow](docs/WORKFLOW_AUTHORING.md) checked into the repository.
### Extensions
@@ -194,79 +119,158 @@ Connect [MCP servers](docs/MCP.md), add [skills](docs/SKILLS.md) and
[plugins](docs/PLUGINS.md), and run [hooks](docs/HOOKS.md) on session and tool
events. Code mode (experimental, on by default) lets the model write one
`execute_tools` program that calls several MCP and plugin tools; each call
still meets your approval rules and keeps its receipt. The independently installed Computer
Use plugin (experimental, macOS only) can observe
and operate other apps. It stays off until you review its access and enable it
([guide](https://github.com/codewhale-hq/codewhale-cu-plugin)).
still meets your approval rules and keeps its receipt. The Computer Use plugin
bundled with v0.10.2 (experimental, macOS only) can observe and operate other
apps, and it stays off until you review its access and enable it
([guide](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)).
Coming in 0.10.3: the plugin is released
[separately](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Ways to run it
### Ways to run it
| Command | What it does |
| --- | --- |
| `codewhale` | The interactive terminal app |
| `codewhale exec "…"` | One task without the interface. On its own it answers without using tools; `--auto` enables tools with Full Access by default, `--sandbox workspace-write` restricts them, and `--output-format stream-json` streams events as JSON |
| `codewhale web` | A local web UI on `127.0.0.1` ([guide](docs/WEB.md)) |
| `codewhale review --pr N` | An advisory review of a GitHub pull request. The [GitHub bot setup](docs/GITHUB_ACTION.md#set-up-your-own-bot) generates a pinned workflow for automatic reviews and `@codewhale review`, using your own model key and optional App identity |
| `codewhale app-server --http` | The [Runtime API](docs/RUNTIME_API.md), a local HTTP API for threads, events, approvals, and each turn's file changes |
| `codewhale exec "…"` | One task without the interface, for scripts and CI ([headless runs](docs/INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | A local web client on `127.0.0.1` ([guide](docs/WEB.md)) |
| `codewhale review --pr N` | An advisory review of a GitHub pull request; the [GitHub bot setup](docs/GITHUB_ACTION.md#set-up-your-own-bot) runs it on your own model key |
| `codewhale app-server --http` | The [Runtime API](docs/RUNTIME_API.md), a local HTTP API for threads, events, approvals and each turn's file changes |
| `codewhale serve --acp` | The Agent Client Protocol over stdio, for editors such as Zed |
The terminal app, `exec`, `web`, and the Runtime API share one engine
The terminal app, `exec`, `web` and the Runtime API share one engine
([architecture](docs/ARCHITECTURE.md)). A community-maintained
[VS Code extension](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
connects to it from the sidebar ([source](https://github.com/HengQuWorld/CodeWhale-VSCode)).
A native desktop app built on the Runtime API is in development; it has no
public download yet.
## Cost and accounts
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter: +30% DeepSeek V4.1 Flash usage" width="560">
</a>
</p>
Codewhale is free and MIT licensed. With your own API key you pay the provider
directly; local models need no key. The footer and `/cost` show what a session
has cost when the price is known, and an unknown price is shown as unknown,
never as free.
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">Codewhale × OrcaRouter</a>
gives 30% extra DeepSeek V4.1 Flash credit on each OrcaRouter top-up until
November 21, 2026. This link is part of a referral campaign; Codewhale may
earn a referral reward on top-ups made through it.
You don't need an account. Keys you add with `/provider` stay on your machine.
## How it stays safe
## Safety and privacy
Two switches say how much Codewhale may do on its own. `Tab`, when the input
is empty, changes the mode: **Plan** reads and searches but changes nothing,
**Work** edits files and runs commands, and **Operate** has the same access as
Work and keeps going until the goal is verified or it needs you. `Shift+Tab`
changes the permission. **Ask**, the default, applies file edits in your
repository without asking and asks before shell commands that are not
read-only.
**Auto-Review** lets rules and a reviewer model approve routine calls and
refuses high-risk ones; switch to Ask to approve those yourself. **Full
Access** never asks and turns off Codewhale's sandbox, although repository
rules and managed policy still apply. The
[v0.10.2 guide](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md)
has the details.
Coming in 0.10.3: `Shift+Tab` becomes one dial through Ask, Accept Edits,
Plan, Auto-Review and Full Access, `Tab` no longer changes the mode, and
Operate is retired. Ask will ask before every file edit too, and the new
default, Accept Edits, will apply edits inside the git repository and still ask
before commands. The [current guide](docs/MODES.md) describes it.
In Ask and Auto-Review, commands run in an OS sandbox where the system has
one: Seatbelt on macOS, and bubblewrap on Linux when it is installed.
Windows has no OS sandbox yet, and Full Access turns the sandbox off. Inside
the sandbox, shell commands cannot read credential stores such as `~/.ssh`,
`~/.aws` and `.env` files; from 0.10.2 the same rule covers terminal sessions
and more file tools. `/preview-request` shows a redacted preview of the next
request without sending it.
one: Seatbelt on macOS, and bubblewrap on Linux when it is installed. Windows
has no OS sandbox yet, and Full Access turns the sandbox off. Inside the
sandbox, shell commands and terminal sessions cannot read credential stores
such as `~/.ssh`, `~/.aws` and `.env` files.
`/preview-request` shows a redacted preview of the next request without
sending it.
You need no account, and keys you add with `/provider` stay on your machine.
With your own API key you pay the provider directly, and local models need no
key. The footer and `/cost` show what a session has cost when the price is
known, and an unknown price is shown as unknown, never as free.
Telemetry is on by default. It sends aggregate counts (version and platform,
session length and outcome, which built-in providers you used, feature and
error counts) with a random install ID that rotates every 90 days, and never
conversations, code, prompts, model names, file or repository names, or
credentials. `codewhale config set telemetry false` turns
it off. At startup Codewhale also
checks GitHub for a new release; set `CODEWHALE_NO_UPDATE_CHECK=1` to skip
that. More in [authorization order](docs/AUTHORIZATION_ORDER.md),
[sandboxing](docs/SANDBOX.md), and [telemetry](docs/TELEMETRY.md).
credentials. This command turns it off:
```bash
codewhale config set telemetry false
```
At startup Codewhale also checks GitHub for a new release; set
`CODEWHALE_NO_UPDATE_CHECK=1` to skip that. More in
[authorization order](docs/AUTHORIZATION_ORDER.md),
[sandboxing](docs/SANDBOX.md) and [telemetry](docs/TELEMETRY.md).
## Where it is going
Codewhale is becoming one environment across your terminal, a desktop app,
the browser and cloud computers, all run by one engine. Each part says where
it stands today.
| Part | State | Today |
| --- | --- | --- |
| Terminal app | Released | Install it on macOS, Linux or Windows and run `codewhale` in any repository. |
| Local browser client | Released | Run `codewhale web` to read the conversation, send a task and answer approvals in your browser; it comes with the terminal and needs no account. |
| Many agents on one task | Released | Sub-agents, Fleets and workflows let several agents share one task, each with its own role. |
| Desktop app | In development, no download | We are building a desktop app on the same engine, and it has no public download yet. |
| Cloud computers | Invite-only | Cloud computers are invite-only, and we are building them so a session can keep working on a machine in the cloud. |
| One session across them | Being built | We are building one session that goes with you from the terminal to the desktop, the browser and the cloud, and stays yours the whole way. |
The [roadmap](docs/ROADMAP.md) says what each release covers and where you
can help.
## Coming from another agent
Codewhale reads `AGENTS.md` on its own. Instruction files written for other
tools, such as `CLAUDE.md`, `.cursorrules` or
`.github/copilot-instructions.md`, load only when you opt in with
`project_instruction_imports = ["claude"]` (or `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`) in your config; see
[config.example.toml](config.example.toml). Codewhale warns when it finds one
it did not load.
`/import-claude` prepares an import of your Claude Code settings and MCP
servers for you to review. `/plugin install` accepts Claude Code plugins that
contain skills, commands, agent profiles and MCP servers, and refuses plugins
that need hooks or LSP servers
([details](docs/CLAUDE_PLUGIN_COMPAT.md)).
## Documentation
These guides follow the main branch and can describe changes that are not
in the latest release yet.
| Start here | Reference |
| --- | --- |
| [Installation](docs/INSTALL.md) | [Configuration](docs/CONFIGURATION.md) |
| [Providers and local models](docs/PROVIDERS.md) | [Architecture](docs/ARCHITECTURE.md) |
| [Modes and permissions](docs/MODES.md) | [Runtime API](docs/RUNTIME_API.md) |
| [Keybindings](docs/KEYBINDINGS.md) | [Plugin authoring](docs/PLUGIN_AUTHORING.md) |
| [GitHub PR review](docs/GITHUB_ACTION.md) | [All documentation](docs/README.md) |
| [User guide](docs/GUIDE.md) | [Configuration](docs/CONFIGURATION.md) |
| [Installation](docs/INSTALL.md) | [Architecture](docs/ARCHITECTURE.md) |
| [Providers and local models](docs/PROVIDERS.md) | [Runtime API](docs/RUNTIME_API.md) |
| [Modes and permissions](docs/MODES.md) | [Plugin authoring](docs/PLUGIN_AUTHORING.md) |
| [Keybindings](docs/KEYBINDINGS.md) | [Receipts](docs/RECEIPTS.md) |
| [GitHub pull request review](docs/GITHUB_ACTION.md) | [All documentation](docs/README.md) |
## Community
## Contributing
Codewhale is what it is because of its community, and all feedback is
welcome: a bug, an idea, or something that looked or felt wrong.
[Open an issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) for any
of these; an issue is also the best place to start a new feature. Pull requests
are welcome for fixes, translations, providers and planned work. The
[contributing guide](CONTRIBUTING.md) shows where each kind of help goes, and
the [roadmap](docs/ROADMAP.md) shows where the project is headed. Contributors
keep credit for the work that lands, and the
[repository layout](CONTRIBUTING.md#project-structure) shows where things live.
Codewhale is built in the open by the people who use it, in many languages.
<a href="docs/CONTRIBUTORS.md#everyone"><img src="docs/assets/contributors.png" width="760" alt="The Codewhale contributor wall: one avatar for each person whose code, co-authored commits, carried-forward pull requests or credited reports are in Codewhale, with the total count at the top."></a>
The [contributor wall](docs/CONTRIBUTORS.md) counts everyone whose code,
co-authored commits, carried-forward pull requests or credited reports are in
Codewhale, including people GitHub's own contributor list misses.
`scripts/contributor-wall.py` regenerates the picture and the list from git
history and GitHub.
All feedback is welcome: a bug, an idea, or something that looked or felt
wrong. [Open an issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose)
for any of these; an issue is also the best place to start a new feature.
Pull requests are welcome for fixes, translations, providers and planned work.
Questions go to [Discussions](https://github.com/codewhale-hq/Codewhale/discussions).
The [contributing guide](CONTRIBUTING.md) shows where each kind of help goes,
how your work lands with your name on it, and
[where things live](CONTRIBUTING.md#project-structure).
Chat on [Discord](https://discord.gg/37gfS3ksug), or add the maintainer,
Hunter, on WeChat (`hunterbown`) and ask to join the Whale Brothers group.
@@ -276,10 +280,8 @@ Everyone is welcome.
Codewhale started as `deepseek-tui` and still reads that project's
configuration and sessions. It is independently maintained and not affiliated
with DeepSeek or any other model provider. Thanks to
[everyone who has contributed](docs/CONTRIBUTORS.md).
[![Codewhale contributors](docs/assets/contributors.png)](docs/CONTRIBUTORS.md#everyone)
with DeepSeek or any other model provider.
[MIT](LICENSE). Code adapted from other open-source projects is listed in the
[third-party notices](docs/THIRD_PARTY_NOTICES.md).
third-party notices for [vendored sources](THIRD_PARTY_NOTICES.md) and
[adapted designs](docs/THIRD_PARTY_NOTICES.md).
+1
View File
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
- **README and contributor credit:** the repository front page now opens the way the website does: the line "The model can be anyone's. The agent should be yours.", one sentence on what Codewhale is, the install command and one picture, with reference detail moved into the linked guides; the 18 translated READMEs follow the same structure and say they are machine-drafted. The contributor wall and the website now count the same 433 people (407 GitHub accounts and the commit authors whose email is not linked to an account), where the website had counted accounts only. `DEPENDENCY_SECURITY.md` moved into `docs/dependency-maintenance.md`, and `.github/SUPPORT.md` says where to ask for help.
- **Context window labels:** the model picker and fleet capability badges now show `1.5M` and `2.1M` for 1,500,000- and 2,100,000-token windows instead of `1.50M` and `2.10M`. Thanks [@Aboysky](https://github.com/Aboysky) (PR 7295).
- **REPL output limit:** REPL output is now cut to its byte limit, so Chinese, Japanese, Korean or emoji output no longer comes back up to three times longer than the limit, and the cut never splits a character. Thanks [@Aboysky](https://github.com/Aboysky) (PR 7296).
- **Git status with renamed files:** the Git and Changes views no longer fail with "git status failed" or show a phantom row when a file is renamed on the worktree side (for example a moved file marked with `git add -N`), including when the original name starts with non-ASCII text such as Chinese. Thanks [@luochen211](https://github.com/luochen211) (PR 7310).
+4 -4
View File
@@ -14,13 +14,13 @@ and [CHANGELOG.md](../CHANGELOG.md).
<!-- contributor-wall:start -->
## Everyone
[![421 people built Codewhale](assets/contributors.png)](#everyone)
[![433 people built Codewhale](assets/contributors.png)](#everyone)
421 people have code, co-authored commits, carried-forward pull requests or credited reports in Codewhale. GitHub's contributor list shows only commit authors whose email is linked to their account, so it counts 203 of them. If your commits are missing there, add your commit email to your GitHub account and they will link.
433 people have code, co-authored commits, carried-forward pull requests or credited reports in Codewhale. GitHub's contributor list shows only commit authors whose email is linked to their account, so it counts 212 of them. If your commits are missing there, add your commit email to your GitHub account and they will link.
[0gl20shk0sbt36](https://github.com/0gl20shk0sbt36) · [1Git2Clone](https://github.com/1Git2Clone) · [20bytes](https://github.com/20bytes) · [47Cid](https://github.com/47Cid) · [7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX) · [8sero](https://github.com/8sero) · [A-Corner](https://github.com/A-Corner) · [aboimpinto](https://github.com/aboimpinto) · [adity982](https://github.com/adity982) · [AdityaVG13](https://github.com/AdityaVG13) · [AGSaturn](https://github.com/AGSaturn) · [ai-dengwsh](https://github.com/ai-dengwsh) · [aiapienthusiast](https://github.com/aiapienthusiast) · [Aitensa](https://github.com/Aitensa) · [AiurArtanis](https://github.com/AiurArtanis) · [alitvak69](https://github.com/alitvak69) · [all-lopezg](https://github.com/all-lopezg) · [alvin1](https://github.com/alvin1) · [amuthantamil](https://github.com/amuthantamil) · [AnaheimEX](https://github.com/AnaheimEX) · [Andrea-Bruno](https://github.com/Andrea-Bruno) · [Angel-Hair](https://github.com/Angel-Hair) · [angus-guo](https://github.com/angus-guo) · [angziii](https://github.com/angziii) · [AnonymousUser443](https://github.com/AnonymousUser443) · [antarikshraya](https://github.com/antarikshraya) · [Anyexyz](https://github.com/Anyexyz) · [Apeiron0w0](https://github.com/Apeiron0w0) · [aqilaziz](https://github.com/aqilaziz) · [AresNing](https://github.com/AresNing) · [ArronAI007](https://github.com/ArronAI007) · [Artenx](https://github.com/Artenx) · [asdfg314284230](https://github.com/asdfg314284230) · [Asteria1028](https://github.com/Asteria1028) · [asto18089](https://github.com/asto18089) · [atmosuwiryo](https://github.com/atmosuwiryo) · [axobase001](https://github.com/axobase001) · [aznikline](https://github.com/aznikline) · [baendlorel](https://github.com/baendlorel) · [banqii](https://github.com/banqii) · [Beltran12138](https://github.com/Beltran12138) · [bevis-wong](https://github.com/bevis-wong) · [BH8GCJ](https://github.com/BH8GCJ) · [BigBenLabs](https://github.com/BigBenLabs) · [Biilow](https://github.com/Biilow) · [bistack](https://github.com/bistack) · [BrathonBai](https://github.com/BrathonBai) · [bruce6135](https://github.com/bruce6135) · [BryonGo](https://github.com/BryonGo) · [buiducnhat](https://github.com/buiducnhat) · [buko](https://github.com/buko) · [BX166](https://github.com/BX166) · [c020627](https://github.com/c020627) · [cacdcaecawae](https://github.com/cacdcaecawae) · [caeserchen](https://github.com/caeserchen) · [caiyilian](https://github.com/caiyilian) · [CCChisato](https://github.com/CCChisato) · [ccomma](https://github.com/ccomma) · [cenab](https://github.com/cenab) · [ChaceLyee2101](https://github.com/ChaceLyee2101) · [chatman-media](https://github.com/chatman-media) · [chennest](https://github.com/chennest) · [chinaqy110](https://github.com/chinaqy110) · [chnjames](https://github.com/chnjames) · [chuntseevolving](https://github.com/chuntseevolving) · [ci4ic4](https://github.com/ci4ic4) · [cian-lien](https://github.com/cian-lien) · [cmdcorp6534](https://github.com/cmdcorp6534) · [cmyyy](https://github.com/cmyyy) · [codepgq](https://github.com/codepgq) · [Colorful-glassblock](https://github.com/Colorful-glassblock) · [ComeFromTheMars](https://github.com/ComeFromTheMars) · [CrepuscularIRIS](https://github.com/CrepuscularIRIS) · [ct-jaryn](https://github.com/ct-jaryn) · [ctxyao](https://github.com/ctxyao) · [cy2311](https://github.com/cy2311) · [cyq1017](https://github.com/cyq1017) · [czf0718](https://github.com/czf0718) · [dajiaohuang](https://github.com/dajiaohuang) · [DarrellThomas](https://github.com/DarrellThomas) · [demian-welt](https://github.com/demian-welt) · [Dev-next-gen](https://github.com/Dev-next-gen) · [dfwqdyl-ui](https://github.com/dfwqdyl-ui) · [DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI) · [DieMoe233](https://github.com/DieMoe233) · [DingYong4223](https://github.com/DingYong4223) · [djairjr](https://github.com/djairjr) · [dmitri-0](https://github.com/dmitri-0) · [dmt4](https://github.com/dmt4) · [donglovejava](https://github.com/donglovejava) · [douglarek](https://github.com/douglarek) · [Dr3259](https://github.com/Dr3259) · [DracheTek](https://github.com/DracheTek) · [drpars](https://github.com/drpars) · [dst1213](https://github.com/dst1213) · [duanchao-lab](https://github.com/duanchao-lab) · [Duducoco](https://github.com/Duducoco) · [dumbjack](https://github.com/dumbjack) · [dxfq](https://github.com/dxfq) · [dzyuan](https://github.com/dzyuan) · [e792a8](https://github.com/e792a8) · [Edouard-Legoupil](https://github.com/Edouard-Legoupil) · [elowen53](https://github.com/elowen53) · [eltociear](https://github.com/eltociear) · [EmiyaKiritsugu3](https://github.com/EmiyaKiritsugu3) · [encyc](https://github.com/encyc) · [eng2007](https://github.com/eng2007) · [eugenicum](https://github.com/eugenicum) · [EvanProgramming](https://github.com/EvanProgramming) · [F1LT3R](https:/Line truncated
[0gl20shk0sbt36](https://github.com/0gl20shk0sbt36) · [1Git2Clone](https://github.com/1Git2Clone) · [20bytes](https://github.com/20bytes) · [47Cid](https://github.com/47Cid) · [7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX) · [8sero](https://github.com/8sero) · [A-Corner](https://github.com/A-Corner) · [aboimpinto](https://github.com/aboimpinto) · [Aboysky](https://github.com/Aboysky) · [adity982](https://github.com/adity982) · [AdityaVG13](https://github.com/AdityaVG13) · [AGSaturn](https://github.com/AGSaturn) · [ai-dengwsh](https://github.com/ai-dengwsh) · [aiapienthusiast](https://github.com/aiapienthusiast) · [Aitensa](https://github.com/Aitensa) · [AiurArtanis](https://github.com/AiurArtanis) · [alitvak69](https://github.com/alitvak69) · [all-lopezg](https://github.com/all-lopezg) · [alvin1](https://github.com/alvin1) · [amuthantamil](https://github.com/amuthantamil) · [AnaheimEX](https://github.com/AnaheimEX) · [Andrea-Bruno](https://github.com/Andrea-Bruno) · [Angel-Hair](https://github.com/Angel-Hair) · [angziii](https://github.com/angziii) · [AnonymousUser443](https://github.com/AnonymousUser443) · [antarikshraya](https://github.com/antarikshraya) · [Anyexyz](https://github.com/Anyexyz) · [Apeiron0w0](https://github.com/Apeiron0w0) · [aqilaziz](https://github.com/aqilaziz) · [AresNing](https://github.com/AresNing) · [ArronAI007](https://github.com/ArronAI007) · [Artenx](https://github.com/Artenx) · [asdfg314284230](https://github.com/asdfg314284230) · [Asteria1028](https://github.com/Asteria1028) · [asto18089](https://github.com/asto18089) · [atmosuwiryo](https://github.com/atmosuwiryo) · [axobase001](https://github.com/axobase001) · [aznikline](https://github.com/aznikline) · [baendlorel](https://github.com/baendlorel) · [banqii](https://github.com/banqii) · [Beltran12138](https://github.com/Beltran12138) · [bevis-wong](https://github.com/bevis-wong) · [BH8GCJ](https://github.com/BH8GCJ) · [BigBenLabs](https://github.com/BigBenLabs) · [Biilow](https://github.com/Biilow) · [bistack](https://github.com/bistack) · [BrathonBai](https://github.com/BrathonBai) · [bruce6135](https://github.com/bruce6135) · [BryonGo](https://github.com/BryonGo) · [buiducnhat](https://github.com/buiducnhat) · [buko](https://github.com/buko) · [BX166](https://github.com/BX166) · [c020627](https://github.com/c020627) · [cacdcaecawae](https://github.com/cacdcaecawae) · [caeserchen](https://github.com/caeserchen) · [caiyilian](https://github.com/caiyilian) · [CCChisato](https://github.com/CCChisato) · [ccomma](https://github.com/ccomma) · [cenab](https://github.com/cenab) · [ChaceLyee2101](https://github.com/ChaceLyee2101) · [chatman-media](https://github.com/chatman-media) · [chennest](https://github.com/chennest) · [chinaqy110](https://github.com/chinaqy110) · [chnjames](https://github.com/chnjames) · [chuntseevolving](https://github.com/chuntseevolving) · [ci4ic4](https://github.com/ci4ic4) · [cian-lien](https://github.com/cian-lien) · [cmdcorp6534](https://github.com/cmdcorp6534) · [cmyyy](https://github.com/cmyyy) · [codepgq](https://github.com/codepgq) · [Colorful-glassblock](https://github.com/Colorful-glassblock) · [ComeFromTheMars](https://github.com/ComeFromTheMars) · [CrepuscularIRIS](https://github.com/CrepuscularIRIS) · [ct-jaryn](https://github.com/ct-jaryn) · [ctxyao](https://github.com/ctxyao) · [cy2311](https://github.com/cy2311) · [cyq1017](https://github.com/cyq1017) · [czf0718](https://github.com/czf0718) · [dajiaohuang](https://github.com/dajiaohuang) · [DarrellThomas](https://github.com/DarrellThomas) · [ddlw](https://github.com/ddlw) · [demian-welt](https://github.com/demian-welt) · [Dev-next-gen](https://github.com/Dev-next-gen) · [dfwqdyl-ui](https://github.com/dfwqdyl-ui) · [DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI) · [DieMoe233](https://github.com/DieMoe233) · [DingYong4223](https://github.com/DingYong4223) · [djairjr](https://github.com/djairjr) · [dmitri-0](https://github.com/dmitri-0) · [dmt4](https://github.com/dmt4) · [donglovejava](https://github.com/donglovejava) · [douglarek](https://github.com/douglarek) · [Dr3259](https://github.com/Dr3259) · [DracheTek](https://github.com/DracheTek) · [drpars](https://github.com/drpars) · [dsingal0](https://github.com/dsingal0) · [dst1213](https://github.com/dst1213) · [duanchao-lab](https://github.com/duanchao-lab) · [Duducoco](https://github.com/Duducoco) · [dumbjack](https://github.com/dumbjack) · [dxfq](https://github.com/dxfq) · [dzyuan](https://github.com/dzyuan) · [e792a8](https://github.com/e792a8) · [Edouard-Legoupil](https://github.com/Edouard-Legoupil) · [elowen53](https://github.com/elowen53) · [eltociear](https://github.com/eltociear) · [EmiyaKiritsugu3](https://github.com/EmiyaKiritsugu3) · [encyc](https://github.com/encyc) · [eng2007](https://github.com/eng2007) · [eugenicum](https://github.com/eugenicum) ·Line truncated
Also with us, from commits whose email is not linked to an account: AccMoment · AmosLeeeeeeee · artanis · Assassin-D007 · bluth · codgo · kurise · LeHaiDang · lei · liushiao · liuyang · Lê Hải Đăng · markchang · ningjingkun · ornn.ban · pinvou3-dev · sanbo · ts25504 · v_wanghuanping01 · wangfeng · xiedongsheng · z27014 · zero · Zhiping · Zhuoran Deng · ZZHAsus · 浩淼 · 郭闯.
Also with us, from commits whose email is not linked to an account: AccMoment · AmosLeeeeeeee · artanis · Assassin-D007 · bluth · codgo · kurise · LeHaiDang · lei · liushiao · liuyang · markchang · ningjingkun · ornn.ban · pinvou3-dev · sanbo · ts25504 · v_wanghuanping01 · wangfeng · xiedongsheng · zero · Zhiping · Zhuoran Deng · ZZHAsus · 浩淼 · 郭闯.
<!-- contributor-wall:end -->
## Organizational thanks
+2 -1
View File
@@ -91,7 +91,8 @@ is the source. Translations live beside their English page (`*.id.md`) or in
[lifecycle outbox changelog](changelog-lifecycle-outbox.md)
- [Rebrand: DeepSeek TUI to Codewhale](REBRAND.md) and
[legacy `.deepseek/` paths](LEGACY_PATHS.md)
- [Third-party notices](THIRD_PARTY_NOTICES.md)
- Third-party notices for [adapted designs](THIRD_PARTY_NOTICES.md) and
[vendored sources](../THIRD_PARTY_NOTICES.md)
- Historical plans: [TUI modularization](TUI_MODULARIZATION.md),
[post-0.9.1 seams](POST_0_9_1_SEAMS.md),
[runtime simplification](RUNTIME_SIMPLIFICATION_DESIGN.md),
Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 337 KiB

+126 -13
View File
@@ -1,6 +1,6 @@
{
"generated_by": "scripts/contributor-wall.py refresh",
"github_contributor_list": 203,
"github_contributor_list": 212,
"people": [
{
"login": "0gl20shk0sbt36",
@@ -67,6 +67,15 @@
"merged pull request"
]
},
{
"login": "Aboysky",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "adity982",
"credited_for": [
@@ -176,15 +185,6 @@
"merged pull request"
]
},
{
"login": "angus-guo",
"credited_for": [
"changelog credit",
"co-author",
"commit",
"merged pull request"
]
},
{
"login": "angziii",
"credited_for": [
@@ -274,6 +274,7 @@
"co-author",
"commit",
"contributor record",
"harvested pull request",
"merged pull request"
]
},
@@ -534,6 +535,7 @@
{
"login": "cmdcorp6534",
"credited_for": [
"changelog credit",
"contributor record"
]
},
@@ -637,6 +639,15 @@
"merged pull request"
]
},
{
"login": "ddlw",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "demian-welt",
"credited_for": [
@@ -738,6 +749,15 @@
"changelog credit"
]
},
{
"login": "dsingal0",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "dst1213",
"credited_for": [
@@ -858,6 +878,15 @@
"contributor record"
]
},
{
"login": "Felixkw12",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "Final527",
"credited_for": [
@@ -925,6 +954,15 @@
"merged pull request"
]
},
{
"login": "gannp",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "gaord",
"credited_for": [
@@ -1123,6 +1161,12 @@
"merged pull request"
]
},
{
"login": "heydryft",
"credited_for": [
"changelog credit"
]
},
{
"login": "hhhaiai",
"credited_for": [
@@ -1236,6 +1280,15 @@
"co-author"
]
},
{
"login": "imgusguo",
"credited_for": [
"changelog credit",
"co-author",
"commit",
"merged pull request"
]
},
{
"login": "imkingjh999",
"credited_for": [
@@ -1264,6 +1317,13 @@
"merged pull request"
]
},
{
"login": "isaacs",
"credited_for": [
"changelog credit",
"contributor record"
]
},
{
"login": "ivysrono",
"credited_for": [
@@ -1484,6 +1544,15 @@
"merged pull request"
]
},
{
"login": "laozidabo",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "lawrencewzen",
"credited_for": [
@@ -1650,6 +1719,13 @@
"merged pull request"
]
},
{
"login": "liuyy2",
"credited_for": [
"changelog credit",
"contributor record"
]
},
{
"login": "lixiasky-back",
"credited_for": [
@@ -1728,6 +1804,15 @@
"contributor record"
]
},
{
"login": "luochen211",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "M-Maciej",
"credited_for": [
@@ -2063,6 +2148,12 @@
"merged pull request"
]
},
{
"login": "paulocrusius",
"credited_for": [
"commit"
]
},
{
"login": "pengyou200902",
"credited_for": [
@@ -2255,6 +2346,15 @@
"contributor record"
]
},
{
"login": "Ricardo-M-L",
"credited_for": [
"changelog credit",
"commit",
"contributor record",
"merged pull request"
]
},
{
"login": "RinZ27",
"credited_for": [
@@ -2473,6 +2573,13 @@
"contributor record"
]
},
{
"login": "soarkit",
"credited_for": [
"changelog credit",
"contributor record"
]
},
{
"login": "sockerch",
"credited_for": [
@@ -2981,6 +3088,13 @@
"harvested pull request"
]
},
{
"login": "ychu824",
"credited_for": [
"changelog credit",
"contributor record"
]
},
{
"login": "yekern",
"credited_for": [
@@ -3147,7 +3261,6 @@
"liuhq",
"liushiao",
"liuyang",
"Lê Hải Đăng",
"markchang",
"ningjingkun",
"ornn.ban",
@@ -3158,7 +3271,6 @@
"wangfeng",
"xiedongsheng",
"yekern",
"z27014",
"zero",
"Zhiping",
"Zhuoran Deng",
@@ -3194,6 +3306,7 @@
"Horace Liu": "liuhq",
"Leo Douglas": "douglarek",
"maple": "yekern",
"Alexander Kireev": "chatman-media"
"Alexander Kireev": "chatman-media",
"Lê Hải Đăng": "LeHaiDang"
}
}
+21
View File
@@ -43,3 +43,24 @@ executable replaced at that path by the same local user.
Local fixtures cover native modern Git and an emulated executable that ignores
runtime overrides. They do not qualify a real older-Git installation, partial
clones, or all platform-specific Git behavior.
## VS Code extension packager
The VS Code extension's packaging toolchain uses `@vscode/vsce` →
`@azure/identity` → `@azure/msal-node`. MSAL Node versions before 7.1.0 are
affected by [GHSA-xcx6-jx8p-x3h5](https://github.com/AzureAD/microsoft-authentication-library-for-js/security/advisories/GHSA-xcx6-jx8p-x3h5).
The extension manifest overrides Azure Identity's MSAL Node dependency to
`^7.1.2`; its lockfile resolves 7.1.2. Keep the override until Azure Identity
requires a patched version itself.
`npm run audit:dependencies -- --report <path>` audits the complete lockfile
and keeps the raw report. Every reported vulnerability blocks the check.
Incomplete reports, count mismatches and critical findings also fail. There
is no advisory exception.
After changing this dependency, materialize the lockfile with `npm ci`, run
the extension's existing `npm test` checks and build a local package with
`npm run package`. Packaging uses `vsce package --no-dependencies`, which
excludes development dependencies from the VSIX. A local package build does
not establish that a publishing authentication flow works; verify that flow
only when publication is separately authorized.
+93 -195
View File
@@ -1,21 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**وكيل برمجة مفتوح المصدر لطرفيتك يعمل مع أي نموذج.**
<h1>يمكن أن يكون النموذج ملكًا لأي أحد. أما الوكيل فينبغي أن يكون ملكًا لك.</h1>
أعطِ Codewhale مهمة فيقرأ المستودع ويعدّل الملفات ويشغّل الأوامر إلى أن تكتمل
المهمة أو يحتاج إلى مُدخل منك. يعمل مع أكثر من 40 مزوّدًا مدمجًا، وDeepSeek V4.1 Flash هو
الخيار الافتراضي، ومع نماذج تعمل على جهازك. ويسرد `/receipts` الملفات التي غيّرها
والأوامر التي شغّلها واستدعاءات الويب وMCP التي أجراها.
Codewhale وكيل برمجة مفتوح المصدر يعمل في الطرفية لديك، ومكتوب بلغة Rust. يعمل مع أي نموذج، ويستطيع توزيع مهمة واحدة على عدة وكلاء، وكل سطر فيه متاح لك لتقرأه.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```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)
@@ -23,245 +25,141 @@
[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) · [Українська](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) · [Català](README.ca.md)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="جلسة Codewhale في الطرفية" width="760">
<sub>هذه الترجمة مسودة آلية ولم يراجعها بعد متحدث أصلي.</sub>
<sub>نسخة تطوير من 0.10.2 مع نموذج اختبار ذي ردود مُعدّة مسبقًا، بإذن Full Access داخل مساحة عمل مؤقتة. أما التعديل والاختبارات الثلاثة ومراجعة الوكيل الفرعي فقد جرت فعلًا.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale في الطرفية بعد مهمة تجريبية. يذكر أنه أضاف الخيار --json إلى export.py، وأن الاختبارات المحلية الثلاثة نجحت، وأن المراجعة المفوَّضة لم تجد مشكلات. تعرض قائمة المهام في الأسفل ثلاث خطوات مكتملة، ويعرض سطر الحالة Full Access والمزوّد المحلي website-demo.">
<sub>بنية تطوير من الإصدار 0.10.3، الذي لم يصدر بعد، مع نموذج اختبار مكتوب مسبقًا، في وضع Full Access داخل مساحة عمل مؤقتة. التعديل والاختبارات الثلاثة ومراجعة الوكيل الفرعي جرت فعلًا.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — استخدام إضافي بنسبة 30% لـ DeepSeek v4.1 Flash" width="760">
</a>
</p>
[اطّلع على عرض Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). تحصل Codewhale على عمولة إحالة من OrcaRouter.
## التثبيت
على macOS وLinux:
يضع الأمر أعلاه `codewhale` الذي جرى التحقق من مجموعه الاختباري واسمه المختصر `codew` في `~/.local/bin`. إذا قالت الصدفة بعد ذلك `command not found`، فاتبع ملاحظة PATH التي يطبعها المثبّت ([التفاصيل](../INSTALL.md#put-it-on-your-path)). يحدّثه الأمر `codewhale update`.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
يضع المثبّت `codewhale` واسمه البديل المختصر `codew` في `~/.local/bin` بعد التحقق
منهما بمجموع الاختبار (checksum). إذا أظهرت الصدفة بعد ذلك `command not found`،
فشغّل سطر PATH الذي يطبعه المثبّت ([التفاصيل](../INSTALL.md#put-it-on-your-path)).
ويرقّيه الأمر `codewhale update`. تثبّت هذه الأوامر أحدث إصدار. أما هذه الصفحة
فتتبع `main`، لذا فالميزة المعلَّمة برقم إصدار تصل في ذلك الإصدار؛ ويسرد
[سجل التغييرات](../../CHANGELOG.md) ما يضيفه كل إصدار.
<details>
<summary><b>Windows وnpm وCargo وطرق تثبيت أخرى</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
تتوفر ملفات ثنائية جاهزة لأنظمة Linux وmacOS وWindows على x64 وarm64. وتجد Nix
وHomebrew على Linux وAndroid/Termux (معاينة) والتنزيل اليدوي في
[دليل التثبيت](../INSTALL.md)، والحاويات في [Docker](../DOCKER.md). التزم بطريقة
تثبيت واحدة لكل جهاز؛ وإلا ستوجد نسختان على `PATH` وتُستخدم النسخة التي تأتي أولًا.
</details>
تتوفر ملفات ثنائية جاهزة لأنظمة Linux وmacOS وWindows على x64 وarm64. تجد Scoop وNix وHomebrew على Linux وAndroid وTermux (معاينة) والتنزيل اليدوي في [دليل التثبيت](../INSTALL.md)، والحاويات في [Docker](../DOCKER.md). استخدم طريقة تثبيت واحدة لكل جهاز؛ وإلا ستوجد نسختان في `PATH` وتعمل التي تُعثر عليها أولًا.
## البدء السريع
1. احفظ عملك بعمل commit أو stash، ثم شغّل `codewhale` من جذر مستودع git.
افتراضيًا (**Accept Edits**) يعدّل الملفات في المستودع دون أن يسأل، ويسأل قبل كل أمر؛ اضغط `Shift+Tab` للتنقل بين الأذونات خطوة خطوة عندما تريده أن يسأل أكثر أو أقل.
2. شغّل `/provider` (أو اضغط `F3`)، واختر مزوّدًا، والصق مفتاح API الخاص به، ثم
اختر نموذجًا. DeepSeek هو المزوّد الافتراضي. إن لم يكن لديك مفتاح، فاختر بيئة
تشغيل محلية بدلًا من ذلك. وإذا لم يكن أي مزوّد مُعدًّا وكان Ollama يقدّم نموذج
محادثة بالفعل، يستخدمه Codewhale تلقائيًا؛ وبدءًا من 0.10.2 يعرضه عليك عندما
ترسل رسالتك الأولى.
1. احفظ عملك بـ commit أو 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` الأوامر واختصارات لوحة المفاتيح.
تعمل أوامر القراءة فقط فورًا. أما أي أمر آخر في الصدفة فيسأل عنه Codewhale أولًا: `y` يشغّله مرة واحدة، و`a` يسمح بالأوامر المشابهة طوال بقية المحادثة، و`n` يرفضه. يتراجع `/undo` عن طلبك الأخير وتغييرات ملفاته، ويعرض `/help` الأوامر والمفاتيح.
في السكربتات وCI، يشغّل `codewhale exec` مهمة واحدة دون الواجهة. افتراضيًا،
يستخدم `--auto` وضع Full Access: تعمل الأدوات دون سؤال، وتعمل أوامر الصدفة دون
صندوق حماية Codewhale، ويتيح وضع الثقة لأدوات الملفات الكتابة خارج مساحة العمل.
أضف `--sandbox workspace-write` للإبقاء على صندوق حماية الصدفة وقيود مساحة العمل
على أدوات الملفات، مع تعطيل وضع الثقة:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## الأوضاع والأذونات
يبدأ التثبيت الجديد في وضع Work مع إذن Accept Edits. قرص واحد يبدّل الاثنين: يتنقّل `Shift+Tab` عبر Ask → Accept Edits → Plan → Auto-Review → Full Access.
| | التبديل عبر | الخيارات |
| --- | --- | --- |
| الوضع (Mode) | محطة Plan على `Shift+Tab`، أو `/mode` | في **Plan** يقرأ ويبحث لكنه لا يغيّر شيئًا. وفي **Work** (كل المحطات الأخرى) يعدّل الملفات ويشغّل الأوامر. وابدأ هدفًا باستخدام `/goal` عندما يحتاج الطلب إلى أكثر من دورة. |
| الإذن (Permission) | `Shift+Tab` | مع **Ask** يسأل قبل كل تعديل على ملف وقبل كل أمر صدفة ليس للقراءة فقط. ومع **Accept Edits** تُطبَّق تعديلات الملفات في مستودع git دون سؤال، ويظل يسأل قبل الأوامر. ومع **Auto-Review** تعتمد القواعد ونموذج مراجِع الاستدعاءات الروتينية، ويرفض هذا الإذن الاستدعاءات عالية الخطورة؛ انتقل إلى Ask لتوافق عليها بنفسك. أما **Full Access** فلا يسأل أبدًا، ويمكن للأوامر الوصول إلى أي شيء على هذا الحاسوب؛ وتظل قواعد المستودع والسياسة المُدارة سارية. |
راجع [دليل الأوضاع والأذونات](../MODES.md) للتفاصيل.
في السكربتات وCI، يشغّل `codewhale exec` مهمة واحدة دون الواجهة. اقرأ [التشغيل دون واجهة](../INSTALL.md#headless-scripts-ci) قبل أن تمنحه الأدوات عبر `--auto`، لأن `--auto` يستخدم Full Access ما لم تضف بيئة معزولة.
## ما الذي يفعله
### الجديد في 0.10.2
أعطِ Codewhale مهمة، فيقرأ المستودع ويعدّل الملفات وينفّذ الأوامر حتى تكتمل المهمة أو يحتاج إلى ردّك. تسرد [ملاحظات أحدث إصدار](https://github.com/codewhale-hq/Codewhale/releases/latest) أحدث التغييرات، ويضم [سجل التغييرات](../../CHANGELOG.md) كل إصدار.
- يحوّل `/pet on` طرفيتك إلى حوت متحرك يُظهر ما يفعله الوكيل، بينما يبقى مربع
الرسائل قابلًا للاستخدام. وتكتب جسيماته البالغ عددها 980 الخطوة الحالية
بالإنجليزية أو الصينية أو اليابانية.
- يعرض `/workbar terminal` الصدفات التي يشغّلها الوكيل أثناء عملها. اكتب في
إحداها، أو اضغط `Ctrl+N` لتفتح صدفة خاصة بك (macOS وLinux).
- يتراجع `/undo` عن آخر طلب لك كاملًا في خطوة واحدة، بما في ذلك كل ملف غيّره،
ويعمل `/diff` في المجلدات التي لا تستخدم Git.
- عندما تكون الخطة جاهزة، يسألك Codewhale هل تبدأ Work بإذن Ask أو Auto-Review،
أم تواصل التخطيط.
- يمنح `/color` كل محادثة لونًا خاصًا بها لمربع الكتابة، ويُحفظ مع الجلسة.
- يمكن أن يستخدم `web_search` واجهة Search API الجديدة من DeepSeek: اضبط
`[search] provider = "deepseek"` مع مفتاح DeepSeek.
- خارج Full Access، لا يعمل أبدًا أمر `curl` أو `wget` قد يرفع بيانات اعتماد دون
موافقتك، ويُرفض الأمر الذي يُخفي محارف Unicode غير مرئية. ولم يعد `write`
يستبدل ملفًا لم يقرأه الوكيل، أو ملفًا تغيّر بعد أن قرأه.
### أي نموذج
### النماذج
يأتي مدمجًا مع أكثر من 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)).
يأتي Codewhale بأكثر من 40 مزوّدًا مدمجًا، منها Anthropic وOpenAI وDeepSeek
وGoogle وMistral وMoonshot وOpenRouter وxAI. وتعمل أي نقطة نهاية متوافقة مع
OpenAI، وكذلك النماذج المحلية عبر Ollama أو vLLM أو SGLang. والنموذج الافتراضي
هو `deepseek-flash` من DeepSeek، الذي نقلته DeepSeek إلى DeepSeek-V4.1-Flash-1017
في 2026-10-17؛ ويشغّله 0.10.1 دون تحديث
([التفاصيل](../PROVIDERS.md#deepseek-v41-flash)).
ويبدّل `/model` النموذج بين دورات المحادثة، ويختار `/model auto` نموذجًا لكل دورة
(ويضبط `/router` طريقة الاختيار). ويعرض `/turn inspect` النموذج الذي استخدمته
الدورة وتكلفتها والمدة التي استغرقتها. ويتيح لك `codewhale auth chatgpt` استخدام
اشتراك ChatGPT بدلًا من مفتاح API (تجريبي). راجع [المزوّدين](../PROVIDERS.md).
يبدّل `/model` النموذج بين الأدوار، ويختار `/model auto` نموذجًا لكل دور (ويحدد `/router` طريقة الاختيار). يعرض `/turn inspect` النموذج الذي استخدمه دور ما وكلفته والمدة التي استغرقها. راجع [المزوّدون](../PROVIDERS.md).
### الإيصالات والتراجع
يسرد `/receipts`، أو `codewhale receipts --last` بعد الخروج، الملفات التي تغيّرت،
والأوامر التي شُغّلت، واستدعاءات الويب وMCP، والوكلاء الذين شُغّلوا، والموافقات
ومن منحها، وحالات الفشل. ويُلغي `/undo` آخر طلب لك والملفات التي غيّرها، في خطوة واحدة ومن دون وضع الثقة. ويعيد `/restore` مساحة العمل
كلها إلى لقطة سابقة؛ ولأن ذلك يكتب فوق التعديلات اللاحقة، فإنه يتطلب `/trust on`
أو Full Access. راجع [الإيصالات](../RECEIPTS.md).
يسرد `/receipts`، أو `codewhale receipts --last` بعد الخروج، الملفات التي غيّرتها الجلسة، والأوامر التي شغّلتها، واستدعاءات الويب وMCP، والوكلاء الذين بدأتهم، وكل موافقة ومن أعطاها، وما فشل. يتراجع `/undo` عن طلبك الأخير والملفات التي غيّرها في خطوة واحدة. يعيد `/restore` مساحة العمل كلها إلى لقطة سابقة، ولأن ذلك يكتب فوق التعديلات اللاحقة فهو يحتاج إلى `/trust on` أو Full Access. راجع [الإيصالات](../RECEIPTS.md).
تُحفظ عمليات تشغيل exec التي تتيح أدوات بكل صيغ الإخراج، لذا يعمل
`codewhale receipts --last` بعد `exec --auto`، بما في ذلك مع `--json`.
أما عمليات التشغيل التي تقتصر على الإجابة بإخراج نصي أو `--json` فلا تُحفظ إلا
عند الاستئناف أو عند بدء ضغط المحادثة؛ استخدم `--output-format stream-json`
لحفظها دائمًا من أجل الإيصالات أو `exec --continue`.
### عدة وكلاء على مهمة واحدة
### الأعمال الأطول
يحدد `/goal` هدفًا يستمر عبر الأدوار. يستطيع Codewhale توزيع العمل على [وكلاء فرعيين](../SUBAGENTS.md)، أو تشغيل [Fleet](../FLEET.md) من الوكلاء لكل منهم دوره ونموذجه، أو اتباع [سير عمل](../WORKFLOW_AUTHORING.md) محفوظ في المستودع.
يحدد `/goal` هدفًا يستمر عبر دورات المحادثة. ويستطيع Codewhale توزيع العمل على
[وكلاء فرعيين](../SUBAGENTS.md)، أو تشغيل [فريق وكلاء](../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 ملف `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)).
### الامتدادات
اربط [خوادم MCP](../MCP.md)، وأضف [المهارات](../SKILLS.md) و[الإضافات](../PLUGINS.md)،
وشغّل [الخطافات](../HOOKS.md) عند أحداث الجلسة والأدوات. ويتيح وضع الشيفرة
(Code mode، تجريبي ومفعّل افتراضيًا) للنموذج كتابة برنامج `execute_tools` واحد
يستدعي عدة أدوات من MCP والإضافات؛ ويظل كل استدعاء خاضعًا لقواعد الموافقة لديك
ويحتفظ بإيصاله. وتستطيع إضافة Computer Use
المثبّتة بشكل مستقل (تجريبية، لنظام macOS فقط) مراقبة التطبيقات الأخرى والتحكم فيها. وتبقى
معطّلة إلى أن تراجع صلاحيات وصولها وتفعّلها
([الدليل](https://github.com/codewhale-hq/codewhale-cu-plugin)).
## طرق التشغيل
### طرق التشغيل
| الأمر | ما يفعله |
| --- | --- |
| `codewhale` | تطبيق الطرفية التفاعلي |
| `codewhale exec "…"` | مهمة واحدة دون الواجهة. دون خيارات إضافية يجيب دون استخدام الأدوات؛ ويفعّل `--auto` الأدوات مع Full Access افتراضيًا، ويقيّدها `--sandbox workspace-write`، ويبث `--output-format stream-json` الأحداث بصيغة JSON |
| `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 review`، باستخدام مفتاح النموذج الخاص بك وهوية App اختيارية |
| `codewhale app-server --http` | واجهة [Runtime API](../RUNTIME_API.md)، وهي واجهة HTTP محلية للخيوط والأحداث والموافقات وتغييرات الملفات في كل دورة |
| `codewhale exec "…"` | مهمة واحدة دون الواجهة، للسكربتات وCI ([التشغيل دون واجهة](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | عميل ويب محلي على `127.0.0.1` ([الدليل](../WEB.md)) |
| `codewhale review --pr N` | مراجعة استشارية لطلب سحب على GitHub؛ يشغّلها [إعداد بوت GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) بمفتاح النموذج الخاص بك |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md)، واجهة HTTP محلية للخيوط والأحداث والموافقات وتغييرات الملفات في كل دور |
| `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)).
ويجري تطوير تطبيق أصلي لسطح المكتب مبني على Runtime API؛ ولا يتوفر له تنزيل عام
بعد.
يتشارك تطبيق الطرفية و`exec` و`web` وRuntime API محركًا واحدًا ([البنية](../ARCHITECTURE.md)). تتصل به [إضافة VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) التي يصونها المجتمع من الشريط الجانبي ([المصدر](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## التكلفة والحسابات
## كيف يبقى آمنًا
يُتاح Codewhale مجانًا بترخيص MIT. عندما تستخدم مفتاح API الخاص بك تدفع للمزوّد
مباشرة؛ ولا تحتاج النماذج المحلية إلى مفتاح. ويعرض الشريط السفلي و`/cost` تكلفة
الجلسة عندما يكون السعر معروفًا، ويُعرض السعر غير المعروف على أنه غير معروف، ولا
يُعرض أبدًا على أنه مجاني.
مفتاحان يحددان ما يستطيع Codewhale فعله من تلقاء نفسه. عندما يكون حقل الإدخال فارغًا، يغيّر `Tab` الوضع: **Plan** يقرأ ويبحث ولا يغيّر شيئًا، و **Work** يعدّل الملفات وينفّذ الأوامر، و **Operate** له صلاحيات Work نفسها ويواصل العمل حتى يتحقق من الهدف أو يحتاج إليك. ويغيّر `Shift+Tab` الصلاحية. **Ask**، وهو الافتراضي، يطبّق تعديلات الملفات في مستودعك دون أن يسأل، ويسأل قبل أوامر shell التي لا تقتصر على القراءة. **Auto-Review** يترك للقواعد ولنموذج مراجِع الموافقة على الاستدعاءات الروتينية ويرفض العالية الخطورة؛ انتقل إلى Ask لتوافق عليها بنفسك. **Full Access** لا يسأل أبدًا ويعطّل sandbox الخاص بـ Codewhale، مع بقاء قواعد المستودع والسياسة المُدارة سارية. التفاصيل في [دليل v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md).
لا تحتاج إلى حساب. وتبقى المفاتيح التي تضيفها عبر `/provider` على جهازك.
قادم في 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` معاينة محجوبة البيانات الحساسة للطلب التالي دون إرساله.
في Ask وAuto-Review تعمل الأوامر داخل صندوق حماية نظام التشغيل حيثما يوفّر النظام
واحدًا: Seatbelt على macOS، وbubblewrap على Linux عندما يكون مثبّتًا. لا يوجد على
Windows صندوق حماية لنظام التشغيل بعد، ويوقف Full Access صندوق الحماية. وداخل
صندوق الحماية لا تستطيع أوامر الصدفة قراءة مخازن بيانات الاعتماد مثل `~/.ssh`
و`~/.aws` وملفات `.env`؛ وبدءًا من 0.10.2 تشمل القاعدة نفسها جلسات الطرفية ومزيدًا
من أدوات الملفات. ويعرض `/preview-request` معاينة للطلب التالي بعد حجب بياناته الحساسة (redacted)، دون
إرساله.
لا تحتاج إلى حساب، وتبقى المفاتيح التي تضيفها عبر `/provider` على جهازك. حين تستخدم مفتاح API الخاص بك تدفع للمزوّد مباشرة، ولا تحتاج النماذج المحلية إلى مفتاح. يعرض التذييل و`/cost` كلفة الجلسة حين يكون السعر معروفًا، ويظهر السعر غير المعروف على أنه غير معروف، لا على أنه مجاني أبدًا.
القياس عن بُعد مفعّل افتراضيًا. يرسل أعدادًا مجمّعة (الإصدار والمنصة، ومدة الجلسة
ونتيجتها، والمزوّدين المدمجين الذين استخدمتهم، وأعداد الميزات والأخطاء) مع معرّف
تثبيت عشوائي يتغيّر كل 90 يومًا، ولا يرسل أبدًا المحادثات أو الشيفرة أو الموجّهات
(prompts) أو أسماء النماذج أو أسماء الملفات أو المستودعات
أو بيانات الاعتماد. ويوقفه الأمر `codewhale config set telemetry false`. وعند بدء
التشغيل يتحقق Codewhale أيضًا من GitHub بحثًا عن إصدار جديد؛ اضبط
`CODEWHALE_NO_UPDATE_CHECK=1` لتخطي ذلك. المزيد في
[ترتيب التفويض](../AUTHORIZATION_ORDER.md) و[صندوق الحماية](../SANDBOX.md)
و[القياس عن بُعد](../TELEMETRY.md).
القياس عن بُعد مفعّل افتراضيًا. يرسل أعدادًا مجمّعة (الإصدار والمنصة، ومدة الجلسة ونتيجتها، والمزوّدين المدمجين الذين استخدمتهم، وأعداد الميزات والأخطاء) مع معرّف تثبيت عشوائي يتغير كل 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)).
## التوثيق
تتبع هذه الأدلة الفرع الرئيسي، لذا قد تصف تغييرات لم تصل إلى أحدث إصدار بعد.
| ابدأ من هنا | المرجع |
| --- | --- |
| [التثبيت](../INSTALL.md) | [الإعدادات](../CONFIGURATION.md) |
| [المزوّدون والنماذج المحلية](../PROVIDERS.md) | [البنية](../ARCHITECTURE.md) |
| [الأوضاع والأذونات](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [اختصارات لوحة المفاتيح](../KEYBINDINGS.md) | [تأليف الإضافات](../PLUGIN_AUTHORING.md) |
| [مراجعة PR على GitHub](../GITHUB_ACTION.md) | [كل التوثيق](../README.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) |
| [مراجعة طلبات السحب على GitHub](../GITHUB_ACTION.md) | [كل التوثيق](../README.md) |
## المجتمع
## المساهمة
Codewhale هو ما هو عليه اليوم بفضل مجتمعه، ونرحّب بكل الملاحظات: خلل، أو فكرة، أو شيء بدا أو أحسست أنه غير صحيح.
[افتح issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) لأيٍّ منها؛ وهو أيضًا أفضل مكان لبدء ميزة جديدة.
نرحّب بطلبات السحب للإصلاحات والترجمات والمزوّدين والعمل المخطَّط له.
يوضّح [دليل المساهمة](../../CONTRIBUTING.md) أين يذهب كل نوع من المساعدة، وتوضّح [خارطة الطريق](../ROADMAP.md) إلى أين يتجه المشروع.
يحتفظ المساهمون بنسبة العمل الذي يُدمج إليهم، ويبيّن [هيكل المستودع](../../CONTRIBUTING.md#project-structure) مكان كل شيء.
يبني Codewhale في العلن الأشخاص الذين يستخدمونه، بلغات كثيرة.
تواصل معنا على [Discord](https://discord.gg/37gfS3ksug)، أو أضف القائم على صيانة
المشروع، Hunter، على WeChat (`hunterbown`) واطلب الانضمام إلى مجموعة Whale Brothers. الجميع مرحَّب بهم.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="جدار المساهمين في Codewhale: صورة رمزية لكل شخص له في Codewhale شيفرة أو commit مشترك في التأليف أو طلب سحب جرى استكماله أو بلاغ نُسب إليه، والعدد الإجمالي في الأعلى."></a>
يعدّ [جدار المساهمين](../CONTRIBUTORS.md) كل من له في Codewhale شيفرة أو commit مشترك في التأليف أو طلب سحب جرى استكماله أو بلاغ نُسب إليه، بمن فيهم من تُغفلهم قائمة المساهمين في GitHub نفسها. يعيد `scripts/contributor-wall.py` إنشاء الصورة والقائمة من سجل git ومن GitHub.
كل ملاحظة مرحّب بها: خطأ، أو فكرة، أو شيء بدا أو بدا استخدامه غير صحيح. [افتح issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) لأي من ذلك؛ والـ issue أيضًا أفضل مكان لبدء ميزة جديدة. طلبات السحب مرحّب بها للإصلاحات والترجمات والمزوّدين والعمل المخطط له. الأسئلة مكانها [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 ولا لأي مزوّد نماذج آخر. شكرًا
لـ[كل من ساهم](../CONTRIBUTORS.md).
بدأ Codewhale باسم `deepseek-tui` وما زال يقرأ إعدادات ذلك المشروع وجلساته. يُصان على نحو مستقل، ولا ينتمي إلى DeepSeek أو إلى أي مزوّد نماذج آخر.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
الترخيص: [MIT](../../LICENSE). والشيفرة المقتبسة من مشاريع مفتوحة المصدر أخرى مُدرجة في
[إشعارات الأطراف الثالثة](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). الشيفرة المقتبسة من مشاريع أخرى مفتوحة المصدر مدرجة في إشعارات الأطراف الثالثة الخاصة بـ[المصادر المضمّنة](../../THIRD_PARTY_NOTICES.md) و[التصاميم المقتبسة](../THIRD_PARTY_NOTICES.md).
+92 -215
View File
@@ -1,22 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Un agent de programació de codi obert per al teu terminal que funciona amb qualsevol model.**
<h1>El model pot ser de qualsevol. L’agent hauria de ser teu.</h1>
Dona-li una tasca a Codewhale i llegirà el repositori, editarà fitxers i
executarà ordres fins que la tasca estigui feta o necessiti alguna resposta teva.
Funciona amb més de 40 proveïdors integrats, DeepSeek V4.1 Flash per defecte, i amb models
que s’executen a la teva pròpia màquina. `/receipts` llista els fitxers que ha
canviat, les ordres que ha executat i les crides web i MCP que ha fet.
Codewhale és un agent de programació de codi obert per al teu terminal, escrit en Rust. Funciona amb qualsevol model, pot repartir una tasca entre diversos agents i en pots llegir cada línia.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Això instal·la l’última versió a macOS o Linux, i no necessita cap compte. [Windows, npm i Cargo](#installació) són més avall.
[![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)
@@ -24,265 +25,141 @@ canviat, les ordres que ha executat i les crides web i MCP que ha fet.
[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) · [Українська](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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Una sessió de terminal de Codewhale" width="760">
<sub>Aquesta traducció és un esborrany automàtic que encara no ha revisat cap parlant nadiu.</sub>
<sub>Una compilació de desenvolupament de la 0.10.2 amb un model de prova amb guió, en Full Access dins d’un espai de treball d’un sol ús. L’edició, tres proves i una revisió d’un subagent es van executar de debò.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale en un terminal després d’una tasca de demostració. Informa que ha afegit una opció --json a export.py, que han passat les 3 proves locals i que una revisió delegada no ha trobat cap problema. La llista de tasques de sota mostra tres passos completats, i la línia d’estat mostra Full Access i el proveïdor local website-demo.">
<sub>Una compilació de desenvolupament de la 0.10.3, que encara no s’ha publicat, amb un model de prova amb guió, en Full Access dins d’un espai de treball d’un sol ús. L’edició, tres proves i una revisió d’un subagent es van executar de debò.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — un 30% més d’ús de DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Consulta l’oferta de Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale rep una comissió per recomanació d’OrcaRouter.
## Instal·lació
macOS i Linux:
L’ordre de dalt posa `codewhale`, verificat amb suma de comprovació, i el seu àlies curt `codew` a `~/.local/bin`. Si després la shell diu `command not found`, segueix la nota sobre el PATH que imprimeix l’instal·lador ([detalls](../INSTALL.md#put-it-on-your-path)). `codewhale update` l’actualitza.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
L’instal·lador desa `codewhale` i el seu àlies curt `codew` a `~/.local/bin`,
després de comprovar-ne la suma de verificació. Si després el teu shell diu
`command not found`, executa la línia de PATH que mostra l’instal·lador
([detalls](../INSTALL.md#put-it-on-your-path)). `codewhale update`
l’actualitza. Aquestes ordres instal·len la darrera versió. Aquesta pàgina
segueix `main`, de manera que una funcionalitat marcada amb una versió arriba en
aquella versió; el [registre de canvis](../../CHANGELOG.md) llista què afegeix cada
versió.
<details>
<summary><b>Windows, npm, Cargo i altres maneres d’instal·lar-lo</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Hi ha binaris precompilats per a Linux, macOS i Windows en x64 i arm64. Nix,
Homebrew a Linux, Android/Termux (versió preliminar) i les descàrregues manuals
s’expliquen a la [guia d’instal·lació](../INSTALL.md), i els contenidors a
[Docker](../DOCKER.md). Fes servir un sol mètode d’instal·lació per màquina;
si no, acabaràs amb dues còpies al `PATH` i s’executarà la que hi aparegui
primer.
</details>
Hi ha binaris precompilats per a Linux, macOS i Windows en x64 i arm64. Scoop, Nix, Homebrew a Linux, Android i Termux (vista prèvia) i les baixades manuals són a la [guia d’instal·lació](../INSTALL.md), i els contenidors a [Docker](../DOCKER.md). Fes servir un sol mètode d’instal·lació per màquina; si no, hi haurà dues còpies al teu `PATH` i guanyarà la primera que es trobi.
## Inici ràpid
1. Fes un commit o un stash de la teva feina i després executa `codewhale` des
de l’arrel d’un repositori git. Per defecte (**Accept Edits**), edita fitxers al repositori sense preguntar
i pregunta abans de cada ordre; `Shift+Tab` recorre el selector de permisos quan vols que pregunti més o menys.
2. Executa `/provider` (o prem `F3`), tria un proveïdor, enganxa’n la clau API
i escull un model. DeepSeek és el proveïdor per defecte. Si no tens cap
clau, tria un entorn local. Si no hi ha cap proveïdor configurat i Ollama ja
serveix un model de xat, Codewhale el fa servir automàticament; a partir de
la 0.10.2 te l’ofereix quan envies el primer missatge.
1. Fes commit o stash de la teva feina i executa `codewhale` des de l’arrel d’un repositori git. Per defecte aplica els canvis de fitxers del repositori sense preguntar i pregunta abans de cada ordre de shell que no sigui només de lectura.
2. Executa `/provider` (o prem `F3`), tria un proveïdor, enganxa la seva clau d’API i tria un model. DeepSeek és el proveïdor per defecte. En el primer inici sense clau, Codewhale et demana un proveïdor quan envies el primer missatge, i ofereix un model local quan respon un servidor Ollama local.
3. Escriu una tasca:
```text
Fix the failing tests and explain what changed.
```
Les ordres de només lectura s’executen directament. Per a qualsevol altra ordre
de shell, Codewhale pregunta primer: `y` l’executa una vegada, `a` permet ordres
com aquesta durant la resta de la conversa, `n` la rebutja. `/undo` desfà la
teva última petició i els canvis que va fer als fitxers. `/help` llista les ordres i les tecles.
Les ordres de només lectura s’executen de seguida. Per a qualsevol altra ordre de shell, Codewhale pregunta primer: `y` l’executa una vegada, `a` permet ordres semblants durant la resta de la conversa i `n` la rebutja. `/undo` desfà la teva darrera petició i els seus canvis de fitxers, i `/help` mostra les ordres i les tecles.
Per a scripts i CI, `codewhale exec` executa una sola tasca sense la interfície.
Per defecte, `--auto` fa servir Full Access: les eines s’executen sense preguntar,
les ordres de shell no tenen cap sandbox de Codewhale i el mode de confiança
permet que les eines de fitxers escriguin fora de l’espai de treball. Afegeix
`--sandbox workspace-write` per mantenir el sandbox de shell i les restriccions
de les eines de fitxers a l’espai de treball, amb el mode de confiança desactivat:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modes i permisos
Una instal·lació nova comença en mode Work amb el permís Accept Edits. Un sol selector canvia tots dos: `Shift+Tab` recorre Ask → Accept Edits → Plan → Auto-Review → Full Access.
| | Es canvia amb | Opcions |
| --- | --- | --- |
| Mode | la parada Plan de `Shift+Tab`, o `/mode` | **Plan** llegeix i cerca però no canvia res. **Work** (totes les altres parades) edita fitxers i executa ordres; inicia un objectiu amb `/goal` quan una petició necessiti més d’un torn. |
| Permís | `Shift+Tab` | **Ask** pregunta abans de cada edició de fitxer i de cada ordre de shell que no és de només lectura. **Accept Edits** aplica les edicions de fitxers al teu repositori git sense preguntar i continua preguntant abans de les ordres. **Auto-Review** deixa que unes regles i un model revisor aprovin les crides rutinàries i rebutja les d’alt risc; canvia a Ask per aprovar-les tu mateix. **Full Access** no pregunta mai, i les ordres poden accedir a tot el que hi ha en aquest ordinador; les regles del repositori i la política gestionada continuen aplicant-se. |
Consulta la [guia de modes i permisos](../MODES.md) per als detalls.
Per a scripts i CI, `codewhale exec` executa una tasca sense la interfície. Llegeix [execucions sense interfície](../INSTALL.md#headless-scripts-ci) abans de donar-li eines amb `--auto`, perquè `--auto` fa servir Full Access tret que hi afegeixis un sandbox.
## Què fa
### Novetats de la 0.10.2
Dona una tasca a Codewhale i llegirà el repositori, editarà fitxers i executarà ordres fins que la tasca estigui feta o necessiti la teva resposta. Les [notes de la darrera versió](https://github.com/codewhale-hq/Codewhale/releases/latest) recullen els canvis més nous, i el [registre de canvis](../../CHANGELOG.md) inclou cada versió.
- `/pet on` converteix el teu terminal en una balena animada que mostra què fa
l’agent, mentre el quadre de missatges continua actiu. Les seves 980
partícules escriuen el pas actual en anglès, xinès o japonès.
- `/workbar terminal` mostra els shells que executa l’agent mentre s’executen.
Escriu en un d’ells, o prem `Ctrl+N` per obrir un shell propi (macOS i
Linux).
- `/undo` desfà tota la teva última petició d’un sol cop, inclosos tots els
fitxers que va canviar, i `/diff` funciona en carpetes sense Git.
- Quan un pla està llest, Codewhale et pregunta si vols començar
Work amb Ask o Auto-Review, o continuar planificant.
- `/color` dona a cada xat el seu propi color al quadre de missatges, desat amb
la sessió.
- `web_search` pot fer servir la nova Search API de DeepSeek: defineix
`[search] provider = "deepseek"` amb una clau de DeepSeek.
- Fora de Full Access, un `curl` o `wget` que pujaria una credencial no
s’executa mai sense la teva aprovació, i es rebutja qualsevol ordre que amagui
Unicode invisible. `write` ja no substitueix un fitxer que l’agent no ha
llegit, ni un que ha canviat després que el llegís.
### Qualsevol model
### Models
Porta més de 40 proveïdors integrats, entre ells Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter i xAI. Funciona qualsevol endpoint compatible amb OpenAI, i també els models locals amb Ollama, vLLM o SGLang. El model per defecte és `deepseek-flash` de DeepSeek, que ara serveix DeepSeek V4.1 Flash ([detalls](../PROVIDERS.md#deepseek-v41-flash)).
Hi ha més de 40 proveïdors integrats, entre els quals Anthropic, OpenAI,
DeepSeek, Google, Mistral, Moonshot, OpenRouter i xAI. Funciona qualsevol
endpoint compatible amb OpenAI, i també els models locals mitjançant Ollama,
vLLM o SGLang. El model per defecte és `deepseek-flash` de DeepSeek, que
DeepSeek va passar a DeepSeek-V4.1-Flash-1017 el 2026-10-17; la 0.10.1
l’executa sense cap actualització
([detalls](../PROVIDERS.md#deepseek-v41-flash)).
`/model` canvia de model entre torns, i `/model auto` en tria un per a cada torn
(`/router` configura com ho fa). `/turn inspect` mostra quin model ha fet servir
un torn, quant ha costat i quant ha trigat. `codewhale auth chatgpt` et permet
fer servir un pla de ChatGPT en lloc d’una clau API (experimental). Consulta
[Proveïdors](../PROVIDERS.md).
`/model` canvia de model entre torns, i `/model auto` en tria un per a cada torn (`/router` en defineix la manera). `/turn inspect` mostra quin model ha fet servir un torn, quant ha costat i quant ha trigat. Consulta [Proveïdors](../PROVIDERS.md).
### Rebuts i desfer
`/receipts`, o `codewhale receipts --last` després de sortir, llista els fitxers
canviats, les ordres executades, les crides web i MCP, els agents iniciats, les
aprovacions i qui les va donar, i els errors. `/undo` desfà la teva última petició i els fitxers que va canviar, d’un sol cop i sense el mode de confiança. `/restore` torna tot l’espai de treball a una
instantània anterior; com que això sobreescriu les edicions posteriors,
necessita `/trust on` o Full Access. Consulta [Rebuts](../RECEIPTS.md).
`/receipts`, o `codewhale receipts --last` després de sortir, llista els fitxers que ha canviat una sessió, les ordres que ha executat, les crides web i MCP, els agents que ha iniciat, cada aprovació i qui l’ha donada, i el que ha fallat. `/undo` desfà la teva darrera petició i els fitxers que ha canviat en un sol pas. `/restore` torna tot l’espai de treball a una instantània anterior i, com que això sobreescriu les edicions posteriors, necessita `/trust on` o Full Access. Consulta [Rebuts](../RECEIPTS.md).
Les execucions d’exec que ofereixen eines es desen en tots els formats de
sortida, de manera que `codewhale receipts --last` funciona després
d’`exec --auto`, també amb `--json`. Les execucions que només donen una resposta
en text o amb `--json` només es desen quan es reprèn una conversa o quan
comença la compactació de la conversa; fes servir `--output-format stream-json`
per desar-les sempre per als rebuts o per a `exec --continue`.
### Diversos agents en una tasca
### Feines més llargues
`/goal` defineix un objectiu que es manté entre torns. Codewhale pot repartir la
feina entre [subagents](../SUBAGENTS.md), executar una [flota](../FLEET.md)
d’agents o seguir un [flux de treball](../WORKFLOW_AUTHORING.md) versionat al
repositori.
### Si véns d’un altre agent
Codewhale llegeix `AGENTS.md` pel seu compte. Els fitxers d’instruccions escrits
per a altres eines, com ara `CLAUDE.md`, `.cursorrules` o
`.github/copilot-instructions.md`, només es carreguen si ho actives amb
`project_instruction_imports = ["claude"]` (o `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`) a la configuració; consulta
[config.example.toml](../../config.example.toml). Codewhale avisa quan en troba un que
no ha carregat.
`/import-claude` prepara una importació de la teva configuració i dels servidors
MCP de Claude Code perquè la revisis. `/plugin install` accepta plugins de
Claude Code que continguin skills, ordres, perfils d’agent i servidors MCP, i
rebutja els plugins que necessiten hooks o servidors LSP
([detalls](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` fixa un objectiu que continua d’un torn a l’altre. Codewhale pot repartir la feina entre [subagents](../SUBAGENTS.md), fer anar una [Fleet](../FLEET.md) d’agents amb rols i models propis, o seguir un [flux de treball](../WORKFLOW_AUTHORING.md) desat al repositori.
### Extensions
Connecta [servidors MCP](../MCP.md), afegeix [skills](../SKILLS.md) i
[plugins](../PLUGINS.md), i executa [hooks](../HOOKS.md) en esdeveniments de
sessió i d’eines. Code mode (experimental, activat per defecte) permet que el
model escrigui un sol programa `execute_tools` que crida diverses eines de MCP i
de plugins; cada crida continua subjecta a les teves regles d’aprovació i
conserva el seu rebut. El plugin Computer Use instal·lat independentment (experimental, només
macOS) pot observar i operar altres aplicacions. Roman desactivat fins que en revises
l’accés i l’actives ([guia](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Connecta [servidors MCP](../MCP.md), afegeix [skills](../SKILLS.md) i [connectors](../PLUGINS.md), i executa [hooks](../HOOKS.md) en esdeveniments de sessió i d’eines. El mode codi (experimental, activat per defecte) permet que el model escrigui un programa `execute_tools` que crida diverses eines MCP i de connectors; cada crida continua respectant les teves regles d’aprovació i en conserva el rebut. El connector Computer Use inclòs a v0.10.2 (experimental, només macOS) pot observar i fer servir altres aplicacions, i resta apagat fins que en revises l’accés i l’actives ([guia](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Arriba amb 0.10.3: el connector es publica [per separat](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Maneres d’executar-lo
### Maneres d’executar-lo
| Ordre | Què fa |
| --- | --- |
| `codewhale` | L’aplicació interactiva de terminal |
| `codewhale exec "…"` | Una tasca sense la interfície. Per si sol respon sense fer servir eines; `--auto` activa les eines amb Full Access per defecte, `--sandbox workspace-write` les restringeix, i `--output-format stream-json` emet els esdeveniments en streaming com a JSON |
| `codewhale web` | Una interfície web local a `127.0.0.1` ([guia](../WEB.md)) |
| `codewhale review --pr N` | Una revisió orientativa d’un pull request de GitHub. La [configuració del bot de GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) genera un workflow amb la versió fixada per a revisions automàtiques i `@codewhale review`, amb la teva pròpia clau de model i una identitat d’App opcional |
| `codewhale exec "…"` | Una tasca sense la interfície, per a scripts i CI ([execucions sense interfície](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Un client web local a `127.0.0.1` ([guia](../WEB.md)) |
| `codewhale review --pr N` | Una revisió orientativa d’una pull request de GitHub; la [configuració del bot de GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) l’executa amb la teva pròpia clau de model |
| `codewhale app-server --http` | La [Runtime API](../RUNTIME_API.md), una API HTTP local per a fils, esdeveniments, aprovacions i els canvis de fitxers de cada torn |
| `codewhale serve --acp` | L’Agent Client Protocol sobre stdio, per a editors com ara Zed |
| `codewhale serve --acp` | L’Agent Client Protocol sobre stdio, per a editors com Zed |
L’aplicació de terminal, `exec`, `web` i la Runtime API comparteixen un mateix
motor ([arquitectura](../ARCHITECTURE.md)). Una
[extensió de VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
mantinguda per la comunitat s’hi connecta des de la barra lateral
([codi font](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Hi ha en desenvolupament una aplicació d’escriptori nativa basada en la Runtime
API; encara no té cap descàrrega pública.
L’aplicació de terminal, `exec`, `web` i la Runtime API comparteixen un sol motor ([arquitectura](../ARCHITECTURE.md)). Una [extensió per a VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) mantinguda per la comunitat s’hi connecta des de la barra lateral ([codi font](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Cost i comptes
## Com es manté segur
Codewhale és gratuït i té llicència MIT. Amb la teva pròpia clau API pagues
directament al proveïdor; els models locals no necessiten clau. La barra
inferior i `/cost` mostren quant ha costat una sessió quan se’n coneix el preu,
i un preu desconegut es mostra com a desconegut, mai com a gratuït.
Dos interruptors diuen quant pot fer Codewhale pel seu compte. Amb l’entrada buida, `Tab` canvia el mode: **Plan** llegeix i cerca però no canvia res, **Work** edita fitxers i executa ordres, i **Operate** té el mateix accés que Work i continua fins que l’objectiu queda verificat o et necessita. `Shift+Tab` canvia el permís. **Ask**, el predeterminat, aplica els canvis de fitxers del teu repositori sense preguntar i pregunta abans de les ordres de shell que no són només de lectura. **Auto-Review** deixa que regles i un model revisor aprovin les crides rutinàries i rebutja les d’alt risc; canvia a Ask per aprovar-les tu. **Full Access** no pregunta mai i desactiva el sandbox de Codewhale, tot i que les regles del repositori i la política gestionada continuen vigents. La [guia de v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) té els detalls.
No necessites cap compte. Les claus que afegeixes amb `/provider` es queden a la
teva màquina.
Arriba amb 0.10.3: `Shift+Tab` esdevé un únic selector que passa per Ask, Accept Edits, Plan, Auto-Review i Full Access, `Tab` deixa de canviar el mode i Operate es retira. Ask preguntarà també abans de cada canvi de fitxer, i el nou predeterminat, Accept Edits, aplicarà els canvis dins del repositori git i continuarà preguntant abans de les ordres. La [guia actual](../MODES.md) ho descriu.
## Seguretat i privadesa
A Ask i Auto-Review, les ordres s’executen en un sandbox del sistema operatiu quan el sistema en té un: Seatbelt a macOS, i bubblewrap a Linux quan està instal·lat. Windows encara no té sandbox del sistema, i Full Access apaga el sandbox. Dins del sandbox, les ordres de shell i les sessions de terminal no poden llegir magatzems de credencials com `~/.ssh`, `~/.aws` i els fitxers `.env`. `/preview-request` mostra una previsualització censurada de la propera petició sense enviar-la.
En Ask i Auto-Review, les ordres s’executen dins d’un sandbox del sistema
operatiu allà on el sistema en té: Seatbelt a macOS, i bubblewrap a Linux quan
està instal·lat. Windows encara no té sandbox del sistema operatiu, i Full
Access desactiva el sandbox. Dins del sandbox, les ordres de shell no poden
llegir magatzems de credencials com ara `~/.ssh`, `~/.aws` i els fitxers `.env`;
a partir de la 0.10.2, la mateixa regla s’aplica a les sessions de terminal i a
més eines de fitxers. `/preview-request` mostra una previsualització de la
propera petició, amb les dades sensibles ocultades, sense enviar-la.
No necessites cap compte, i les claus que afegeixes amb `/provider` es queden a la teva màquina. Amb la teva pròpia clau d’API pagues directament el proveïdor, i els models locals no necessiten clau. El peu de pàgina i `/cost` mostren quant ha costat una sessió quan se’n coneix el preu, i un preu desconegut es mostra com a desconegut, mai com a gratuït.
La telemetria està activada per defecte. Envia recomptes agregats (versió i
plataforma, durada i resultat de la sessió, quins proveïdors integrats has fet
servir, recomptes de funcionalitats i d’errors) amb un identificador
d’instal·lació aleatori que canvia cada 90 dies, i mai converses, codi, prompts,
noms de models, noms de fitxers o de repositoris, ni credencials. `codewhale config set telemetry false` la desactiva. En iniciar-se,
Codewhale també comprova a GitHub si hi ha una versió nova; defineix
`CODEWHALE_NO_UPDATE_CHECK=1` per ometre-ho. Més informació a
[ordre d’autorització](../AUTHORIZATION_ORDER.md),
[sandboxing](../SANDBOX.md) i [telemetria](../TELEMETRY.md).
La telemetria està activada per defecte. Envia recomptes agregats (versió i plataforma, durada i resultat de la sessió, quins proveïdors integrats has fet servir, recomptes de funcions i d’errors) amb un identificador d’instal·lació aleatori que canvia cada 90 dies, i mai converses, codi, prompts, noms de models, noms de fitxers o repositoris, ni credencials. Aquesta ordre la desactiva:
```bash
codewhale config set telemetry false
```
En arrencar, Codewhale també comprova a GitHub si hi ha una versió nova; defineix `CODEWHALE_NO_UPDATE_CHECK=1` per ometre-ho. Més informació a [ordre d’autorització](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) i [telemetria](../TELEMETRY.md).
## Cap on va
Codewhale s’està convertint en un únic entorn que abasta el teu terminal, una aplicació d’escriptori, el navegador i ordinadors al núvol, tot mogut per un sol motor. Cada part de sota diu on es troba avui.
| Part | Estat | Avui |
| --- | --- | --- |
| Aplicació de terminal | Publicat | Instal·la-la a macOS, Linux o Windows i executa `codewhale` a qualsevol repositori. |
| Client de navegador local | Publicat | Executa `codewhale web` per llegir la conversa, enviar una tasca i respondre a les aprovacions al navegador; ve amb el terminal i no necessita cap compte. |
| Molts agents en una tasca | Publicat | Els subagents, les Fleets i els fluxos de treball permeten que diversos agents comparteixin una tasca, cadascun amb el seu rol. |
| Aplicació d’escriptori | En desenvolupament, sense descàrrega | Estem construint una aplicació d’escriptori sobre el mateix motor, i encara no té cap descàrrega pública. |
| Ordinadors al núvol | Només per invitació | Els ordinadors al núvol són només per invitació, i els estem construint perquè una sessió pugui continuar treballant en una màquina al núvol. |
| Una sessió a través de tots | En construcció | Estem construint una sessió que t’acompanya del terminal a l’escriptori, al navegador i al núvol, i continua sent teva tot el camí. |
El [full de ruta](../ROADMAP.md) diu què cobreix cada versió i on pots ajudar.
## Si vens d’un altre agent
Codewhale llegeix `AGENTS.md` pel seu compte. Els fitxers d’instruccions escrits per a altres eines, com ara `CLAUDE.md`, `.cursorrules` o `.github/copilot-instructions.md`, només es carreguen si els actives amb `project_instruction_imports = ["claude"]` (o `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) a la configuració; consulta [config.example.toml](../../config.example.toml). Codewhale t’avisa quan en troba un que no ha carregat.
`/import-claude` prepara una importació de la teva configuració de Claude Code i dels servidors MCP perquè la revisis. `/plugin install` accepta connectors de Claude Code que contenen skills, ordres, perfils d’agent i servidors MCP, i rebutja els que necessiten hooks o servidors LSP ([detalls](../CLAUDE_PLUGIN_COMPAT.md)).
## Documentació
Aquestes guies segueixen la branca principal i poden descriure canvis que encara no són a l’última versió.
| Comença aquí | Referència |
| --- | --- |
| [Instal·lació](../INSTALL.md) | [Configuració](../CONFIGURATION.md) |
| [Proveïdors i models locals](../PROVIDERS.md) | [Arquitectura](../ARCHITECTURE.md) |
| [Modes i permisos](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Dreceres de teclat](../KEYBINDINGS.md) | [Creació de plugins](../PLUGIN_AUTHORING.md) |
| [Revisió de PR a GitHub](../GITHUB_ACTION.md) | [Tota la documentació](../README.md) |
| [Guia d’usuari](../GUIDE.md) | [Configuració](../CONFIGURATION.md) |
| [Instal·lació](../INSTALL.md) | [Arquitectura](../ARCHITECTURE.md) |
| [Proveïdors i models locals](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modes i permisos](../MODES.md) | [Escriure connectors](../PLUGIN_AUTHORING.md) |
| [Dreceres de teclat](../KEYBINDINGS.md) | [Rebuts](../RECEIPTS.md) |
| [Revisió de pull requests a GitHub](../GITHUB_ACTION.md) | [Tota la documentació](../README.md) |
## Comunitat
## Contribuir
Codewhale és el que és gràcies a la seva comunitat, i tots els comentaris són benvinguts: un error, una idea o alguna cosa que s’ha vist o s’ha sentit estranya.
[Obre una issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) per a qualsevol d’aquests casos; una issue també és el millor lloc per començar una funció nova.
Les pull requests són benvingudes per a correccions, traduccions, proveïdors i feina ja planificada.
La [guia de contribució](../../CONTRIBUTING.md) indica on va cada tipus d’ajuda, i el [full de ruta](../ROADMAP.md) indica cap on va el projecte.
Qui contribueix conserva el crèdit per la feina integrada, i l’[estructura del repositori](../../CONTRIBUTING.md#project-structure) mostra on és cada cosa.
Codewhale es construeix en obert per les persones que l’utilitzen, en moltes llengües.
Xateja al [Discord](https://discord.gg/37gfS3ksug), o afegeix el mantenidor,
Hunter, a WeChat (`hunterbown`) i demana entrar al grup Whale Brothers. Tothom hi és benvingut.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="El mur de contribuïdors de Codewhale: un avatar per cada persona el codi, els commits en coautoria, les pull requests represes o els informes acreditats de la qual són a Codewhale, amb el total a dalt."></a>
El [mur de contribuïdors](../CONTRIBUTORS.md) compta totes les persones el codi, els commits en coautoria, les pull requests represes o els informes acreditats de les quals són a Codewhale, incloses les que la llista de contribuïdors de GitHub no mostra. `scripts/contributor-wall.py` torna a generar la imatge i la llista a partir de l’historial de git i de GitHub.
Tota opinió és benvinguda: un error, una idea o alguna cosa que semblava o feia l’efecte d’estar malament. [Obre una issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) per a qualsevol d’aquestes coses; una issue també és el millor lloc per començar una funció nova. Les pull requests són benvingudes per a correccions, traduccions, proveïdors i feina planificada. Les preguntes van a [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). La [guia de contribució](../../CONTRIBUTING.md) mostra on va cada tipus d’ajuda, com entra la teva feina amb el teu nom i [on és cada cosa](../../CONTRIBUTING.md#project-structure).
Xerra a [Discord](https://discord.gg/37gfS3ksug), o afegeix el mantenidor, Hunter, a WeChat (`hunterbown`) i demana entrar al grup Whale Brothers. Tothom hi és benvingut.
## Història i llicència
Codewhale va començar com a `deepseek-tui` i encara llegeix la configuració i
les sessions d’aquell projecte. Es manté de manera independent i no està afiliat
a DeepSeek ni a cap altre proveïdor de models. Gràcies a
[tothom qui hi ha contribuït](../CONTRIBUTORS.md).
Codewhale va començar com a `deepseek-tui` i encara llegeix la configuració i les sessions d’aquell projecte. Es manté de manera independent i no està afiliat a DeepSeek ni a cap altre proveïdor de models.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). El codi adaptat d’altres projectes de codi obert es recull als
[avisos de tercers](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). El codi adaptat d’altres projectes de codi obert apareix als avisos de tercers per a les [fonts incloses](../../THIRD_PARTY_NOTICES.md) i els [dissenys adaptats](../THIRD_PARTY_NOTICES.md).
+95 -228
View File
@@ -1,23 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Ein Open-Source-Coding-Agent für dein Terminal, der mit jedem Modell arbeitet.**
<h1>Das Modell kann jedem gehören. Der Agent sollte dir gehören.</h1>
Gib Codewhale eine Aufgabe, und es liest das Repository, bearbeitet Dateien und
führt Befehle aus, bis die Aufgabe erledigt ist oder es eine Eingabe von dir
braucht. Es arbeitet mit mehr als 40 eingebauten Anbietern, standardmäßig mit
DeepSeek V4.1 Flash, und mit Modellen, die auf deinem eigenen Rechner laufen.
`/receipts` listet die Dateien auf, die es geändert hat, die Befehle, die es
ausgeführt hat, und die Web- und MCP-Aufrufe, die es gemacht hat.
Codewhale ist ein quelloffener Coding-Agent für dein Terminal, geschrieben in Rust. Er arbeitet mit jedem Modell, kann eine Aufgabe auf mehrere Agenten verteilen, und du kannst jede Zeile davon lesen.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Das installiert die neueste Version unter macOS oder Linux und braucht kein Konto. [Windows, npm und Cargo](#installation) stehen weiter unten.
[![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)
@@ -25,274 +25,141 @@ ausgeführt hat, und die Web- und MCP-Aufrufe, die es gemacht hat.
[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) · [Українська](README.uk.md) · [Français](README.fr.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Eine Codewhale-Terminalsitzung" width="760">
<sub>Diese Übersetzung ist ein maschineller Entwurf und wurde noch nicht von Muttersprachlern geprüft.</sub>
<sub>Ein Entwicklungs-Build von 0.10.2 mit einem geskripteten Testmodell, in Full Access in einem Wegwerf-Arbeitsbereich. Die Änderung, drei Tests und ein Review durch einen Sub-Agenten liefen wirklich.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale in einem Terminal nach einer Demo-Aufgabe. Es meldet, dass es export.py ein --json-Flag hinzugefügt hat, dass alle 3 lokalen Tests bestanden sind und dass ein delegiertes Review keine Probleme gefunden hat. Die Aufgabenliste darunter zeigt drei erledigte Schritte, und die Statuszeile zeigt Full Access und den lokalen Anbieter website-demo.">
<sub>Ein Entwicklungs-Build von Version 0.10.3, die noch nicht veröffentlicht ist, mit einem geskripteten Testmodell, in Full Access in einem Wegwerf-Arbeitsbereich. Die Änderung, drei Tests und ein Review durch einen Sub-Agenten liefen wirklich.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — 30 % mehr Nutzung von DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Angebot von Codewhale × OrcaRouter ansehen](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale erhält eine Empfehlungsprovision von OrcaRouter.
## Installation
macOS und Linux:
Der Befehl oben legt das per Prüfsumme verifizierte `codewhale` und seinen Kurznamen `codew` in `~/.local/bin` ab. Wenn deine Shell danach `command not found` meldet, folge dem PATH-Hinweis, den der Installer ausgibt ([Details](../INSTALL.md#put-it-on-your-path)). `codewhale update` aktualisiert es.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
Das Installationsskript legt `codewhale` und den kurzen Alias `codew` nach
Prüfsummenkontrolle in `~/.local/bin` ab. Meldet deine Shell danach
`command not found`, führe die PATH-Zeile aus, die das Skript ausgibt
([Details](../INSTALL.md#put-it-on-your-path)).
`codewhale update` aktualisiert es. Diese Befehle installieren das neueste
Release. Diese Seite folgt `main`; eine mit einer Version markierte Funktion
kommt also mit diesem Release, und der [Changelog](../../CHANGELOG.md) listet, was
jedes Release hinzufügt.
<details>
<summary><b>Windows, npm, Cargo und weitere Installationswege</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Vorkompilierte Binärdateien gibt es für Linux, macOS und Windows auf x64 und
arm64. Nix, Homebrew unter Linux, Android/Termux (Vorschau) und manuelle
Downloads beschreibt die [Installationsanleitung](../INSTALL.md), Container
die Seite [Docker](../DOCKER.md). Bleib pro Rechner bei einer
Installationsmethode; sonst landen zwei Kopien im `PATH`, und es gewinnt die,
die zuerst kommt.
</details>
Vorkompilierte Binärdateien gibt es für Linux, macOS und Windows auf x64 und arm64. Scoop, Nix, Homebrew unter Linux, Android und Termux (Vorschau) und manuelle Downloads stehen in der [Installationsanleitung](../INSTALL.md), Container unter [Docker](../DOCKER.md). Nutze pro Rechner nur eine Installationsart; sonst landen zwei Kopien auf deinem `PATH`, und die zuerst gefundene gewinnt.
## Schnellstart
1. Committe oder stashe deine Arbeit und starte dann `codewhale` im
Wurzelverzeichnis eines Git-Repositorys. Standardmäßig (**Accept Edits**) ändert es Dateien im Repository ohne Nachfrage
und fragt vor jedem Befehl; `Shift+Tab` schaltet die Berechtigung schrittweise weiter, wenn es mehr oder weniger fragen soll.
2. Führe `/provider` aus (oder drücke `F3`), wähle einen Anbieter, füge seinen
API-Schlüssel ein und wähle ein Modell. DeepSeek ist der Standardanbieter.
Ohne Schlüssel wählst du stattdessen eine lokale Runtime. Ist kein Anbieter
konfiguriert und stellt Ollama bereits ein Chat-Modell bereit, verwendet
Codewhale es automatisch; ab 0.10.2 bietet es dir das Modell an, sobald du
deine erste Nachricht sendest.
1. Committe oder stashe deine Arbeit und starte dann `codewhale` im Wurzelverzeichnis eines Git-Repositorys. Standardmäßig übernimmt es Dateiänderungen im Repository ohne Rückfrage und fragt vor jedem Shell-Befehl, der nicht nur liest.
2. Führe `/provider` aus (oder drücke `F3`), wähle einen Anbieter, füge seinen API-Schlüssel ein und wähle ein Modell. DeepSeek ist der Standardanbieter. Beim ersten Start ohne Schlüssel fragt Codewhale nach einem Anbieter, sobald du deine erste Nachricht sendest, und bietet ein lokales Modell an, wenn ein lokaler Ollama-Server antwortet.
3. Gib eine Aufgabe ein:
```text
Fix the failing tests and explain what changed.
```
Befehle, die nur lesen, laufen sofort. Bei jedem anderen Shell-Befehl fragt
Codewhale vorher: `y` führt ihn einmal aus, `a` erlaubt ähnliche Befehle für den
Rest der Unterhaltung, `n` lehnt ab. `/undo` macht deine letzte Anfrage samt
ihren Dateiänderungen rückgängig.
`/help` listet Befehle und Tasten auf.
Befehle, die nur lesen, laufen sofort. Bei jedem anderen Shell-Befehl fragt Codewhale zuerst: `y` führt ihn einmal aus, `a` erlaubt ähnliche Befehle für den Rest des Gesprächs, und `n` lehnt ab. `/undo` nimmt deine letzte Anfrage samt ihrer Dateiänderungen zurück, und `/help` listet Befehle und Tasten auf.
Für Skripte und CI führt `codewhale exec` eine Aufgabe ohne Oberfläche aus.
Standardmäßig nutzt `--auto` Full Access: Tools laufen ohne Nachfrage,
Shell-Befehle haben keine Codewhale-Sandbox, und der Vertrauensmodus erlaubt
Datei-Tools, außerhalb des Arbeitsbereichs zu schreiben. Füge
`--sandbox workspace-write` hinzu, um die Shell-Sandbox und die Beschränkung
der Datei-Tools auf den Arbeitsbereich beizubehalten, bei ausgeschaltetem
Vertrauensmodus:
Für Skripte und CI führt `codewhale exec` eine Aufgabe ohne Oberfläche aus. Lies [Läufe ohne Oberfläche](../INSTALL.md#headless-scripts-ci), bevor du ihm mit `--auto` Werkzeuge gibst, denn `--auto` nutzt Full Access, solange du keine Sandbox angibst.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Was es tut
## Modi und Berechtigungen
Gib Codewhale eine Aufgabe, und es liest das Repository, bearbeitet Dateien und führt Befehle aus, bis die Aufgabe erledigt ist oder es deine Eingabe braucht. Die [Hinweise zur neuesten Version](https://github.com/codewhale-hq/Codewhale/releases/latest) listen die neuesten Änderungen, und das [Änderungsprotokoll](../../CHANGELOG.md) enthält jede Version.
Eine neue Installation startet im Work-Modus mit der Berechtigung Accept Edits. Ein einziger Regler schaltet beides um: `Shift+Tab` schaltet schrittweise durch Ask → Accept Edits → Plan → Auto-Review → Full Access.
### Jedes Modell
| | Wechseln mit | Optionen |
| --- | --- | --- |
| Modus | die Plan-Stufe auf `Shift+Tab` oder `/mode` | **Plan** liest und durchsucht, ändert aber nichts. **Work** (jede andere Stufe) bearbeitet Dateien und führt Befehle aus; starte ein Ziel mit `/goal`, wenn eine Anfrage mehr als einen Turn braucht. |
| Berechtigung | `Shift+Tab` | **Ask** fragt vor jeder Dateiänderung und vor jedem Shell-Befehl, der nicht nur liest. **Accept Edits** wendet Dateiänderungen in deinem Git-Repository an, ohne zu fragen, und fragt weiterhin vor Befehlen. **Auto-Review** lässt Regeln und ein Prüfmodell Routineaufrufe freigeben und lehnt Aufrufe mit hohem Risiko ab; wechsle zu Ask, um diese selbst freizugeben. **Full Access** fragt nie, und Befehle können auf alles auf diesem Computer zugreifen; Repository-Regeln und verwaltete Richtlinien gelten weiterhin. |
Mehr als 40 Anbieter sind eingebaut, darunter Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter und xAI. Jeder OpenAI-kompatible Endpunkt funktioniert, ebenso lokale Modelle über Ollama, vLLM oder SGLang. Das Standardmodell ist DeepSeeks `deepseek-flash`, hinter dem jetzt DeepSeek V4.1 Flash steht ([Details](../PROVIDERS.md#deepseek-v41-flash)).
Details stehen in der [Anleitung zu Modi und Berechtigungen](../MODES.md).
`/model` wechselt das Modell zwischen Runden, und `/model auto` wählt für jede Runde eines (`/router` legt fest, wie). `/turn inspect` zeigt, welches Modell eine Runde genutzt hat, was sie gekostet hat und wie lange sie dauerte. Siehe [Anbieter](../PROVIDERS.md).
## Was es kann
### Belege und Rückgängig
### Neu in 0.10.2
`/receipts`, oder `codewhale receipts --last` nach dem Beenden, listet die Dateien, die eine Sitzung geändert hat, die ausgeführten Befehle, ihre Web- und MCP-Aufrufe, die gestarteten Agenten, jede Freigabe und wer sie erteilt hat, und was fehlgeschlagen ist. `/undo` nimmt deine letzte Anfrage und die von ihr geänderten Dateien in einem Schritt zurück. `/restore` setzt den ganzen Arbeitsbereich auf einen früheren Snapshot zurück; weil das spätere Änderungen überschreibt, braucht es `/trust on` oder Full Access. Siehe [Belege](../RECEIPTS.md).
- `/pet on` verwandelt dein Terminal in einen animierten Wal, der zeigt, was der
Agent gerade tut, während das Nachrichtenfeld weiter benutzbar bleibt. Seine
980 Partikel schreiben den aktuellen Schritt auf Englisch, Chinesisch oder
Japanisch.
- `/workbar terminal` zeigt die Shells, die der Agent ausführt, während sie
laufen. Tippe in eine davon, oder drücke `Ctrl+N` für eine eigene Shell
(macOS und Linux).
- `/undo` macht deine gesamte letzte Anfrage in einem Schritt rückgängig,
einschließlich jeder Datei, die sie geändert hat, und `/diff` funktioniert in
Ordnern ohne Git.
- Wenn ein Plan bereit ist, fragt Codewhale, ob es Work mit Ask oder
Auto-Review starten oder weiterplanen soll.
- `/color` gibt jedem Chat eine eigene Farbe für das Nachrichtenfeld, die mit
der Sitzung gespeichert wird.
- `web_search` kann die neue Search API von DeepSeek verwenden: setze
`[search] provider = "deepseek"` mit einem DeepSeek-Schlüssel.
- Außerhalb von Full Access läuft ein `curl` oder `wget`, das Zugangsdaten
hochladen würde, nie ohne deine Freigabe, und ein Befehl, der unsichtbares
Unicode versteckt, wird abgelehnt. `write` ersetzt keine Datei mehr, die der
Agent nicht gelesen hat oder die sich geändert hat, nachdem er sie gelesen
hat.
### Mehrere Agenten an einer Aufgabe
### Modelle
Mehr als 40 Anbieter sind eingebaut, darunter Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter und xAI. Jeder OpenAI-kompatible Endpunkt
funktioniert, ebenso lokale Modelle über Ollama, vLLM oder SGLang. Standard ist
`deepseek-flash` von DeepSeek, das DeepSeek am 2026-10-17 auf
DeepSeek-V4.1-Flash-1017 umgestellt hat; 0.10.1 nutzt es ohne Update
([Details](../PROVIDERS.md#deepseek-v41-flash)).
`/model` wechselt das Modell zwischen den Turns, und `/model auto` wählt für
jeden Turn eines aus (`/router` legt fest, wie). `/turn inspect` zeigt, welches
Modell ein Turn verwendet hat, was er gekostet hat und wie lange er gedauert
hat. Mit `codewhale auth chatgpt` kannst du statt eines API-Schlüssels ein
ChatGPT-Abo verwenden (experimentell). Siehe [Anbieter](../PROVIDERS.md).
### Belege und Rückgängigmachen
`/receipts`, oder nach dem Beenden `codewhale receipts --last`, listet geänderte
Dateien, ausgeführte Befehle, Web- und MCP-Aufrufe, gestartete Agenten,
Freigaben und wer sie erteilt hat sowie Fehlschläge auf. `/undo` macht deine letzte Anfrage und ihre Dateiänderungen in einem Schritt rückgängig, ohne Vertrauensmodus. `/restore` setzt den gesamten
Arbeitsbereich auf einen früheren Snapshot zurück; weil dabei spätere
Änderungen überschrieben werden, braucht es `/trust on` oder Full Access. Siehe
[Belege](../RECEIPTS.md).
Exec-Läufe, die Tools anbieten, werden in jedem Ausgabeformat gespeichert,
sodass `codewhale receipts --last` nach `exec --auto` funktioniert, auch mit
`--json`. Läufe, die nur antworten, werden im Textformat und mit `--json` nur
beim Fortsetzen oder beim Beginn der Gesprächskompaktierung gespeichert;
verwende `--output-format stream-json`, um sie immer für Belege oder
`exec --continue` zu speichern.
### Längere Arbeit
`/goal` setzt ein Ziel, das über mehrere Turns bestehen bleibt. Codewhale kann
Arbeit auf [Sub-Agenten](../SUBAGENTS.md) verteilen, eine
[Flotte](../FLEET.md) von Agenten betreiben oder einem im Repository
eingecheckten [Workflow](../WORKFLOW_AUTHORING.md) folgen.
### Umstieg von einem anderen Agenten
Codewhale liest `AGENTS.md` von selbst. Anweisungsdateien für andere Tools wie
`CLAUDE.md`, `.cursorrules` oder `.github/copilot-instructions.md` werden nur
geladen, wenn du sie mit `project_instruction_imports = ["claude"]` (oder
`"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) in deiner
Konfiguration aktivierst; siehe [config.example.toml](../../config.example.toml).
Codewhale warnt, wenn es eine findet, die es nicht geladen hat.
`/import-claude` bereitet einen Import deiner Claude-Code-Einstellungen und
MCP-Server vor, den du prüfen kannst. `/plugin install` nimmt Claude-Code-Plugins
mit Skills, Befehlen, Agentenprofilen und MCP-Servern an und lehnt Plugins ab,
die Hooks oder LSP-Server brauchen
([Details](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` setzt ein Ziel, das über mehrere Runden bestehen bleibt. Codewhale kann Arbeit auf [Sub-Agenten](../SUBAGENTS.md) verteilen, eine [Fleet](../FLEET.md) von Agenten mit eigenen Rollen und Modellen betreiben oder einem im Repository eingecheckten [Workflow](../WORKFLOW_AUTHORING.md) folgen.
### Erweiterungen
Verbinde [MCP-Server](../MCP.md), füge [Skills](../SKILLS.md) und
[Plugins](../PLUGINS.md) hinzu und führe [Hooks](../HOOKS.md) bei Sitzungs-
und Tool-Ereignissen aus. Der Code-Modus (experimentell, standardmäßig
eingeschaltet) lässt das Modell ein einziges `execute_tools`-Programm schreiben,
das mehrere MCP- und Plugin-Tools aufruft; jeder Aufruf unterliegt weiterhin
deinen Freigaberegeln und behält seinen Beleg. Das unabhängig installierte Plugin
Computer Use (experimentell, nur macOS) kann andere Apps beobachten und
bedienen. Es bleibt ausgeschaltet,
bis du seine Zugriffsrechte geprüft und es aktiviert hast
([Anleitung](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Verbinde [MCP-Server](../MCP.md), füge [Skills](../SKILLS.md) und [Plugins](../PLUGINS.md) hinzu und führe [Hooks](../HOOKS.md) bei Sitzungs- und Werkzeugereignissen aus. Der Code-Modus (experimentell, standardmäßig an) lässt das Modell ein `execute_tools`-Programm schreiben, das mehrere MCP- und Plugin-Werkzeuge aufruft; jeder Aufruf folgt weiter deinen Freigaberegeln und behält seinen Beleg. Das in v0.10.2 enthaltene Computer-Use-Plugin (experimentell, nur macOS) kann andere Apps beobachten und bedienen; es bleibt aus, bis du seinen Zugriff geprüft und es aktiviert hast ([Anleitung](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Kommt in 0.10.3: Das Plugin erscheint [separat](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Wege, es auszuführen
### Wege, es zu starten
| Befehl | Was er tut |
| --- | --- |
| `codewhale` | Die interaktive Terminal-App |
| `codewhale exec "…"` | Eine Aufgabe ohne Oberfläche. Ohne weitere Optionen antwortet es, ohne Tools zu verwenden; `--auto` aktiviert Tools standardmäßig mit Full Access, `--sandbox workspace-write` schränkt sie ein, und `--output-format stream-json` streamt Ereignisse als JSON |
| `codewhale web` | Eine lokale Web-Oberfläche auf `127.0.0.1` ([Anleitung](../WEB.md)) |
| `codewhale review --pr N` | Ein beratendes Review eines GitHub-Pull-Requests. Die [GitHub-Bot-Einrichtung](../GITHUB_ACTION.md#set-up-your-own-bot) erzeugt einen gepinnten Workflow für automatische Reviews und `@codewhale review`, mit deinem eigenen Modellschlüssel und optionaler App-Identität |
| `codewhale app-server --http` | Die [Runtime API](../RUNTIME_API.md), eine lokale HTTP-API für Threads, Ereignisse, Freigaben und die Dateiänderungen jedes Turns |
| `codewhale exec "…"` | Eine Aufgabe ohne Oberfläche, für Skripte und CI ([Läufe ohne Oberfläche](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Ein lokaler Web-Client auf `127.0.0.1` ([Anleitung](../WEB.md)) |
| `codewhale review --pr N` | Ein beratendes Review eines GitHub-Pull-Requests; die [Einrichtung des GitHub-Bots](../GITHUB_ACTION.md#set-up-your-own-bot) führt es mit deinem eigenen Modellschlüssel aus |
| `codewhale app-server --http` | Die [Runtime API](../RUNTIME_API.md), eine lokale HTTP-API für Threads, Ereignisse, Freigaben und die Dateiänderungen jeder Runde |
| `codewhale serve --acp` | Das Agent Client Protocol über stdio, für Editoren wie Zed |
Die Terminal-App, `exec`, `web` und die Runtime API teilen sich eine Engine
([Architektur](../ARCHITECTURE.md)). Eine von der Community gepflegte
[VS-Code-Erweiterung](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
verbindet sich aus der Seitenleiste damit ([Quellcode](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Eine native Desktop-App auf Basis der Runtime API ist in Entwicklung; einen
öffentlichen Download gibt es noch nicht.
Die Terminal-App, `exec`, `web` und die Runtime API teilen sich eine Engine ([Architektur](../ARCHITECTURE.md)). Eine von der Community gepflegte [VS-Code-Erweiterung](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) verbindet sich aus der Seitenleiste damit ([Quellcode](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Kosten und Konten
## Wie es sicher bleibt
Codewhale ist kostenlos und unter MIT lizenziert. Mit deinem eigenen
API-Schlüssel bezahlst du den Anbieter direkt; lokale Modelle brauchen keinen
Schlüssel. Die Fußzeile und `/cost` zeigen, was eine Sitzung gekostet hat, wenn
der Preis bekannt ist; ein unbekannter Preis wird als unbekannt angezeigt, nie
als kostenlos.
Zwei Schalter legen fest, wie viel Codewhale ohne Rückfrage tun darf. Bei leerer Eingabe wechselt `Tab` den Modus: **Plan** liest und sucht, ändert aber nichts, **Work** bearbeitet Dateien und führt Befehle aus, und **Operate** hat dieselben Rechte wie Work und arbeitet weiter, bis das Ziel geprüft ist oder es dich braucht. `Shift+Tab` wechselt die Berechtigung. **Ask**, die Voreinstellung, übernimmt Dateiänderungen in deinem Repository ohne Rückfrage und fragt vor Shell-Befehlen, die nicht nur lesen. **Auto-Review** lässt Regeln und ein Review-Modell Routineaufrufe freigeben und lehnt riskante ab; wechsle zu Ask, um sie selbst freizugeben. **Full Access** fragt nie und schaltet die Sandbox von Codewhale ab, wobei Repository-Regeln und verwaltete Richtlinien weiter gelten. Die [Anleitung zu v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) hat die Details.
Du brauchst kein Konto. Schlüssel, die du mit `/provider` hinzufügst, bleiben
auf deinem Rechner.
Kommt in 0.10.3: `Shift+Tab` wird ein einziger Regler durch Ask, Accept Edits, Plan, Auto-Review und Full Access, `Tab` wechselt den Modus nicht mehr, und Operate entfällt. Ask fragt dann auch vor jeder Dateiänderung, und die neue Voreinstellung, Accept Edits, übernimmt Änderungen im Git-Repository und fragt weiterhin vor Befehlen. Die [aktuelle Anleitung](../MODES.md) beschreibt das.
## Sicherheit und Datenschutz
In Ask und Auto-Review laufen Befehle in einer Betriebssystem-Sandbox, wo das System eine hat: Seatbelt unter macOS und bubblewrap unter Linux, wenn es installiert ist. Windows hat noch keine Betriebssystem-Sandbox, und Full Access schaltet die Sandbox ab. In der Sandbox können Shell-Befehle und Terminal-Sitzungen keine Zugangsdatenspeicher wie `~/.ssh`, `~/.aws` und `.env`-Dateien lesen. `/preview-request` zeigt eine geschwärzte Vorschau der nächsten Anfrage, ohne sie zu senden.
In Ask und Auto-Review laufen Befehle in einer Betriebssystem-Sandbox, sofern
das System eine hat: Seatbelt unter macOS und bubblewrap unter Linux, wenn es
installiert ist. Windows hat noch keine Betriebssystem-Sandbox, und Full Access
schaltet die Sandbox ab. In der Sandbox können Shell-Befehle keine Speicherorte
für Zugangsdaten wie `~/.ssh`, `~/.aws` und `.env`-Dateien lesen; ab 0.10.2
gilt dieselbe Regel auch für Terminalsitzungen und weitere Datei-Tools.
`/preview-request` zeigt eine geschwärzte Vorschau der nächsten Anfrage, ohne
sie zu senden.
Du brauchst kein Konto, und Schlüssel, die du mit `/provider` hinzufügst, bleiben auf deinem Rechner. Mit deinem eigenen API-Schlüssel bezahlst du den Anbieter direkt, und lokale Modelle brauchen keinen Schlüssel. Die Fußzeile und `/cost` zeigen, was eine Sitzung gekostet hat, wenn der Preis bekannt ist; ein unbekannter Preis wird als unbekannt angezeigt, nie als kostenlos.
Telemetrie ist standardmäßig eingeschaltet. Sie sendet aggregierte Zählwerte
(Version und Plattform, Sitzungsdauer und -ergebnis, welche eingebauten
Anbieter du verwendet hast, Funktions- und Fehlerzähler) mit einer zufälligen
Installations-ID, die alle 90 Tage wechselt, und niemals Unterhaltungen, Code,
Prompts, Modellnamen, Datei- oder Repository-Namen oder Zugangsdaten. `codewhale config set telemetry false` schaltet sie ab. Beim Start
prüft Codewhale außerdem auf GitHub, ob es ein neues Release gibt; setze
`CODEWHALE_NO_UPDATE_CHECK=1`, um das zu überspringen. Mehr dazu unter
[Autorisierungsreihenfolge](../AUTHORIZATION_ORDER.md),
[Sandboxing](../SANDBOX.md) und [Telemetrie](../TELEMETRY.md).
Telemetrie ist standardmäßig an. Sie sendet zusammengefasste Zahlen (Version und Plattform, Sitzungsdauer und Ergebnis, welche eingebauten Anbieter du genutzt hast, Funktions- und Fehlerzähler) mit einer zufälligen Installations-ID, die alle 90 Tage wechselt, und niemals Gespräche, Code, Prompts, Modellnamen, Datei- oder Repository-Namen oder Zugangsdaten. Dieser Befehl schaltet sie ab:
```bash
codewhale config set telemetry false
```
Beim Start prüft Codewhale außerdem auf GitHub, ob es eine neue Version gibt; setze `CODEWHALE_NO_UPDATE_CHECK=1`, um das zu überspringen. Mehr unter [Reihenfolge der Autorisierung](../AUTHORIZATION_ORDER.md), [Sandbox](../SANDBOX.md) und [Telemetrie](../TELEMETRY.md).
## Wohin es geht
Codewhale wird zu einer einzigen Umgebung über dein Terminal, eine Desktop-App, den Browser und Cloud-Computer hinweg, alles von einer Engine betrieben. Jeder Teil unten sagt, wo er heute steht.
| Teil | Stand | Heute |
| --- | --- | --- |
| Terminal-App | Veröffentlicht | Installiere sie unter macOS, Linux oder Windows und führe `codewhale` in einem beliebigen Repository aus. |
| Lokaler Browser-Client | Veröffentlicht | Führe `codewhale web` aus, um das Gespräch zu lesen, eine Aufgabe zu senden und Freigaben in deinem Browser zu beantworten; er gehört zum Terminal und braucht kein Konto. |
| Viele Agenten an einer Aufgabe | Veröffentlicht | Subagenten, Fleets und Workflows lassen mehrere Agenten eine Aufgabe teilen, jeder mit eigener Rolle. |
| Desktop-App | In Entwicklung, kein Download | Wir bauen eine Desktop-App auf derselben Engine, und sie hat noch keinen öffentlichen Download. |
| Cloud-Computer | Nur auf Einladung | Cloud-Computer gibt es nur auf Einladung, und wir bauen sie so, dass eine Sitzung auf einer Maschine in der Cloud weiterarbeiten kann. |
| Eine Sitzung über alle hinweg | Im Aufbau | Wir bauen eine Sitzung, die dich vom Terminal zum Desktop, zum Browser und in die Cloud begleitet und auf dem ganzen Weg deine bleibt. |
Die [Roadmap](../ROADMAP.md) sagt, was jede Version abdeckt und wo du helfen kannst.
## Von einem anderen Agenten kommend
Codewhale liest `AGENTS.md` von selbst. Anweisungsdateien für andere Werkzeuge wie `CLAUDE.md`, `.cursorrules` oder `.github/copilot-instructions.md` werden nur geladen, wenn du sie mit `project_instruction_imports = ["claude"]` (oder `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) in deiner Konfiguration einschaltest; siehe [config.example.toml](../../config.example.toml). Codewhale warnt, wenn es eine solche Datei findet und nicht geladen hat.
`/import-claude` bereitet einen Import deiner Claude-Code-Einstellungen und MCP-Server vor, den du prüfen kannst. `/plugin install` nimmt Claude-Code-Plugins mit Skills, Befehlen, Agentenprofilen und MCP-Servern an und lehnt Plugins ab, die Hooks oder LSP-Server brauchen ([Details](../CLAUDE_PLUGIN_COMPAT.md)).
## Dokumentation
| Zum Einstieg | Referenz |
Diese Anleitungen folgen dem Hauptzweig und können Änderungen beschreiben, die noch nicht im neuesten Release sind.
| Hier anfangen | Referenz |
| --- | --- |
| [Installation](../INSTALL.md) | [Konfiguration](../CONFIGURATION.md) |
| [Anbieter und lokale Modelle](../PROVIDERS.md) | [Architektur](../ARCHITECTURE.md) |
| [Modi und Berechtigungen](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Tastenbelegung](../KEYBINDINGS.md) | [Plugins entwickeln](../PLUGIN_AUTHORING.md) |
| [GitHub-PR-Review](../GITHUB_ACTION.md) | [Gesamte Dokumentation](../README.md) |
| [Benutzerhandbuch](../GUIDE.md) | [Konfiguration](../CONFIGURATION.md) |
| [Installation](../INSTALL.md) | [Architektur](../ARCHITECTURE.md) |
| [Anbieter und lokale Modelle](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modi und Berechtigungen](../MODES.md) | [Plugins schreiben](../PLUGIN_AUTHORING.md) |
| [Tastenbelegung](../KEYBINDINGS.md) | [Belege](../RECEIPTS.md) |
| [Review von GitHub-Pull-Requests](../GITHUB_ACTION.md) | [Gesamte Dokumentation](../README.md) |
## Community
## Mitwirken
Codewhale ist durch seine Community zu dem geworden, was es ist, und jedes Feedback ist willkommen: ein Fehler, eine Idee oder etwas, das falsch aussah oder sich falsch anfühlte.
[Eröffne ein Issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) für jedes davon; ein Issue ist auch der beste Ort, um ein neues Feature zu beginnen.
Pull Requests sind willkommen für Korrekturen, Übersetzungen, Anbieter und geplante Arbeit.
Der [Leitfaden für Beiträge](../../CONTRIBUTING.md) zeigt, wohin welche Art von Hilfe gehört, und die [Roadmap](../ROADMAP.md) zeigt, wohin das Projekt geht.
Beitragende behalten die Anerkennung für übernommene Arbeit, und der [Aufbau des Repositorys](../../CONTRIBUTING.md#project-structure) zeigt, wo sich was befindet.
Codewhale wird offen von den Menschen gebaut, die es nutzen, in vielen Sprachen.
Chatte auf [Discord](https://discord.gg/37gfS3ksug), oder füge den Maintainer
Hunter auf WeChat (`hunterbown`) hinzu und bitte darum, in die Gruppe
Whale Brothers aufgenommen zu werden. Alle sind willkommen.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Die Codewhale-Wand der Mitwirkenden: ein Avatar für jede Person, deren Code, mitverfasste Commits, weitergeführte Pull-Requests oder gewürdigte Meldungen in Codewhale stecken, oben die Gesamtzahl."></a>
Die [Wand der Mitwirkenden](../CONTRIBUTORS.md) zählt alle, deren Code, mitverfasste Commits, weitergeführte Pull-Requests oder gewürdigte Meldungen in Codewhale stecken, auch Menschen, die GitHubs eigene Liste übersieht. `scripts/contributor-wall.py` erzeugt Bild und Liste neu aus der Git-Historie und GitHub.
Jedes Feedback ist willkommen: ein Fehler, eine Idee oder etwas, das falsch aussah oder sich falsch anfühlte. [Eröffne ein Issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) für all das; ein Issue ist auch der beste Ort, um eine neue Funktion zu beginnen. Pull-Requests sind willkommen für Fehlerbehebungen, Übersetzungen, Anbieter und geplante Arbeit. Fragen gehören in die [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). Die [Anleitung zum Mitwirken](../../CONTRIBUTING.md) zeigt, wohin jede Art von Hilfe gehört, wie deine Arbeit mit deinem Namen landet und [wo was liegt](../../CONTRIBUTING.md#project-structure).
Chatte auf [Discord](https://discord.gg/37gfS3ksug), oder füge den Maintainer Hunter auf WeChat (`hunterbown`) hinzu und frag nach der Gruppe Whale Brothers. Alle sind willkommen.
## Geschichte und Lizenz
Codewhale begann als `deepseek-tui` und liest weiterhin die Konfiguration und
die Sitzungen dieses Projekts. Es wird unabhängig gepflegt und ist weder mit
DeepSeek noch mit einem anderen Modellanbieter verbunden. Danke an
[alle, die beigetragen haben](../CONTRIBUTORS.md).
Codewhale begann als `deepseek-tui` und liest weiterhin dessen Konfiguration und Sitzungen. Es wird unabhängig gepflegt und ist weder mit DeepSeek noch mit einem anderen Modellanbieter verbunden.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Code, der aus anderen Open-Source-Projekten übernommen wurde,
ist in den [Hinweisen zu Drittanbietern](../THIRD_PARTY_NOTICES.md)
aufgeführt.
[MIT](../../LICENSE). Aus anderen Open-Source-Projekten übernommener Code steht in den Hinweisen zu Drittanbietern für [eingebundene Quellen](../../THIRD_PARTY_NOTICES.md) und [übernommene Entwürfe](../THIRD_PARTY_NOTICES.md).
+91 -215
View File
@@ -1,23 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Un agente de programación de código abierto para tu terminal que funciona con cualquier modelo.**
<h1>El modelo puede ser de cualquiera. El agente debería ser tuyo.</h1>
Dale una tarea a Codewhale y lee el repositorio, edita archivos y ejecuta
comandos hasta terminar la tarea o hasta que necesite una respuesta tuya.
Funciona con más de 40 proveedores integrados, con DeepSeek V4.1 Flash de forma
predeterminada, y con modelos que se ejecutan en tu propia máquina. `/receipts`
enumera los archivos que cambió, los comandos que ejecutó y las llamadas web y
MCP que hizo.
Codewhale es un agente de programación de código abierto para tu terminal, escrito en Rust. Funciona con cualquier modelo, puede repartir una tarea entre varios agentes y puedes leer cada línea de su código.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Esto instala la versión más reciente en macOS o Linux, y no necesita cuenta. [Windows, npm y Cargo](#instalación) están más abajo.
[![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)
@@ -25,265 +25,141 @@ MCP que hizo.
[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) · [Português](README.pt-BR.md) · [Русский](README.ru.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Una sesión de terminal de Codewhale" width="760">
<sub>Esta traducción es un borrador automático que aún no ha revisado un hablante nativo.</sub>
<sub>Una compilación de desarrollo de 0.10.2 con un modelo de prueba con guion, en Full Access dentro de un espacio de trabajo desechable. La edición, tres pruebas y una revisión de un sub-agente se ejecutaron de verdad.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale en una terminal después de una tarea de demostración. Informa que agregó una opción --json a export.py, que pasaron las 3 pruebas locales y que una revisión delegada no encontró problemas. La lista de tareas de abajo muestra tres pasos completados, y la línea de estado muestra Full Access y el proveedor local website-demo.">
<sub>Una compilación de desarrollo de 0.10.3, que aún no se ha publicado, con un modelo de prueba guionizado, en Full Access dentro de un espacio de trabajo desechable. La edición, tres pruebas y una revisión de un subagente se ejecutaron de verdad.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — 30% más de uso de DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Ver la oferta de Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale recibe una comisión por referidos de OrcaRouter.
## Instalación
macOS y Linux:
El comando de arriba coloca `codewhale`, verificado con suma de comprobación, y su alias corto `codew` en `~/.local/bin`. Si después tu shell dice `command not found`, sigue la nota sobre el PATH que imprime el instalador ([detalles](../INSTALL.md#put-it-on-your-path)). `codewhale update` lo actualiza.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
El instalador coloca `codewhale` y su alias corto `codew`, con la suma de
verificación comprobada, en `~/.local/bin`. Si después tu shell responde
`command not found`, ejecuta la línea de PATH que muestra el instalador
([detalles](../INSTALL.md#put-it-on-your-path)). `codewhale update` lo
actualiza. Estos comandos instalan la versión más reciente. Esta página sigue a
`main`, así que una función marcada con una versión llega en esa versión; el
[registro de cambios](../../CHANGELOG.md) enumera lo que agrega cada versión.
<details>
<summary><b>Windows, npm, Cargo y otras formas de instalarlo</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Hay binarios precompilados para Linux, macOS y Windows en x64 y arm64. Nix,
Homebrew en Linux, Android/Termux (versión preliminar) y las descargas manuales
están en la [guía de instalación](../INSTALL.md), y los contenedores, en
[Docker](../DOCKER.md). Usa un solo método de instalación por máquina; de lo
contrario, terminas con dos copias en el `PATH` y gana la que aparezca primero.
</details>
Hay binarios precompilados para Linux, macOS y Windows en x64 y arm64. Scoop, Nix, Homebrew en Linux, Android y Termux (vista previa) y las descargas manuales están en la [guía de instalación](../INSTALL.md), y los contenedores en [Docker](../DOCKER.md). Usa un solo método de instalación por máquina; si no, quedan dos copias en tu `PATH` y gana la que aparezca primero.
## Inicio rápido
1. Haz commit de tu trabajo o guárdalo con stash, y luego ejecuta `codewhale`
desde la raíz de un repositorio git. De forma predeterminada (**Accept Edits**), edita archivos del repositorio sin preguntar
y pregunta antes de cada comando; `Shift+Tab` recorre el control de permisos cuando quieras que pregunte más o menos.
2. Ejecuta `/provider` (o presiona `F3`), elige un proveedor, pega su clave API
y selecciona un modelo. DeepSeek es el proveedor predeterminado. Si no tienes
clave, elige un entorno local. Si no hay ningún proveedor configurado y
Ollama ya está sirviendo un modelo de chat, Codewhale lo usa automáticamente;
a partir de 0.10.2 te lo ofrece cuando envías tu primer mensaje.
1. Haz commit o stash de tu trabajo y ejecuta `codewhale` desde la raíz de un repositorio git. De forma predeterminada aplica los cambios de archivos del repositorio sin preguntar y pregunta antes de cada comando de shell que no sea de solo lectura.
2. Ejecuta `/provider` (o presiona `F3`), elige un proveedor, pega su clave de API y elige un modelo. DeepSeek es el proveedor predeterminado. En el primer inicio sin clave, Codewhale te pide un proveedor cuando envías tu primer mensaje, y ofrece un modelo local cuando responde un servidor Ollama local.
3. Escribe una tarea:
```text
Fix the failing tests and explain what changed.
```
Los comandos de solo lectura se ejecutan de inmediato. Para cualquier otro
comando de shell, Codewhale pregunta primero: `y` lo ejecuta una vez, `a`
permite comandos similares durante el resto de la conversación y `n` lo
rechaza. `/undo` deshace tu última solicitud y sus cambios en archivos. `/help` muestra los comandos y las teclas.
Los comandos de solo lectura se ejecutan de inmediato. Para cualquier otro comando de shell, Codewhale pregunta primero: `y` lo ejecuta una vez, `a` permite comandos parecidos durante el resto de la conversación y `n` lo rechaza. `/undo` deshace tu última petición y sus cambios de archivos, y `/help` muestra los comandos y las teclas.
Para scripts y CI, `codewhale exec` ejecuta una tarea sin la interfaz. Por
defecto, `--auto` usa Full Access: las herramientas se ejecutan sin preguntar,
los comandos de shell no tienen sandbox de Codewhale y el modo de confianza
permite que las herramientas de archivos escriban fuera del espacio de trabajo.
Agrega `--sandbox workspace-write` para mantener el sandbox de shell y las
restricciones de las herramientas de archivos al espacio de trabajo, con el
modo de confianza desactivado:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modos y permisos
Una instalación nueva arranca en el modo Work con el permiso Accept Edits. Un solo control cambia ambos: `Shift+Tab` avanza por Ask → Accept Edits → Plan → Auto-Review → Full Access.
| | Se cambia con | Opciones |
| --- | --- | --- |
| Modo | la parada Plan de `Shift+Tab`, o `/mode` | **Plan** lee y busca, pero no cambia nada. **Work** (todas las demás paradas) edita archivos y ejecuta comandos; inicia una meta con `/goal` cuando una solicitud necesite más de un turno. |
| Permiso | `Shift+Tab` | **Ask** pregunta antes de cada edición de archivos y de cada comando de shell que no sea de solo lectura. **Accept Edits** aplica las ediciones de archivos en tu repositorio git sin preguntar y sigue preguntando antes de los comandos. **Auto-Review** deja que unas reglas y un modelo revisor aprueben las llamadas rutinarias y rechaza las de alto riesgo; cambia a Ask para aprobar esas tú mismo. **Full Access** nunca pregunta, y los comandos pueden acceder a todo lo que hay en esta computadora; las reglas del repositorio y la política administrada siguen aplicándose. |
Consulta la [guía de modos y permisos](../MODES.md) para ver los detalles.
Para scripts y CI, `codewhale exec` ejecuta una tarea sin la interfaz. Lee [ejecuciones sin interfaz](../INSTALL.md#headless-scripts-ci) antes de darle herramientas con `--auto`, porque `--auto` usa Full Access a menos que agregues un sandbox.
## Qué hace
### Novedades en 0.10.2
Dale una tarea a Codewhale y leerá el repositorio, editará archivos y ejecutará comandos hasta terminar la tarea o necesitar tu respuesta. Las [notas de la última versión](https://github.com/codewhale-hq/Codewhale/releases/latest) listan los cambios más recientes, y el [registro de cambios](../../CHANGELOG.md) tiene todas las versiones.
- `/pet on` convierte tu terminal en una ballena animada que muestra lo que está
haciendo el agente, mientras el cuadro de mensajes sigue activo. Sus 980
partículas escriben el paso actual en inglés, chino o japonés.
- `/workbar terminal` muestra las shells que ejecuta el agente mientras se
ejecutan. Escribe en una, o presiona `Ctrl+N` para abrir una shell propia
(macOS y Linux).
- `/undo` deshace toda tu última solicitud en un solo paso, incluido cada
archivo que cambió, y `/diff` funciona en carpetas sin Git.
- Cuando un plan está listo, Codewhale pregunta si quieres empezar Work con
Ask o Auto-Review, o seguir planificando.
- `/color` le da a cada chat su propio color en el cuadro de mensajes, guardado
con la sesión.
- `web_search` puede usar la nueva Search API de DeepSeek: define
`[search] provider = "deepseek"` con una clave de DeepSeek.
- Fuera de Full Access, un `curl` o `wget` que subiría una credencial nunca se
ejecuta sin tu aprobación, y se rechaza cualquier comando que oculte Unicode
invisible. `write` ya no reemplaza un archivo que el agente no ha leído, ni
uno que cambió después de que lo leyó.
### Cualquier modelo
### Modelos
Trae más de 40 proveedores integrados, entre ellos Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter y xAI. Funciona con cualquier endpoint compatible con OpenAI, y también con modelos locales mediante Ollama, vLLM o SGLang. El modelo predeterminado es `deepseek-flash` de DeepSeek, que ahora sirve DeepSeek V4.1 Flash ([detalles](../PROVIDERS.md#deepseek-v41-flash)).
Hay más de 40 proveedores integrados, entre ellos Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter y xAI. Funciona cualquier endpoint
compatible con OpenAI, y también los modelos locales mediante Ollama, vLLM o
SGLang. El modelo predeterminado es `deepseek-flash` de DeepSeek, que DeepSeek
cambió a DeepSeek-V4.1-Flash-1017 el 2026-10-17; 0.10.1 lo ejecuta sin
necesidad de actualizar ([detalles](../PROVIDERS.md#deepseek-v41-flash)).
`/model` cambia de modelo entre turnos, y `/model auto` elige uno para cada
turno (`/router` configura cómo). `/turn inspect` muestra qué modelo usó un
turno, cuánto costó y cuánto tardó. `codewhale auth chatgpt` te permite usar un
plan de ChatGPT en lugar de una clave API (experimental). Consulta
[Proveedores](../PROVIDERS.md).
`/model` cambia de modelo entre turnos, y `/model auto` elige uno para cada turno (`/router` define cómo). `/turn inspect` muestra qué modelo usó un turno, cuánto costó y cuánto tardó. Consulta [Proveedores](../PROVIDERS.md).
### Recibos y deshacer
`/receipts`, o `codewhale receipts --last` después de salir, enumera los
archivos modificados, los comandos ejecutados, las llamadas web y MCP, los
agentes iniciados, las aprobaciones y quién las dio, y los fallos. `/undo` deshace tu última solicitud y los archivos que modificó, en un solo paso y sin el modo de confianza. `/restore` regresa todo el
espacio de trabajo a una instantánea anterior; como eso sobrescribe las
ediciones posteriores, requiere `/trust on` o Full Access. Consulta
[Recibos](../RECEIPTS.md).
`/receipts`, o `codewhale receipts --last` después de salir, lista los archivos que cambió una sesión, los comandos que ejecutó, sus llamadas web y MCP, los agentes que inició, cada aprobación y quién la dio, y lo que falló. `/undo` deshace tu última petición y los archivos que cambió en un solo paso. `/restore` regresa todo el espacio de trabajo a una instantánea anterior, y como eso sobrescribe ediciones posteriores, necesita `/trust on` o Full Access. Consulta [Recibos](../RECEIPTS.md).
Las ejecuciones de exec que ofrecen herramientas se guardan en todos los
formatos de salida, así que `codewhale receipts --last` funciona después de
`exec --auto`, incluso con `--json`. Las ejecuciones que solo dan una respuesta
en texto o con `--json` se guardan solo al reanudar una conversación o cuando
empieza la compactación de la conversación; usa `--output-format stream-json`
para guardarlas siempre para los recibos o para `exec --continue`.
### Varios agentes en una tarea
### Trabajos más largos
`/goal` define un objetivo que se mantiene entre turnos. Codewhale puede
repartir el trabajo entre [sub-agentes](../SUBAGENTS.md), ejecutar una
[flota](../FLEET.md) de agentes o seguir un
[flujo de trabajo](../WORKFLOW_AUTHORING.md) versionado en el repositorio.
### Si vienes de otro agente
Codewhale lee `AGENTS.md` por su cuenta. Los archivos de instrucciones escritos
para otras herramientas, como `CLAUDE.md`, `.cursorrules` o
`.github/copilot-instructions.md`, solo se cargan si los habilitas con
`project_instruction_imports = ["claude"]` (o `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`) en tu configuración; consulta
[config.example.toml](../../config.example.toml). Codewhale te avisa cuando encuentra
uno que no cargó.
`/import-claude` prepara una importación de tu configuración y tus servidores
MCP de Claude Code para que la revises. `/plugin install` acepta plugins de
Claude Code que contengan skills, comandos, perfiles de agente y servidores MCP,
y rechaza los plugins que necesitan hooks o servidores LSP
([detalles](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` fija un objetivo que se mantiene entre turnos. Codewhale puede repartir el trabajo entre [subagentes](../SUBAGENTS.md), ejecutar una [Fleet](../FLEET.md) de agentes con sus propios roles y modelos, o seguir un [flujo de trabajo](../WORKFLOW_AUTHORING.md) guardado en el repositorio.
### Extensiones
Conecta [servidores MCP](../MCP.md), agrega [skills](../SKILLS.md) y
[plugins](../PLUGINS.md), y ejecuta [hooks](../HOOKS.md) en eventos de
sesión y de herramientas. Code mode (experimental, activado de forma
predeterminada) permite que el modelo escriba un solo programa `execute_tools`
que llama a varias herramientas de MCP y de plugins; cada llamada sigue sujeta a
tus reglas de aprobación y conserva su recibo. El plugin Computer Use instalado por separado
(experimental, solo macOS) puede observar y operar otras aplicaciones. Permanece desactivado hasta
que revises su acceso y lo habilites
([guía](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Conecta [servidores MCP](../MCP.md), agrega [skills](../SKILLS.md) y [plugins](../PLUGINS.md), y ejecuta [hooks](../HOOKS.md) en eventos de sesión y de herramientas. El modo código (experimental, activado por defecto) permite que el modelo escriba un programa `execute_tools` que llama a varias herramientas MCP y de plugins; cada llamada sigue respetando tus reglas de aprobación y conserva su recibo. El plugin Computer Use incluido en v0.10.2 (experimental, solo macOS) puede observar y operar otras apps, y permanece apagado hasta que revises su acceso y lo actives ([guía](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Próximamente en 0.10.3: el plugin se publica [por separado](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Formas de ejecutarlo
### Formas de ejecutarlo
| Comando | Qué hace |
| --- | --- |
| `codewhale` | La aplicación interactiva de terminal |
| `codewhale exec "…"` | Una tarea sin la interfaz. Por sí solo responde sin usar herramientas; `--auto` habilita las herramientas con Full Access de forma predeterminada, `--sandbox workspace-write` las restringe, y `--output-format stream-json` transmite los eventos como JSON |
| `codewhale web` | Una interfaz web local en `127.0.0.1` ([guía](../WEB.md)) |
| `codewhale review --pr N` | Una revisión orientativa de un pull request de GitHub. La [configuración del bot de GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) genera un workflow con versión fijada para revisiones automáticas y `@codewhale review`, usando tu propia clave de modelo y una identidad de App opcional |
| `codewhale exec "…"` | Una tarea sin la interfaz, para scripts y CI ([ejecuciones sin interfaz](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Un cliente web local en `127.0.0.1` ([guía](../WEB.md)) |
| `codewhale review --pr N` | Una revisión orientativa de un pull request de GitHub; la [configuración del bot de GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) la ejecuta con tu propia clave de modelo |
| `codewhale app-server --http` | La [Runtime API](../RUNTIME_API.md), una API HTTP local para hilos, eventos, aprobaciones y los cambios de archivos de cada turno |
| `codewhale serve --acp` | El Agent Client Protocol sobre stdio, para editores como Zed |
La aplicación de terminal, `exec`, `web` y la Runtime API comparten un mismo
motor ([arquitectura](../ARCHITECTURE.md)). Una
[extensión de VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
mantenida por la comunidad se conecta a él desde la barra lateral
([código fuente](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Está en desarrollo una aplicación de escritorio nativa basada en la Runtime API;
todavía no tiene una descarga pública.
La aplicación de terminal, `exec`, `web` y la Runtime API comparten un solo motor ([arquitectura](../ARCHITECTURE.md)). Una [extensión de VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) mantenida por la comunidad se conecta desde la barra lateral ([código fuente](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Costo y cuentas
## Cómo se mantiene seguro
Codewhale es gratuito y tiene licencia MIT. Con tu propia clave API le pagas
directamente al proveedor; los modelos locales no necesitan clave. La barra
inferior y `/cost` muestran cuánto ha costado una sesión cuando se conoce el
precio; un precio desconocido se muestra como desconocido, nunca como gratuito.
Dos interruptores dicen cuánto puede hacer Codewhale por su cuenta. Con la entrada vacía, `Tab` cambia el modo: **Plan** lee y busca pero no cambia nada, **Work** edita archivos y ejecuta comandos, y **Operate** tiene el mismo acceso que Work y sigue hasta verificar el objetivo o necesitarte. `Shift+Tab` cambia el permiso. **Ask**, el predeterminado, aplica cambios de archivos en tu repositorio sin preguntar y pregunta antes de los comandos de shell que no son de solo lectura. **Auto-Review** deja que reglas y un modelo revisor aprueben las llamadas rutinarias y rechaza las de alto riesgo; cambia a Ask para aprobarlas tú. **Full Access** nunca pregunta y desactiva el sandbox de Codewhale, aunque las reglas del repositorio y la política administrada siguen aplicando. La [guía de v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) tiene los detalles.
No necesitas una cuenta. Las claves que agregas con `/provider` se quedan en tu
máquina.
Próximamente en 0.10.3: `Shift+Tab` se convierte en un solo selector que pasa por Ask, Accept Edits, Plan, Auto-Review y Full Access, `Tab` deja de cambiar el modo y Operate se retira. Ask preguntará también antes de cada cambio de archivo, y el nuevo predeterminado, Accept Edits, aplicará los cambios dentro del repositorio git y seguirá preguntando antes de los comandos. La [guía actual](../MODES.md) lo describe.
## Seguridad y privacidad
En Ask y Auto-Review, los comandos se ejecutan en un sandbox del sistema operativo cuando el sistema tiene uno: Seatbelt en macOS, y bubblewrap en Linux cuando está instalado. Windows aún no tiene sandbox del sistema operativo, y Full Access apaga el sandbox. Dentro del sandbox, los comandos de shell y las sesiones de terminal no pueden leer almacenes de credenciales como `~/.ssh`, `~/.aws` y los archivos `.env`. `/preview-request` muestra una vista previa censurada de la próxima petición sin enviarla.
En Ask y Auto-Review, los comandos se ejecutan en un sandbox del sistema
operativo cuando el sistema tiene uno: Seatbelt en macOS, y bubblewrap en Linux
cuando está instalado. Windows todavía no tiene sandbox del sistema operativo, y
Full Access desactiva el sandbox. Dentro del sandbox, los comandos de shell no
pueden leer almacenes de credenciales como `~/.ssh`, `~/.aws` y los archivos
`.env`; a partir de 0.10.2, la misma regla cubre las sesiones de terminal y más
herramientas de archivos. `/preview-request` muestra una vista previa de la
siguiente solicitud, con los datos sensibles ocultos, sin enviarla.
No necesitas cuenta, y las claves que agregas con `/provider` se quedan en tu máquina. Con tu propia clave de API le pagas directamente al proveedor, y los modelos locales no necesitan clave. El pie de página y `/cost` muestran lo que ha costado una sesión cuando se conoce el precio, y un precio desconocido se muestra como desconocido, nunca como gratis.
La telemetría está activada de forma predeterminada. Envía conteos agregados
(versión y plataforma, duración y resultado de la sesión, qué proveedores
integrados usaste, conteos de funciones y de errores) con un ID de instalación
aleatorio que cambia cada 90 días, y nunca conversaciones, código, prompts,
nombres de modelos, nombres de archivos o de repositorios, ni credenciales. `codewhale config set telemetry false` la desactiva. Al
iniciar, Codewhale también consulta GitHub para ver si hay una versión nueva;
define `CODEWHALE_NO_UPDATE_CHECK=1` para omitir esa consulta. Más información
en [orden de autorización](../AUTHORIZATION_ORDER.md),
[sandboxing](../SANDBOX.md) y [telemetría](../TELEMETRY.md).
La telemetría está activada por defecto. Envía conteos agregados (versión y plataforma, duración y resultado de la sesión, qué proveedores integrados usaste, conteos de funciones y de errores) con un ID de instalación aleatorio que cambia cada 90 días, y nunca conversaciones, código, prompts, nombres de modelos, nombres de archivos o repositorios, ni credenciales. Este comando la desactiva:
```bash
codewhale config set telemetry false
```
Al iniciar, Codewhale también busca en GitHub una versión nueva; define `CODEWHALE_NO_UPDATE_CHECK=1` para omitirlo. Más en [orden de autorización](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) y [telemetría](../TELEMETRY.md).
## Hacia dónde va
Codewhale se está convirtiendo en un único entorno que abarca tu terminal, una aplicación de escritorio, el navegador y computadoras en la nube, todo gobernado por un solo motor. Cada parte de abajo indica en qué punto está hoy.
| Parte | Estado | Hoy |
| --- | --- | --- |
| Aplicación de terminal | Publicado | Instálala en macOS, Linux o Windows y ejecuta `codewhale` en cualquier repositorio. |
| Cliente de navegador local | Publicado | Ejecuta `codewhale web` para leer la conversación, enviar una tarea y responder a las aprobaciones en tu navegador; viene con la terminal y no necesita cuenta. |
| Varios agentes en una tarea | Publicado | Los subagentes, las Fleets y los flujos de trabajo permiten que varios agentes compartan una tarea, cada uno con su propio rol. |
| Aplicación de escritorio | En desarrollo, sin descarga | Estamos construyendo una aplicación de escritorio sobre el mismo motor, y todavía no tiene descarga pública. |
| Computadoras en la nube | Solo por invitación | Las computadoras en la nube son solo por invitación, y las estamos construyendo para que una sesión pueda seguir trabajando en una máquina en la nube. |
| Una sesión a través de todos | En construcción | Estamos construyendo una sesión que te acompaña desde la terminal hasta el escritorio, el navegador y la nube, y sigue siendo tuya en todo el camino. |
La [hoja de ruta](../ROADMAP.md) dice qué cubre cada versión y dónde puedes ayudar.
## Si vienes de otro agente
Codewhale lee `AGENTS.md` por su cuenta. Los archivos de instrucciones escritos para otras herramientas, como `CLAUDE.md`, `.cursorrules` o `.github/copilot-instructions.md`, solo se cargan si los activas con `project_instruction_imports = ["claude"]` (o `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) en tu configuración; consulta [config.example.toml](../../config.example.toml). Codewhale te avisa cuando encuentra uno que no cargó.
`/import-claude` prepara una importación de tu configuración de Claude Code y tus servidores MCP para que la revises. `/plugin install` acepta plugins de Claude Code que contienen skills, comandos, perfiles de agente y servidores MCP, y rechaza los que necesitan hooks o servidores LSP ([detalles](../CLAUDE_PLUGIN_COMPAT.md)).
## Documentación
Estas guías siguen la rama principal y pueden describir cambios que todavía no están en la última versión.
| Empieza aquí | Referencia |
| --- | --- |
| [Instalación](../INSTALL.md) | [Configuración](../CONFIGURATION.md) |
| [Proveedores y modelos locales](../PROVIDERS.md) | [Arquitectura](../ARCHITECTURE.md) |
| [Modos y permisos](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Atajos de teclado](../KEYBINDINGS.md) | [Creación de plugins](../PLUGIN_AUTHORING.md) |
| [Revisión de PR en GitHub](../GITHUB_ACTION.md) | [Toda la documentación](../README.md) |
| [Guía del usuario](../GUIDE.md) | [Configuración](../CONFIGURATION.md) |
| [Instalación](../INSTALL.md) | [Arquitectura](../ARCHITECTURE.md) |
| [Proveedores y modelos locales](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modos y permisos](../MODES.md) | [Crear plugins](../PLUGIN_AUTHORING.md) |
| [Atajos de teclado](../KEYBINDINGS.md) | [Recibos](../RECEIPTS.md) |
| [Revisión de pull requests en GitHub](../GITHUB_ACTION.md) | [Toda la documentación](../README.md) |
## Comunidad
## Contribuir
Codewhale es lo que es gracias a su comunidad, y todos los comentarios son bienvenidos: un error, una idea o algo que se vio o se sintió raro.
[Abre un issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) para cualquiera de ellos; un issue también es el mejor lugar para empezar una función nueva.
Los pull requests son bienvenidos para correcciones, traducciones, proveedores y trabajo ya planificado.
La [guía de contribución](../../CONTRIBUTING.md) indica adónde va cada tipo de ayuda, y la [hoja de ruta](../ROADMAP.md) indica hacia dónde va el proyecto.
Quienes contribuyen conservan el crédito por el trabajo que se integra, y la [estructura del repositorio](../../CONTRIBUTING.md#project-structure) muestra dónde está cada cosa.
Codewhale se construye en abierto por las personas que lo usan, en muchos idiomas.
Conversa en [Discord](https://discord.gg/37gfS3ksug), o agrega al mantenedor,
Hunter, en WeChat (`hunterbown`) y pide unirte al grupo Whale Brothers. Todas las personas son bienvenidas.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="El muro de contribuidores de Codewhale: un avatar por cada persona cuyo código, commits en coautoría, pull requests retomados o reportes acreditados están en Codewhale, con el total arriba."></a>
El [muro de contribuidores](../CONTRIBUTORS.md) cuenta a todas las personas cuyo código, commits en coautoría, pull requests retomados o reportes acreditados están en Codewhale, incluidas las que la propia lista de GitHub no muestra. `scripts/contributor-wall.py` regenera la imagen y la lista a partir del historial de git y de GitHub.
Toda opinión es bienvenida: un error, una idea o algo que se veía o se sentía mal. [Abre un issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) para cualquiera de ellas; un issue también es el mejor lugar para empezar una función nueva. Los pull requests son bienvenidos para correcciones, traducciones, proveedores y trabajo planificado. Las preguntas van a [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). La [guía de contribución](../../CONTRIBUTING.md) muestra a dónde va cada tipo de ayuda, cómo entra tu trabajo con tu nombre y [dónde está cada cosa](../../CONTRIBUTING.md#project-structure).
Conversa en [Discord](https://discord.gg/37gfS3ksug), o agrega al mantenedor, Hunter, en WeChat (`hunterbown`) y pide unirte al grupo Whale Brothers. Todos son bienvenidos.
## Historia y licencia
Codewhale comenzó como `deepseek-tui` y todavía lee la configuración y las
sesiones de ese proyecto. Se mantiene de forma independiente y no está afiliado
a DeepSeek ni a ningún otro proveedor de modelos. Gracias a
[todas las personas que han contribuido](../CONTRIBUTORS.md).
Codewhale empezó como `deepseek-tui` y todavía lee la configuración y las sesiones de ese proyecto. Se mantiene de forma independiente y no está afiliado a DeepSeek ni a ningún otro proveedor de modelos.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). El código adaptado de otros proyectos de código abierto se
enumera en los [avisos de terceros](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). El código adaptado de otros proyectos de código abierto aparece en los avisos de terceros para [fuentes incluidas](../../THIRD_PARTY_NOTICES.md) y [diseños adaptados](../THIRD_PARTY_NOTICES.md).
+93 -229
View File
@@ -1,23 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Un agent de code open source pour votre terminal qui fonctionne avec n’importe quel modèle.**
<h1>Le modèle peut être à n’importe qui. L’agent devrait être à vous.</h1>
Donnez une tâche à Codewhale : il lit le dépôt, modifie des fichiers et exécute
des commandes jusqu’à ce que la tâche soit terminée ou qu’il ait besoin d’une
réponse de votre part. Il fonctionne avec plus de 40 fournisseurs intégrés,
DeepSeek V4.1 Flash par défaut, ainsi qu’avec des modèles qui tournent sur votre
propre machine. `/receipts` liste les fichiers qu’il a modifiés, les commandes
qu’il a exécutées et les appels web et MCP qu’il a effectués.
Codewhale est un agent de code open source pour votre terminal, écrit en Rust. Il fonctionne avec n’importe quel modèle, peut répartir une tâche entre plusieurs agents, et chaque ligne de son code est à lire par vous.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Cette commande installe la dernière version sur macOS ou Linux, et elle ne demande aucun compte. [Windows, npm et Cargo](#installation) sont plus bas.
[![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)
@@ -25,277 +25,141 @@ qu’il a exécutées et les appels web et MCP qu’il a effectués.
[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) · [Українська](README.uk.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Une session de terminal Codewhale" width="760">
<sub>Cette traduction est un brouillon automatique qui n'a pas encore été relu par un locuteur natif.</sub>
<sub>Une version de développement de la 0.10.2 avec un modèle de test scripté, en Full Access dans un espace de travail jetable. La modification, trois tests et une revue par un sous-agent ont réellement été exécutés.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale dans un terminal après une tâche de démonstration. Il indique avoir ajouté une option --json à export.py, que les 3 tests locaux passent et qu’une revue déléguée n’a trouvé aucun problème. La liste de tâches en dessous montre trois étapes terminées, et la ligne d’état affiche Full Access et le fournisseur local website-demo.">
<sub>Une version de développement de la 0.10.3, qui n’est pas encore publiée, avec un modèle de test scripté, en Full Access dans un espace de travail jetable. La modification, trois tests et une revue par un sous-agent ont réellement tourné.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — 30 % d’utilisation de DeepSeek v4.1 Flash en plus" width="760">
</a>
</p>
[Voir l’offre Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale reçoit une commission de recommandation d’OrcaRouter.
## Installation
macOS et Linux :
La commande ci-dessus place `codewhale`, vérifié par somme de contrôle, et son alias court `codew` dans `~/.local/bin`. Si votre shell affiche ensuite `command not found`, suivez la note sur le PATH qu’affiche l’installateur ([détails](../INSTALL.md#put-it-on-your-path)). `codewhale update` le met à jour.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
L’installeur place `codewhale` et son alias court `codew` dans `~/.local/bin`,
après vérification de leur somme de contrôle. Si votre shell répond ensuite
`command not found`, exécutez la ligne PATH qu’affiche l’installeur
([détails](../INSTALL.md#put-it-on-your-path)). `codewhale update` le met à
jour. Ces commandes installent la dernière version publiée. Cette page suit
`main` : une fonctionnalité marquée d’un numéro de version arrive avec cette
version, et le [journal des modifications](../../CHANGELOG.md) liste ce qu’apporte
chaque version.
<details>
<summary><b>Windows, npm, Cargo et autres méthodes d’installation</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Des binaires précompilés sont fournis pour Linux, macOS et Windows, en x64 et
arm64. Nix, Homebrew sous Linux, Android/Termux (préversion) et les
téléchargements manuels sont décrits dans le
[guide d’installation](../INSTALL.md), et les conteneurs dans
[Docker](../DOCKER.md). Tenez-vous-en à une seule méthode d’installation par
machine ; sinon, deux copies se retrouvent dans le `PATH` et c’est la première
trouvée qui l’emporte.
</details>
Des binaires précompilés existent pour Linux, macOS et Windows sur x64 et arm64. Scoop, Nix, Homebrew sous Linux, Android et Termux (aperçu) et les téléchargements manuels sont dans le [guide d’installation](../INSTALL.md), et les conteneurs dans [Docker](../DOCKER.md). Utilisez une seule méthode d’installation par machine ; sinon deux copies se retrouvent dans votre `PATH` et la première trouvée l’emporte.
## Démarrage rapide
1. Commitez ou mettez de côté (stash) votre travail, puis lancez `codewhale` à
la racine d’un dépôt git. Par défaut (**Accept Edits**), il modifie les fichiers du dépôt sans demander
et demande avant chaque commande ; `Shift+Tab` parcourt le cadran des permissions quand vous voulez qu’il demande plus ou moins.
2. Lancez `/provider` (ou appuyez sur `F3`), choisissez un fournisseur, collez
sa clé API et choisissez un modèle. DeepSeek est le fournisseur par défaut.
Sans clé, choisissez plutôt un runtime local. Si aucun fournisseur n’est
configuré et qu’Ollama sert déjà un modèle de chat, Codewhale l’utilise
automatiquement ; à partir de la 0.10.2, il vous le propose lorsque vous
envoyez votre premier message.
3. Saisissez une tâche :
1. Validez ou mettez de côté votre travail, puis lancez `codewhale` à la racine d’un dépôt git. Par défaut, il applique les modifications de fichiers du dépôt sans demander et demande avant chaque commande shell qui ne fait pas que lire.
2. Lancez `/provider` (ou appuyez sur `F3`), choisissez un fournisseur, collez sa clé d’API et choisissez un modèle. DeepSeek est le fournisseur par défaut. Au premier lancement sans clé, Codewhale demande un fournisseur quand vous envoyez votre premier message, et propose un modèle local quand un serveur Ollama local répond.
3. Tapez une tâche :
```text
Fix the failing tests and explain what changed.
```
Les commandes en lecture seule s’exécutent immédiatement. Pour toute autre
commande shell, Codewhale demande d’abord : `y` l’exécute une fois, `a` autorise
les commandes similaires pour le reste de la conversation, `n` refuse. `/undo`
annule votre dernière demande et ses modifications de fichiers. `/help` liste les commandes et les touches.
Les commandes en lecture seule s’exécutent tout de suite. Pour toute autre commande shell, Codewhale demande d’abord : `y` l’exécute une fois, `a` autorise les commandes semblables pour le reste de la conversation, et `n` refuse. `/undo` annule votre dernière demande et ses modifications de fichiers, et `/help` liste les commandes et les touches.
Pour les scripts et la CI, `codewhale exec` exécute une tâche sans l’interface.
Par défaut, `--auto` utilise Full Access : les outils s’exécutent sans demander,
les commandes shell n’ont pas de bac à sable Codewhale et le mode de confiance
permet aux outils de fichiers d’écrire en dehors de l’espace de travail.
Ajoutez `--sandbox workspace-write` pour conserver le bac à sable du shell et
les restrictions des outils de fichiers à l’espace de travail, avec le mode de
confiance désactivé :
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modes et permissions
Une nouvelle installation démarre en mode Work avec la permission Accept Edits. Un seul cadran change les deux : `Shift+Tab` parcourt Ask → Accept Edits → Plan → Auto-Review → Full Access.
| | Changer avec | Options |
| --- | --- | --- |
| Mode | l’étape Plan de `Shift+Tab`, ou `/mode` | **Plan** lit et effectue des recherches, mais ne modifie rien. **Work** (toutes les autres étapes) modifie des fichiers et exécute des commandes ; lancez un objectif avec `/goal` quand une requête nécessite plus d’un tour. |
| Permission | `Shift+Tab` | **Ask** demande avant chaque modification de fichier et chaque commande shell qui n’est pas en lecture seule. **Accept Edits** applique sans demander les modifications de fichiers dans votre dépôt git et demande toujours avant les commandes. **Auto-Review** laisse des règles et un modèle de revue approuver les appels courants et refuse ceux à haut risque ; passez en Ask pour les approuver vous-même. **Full Access** ne demande jamais, et les commandes peuvent accéder à tout ce qui se trouve sur cet ordinateur ; les règles du dépôt et la politique gérée s’appliquent toujours. |
Le [guide des modes et des permissions](../MODES.md) donne les détails.
Pour les scripts et la CI, `codewhale exec` exécute une tâche sans interface. Lisez [exécutions sans interface](../INSTALL.md#headless-scripts-ci) avant de lui donner des outils avec `--auto`, car `--auto` utilise Full Access tant que vous n’ajoutez pas de bac à sable.
## Ce qu’il fait
### Nouveautés de la 0.10.2
Donnez une tâche à Codewhale : il lit le dépôt, modifie des fichiers et exécute des commandes jusqu’à ce que la tâche soit terminée ou qu’il ait besoin de vous. Les [notes de la dernière version](https://github.com/codewhale-hq/Codewhale/releases/latest) listent les changements les plus récents, et le [journal des modifications](../../CHANGELOG.md) couvre chaque version.
- `/pet on` transforme votre terminal en une baleine animée qui montre ce que
fait l’agent, tandis que la zone de message reste utilisable. Ses
980 particules écrivent l’étape en cours en anglais, en chinois ou en
japonais.
- `/workbar terminal` affiche les shells que l’agent exécute, pendant leur
exécution. Tapez dans l’un d’eux, ou appuyez sur `Ctrl+N` pour ouvrir votre
propre shell (macOS et Linux).
- `/undo` annule toute votre dernière demande en une seule étape, y compris
chaque fichier qu’elle a modifié, et `/diff` fonctionne dans les dossiers sans
Git.
- Quand un plan est prêt, Codewhale demande s’il faut lancer Work avec Ask ou
Auto-Review, ou continuer à planifier.
- `/color` donne à chaque conversation sa propre couleur de zone de saisie,
enregistrée avec la session.
- `web_search` peut utiliser la nouvelle Search API de DeepSeek : définissez
`[search] provider = "deepseek"` avec une clé DeepSeek.
- En dehors de Full Access, un `curl` ou un `wget` qui enverrait des
informations d’identification ne s’exécute jamais sans votre approbation, et
une commande qui dissimule de l’Unicode invisible est refusée. `write` ne
remplace plus un fichier que l’agent n’a pas lu, ni un fichier modifié après
qu’il l’a lu.
### N’importe quel modèle
### Modèles
Plus de 40 fournisseurs sont intégrés, dont Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter et xAI. Tout point d’accès compatible OpenAI fonctionne, tout comme les modèles locaux via Ollama, vLLM ou SGLang. Le modèle par défaut est `deepseek-flash` de DeepSeek, qui sert désormais DeepSeek V4.1 Flash ([détails](../PROVIDERS.md#deepseek-v41-flash)).
Plus de 40 fournisseurs sont intégrés, dont Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter et xAI. Tout point d’accès compatible
OpenAI fonctionne, tout comme les modèles locaux via Ollama, vLLM ou SGLang.
Le modèle par défaut est `deepseek-flash` de DeepSeek, que DeepSeek a fait
passer à DeepSeek-V4.1-Flash-1017 le 2026-10-17 ; la 0.10.1 l’exécute sans
mise à jour ([détails](../PROVIDERS.md#deepseek-v41-flash)).
`/model` change de modèle entre deux tours, et `/model auto` en choisit un pour
chaque tour (`/router` permet de régler comment). `/turn inspect` montre quel
modèle un tour a utilisé, ce qu’il a coûté et combien de temps il a pris.
`codewhale auth chatgpt` vous permet d’utiliser un abonnement ChatGPT au lieu
d’une clé API (expérimental). Voir [Fournisseurs](../PROVIDERS.md).
`/model` change de modèle entre deux tours, et `/model auto` en choisit un à chaque tour (`/router` règle comment). `/turn inspect` montre quel modèle un tour a utilisé, ce qu’il a coûté et combien de temps il a pris. Voir [Fournisseurs](../PROVIDERS.md).
### Reçus et annulation
`/receipts`, ou `codewhale receipts --last` après avoir quitté, liste les
fichiers modifiés, les commandes exécutées, les appels web et MCP, les agents
lancés, les approbations et qui les a données, ainsi que les échecs. `/undo` annule votre dernière demande et les fichiers qu’elle a modifiés, en une seule étape et sans mode de confiance. `/restore`
ramène tout l’espace de travail à un instantané antérieur ; comme cela écrase
les modifications ultérieures, il faut `/trust on` ou Full Access. Voir
[Reçus](../RECEIPTS.md).
`/receipts`, ou `codewhale receipts --last` après avoir quitté, liste les fichiers modifiés par une session, les commandes lancées, ses appels web et MCP, les agents démarrés, chaque approbation et qui l’a donnée, et ce qui a échoué. `/undo` annule votre dernière demande et les fichiers qu’elle a modifiés en une seule étape. `/restore` ramène tout l’espace de travail à un instantané antérieur ; comme cela écrase les modifications suivantes, il faut `/trust on` ou Full Access. Voir [Reçus](../RECEIPTS.md).
Les exécutions d’exec qui proposent des outils sont enregistrées dans tous les
formats de sortie ; `codewhale receipts --last` fonctionne donc après
`exec --auto`, y compris avec `--json`. Les exécutions qui se limitent à une
réponse en texte ou avec `--json` ne sont enregistrées que lors d’une reprise
ou lorsque la compaction de la conversation commence ; utilisez
`--output-format stream-json` pour toujours les enregistrer pour les reçus ou
pour `exec --continue`.
### Plusieurs agents sur une tâche
### Travail de longue durée
`/goal` fixe un objectif qui se maintient d’un tour à l’autre. Codewhale peut
répartir le travail entre des [sous-agents](../SUBAGENTS.md), faire tourner
une [flotte](../FLEET.md) d’agents ou suivre un
[workflow](../WORKFLOW_AUTHORING.md) versionné dans le dépôt.
### Venir d’un autre agent
Codewhale lit `AGENTS.md` de lui-même. Les fichiers d’instructions écrits pour
d’autres outils, comme `CLAUDE.md`, `.cursorrules` ou
`.github/copilot-instructions.md`, ne sont chargés que si vous l’activez
explicitement avec `project_instruction_imports = ["claude"]` (ou `"cursor"`,
`"cline"`, `"windsurf"`, `"copilot"`, `"all"`) dans votre configuration ; voir
[config.example.toml](../../config.example.toml). Codewhale vous avertit lorsqu’il en
trouve un qu’il n’a pas chargé.
`/import-claude` prépare une importation de vos paramètres Claude Code et de vos
serveurs MCP, pour que vous la vérifiiez. `/plugin install` accepte les plugins
Claude Code contenant des skills, des commandes, des profils d’agent et des
serveurs MCP, et refuse ceux qui ont besoin de hooks ou de serveurs LSP
([détails](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` fixe un objectif qui se poursuit d’un tour à l’autre. Codewhale peut répartir le travail entre des [sous-agents](../SUBAGENTS.md), faire tourner une [Fleet](../FLEET.md) d’agents avec leurs propres rôles et modèles, ou suivre un [workflow](../WORKFLOW_AUTHORING.md) versionné dans le dépôt.
### Extensions
Connectez des [serveurs MCP](../MCP.md), ajoutez des [skills](../SKILLS.md)
et des [plugins](../PLUGINS.md), et exécutez des [hooks](../HOOKS.md) sur
les événements de session et d’outil. Le mode code (expérimental, activé par
défaut) permet au modèle d’écrire un seul programme `execute_tools` qui appelle
plusieurs outils MCP et de plugins ; chaque appel reste soumis à vos règles
d’approbation et conserve son reçu. Le plugin Computer Use installé séparément
(expérimental, macOS uniquement) peut observer et utiliser d’autres
applications. Il reste désactivé tant que vous n’avez pas examiné ses accès et
ne l’avez pas activé ([guide](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Connectez des [serveurs MCP](../MCP.md), ajoutez des [skills](../SKILLS.md) et des [plugins](../PLUGINS.md), et lancez des [hooks](../HOOKS.md) sur les événements de session et d’outil. Le mode code (expérimental, activé par défaut) permet au modèle d’écrire un programme `execute_tools` qui appelle plusieurs outils MCP et de plugins ; chaque appel respecte toujours vos règles d’approbation et garde son reçu. Le plugin Computer Use fourni avec v0.10.2 (expérimental, macOS uniquement) peut observer et piloter d’autres applications ; il reste désactivé tant que vous n’avez pas vérifié ses accès et ne l’avez pas activé ([guide](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). À venir dans 0.10.3 : le plugin est publié [séparément](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Façons de l’exécuter
### Façons de le lancer
| Commande | Ce qu’elle fait |
| --- | --- |
| `codewhale` | L’application interactive dans le terminal |
| `codewhale exec "…"` | Une tâche sans l’interface. Sans option, il répond sans utiliser d’outils ; `--auto` active les outils avec Full Access par défaut, `--sandbox workspace-write` les restreint, et `--output-format stream-json` diffuse les événements en JSON |
| `codewhale web` | Une interface web locale sur `127.0.0.1` ([guide](../WEB.md)) |
| `codewhale review --pr N` | Une revue consultative d’une pull request GitHub. La [configuration du bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) génère un workflow épinglé pour les revues automatiques et `@codewhale review`, avec votre propre clé de modèle et une identité App facultative |
| `codewhale` | L’application de terminal interactive |
| `codewhale exec "…"` | Une tâche sans interface, pour les scripts et la CI ([exécutions sans interface](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Un client web local sur `127.0.0.1` ([guide](../WEB.md)) |
| `codewhale review --pr N` | Une revue consultative d’une pull request GitHub ; la [configuration du bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) la lance avec votre propre clé de modèle |
| `codewhale app-server --http` | La [Runtime API](../RUNTIME_API.md), une API HTTP locale pour les fils, les événements, les approbations et les modifications de fichiers de chaque tour |
| `codewhale serve --acp` | L’Agent Client Protocol sur stdio, pour des éditeurs comme Zed |
L’application de terminal, `exec`, `web` et la Runtime API partagent un seul
moteur ([architecture](../ARCHITECTURE.md)). Une
[extension VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
maintenue par la communauté s’y connecte depuis la barre latérale
([source](https://github.com/HengQuWorld/CodeWhale-VSCode)). Une application de
bureau native reposant sur la Runtime API est en cours de développement ; elle
n’est pas encore disponible en téléchargement public.
L’application de terminal, `exec`, `web` et la Runtime API partagent un même moteur ([architecture](../ARCHITECTURE.md)). Une [extension VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) maintenue par la communauté s’y connecte depuis la barre latérale ([source](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Coût et comptes
## Comment il reste sûr
Codewhale est gratuit et sous licence MIT. Avec votre propre clé API, vous payez
directement le fournisseur ; les modèles locaux ne nécessitent aucune clé. Le
pied de page et `/cost` indiquent ce qu’une session a coûté lorsque le prix est
connu ; un prix inconnu est affiché comme inconnu, jamais comme gratuit.
Deux réglages disent ce que Codewhale peut faire sans demander. Quand la saisie est vide, `Tab` change de mode : **Plan** lit et cherche mais ne change rien, **Work** modifie des fichiers et exécute des commandes, et **Operate** a les mêmes accès que Work et continue jusqu’à ce que l’objectif soit vérifié ou qu’il ait besoin de vous. `Shift+Tab` change la permission. **Ask**, par défaut, applique les modifications de fichiers de votre dépôt sans demander et demande avant les commandes shell qui ne font pas que lire. **Auto-Review** laisse des règles et un modèle relecteur approuver les appels courants et refuse ceux à haut risque ; passez en Ask pour les approuver vous-même. **Full Access** ne demande jamais et désactive le bac à sable de Codewhale, mais les règles du dépôt et la politique gérée s’appliquent toujours. Le [guide de v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) donne les détails.
Aucun compte n’est nécessaire. Les clés que vous ajoutez avec `/provider`
restent sur votre machine.
À venir dans 0.10.3 : `Shift+Tab` devient un seul sélecteur qui passe par Ask, Accept Edits, Plan, Auto-Review et Full Access, `Tab` ne change plus de mode et Operate est retiré. Ask demandera aussi avant chaque modification de fichier, et le nouveau réglage par défaut, Accept Edits, appliquera les modifications dans le dépôt git tout en demandant avant les commandes. Le [guide actuel](../MODES.md) le décrit.
## Sécurité et confidentialité
En Ask et en Auto-Review, les commandes tournent dans un bac à sable du système quand il en existe un : Seatbelt sur macOS, et bubblewrap sur Linux quand il est installé. Windows n’a pas encore de bac à sable système, et Full Access désactive le bac à sable. Dans le bac à sable, les commandes shell et les sessions de terminal ne peuvent pas lire les magasins d’identifiants comme `~/.ssh`, `~/.aws` et les fichiers `.env`. `/preview-request` affiche un aperçu expurgé de la prochaine requête sans l’envoyer.
En Ask et en Auto-Review, les commandes s’exécutent dans un bac à sable du
système d’exploitation lorsque le système en propose un : Seatbelt sur macOS, et
bubblewrap sous Linux lorsqu’il est installé. Windows n’a pas encore de bac à
sable du système, et Full Access désactive le bac à sable. Dans le bac à sable,
les commandes shell ne peuvent pas lire les emplacements qui stockent des
informations d’identification, comme `~/.ssh`, `~/.aws` et les fichiers `.env` ;
à partir de la 0.10.2, la même règle couvre les sessions de terminal et
davantage d’outils de fichiers. `/preview-request` affiche un aperçu expurgé de
la prochaine requête sans l’envoyer.
Vous n’avez besoin d’aucun compte, et les clés ajoutées avec `/provider` restent sur votre machine. Avec votre propre clé d’API, vous payez directement le fournisseur, et les modèles locaux n’ont pas besoin de clé. Le pied de page et `/cost` indiquent ce qu’une session a coûté quand le prix est connu ; un prix inconnu est affiché comme inconnu, jamais comme gratuit.
La télémétrie est activée par défaut. Elle envoie des compteurs agrégés (version
et plateforme, durée et résultat des sessions, fournisseurs intégrés que vous
avez utilisés, compteurs de fonctionnalités et d’erreurs) avec un identifiant
d’installation aléatoire renouvelé tous les 90 jours, et jamais de
conversations, de code, de prompts, de noms de modèles, de noms de fichiers ou
de dépôts, ni d’informations d’identification.
`codewhale config set telemetry false` la désactive. Au démarrage, Codewhale
vérifie aussi sur GitHub si une nouvelle version est disponible ; définissez
`CODEWHALE_NO_UPDATE_CHECK=1` pour l’éviter. Pour en savoir plus :
[ordre d’autorisation](../AUTHORIZATION_ORDER.md),
[bac à sable](../SANDBOX.md) et [télémétrie](../TELEMETRY.md).
La télémétrie est activée par défaut. Elle envoie des compteurs agrégés (version et plateforme, durée et issue des sessions, fournisseurs intégrés utilisés, compteurs de fonctionnalités et d’erreurs) avec un identifiant d’installation aléatoire renouvelé tous les 90 jours, et jamais de conversations, de code, de prompts, de noms de modèles, de noms de fichiers ou de dépôts, ni d’identifiants. Cette commande la désactive :
```bash
codewhale config set telemetry false
```
Au démarrage, Codewhale vérifie aussi sur GitHub s’il existe une nouvelle version ; définissez `CODEWHALE_NO_UPDATE_CHECK=1` pour l’éviter. Plus d’informations dans [l’ordre d’autorisation](../AUTHORIZATION_ORDER.md), [le bac à sable](../SANDBOX.md) et [la télémétrie](../TELEMETRY.md).
## Où il va
Codewhale devient un seul environnement qui couvre votre terminal, une application de bureau, le navigateur et des ordinateurs dans le cloud, le tout animé par un seul moteur. Chaque partie ci-dessous indique où elle en est aujourd’hui.
| Partie | État | Aujourd’hui |
| --- | --- | --- |
| Application de terminal | Publié | Installez-la sur macOS, Linux ou Windows et lancez `codewhale` dans n’importe quel dépôt. |
| Client de navigateur local | Publié | Lancez `codewhale web` pour lire la conversation, envoyer une tâche et répondre aux demandes d’approbation dans votre navigateur ; il est fourni avec le terminal et ne demande aucun compte. |
| Plusieurs agents sur une tâche | Publié | Les sous-agents, les Fleets et les workflows permettent à plusieurs agents de partager une tâche, chacun avec son propre rôle. |
| Application de bureau | En développement, sans téléchargement | Nous construisons une application de bureau sur le même moteur, et elle n’a pas encore de téléchargement public. |
| Ordinateurs dans le cloud | Sur invitation | Les ordinateurs dans le cloud sont sur invitation, et nous les construisons pour qu’une session puisse continuer à travailler sur une machine dans le cloud. |
| Une session à travers tout | En construction | Nous construisons une session qui vous suit du terminal au bureau, au navigateur et au cloud, et reste à vous tout au long du chemin. |
La [feuille de route](../ROADMAP.md) indique ce que couvre chaque version et où vous pouvez aider.
## Venir d’un autre agent
Codewhale lit `AGENTS.md` de lui-même. Les fichiers d’instructions écrits pour d’autres outils, comme `CLAUDE.md`, `.cursorrules` ou `.github/copilot-instructions.md`, ne sont chargés que si vous les activez avec `project_instruction_imports = ["claude"]` (ou `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) dans votre configuration ; voir [config.example.toml](../../config.example.toml). Codewhale vous avertit quand il en trouve un qu’il n’a pas chargé.
`/import-claude` prépare l’import de vos réglages Claude Code et de vos serveurs MCP pour que vous les examiniez. `/plugin install` accepte les plugins Claude Code qui contiennent des skills, des commandes, des profils d’agent et des serveurs MCP, et refuse ceux qui ont besoin de hooks ou de serveurs LSP ([détails](../CLAUDE_PLUGIN_COMPAT.md)).
## Documentation
Ces guides suivent la branche principale et peuvent décrire des changements qui ne sont pas encore dans la dernière version.
| Pour commencer | Référence |
| --- | --- |
| [Installation](../INSTALL.md) | [Configuration](../CONFIGURATION.md) |
| [Fournisseurs et modèles locaux](../PROVIDERS.md) | [Architecture](../ARCHITECTURE.md) |
| [Modes et permissions](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Raccourcis clavier](../KEYBINDINGS.md) | [Création de plugins](../PLUGIN_AUTHORING.md) |
| [Revue de PR GitHub](../GITHUB_ACTION.md) | [Toute la documentation](../README.md) |
| [Guide de l’utilisateur](../GUIDE.md) | [Configuration](../CONFIGURATION.md) |
| [Installation](../INSTALL.md) | [Architecture](../ARCHITECTURE.md) |
| [Fournisseurs et modèles locaux](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modes et permissions](../MODES.md) | [Écrire un plugin](../PLUGIN_AUTHORING.md) |
| [Raccourcis clavier](../KEYBINDINGS.md) | [Reçus](../RECEIPTS.md) |
| [Revue de pull requests GitHub](../GITHUB_ACTION.md) | [Toute la documentation](../README.md) |
## Communauté
## Contribuer
Codewhale est ce qu’il est grâce à sa communauté, et tous les retours sont les bienvenus : un bug, une idée, ou quelque chose qui vous a paru étrange à l’écran ou à l’usage.
[Ouvrez une issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) dans tous ces cas ; une issue est aussi le meilleur point de départ pour une nouvelle fonctionnalité.
Les pull requests sont les bienvenues pour les correctifs, les traductions, les fournisseurs et le travail déjà planifié.
Le [guide de contribution](../../CONTRIBUTING.md) indique où va chaque type d’aide, et la [feuille de route](../ROADMAP.md) indique où va le projet.
Les contributeurs conservent le crédit du travail intégré, et l’[organisation du dépôt](../../CONTRIBUTING.md#project-structure) montre où se trouve chaque élément.
Codewhale est construit au grand jour par les personnes qui l’utilisent, dans de nombreuses langues.
Discutez sur [Discord](https://discord.gg/37gfS3ksug), ou ajoutez le mainteneur,
Hunter, sur WeChat (`hunterbown`) et demandez à rejoindre le groupe Whale
Brothers. Tout le monde est le bienvenu.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Le mur des contributeurs de Codewhale : un avatar pour chaque personne dont le code, les commits coécrits, les pull requests reprises ou les signalements crédités font partie de Codewhale, avec le total en haut."></a>
Le [mur des contributeurs](../CONTRIBUTORS.md) compte toutes les personnes dont le code, les commits coécrits, les pull requests reprises ou les signalements crédités font partie de Codewhale, y compris celles que la liste de contributeurs de GitHub oublie. `scripts/contributor-wall.py` régénère l’image et la liste à partir de l’historique git et de GitHub.
Tous les retours sont bienvenus : un bug, une idée, ou quelque chose qui avait l’air ou semblait faux. [Ouvrez une issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) pour chacun d’eux ; une issue est aussi le meilleur endroit pour lancer une nouvelle fonctionnalité. Les pull requests sont bienvenues pour les corrections, les traductions, les fournisseurs et le travail prévu. Les questions vont dans les [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). Le [guide de contribution](../../CONTRIBUTING.md) montre où va chaque type d’aide, comment votre travail est intégré à votre nom, et [où se trouve chaque chose](../../CONTRIBUTING.md#project-structure).
Discutez sur [Discord](https://discord.gg/37gfS3ksug), ou ajoutez le mainteneur, Hunter, sur WeChat (`hunterbown`) et demandez à rejoindre le groupe Whale Brothers. Tout le monde est bienvenu.
## Historique et licence
Codewhale a commencé sous le nom de `deepseek-tui` et lit toujours la
configuration et les sessions de ce projet. Il est maintenu de manière
indépendante et n’est affilié ni à DeepSeek ni à aucun autre fournisseur de
modèles. Merci à [toutes les personnes qui ont contribué](../CONTRIBUTORS.md).
Codewhale a commencé sous le nom `deepseek-tui` et lit toujours la configuration et les sessions de ce projet. Il est maintenu de façon indépendante et n’est affilié ni à DeepSeek ni à aucun autre fournisseur de modèles.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Le code adapté d’autres projets open source est répertorié dans
les [mentions tierces](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Le code adapté d’autres projets open source est listé dans les mentions tierces pour les [sources intégrées](../../THIRD_PARTY_NOTICES.md) et les [conceptions adaptées](../THIRD_PARTY_NOTICES.md).
+104 -212
View File
@@ -1,273 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**आपके टर्मिनल के लिए एक ओपन सोर्स कोडिंग एजेंट, जो किसी भी मॉडल के साथ काम करता है।**
<h1>मॉडल किसी का भी हो सकता है। एजेंट आपका होना चाहिए।</h1>
Codewhale को कोई काम दें, और वह रिपॉज़िटरी पढ़ता है, फ़ाइलें संपादित करता है और कमांड
चलाता है, जब तक काम पूरा न हो जाए या उसे आपसे इनपुट की ज़रूरत न पड़े। यह 40 से अधिक
बिल्ट-इन प्रोवाइडर के साथ काम करता है (डिफ़ॉल्ट रूप से DeepSeek V4.1 Flash), और आपकी
अपनी मशीन पर चल रहे मॉडलों के साथ भी। `/receipts` उन फ़ाइलों की सूची देता है जो इसने बदलीं, उन
कमांड की जो इसने चलाईं, और उन वेब और MCP कॉल की जो इसने कीं।
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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) · [Українська](README.uk.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [繁體中文](README.zh-TW.md) · [Türkçe](README.tr.md) · [Italiano](README.it.md) · [Polski](README.pl.md) · [العربية](README.ar.md) · [Català](README.ca.md)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Codewhale का एक टर्मिनल सेशन" width="760">
<sub>0.10.2 का एक डेवलपमेंट बिल्ड, स्क्रिप्टेड टेस्ट मॉडल के साथ, एक अस्थायी वर्कस्पेस के भीतर Full Access में। संपादन, तीन टेस्ट और एक सब-एजेंट समीक्षा सचमुच चलीं।</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — DeepSeek v4.1 Flash का 30% अतिरिक्त उपयोग" width="760">
</a>
</p>
[Codewhale × OrcaRouter का ऑफ़र देखें](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale को OrcaRouter से रेफ़रल शुल्क मिलता है।
## इंस्टॉल करें
macOS और Linux:
Codewhale आपके टर्मिनल के लिए एक ओपन सोर्स कोडिंग एजेंट है, जो Rust में लिखा गया है। यह किसी भी मॉडल के साथ काम करता है, एक काम को कई एजेंटों में बाँट सकता है, और इसकी हर पंक्ति आप पढ़ सकते हैं।
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
इंस्टॉलर चेकसम से सत्यापित `codewhale` और उसका छोटा उपनाम `codew` `~/.local/bin` में
रखता है। अगर इसके बाद आपका शेल `command not found` कहे, तो इंस्टॉलर जो PATH लाइन
प्रिंट करता है, उसे चलाएँ ([विवरण](../INSTALL.md#put-it-on-your-path))।
`codewhale update` इसे अपग्रेड करता है। ये कमांड नवीनतम रिलीज़ इंस्टॉल करती हैं।
यह पेज `main` के अनुसार चलता है, इसलिए जिस फ़ीचर पर कोई संस्करण लिखा है, वह उसी रिलीज़
में आता है; [बदलावों की सूची](../../CHANGELOG.md) बताती है कि हर रिलीज़ में क्या जुड़ा।
यह macOS या Linux पर नवीनतम रिलीज़ इंस्टॉल करता है, और इसके लिए खाते की ज़रूरत नहीं है। [Windows, npm और Cargo](#इंस्टॉल-करें) नीचे हैं।
<details>
<summary><b>Windows, npm, Cargo और इंस्टॉल करने के अन्य तरीके</b></summary>
[![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) · [Українська](README.uk.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [繁體中文](README.zh-TW.md) · [Türkçe](README.tr.md) · [Italiano](README.it.md) · [Polski](README.pl.md) · [العربية](README.ar.md) · [Català](README.ca.md)
<sub>यह अनुवाद मशीन द्वारा बनाया गया मसौदा है और इसकी अभी किसी मूल भाषी द्वारा समीक्षा नहीं हुई है।</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="एक डेमो काम के बाद टर्मिनल में Codewhale। यह बताता है कि उसने export.py में --json फ़्लैग जोड़ा, तीनों स्थानीय टेस्ट पास हुए और सौंपी गई समीक्षा में कोई समस्या नहीं मिली। नीचे की कार्य सूची में तीन पूरे चरण हैं, और स्टेटस लाइन Full Access और स्थानीय website-demo प्रदाता दिखाती है।">
<sub>स्क्रिप्ट किए गए टेस्ट मॉडल वाला 0.10.3 का डेवलपमेंट बिल्ड (0.10.3 अभी रिलीज़ नहीं हुआ है), एक बार इस्तेमाल होने वाले वर्कस्पेस में Full Access में। बदलाव, तीन टेस्ट और एक सब-एजेंट समीक्षा वाकई चले।</sub>
</div>
## इंस्टॉल करें
ऊपर का कमांड चेकसम से जाँचा गया `codewhale` और उसका छोटा नाम `codew` `~/.local/bin` में रखता है। अगर इसके बाद आपका शेल `command not found` कहे, तो इंस्टॉलर जो PATH नोट दिखाता है उसका पालन करें ([विवरण](../INSTALL.md#put-it-on-your-path))। `codewhale update` इसे अपग्रेड करता है।
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
पहले से बनी बाइनरी x64 और arm64 पर Linux, macOS और Windows के लिए उपलब्ध हैं। Nix,
Linux पर Homebrew, Android/Termux (प्रीव्यू) और मैन्युअल डाउनलोड
[इंस्टॉलेशन गाइड](../INSTALL.md) में हैं, और कंटेनर [Docker](../DOCKER.md) में।
हर मशीन पर इंस्टॉल का एक ही तरीका अपनाएँ; वरना `PATH` पर दो कॉपी हो जाती हैं और जो
पहले आती है, वही चलती है।
पहले से बनी बाइनरी x64 और arm64 पर Linux, macOS और Windows के लिए हैं। Scoop, Nix, Linux पर Homebrew, Android और Termux (प्रीव्यू) और मैन्युअल डाउनलोड [इंस्टॉलेशन गाइड](../INSTALL.md) में हैं, और कंटेनर [Docker](../DOCKER.md) में। हर मशीन पर एक ही इंस्टॉल तरीका अपनाएँ; वरना आपके `PATH` पर दो प्रतियाँ होंगी और जो पहले मिलेगी वही चलेगी।
</details>
## जल्दी शुरुआत
## क्विकस्टार्ट
1. अपना काम commit या stash करें, फिर किसी git रिपॉज़िटरी के रूट से `codewhale` चलाएँ।
डिफ़ॉल्ट रूप से (**Accept Edits**) यह रिपॉज़िटरी में फ़ाइलें बिना पूछे संपादित करता है और हर कमांड से पहले पूछता है; ज़्यादा या कम पूछवाने के लिए `Shift+Tab` से अनुमति एक-एक पड़ाव आगे बढ़ाएँ।
2. `/provider` चलाएँ (या `F3` दबाएँ), कोई प्रोवाइडर चुनें, उसकी API कुंजी पेस्ट करें और
एक मॉडल चुनें। DeepSeek डिफ़ॉल्ट प्रोवाइडर है। अगर कुंजी नहीं है, तो इसके बजाय कोई
लोकल रनटाइम चुनें। अगर कोई प्रोवाइडर कॉन्फ़िगर नहीं है और Ollama पहले से कोई चैट
मॉडल चला रहा है, तो Codewhale अपने-आप उसका इस्तेमाल करता है; 0.10.2 से, जब आप
अपना पहला संदेश भेजते हैं, तब यह उसे इस्तेमाल करने का विकल्प देता है।
3. कोई काम लिखें:
1. अपना काम commit या stash करें, फिर किसी git रिपॉज़िटरी की रूट से `codewhale` चलाएँ। डिफ़ॉल्ट रूप से यह रिपॉज़िटरी में फ़ाइल बदलाव बिना पूछे लागू करता है और हर उस shell कमांड से पहले पूछता है जो सिर्फ़ पढ़ती नहीं।
2. `/provider` चलाएँ (या `F3` दबाएँ), एक प्रदाता चुनें, उसकी API कुंजी चिपकाएँ और मॉडल चुनें। डिफ़ॉल्ट प्रदाता DeepSeek है। बिना कुंजी के पहली बार चलाने पर, जब आप पहला संदेश भेजते हैं तब Codewhale प्रदाता पूछता है, और कोई स्थानीय Ollama सर्वर जवाब दे तो स्थानीय मॉडल सुझाता है।
3. एक काम लिखें:
```text
Fix the failing tests and explain what changed.
```
केवल पढ़ने वाली (read-only) कमांड तुरंत चलती हैं। किसी भी दूसरी शेल कमांड के लिए
Codewhale पहले पूछता है: `y` उसे एक बार चलाता है, `a` बाकी बातचीत के लिए उस जैसी
कमांड की अनुमति देता है, `n` मना कर देता है। `/undo` आपका पिछला अनुरोध और उससे हुए
फ़ाइल बदलाव वापस करता है। `/help` कमांड और
कीबोर्ड कुंजियों की सूची देता है।
केवल पढ़ने वाले कमांड तुरंत चलते हैं। किसी भी दूसरे शेल कमांड के लिए Codewhale पहले पूछता है: `y` उसे एक बार चलाता है, `a` बाकी बातचीत के लिए वैसे कमांड की अनुमति देता है, और `n` मना करता है। `/undo` आपका पिछला अनुरोध और उसके फ़ाइल बदलाव वापस लेता है, और `/help` कमांड और कुंजियाँ दिखाता है।
स्क्रिप्ट और CI के लिए `codewhale exec` बिना इंटरफ़ेस के एक काम चलाता है। डिफ़ॉल्ट
रूप से `--auto` Full Access का इस्तेमाल करता है: टूल बिना पूछे चलते हैं, शेल कमांड
पर Codewhale का सैंडबॉक्स लागू नहीं होता, और ट्रस्ट मोड फ़ाइल टूल को वर्कस्पेस के
बाहर लिखने देता है। शेल सैंडबॉक्स और फ़ाइल टूल की वर्कस्पेस सीमाएँ बनाए रखने और
ट्रस्ट मोड बंद रखने के लिए `--sandbox workspace-write` जोड़ें:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## मोड और अनुमतियाँ
नया इंस्टॉलेशन Work मोड और Accept Edits अनुमति के साथ शुरू होता है। एक ही डायल दोनों को बदलता है: `Shift+Tab` क्रम से Ask → Accept Edits → Plan → Auto-Review → Full Access पर ले जाता है।
| | कैसे बदलें | विकल्प |
| --- | --- | --- |
| मोड | `Shift+Tab` पर Plan वाला पड़ाव, या `/mode` | **Plan** पढ़ता और खोजता है, पर कुछ नहीं बदलता। **Work** (बाकी सभी पड़ाव) फ़ाइलें संपादित करता है और कमांड चलाता है। जब किसी अनुरोध में एक से अधिक टर्न लगें, तो `/goal` से लक्ष्य शुरू करें। |
| अनुमति | `Shift+Tab` | **Ask** हर फ़ाइल संपादन से पहले और हर उस शेल कमांड से पहले पूछता है जो read-only नहीं है। **Accept Edits** आपकी git रिपॉज़िटरी में फ़ाइल संपादन बिना पूछे लागू करता है और कमांड से पहले अब भी पूछता है। **Auto-Review** नियमों और एक समीक्षक मॉडल को सामान्य कॉल मंज़ूर करने देता है और उच्च जोखिम वाली कॉल मना कर देता है; उन्हें खुद मंज़ूर करने के लिए Ask पर जाएँ। **Full Access** कभी नहीं पूछता, और कमांड इस कंप्यूटर पर किसी भी चीज़ तक पहुँच सकती हैं; रिपॉज़िटरी के नियम और प्रबंधित नीति (managed policy) फिर भी लागू रहते हैं। |
विवरण के लिए [मोड और अनुमतियों की गाइड](../MODES.md) देखें।
स्क्रिप्ट और CI के लिए `codewhale exec` बिना इंटरफ़ेस के एक काम चलाता है। `--auto` से इसे टूल देने से पहले [बिना इंटरफ़ेस के चलाना](../INSTALL.md#headless-scripts-ci) पढ़ें, क्योंकि जब तक आप सैंडबॉक्स न जोड़ें, `--auto` Full Access इस्तेमाल करता है।
## यह क्या करता है
### 0.10.2 में नया
Codewhale को कोई काम दें, और यह काम पूरा होने या आपके इनपुट की ज़रूरत पड़ने तक रिपॉज़िटरी पढ़ता है, फ़ाइलें बदलता है और कमांड चलाता है। [नवीनतम रिलीज़ नोट्स](https://github.com/codewhale-hq/Codewhale/releases/latest) में सबसे नए बदलाव हैं, और [चेंजलॉग](../../CHANGELOG.md) में हर संस्करण है।
- `/pet on` आपके टर्मिनल को एक एनिमेटेड व्हेल में बदल देता है, जो दिखाती है कि एजेंट
क्या कर रहा है, और इस दौरान संदेश बॉक्स चालू रहता है। इसके 980 कण मौजूदा कदम को
अंग्रेज़ी, चीनी या जापानी में लिखते हैं।
- `/workbar terminal` एजेंट द्वारा चलाए जा रहे शेल को चलते-चलते दिखाता है। उनमें से
किसी में टाइप करें, या अपना खुद का शेल खोलने के लिए `Ctrl+N` दबाएँ (macOS और Linux)।
- `/undo` आपका पूरा पिछला अनुरोध एक ही कदम में वापस करता है, उससे बदली गई हर फ़ाइल
समेत, और `/diff` बिना Git वाले फ़ोल्डरों में भी काम करता है।
- जब कोई प्लान तैयार होता है, तो Codewhale पूछता है कि Work को Ask या Auto-Review
के साथ शुरू करें, या प्लानिंग जारी रखें।
- `/color` हर चैट के कंपोज़र को उसका अपना रंग देता है, जो सेशन के साथ सहेजा जाता है।
- `web_search` DeepSeek के नए Search API का इस्तेमाल कर सकता है: DeepSeek कुंजी के
साथ `[search] provider = "deepseek"` सेट करें।
- Full Access के बाहर, कोई `curl` या `wget` जो कोई क्रेडेंशियल अपलोड करता, आपकी
मंज़ूरी के बिना कभी नहीं चलता, और अदृश्य Unicode छिपाने वाली कमांड मना कर दी जाती
है। `write` अब ऐसी फ़ाइल को नहीं बदलता जिसे एजेंट ने पढ़ा नहीं है, या जो उसके पढ़ने
के बाद बदल गई है।
### कोई भी मॉडल
### मॉडल
40 से ज़्यादा प्रदाता पहले से शामिल हैं, जिनमें Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter और xAI हैं। कोई भी OpenAI-संगत एंडपॉइंट काम करता है, और Ollama, vLLM या SGLang के ज़रिए स्थानीय मॉडल भी। डिफ़ॉल्ट मॉडल DeepSeek का `deepseek-flash` है, जो अब DeepSeek V4.1 Flash से चलता है ([विवरण](../PROVIDERS.md#deepseek-v41-flash))।
40 से अधिक प्रोवाइडर बिल्ट-इन हैं, जिनमें Anthropic, OpenAI, DeepSeek, Google,
Mistral, Moonshot, OpenRouter और xAI शामिल हैं। कोई भी OpenAI-संगत एंडपॉइंट काम करता
है, और Ollama, vLLM या SGLang के ज़रिए लोकल मॉडल भी। डिफ़ॉल्ट मॉडल DeepSeek का
`deepseek-flash` है, जिसे DeepSeek ने 2026-10-17 को DeepSeek-V4.1-Flash-1017 पर
कर दिया; 0.10.1 इसे बिना अपडेट के चलाता है
([विवरण](../PROVIDERS.md#deepseek-v41-flash))।
`/model` बारियों के बीच मॉडल बदलता है, और `/model auto` हर बारी के लिए एक मॉडल चुनता है (कैसे, यह `/router` तय करता है)। `/turn inspect` दिखाता है कि किसी बारी ने कौन-सा मॉडल इस्तेमाल किया, उसकी लागत क्या थी और उसमें कितना समय लगा। [प्रदाता](../PROVIDERS.md) देखें।
`/model` टर्न के बीच मॉडल बदलता है, और `/model auto` हर टर्न के लिए एक मॉडल चुनता है
(`/router` तय करता है कि कैसे)। `/turn inspect` दिखाता है कि किसी टर्न ने कौन-सा मॉडल
इस्तेमाल किया, उस पर कितना खर्च हुआ और उसमें कितना समय लगा। `codewhale auth chatgpt`
से आप API कुंजी के बजाय ChatGPT प्लान इस्तेमाल कर सकते हैं (प्रायोगिक)।
[प्रोवाइडर](../PROVIDERS.md) देखें।
### रसीदें और वापसी
### रसीदें और पूर्ववत करना
`/receipts`, या बाहर निकलने के बाद `codewhale receipts --last`, किसी सत्र में बदली गई फ़ाइलें, चलाए गए कमांड, उसके वेब और MCP कॉल, शुरू किए गए एजेंट, हर मंज़ूरी और उसे किसने दिया, और क्या विफल हुआ, यह सब दिखाता है। `/undo` आपका पिछला अनुरोध और उससे बदली गई फ़ाइलें एक ही कदम में वापस लेता है। `/restore` पूरे वर्कस्पेस को पहले के स्नैपशॉट पर लौटाता है, और क्योंकि यह बाद के बदलावों को मिटा देता है, इसके लिए `/trust on` या Full Access चाहिए। [रसीदें](../RECEIPTS.md) देखें।
`/receipts`, या बाहर निकलने के बाद `codewhale receipts --last`, बदली गई फ़ाइलों,
चलाई गई कमांड, वेब और MCP कॉल, शुरू किए गए एजेंट, अनुमोदन और उन्हें किसने दिया, और
विफलताओं की सूची देता है। `/undo` आपका पिछला अनुरोध और उससे बदली गई फ़ाइलें एक ही कदम में वापस करता है, बिना ट्रस्ट मोड के। `/restore` पूरे
वर्कस्पेस को किसी पिछले स्नैपशॉट पर वापस ले जाता है; क्योंकि इससे बाद के संपादन
ओवरराइट हो जाते हैं, इसके लिए `/trust on` या Full Access चाहिए।
[रसीदें](../RECEIPTS.md) देखें।
### एक काम पर कई एजेंट
जिन exec रन में टूल उपलब्ध होते हैं, वे हर आउटपुट फ़ॉर्मैट में सहेजे जाते हैं, इसलिए
`codewhale receipts --last`, `exec --auto` के बाद काम करता है, `--json` के साथ भी।
केवल जवाब देने वाले टेक्स्ट और `--json` रन तभी सहेजे जाते हैं जब उन्हें फिर से शुरू
किया जाता है या बातचीत का कॉम्पैक्शन शुरू होता है; रसीदों या `exec --continue`
के लिए उन्हें हमेशा सहेजने के लिए `--output-format stream-json` इस्तेमाल करें।
### लंबे काम
`/goal` एक ऐसा उद्देश्य तय करता है जो कई टर्न तक बना रहता है। Codewhale काम को
[सब-एजेंटों](../SUBAGENTS.md) में बाँट सकता है, एजेंटों का एक [fleet](../FLEET.md)
चला सकता है, या रिपॉज़िटरी में रखे किसी [वर्कफ़्लो](../WORKFLOW_AUTHORING.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))।
`/goal` एक लक्ष्य तय करता है जो कई बारियों तक चलता है। Codewhale काम को [सब-एजेंटों](../SUBAGENTS.md) में बाँट सकता है, अपनी भूमिकाओं और मॉडलों वाले एजेंटों की [Fleet](../FLEET.md) चला सकता है, या रिपॉज़िटरी में रखे [वर्कफ़्लो](../WORKFLOW_AUTHORING.md) का पालन कर सकता है।
### एक्सटेंशन
[MCP सर्वर](../MCP.md) कनेक्ट करें, [स्किल](../SKILLS.md) और
[प्लगइन](../PLUGINS.md) जोड़ें, और सेशन व टूल इवेंट पर [हुक](../HOOKS.md) चलाएँ।
Code mode (प्रायोगिक, डिफ़ॉल्ट रूप से चालू) मॉडल को एक ऐसा `execute_tools` प्रोग्राम
लिखने देता है जो कई MCP और प्लगइन टूल कॉल करता है; हर कॉल फिर भी आपके अनुमोदन नियमों
से गुज़रती है और उसकी रसीद बनी रहती है। अलग से इंस्टॉल किया गया Computer Use प्लगइन (प्रायोगिक, केवल macOS) दूसरे ऐप देख और चला सकता
है। जब तक आप उसके एक्सेस की समीक्षा करके उसे सक्षम नहीं करते, वह बंद रहता है
([गाइड](https://github.com/codewhale-hq/codewhale-cu-plugin))।
[MCP सर्वर](../MCP.md) जोड़ें, [स्किल](../SKILLS.md) और [प्लगइन](../PLUGINS.md) जोड़ें, और सत्र और टूल इवेंट पर [हुक](../HOOKS.md) चलाएँ। कोड मोड (प्रायोगिक, डिफ़ॉल्ट रूप से चालू) मॉडल को एक `execute_tools` प्रोग्राम लिखने देता है जो कई MCP और प्लगइन टूल बुलाता है; हर कॉल फिर भी आपके मंज़ूरी नियमों का पालन करता है और अपनी रसीद रखता है। v0.10.2 के साथ आने वाला Computer Use प्लगइन (प्रायोगिक, केवल 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 "…"` | बिना इंटरफ़ेस के एक काम। अकेले चलाने पर यह टूल का इस्तेमाल किए बिना जवाब देता है; `--auto` डिफ़ॉल्ट रूप से Full Access के साथ टूल चालू करता है, `--sandbox workspace-write` उन्हें सीमित करता है, और `--output-format stream-json` इवेंट को JSON के रूप में स्ट्रीम करता है |
| `codewhale web` | `127.0.0.1` पर एक लोकल वेब UI ([गाइड](../WEB.md)) |
| `codewhale review --pr N` | किसी GitHub pull request की सलाह के तौर पर समीक्षा। [GitHub बॉट सेटअप](../GITHUB_ACTION.md#set-up-your-own-bot) स्वचालित समीक्षाओं और `@codewhale review` के लिए एक पिन किया हुआ workflow बनाता है, जो आपकी अपनी मॉडल कुंजी और वैकल्पिक App पहचान का उपयोग करता है |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), थ्रेड, इवेंट, अनुमोदन और हर टर्न के फ़ाइल बदलावों के लिए एक लोकल HTTP API |
| `codewhale exec "…"` | बिना इंटरफ़ेस के एक काम, स्क्रिप्ट और CI के लिए ([बिना इंटरफ़ेस के चलाना](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | `127.0.0.1` पर एक स्थानीय वेब क्लाइंट ([गाइड](../WEB.md)) |
| `codewhale review --pr N` | GitHub पुल रिक्वेस्ट की सलाह देने वाली समीक्षा; [GitHub बॉट सेटअप](../GITHUB_ACTION.md#set-up-your-own-bot) इसे आपकी अपनी मॉडल कुंजी से चलाता है |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), थ्रेड, इवेंट, मंज़ूरियों और हर बारी के फ़ाइल बदलावों के लिए एक स्थानीय HTTP API |
| `codewhale serve --acp` | stdio पर Agent Client Protocol, Zed जैसे एडिटर के लिए |
टर्मिनल ऐप, `exec`, `web` और Runtime API एक ही इंजन साझा करते हैं
([आर्किटेक्चर](../ARCHITECTURE.md))। समुदाय द्वारा अनुरक्षित एक
[VS Code एक्सटेंशन](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
साइडबार से इससे जुड़ता है ([सोर्स](https://github.com/HengQuWorld/CodeWhale-VSCode))।
Runtime API पर बने एक नेटिव डेस्कटॉप ऐप पर काम चल रहा है; उसका अभी कोई सार्वजनिक
डाउनलोड नहीं है।
टर्मिनल ऐप, `exec`, `web` और Runtime API एक ही इंजन साझा करते हैं ([आर्किटेक्चर](../ARCHITECTURE.md))। समुदाय द्वारा बनाए रखा गया एक [VS Code एक्सटेंशन](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) साइडबार से इससे जुड़ता है ([स्रोत](https://github.com/HengQuWorld/CodeWhale-VSCode))।
## लागत और खाते
## यह सुरक्षित कैसे रहता है
Codewhale मुफ़्त है और MIT लाइसेंस के तहत है। अपनी API कुंजी के साथ आप सीधे प्रोवाइडर
को भुगतान करते हैं; लोकल मॉडलों के लिए किसी कुंजी की ज़रूरत नहीं होती। जब कीमत ज्ञात
हो, तो फ़ुटर और `/cost` दिखाते हैं कि किसी सेशन पर कितना खर्च हुआ है, और अज्ञात कीमत
को अज्ञात ही दिखाया जाता है, कभी मुफ़्त नहीं।
दो स्विच तय करते हैं कि Codewhale बिना पूछे कितना कर सकता है। इनपुट खाली होने पर `Tab` मोड बदलता है: **Plan** पढ़ता और खोजता है पर कुछ नहीं बदलता, **Work** फ़ाइलें बदलता और कमांड चलाता है, और **Operate** के पास Work जितनी ही पहुँच है और वह तब तक चलता रहता है जब तक लक्ष्य सत्यापित न हो जाए या उसे आपकी ज़रूरत न हो। `Shift+Tab` अनुमति बदलता है। डिफ़ॉल्ट **Ask** आपकी रिपॉज़िटरी में फ़ाइल बदलाव बिना पूछे लागू करता है और उन shell कमांड से पहले पूछता है जो सिर्फ़ पढ़ती नहीं। **Auto-Review** नियमों और एक समीक्षक मॉडल को सामान्य कॉल मंज़ूर करने देता है और उच्च जोखिम वाली कॉल अस्वीकार करता है; उन्हें खुद मंज़ूर करने के लिए Ask पर जाएँ। **Full Access** कभी नहीं पूछता और Codewhale का sandbox बंद कर देता है, हालाँकि रिपॉज़िटरी नियम और प्रबंधित नीति लागू रहती हैं। विवरण [v0.10.2 गाइड](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) में है।
आपको खाते की ज़रूरत नहीं है। `/provider` से जोड़ी गई कुंजियाँ आपकी मशीन पर ही रहती हैं।
0.10.3 में आ रहा है: `Shift+Tab` एक ही डायल बन जाएगा जो Ask, Accept Edits, Plan, Auto-Review और Full Access से होकर गुज़रता है, `Tab` अब मोड नहीं बदलेगा, और Operate हटा दिया जाएगा। Ask हर फ़ाइल बदलाव से पहले भी पूछेगा, और नया डिफ़ॉल्ट Accept Edits git रिपॉज़िटरी के अंदर बदलाव लागू करेगा और कमांड से पहले पूछता रहेगा। [मौजूदा गाइड](../MODES.md) इसका वर्णन करती है।
## सुरक्षा और गोपनीयता
Ask और Auto-Review में कमांड ऑपरेटिंग सिस्टम के सैंडबॉक्स में चलते हैं, जहाँ सिस्टम में वह हो: macOS पर Seatbelt, और Linux पर bubblewrap अगर वह इंस्टॉल हो। Windows में अभी ऑपरेटिंग सिस्टम सैंडबॉक्स नहीं है, और Full Access सैंडबॉक्स बंद कर देता है। सैंडबॉक्स के अंदर शेल कमांड और टर्मिनल सत्र `~/.ssh`, `~/.aws` और `.env` फ़ाइलों जैसे क्रेडेंशियल भंडार नहीं पढ़ सकते। `/preview-request` अगले अनुरोध का संवेदनशील हिस्सा छिपाकर पूर्वावलोकन दिखाता है, उसे भेजे बिना।
Ask और Auto-Review में, जहाँ सिस्टम में OS सैंडबॉक्स है, वहाँ कमांड उसी के भीतर चलती
हैं: macOS पर Seatbelt, और Linux पर bubblewrap, जब वह इंस्टॉल हो। Windows पर अभी कोई
OS सैंडबॉक्स नहीं है, और Full Access सैंडबॉक्स बंद कर देता है। सैंडबॉक्स के भीतर
शेल कमांड `~/.ssh`, `~/.aws` और `.env` फ़ाइलों जैसे क्रेडेंशियल स्टोर नहीं पढ़ सकतीं;
0.10.2 से यही नियम टर्मिनल सेशन और ज़्यादा फ़ाइल टूल पर भी लागू होता है।
`/preview-request` अगले अनुरोध को भेजे बिना उसका संपादित (redacted) प्रीव्यू दिखाता है।
आपको खाते की ज़रूरत नहीं है, और `/provider` से जोड़ी गई कुंजियाँ आपकी मशीन पर रहती हैं। अपनी API कुंजी से आप प्रदाता को सीधे भुगतान करते हैं, और स्थानीय मॉडलों को कुंजी नहीं चाहिए। कीमत पता हो तो फ़ुटर और `/cost` सत्र की लागत दिखाते हैं, और अज्ञात कीमत अज्ञात के रूप में दिखती है, कभी मुफ़्त के रूप में नहीं।
टेलीमेट्री डिफ़ॉल्ट रूप से चालू है। यह समेकित गिनतियाँ (संस्करण और प्लेटफ़ॉर्म, सेशन
की अवधि और परिणाम, आपने कौन-से बिल्ट-इन प्रोवाइडर इस्तेमाल किए, फ़ीचर और त्रुटियों की
गिनती) एक रैंडम इंस्टॉल ID के साथ भेजती है, जो हर 90 दिन में बदल जाती है। यह कभी बातचीत,
कोड, प्रॉम्प्ट, मॉडल के नाम, फ़ाइल या रिपॉज़िटरी के नाम, या क्रेडेंशियल नहीं भेजती। `codewhale config set telemetry false` इसे बंद कर
देता है। शुरू होते समय Codewhale नई रिलीज़ के लिए GitHub भी जाँचता है; इसे छोड़ने के
लिए `CODEWHALE_NO_UPDATE_CHECK=1` सेट करें। ज़्यादा जानकारी
[अधिकार क्रम](../AUTHORIZATION_ORDER.md), [सैंडबॉक्सिंग](../SANDBOX.md) और
[टेलीमेट्री](../TELEMETRY.md) में है।
टेलीमेट्री डिफ़ॉल्ट रूप से चालू है। यह कुल गिनतियाँ (संस्करण और प्लेटफ़ॉर्म, सत्र की अवधि और परिणाम, आपने कौन-से अंतर्निहित प्रदाता इस्तेमाल किए, सुविधा और त्रुटि गिनती) एक यादृच्छिक इंस्टॉल ID के साथ भेजती है जो हर 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` स्किल, कमांड, एजेंट प्रोफ़ाइल और MCP सर्वर वाले Claude Code प्लगइन स्वीकार करता है, और जिन प्लगइनों को हुक या LSP सर्वर चाहिए उन्हें मना करता है ([विवरण](../CLAUDE_PLUGIN_COMPAT.md))।
## दस्तावेज़
ये गाइड मुख्य ब्रांच के साथ चलती हैं, इसलिए इनमें ऐसे बदलाव हो सकते हैं जो अभी नवीनतम रिलीज़ में नहीं हैं।
| यहाँ से शुरू करें | संदर्भ |
| --- | --- |
| [इंस्टॉलेशन](../INSTALL.md) | [कॉन्फ़िगरेशन](../CONFIGURATION.md) |
| [प्रोवाइडर और लोकल मॉडल](../PROVIDERS.md) | [आर्किटेक्चर](../ARCHITECTURE.md) |
| [मोड और अनुमतियाँ](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [कीबाइंडिंग](../KEYBINDINGS.md) | [प्लगइन लेखन](../PLUGIN_AUTHORING.md) |
| [GitHub PR समीक्षा](../GITHUB_ACTION.md) | [सभी दस्तावेज़](../README.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) |
| [GitHub पुल रिक्वेस्ट समीक्षा](../GITHUB_ACTION.md) | [सभी दस्तावेज़](../README.md) |
## समुदाय
## योगदान
Codewhale आज जो है, अपने समुदाय की वजह से है, और हर फ़ीडबैक का स्वागत है: कोई बग, कोई आइडिया, या कुछ ऐसा जो देखने या इस्तेमाल करने में ठीक न लगा हो।
इनमें से किसी के लिए भी [issue खोलें](https://github.com/codewhale-hq/CodeWhale/issues/new/choose); नई सुविधा शुरू करने की सबसे अच्छी जगह भी issue ही है।
फ़िक्स, अनुवाद, प्रोवाइडर और पहले से तय काम के लिए pull request का स्वागत है।
[योगदान गाइड](../../CONTRIBUTING.md) बताती है कि किस तरह की मदद कहाँ जाती है, और [रोडमैप](../ROADMAP.md) बताता है कि प्रोजेक्ट किस ओर जा रहा है।
जो काम शामिल होता है उसका श्रेय योगदानकर्ताओं के पास रहता है, और [रिपॉज़िटरी लेआउट](../../CONTRIBUTING.md#project-structure) बताता है कि क्या कहाँ है।
Codewhale को इसे इस्तेमाल करने वाले लोग कई भाषाओं में खुले में बनाते हैं।
[Discord](https://discord.gg/37gfS3ksug) पर बात करें, या WeChat पर मेंटेनर Hunter
(`hunterbown`) को जोड़ें और Whale Brothers समूह में शामिल होने के लिए कहें। सबका स्वागत है।
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Codewhale योगदानकर्ता दीवार: हर उस व्यक्ति का एक अवतार जिसका कोड, सह-लेखक commit, आगे बढ़ाए गए पुल रिक्वेस्ट या श्रेय पाई रिपोर्ट Codewhale में है, और सबसे ऊपर कुल संख्या।"></a>
[योगदानकर्ता दीवार](../CONTRIBUTORS.md) हर उस व्यक्ति को गिनती है जिसका कोड, सह-लेखक commit, आगे बढ़ाए गए पुल रिक्वेस्ट या श्रेय पाई रिपोर्ट Codewhale में है, उन लोगों समेत जिन्हें GitHub की अपनी योगदानकर्ता सूची छोड़ देती है। `scripts/contributor-wall.py` git इतिहास और GitHub से तस्वीर और सूची दोबारा बनाता है।
हर प्रतिक्रिया का स्वागत है: कोई बग, कोई विचार, या कुछ ऐसा जो दिखने या इस्तेमाल में गलत लगा। इनमें से किसी के लिए भी [issue खोलें](https://github.com/codewhale-hq/Codewhale/issues/new/choose); नई सुविधा शुरू करने के लिए भी issue सबसे अच्छी जगह है। सुधार, अनुवाद, प्रदाता और योजनाबद्ध काम के लिए पुल रिक्वेस्ट का स्वागत है। सवाल [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 या किसी भी
अन्य मॉडल प्रोवाइडर से संबद्ध नहीं है।
[योगदान देने वाले हर व्यक्ति](../CONTRIBUTORS.md) का धन्यवाद।
Codewhale `deepseek-tui` के रूप में शुरू हुआ था और अब भी उस प्रोजेक्ट का कॉन्फ़िगरेशन और सत्र पढ़ता है। इसे स्वतंत्र रूप से बनाए रखा जाता है और यह DeepSeek या किसी अन्य मॉडल प्रदाता से संबद्ध नहीं है।
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE)। अन्य ओपन सोर्स प्रोजेक्ट से अनुकूलित कोड
[थर्ड-पार्टी नोटिस](../THIRD_PARTY_NOTICES.md) में सूचीबद्ध है।
[MIT](../../LICENSE)। दूसरे ओपन सोर्स प्रोजेक्ट से लिया गया कोड तृतीय-पक्ष सूचनाओं में [शामिल स्रोतों](../../THIRD_PARTY_NOTICES.md) और [अपनाए गए डिज़ाइनों](../THIRD_PARTY_NOTICES.md) के लिए सूचीबद्ध है।
+104 -231
View File
@@ -1,292 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Agen pengodean sumber terbuka untuk terminal Anda yang bekerja dengan model apa pun.**
<h1>Model boleh milik siapa saja. Agen seharusnya milik Anda.</h1>
Berikan tugas kepada Codewhale, lalu ia membaca repositori, mengedit berkas, dan
menjalankan perintah sampai tugas selesai atau ia memerlukan masukan dari Anda.
Codewhale bekerja dengan lebih dari 40 penyedia bawaan, DeepSeek V4.1 Flash
secara default, dan dengan model yang berjalan di mesin Anda sendiri. `/receipts` mencantumkan
berkas yang diubahnya, perintah yang dijalankannya, serta panggilan web dan MCP
yang dilakukannya.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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)
[Situs web](https://codewhale.net) · [Dokumentasi](../README.md) · [Changelog](../../CHANGELOG.md) · [Berkontribusi](../../CONTRIBUTING.md)
[English](../../README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Sesi terminal Codewhale" width="760">
<sub>Build pengembangan 0.10.2 dengan model uji yang berjalan sesuai skrip, dalam Akses penuh di dalam workspace sekali pakai. Edit, tiga pengujian, dan tinjauan sub-agen benar-benar dijalankan.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — tambahan 30% penggunaan DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Lihat penawaran Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale menerima komisi rujukan dari OrcaRouter.
## Instalasi
macOS dan Linux:
Codewhale adalah agen pemrograman bersumber terbuka untuk terminal Anda, ditulis dalam Rust. Ia bekerja dengan model apa pun, dapat membagi satu tugas ke beberapa agen, dan setiap barisnya bisa Anda baca.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Installer menaruh `codewhale` dan alias pendeknya `codew`, yang checksum-nya
sudah diverifikasi, di `~/.local/bin`. Jika setelah itu shell Anda menampilkan
`command not found`, jalankan baris PATH yang dicetak installer
([detail](../INSTALL.md#put-it-on-your-path)). `codewhale update`
memperbaruinya. Perintah-perintah ini memasang rilis terbaru. Halaman ini
mengikuti `main`, jadi fitur yang ditandai dengan versi akan hadir di rilis
tersebut; [changelog](../../CHANGELOG.md) mencantumkan apa yang ditambahkan setiap
rilis.
Perintah ini memasang rilis terbaru di macOS atau Linux, dan tidak memerlukan akun. [Windows, npm, dan Cargo](#pemasangan) ada di bawah.
<details>
<summary><b>Windows, npm, Cargo, dan cara instalasi lainnya</b></summary>
[![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)
[Situs web](https://codewhale.net) · [Dokumentasi](../README.md) · [Catatan perubahan](../../CHANGELOG.md) · [Berkontribusi](../../CONTRIBUTING.md)
[English](../../README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [Tiếng Việt](README.vi.md) · [한국어](README.ko-KR.md) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.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)
<sub>Terjemahan ini adalah draf mesin yang belum ditinjau oleh penutur asli.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale di terminal setelah tugas demo. Ia melaporkan telah menambahkan flag --json ke export.py, ketiga tes lokal lulus, dan tinjauan yang didelegasikan tidak menemukan masalah. Daftar tugas di bawahnya menampilkan tiga langkah selesai, dan baris status menampilkan Full Access serta penyedia lokal website-demo.">
<sub>Build pengembangan 0.10.3, yang belum dirilis, dengan model uji berskrip, dalam Full Access di dalam ruang kerja sekali pakai. Pengeditan, tiga tes, dan tinjauan oleh sub-agen benar-benar dijalankan.</sub>
</div>
## Pemasangan
Perintah di atas menaruh `codewhale` yang sudah diverifikasi checksum dan alias pendeknya `codew` di `~/.local/bin`. Jika shell Anda lalu menampilkan `command not found`, ikuti catatan PATH yang dicetak pemasang ([detail](../INSTALL.md#put-it-on-your-path)). `codewhale update` memperbaruinya.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
Biner siap pakai tersedia untuk Linux, macOS, dan Windows di x64 dan arm64. Nix,
Homebrew di Linux, Android/Termux (pratinjau), dan unduhan manual dibahas di
[panduan instalasi](../INSTALL.md), sedangkan container di
[Docker](../DOCKER.md). Gunakan satu cara instalasi per mesin; jika tidak, dua
salinan akan ada di `PATH` dan yang muncul lebih dulu yang dipakai.
</details>
Biner siap pakai tersedia untuk Linux, macOS, dan Windows pada x64 dan arm64. Scoop, Nix, Homebrew di Linux, Android dan Termux (pratinjau), serta unduhan manual ada di [panduan pemasangan](../INSTALL.md), dan kontainer ada di [Docker](../DOCKER.md). Gunakan satu cara pemasangan per mesin; jika tidak, dua salinan akan ada di `PATH` dan yang ditemukan lebih dulu yang dipakai.
## Mulai cepat
1. Commit atau stash pekerjaan Anda, lalu jalankan `codewhale` dari root
repositori git. Secara default (**Terima suntingan**, Accept Edits), Codewhale mengedit berkas di repositori tanpa bertanya
dan bertanya sebelum setiap perintah; `Shift+Tab` berpindah antartingkat izin saat Anda ingin ia lebih sering atau lebih jarang bertanya.
2. Jalankan `/provider` (atau tekan `F3`), pilih penyedia, tempel kunci API-nya,
lalu pilih model. DeepSeek adalah penyedia default. Jika tidak punya kunci,
pilih runtime lokal. Jika belum ada penyedia yang dikonfigurasi dan Ollama
sudah menyajikan model obrolan, Codewhale memakainya secara otomatis; mulai
0.10.2, Codewhale menawarkannya saat Anda mengirim pesan pertama.
3. Ketik tugas:
1. Commit atau stash pekerjaan Anda, lalu jalankan `codewhale` dari root sebuah repositori git. Secara bawaan, ia menerapkan suntingan file di repositori tanpa bertanya, dan bertanya sebelum setiap perintah shell yang tidak hanya membaca.
2. Jalankan `/provider` (atau tekan `F3`), pilih penyedia, tempel kunci API-nya, dan pilih model. DeepSeek adalah penyedia bawaan. Pada peluncuran pertama tanpa kunci, Codewhale menanyakan penyedia saat Anda mengirim pesan pertama, dan menawarkan model lokal saat server Ollama lokal menjawab.
3. Ketik sebuah tugas:
```text
Fix the failing tests and explain what changed.
```
Perintah baca-saja langsung dijalankan. Untuk perintah shell lainnya, Codewhale
bertanya lebih dulu: `y` menjalankannya sekali, `a` mengizinkan perintah serupa
selama sisa percakapan, `n` menolaknya. `/undo` membatalkan permintaan terakhir
Anda beserta perubahan berkasnya. `/help` menampilkan daftar perintah dan tombol.
Perintah baca-saja langsung dijalankan. Untuk perintah shell lainnya, Codewhale bertanya dulu: `y` menjalankannya sekali, `a` mengizinkan perintah serupa selama sisa percakapan, dan `n` menolak. `/undo` membatalkan permintaan terakhir Anda beserta perubahan filenya, dan `/help` menampilkan daftar perintah dan tombol.
Untuk skrip dan CI, `codewhale exec` menjalankan satu tugas tanpa antarmuka.
Secara default, `--auto` memakai Akses penuh: alat berjalan tanpa bertanya,
perintah shell tidak dibatasi sandbox Codewhale, dan mode kepercayaan
mengizinkan alat berkas menulis di luar workspace. Tambahkan
`--sandbox workspace-write` untuk mempertahankan sandbox shell dan batasan
workspace bagi alat berkas, dengan mode kepercayaan dinonaktifkan:
Untuk skrip dan CI, `codewhale exec` menjalankan satu tugas tanpa antarmuka. Baca [menjalankan tanpa antarmuka](../INSTALL.md#headless-scripts-ci) sebelum memberinya alat dengan `--auto`, karena `--auto` memakai Full Access kecuali Anda menambahkan sandbox.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Apa yang dilakukannya
## Mode dan izin
Beri Codewhale sebuah tugas, dan ia membaca repositori, mengedit file, dan menjalankan perintah sampai tugas selesai atau ia butuh masukan Anda. [Catatan rilis terbaru](https://github.com/codewhale-hq/Codewhale/releases/latest) mencantumkan perubahan terbaru, dan [changelog](../../CHANGELOG.md) memuat setiap versi.
Instalasi baru dimulai dalam mode Work dengan izin Terima suntingan. Satu kenop mengganti keduanya: `Shift+Tab` berpindah bertahap Tanya → Terima suntingan → Plan → Tinjauan otomatis → Akses penuh.
### Model apa pun
| | Ganti dengan | Opsi |
| --- | --- | --- |
| Mode | posisi Plan pada `Shift+Tab`, atau `/mode` | **Plan** membaca dan mencari tetapi tidak mengubah apa pun. **Work** (semua posisi lainnya) mengedit berkas dan menjalankan perintah; mulai tujuan dengan `/goal` saat permintaan membutuhkan lebih dari satu giliran. |
| Izin | `Shift+Tab` | **Tanya** (Ask) bertanya sebelum setiap edit berkas dan setiap perintah shell yang bukan baca-saja. **Terima suntingan** (Accept Edits) menerapkan edit berkas di repositori git Anda tanpa bertanya dan tetap bertanya sebelum perintah. **Tinjauan otomatis** (Auto-Review) membiarkan aturan dan model peninjau menyetujui panggilan rutin dan menolak panggilan berisiko tinggi; beralihlah ke Tanya untuk menyetujuinya sendiri. **Akses penuh** (Full Access) tidak pernah bertanya, dan perintah bisa menjangkau apa pun di komputer ini; aturan repositori dan kebijakan terkelola tetap berlaku. |
Lebih dari 40 penyedia sudah terpasang, termasuk Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter, dan xAI. Endpoint apa pun yang kompatibel dengan OpenAI bisa dipakai, begitu juga model lokal melalui Ollama, vLLM, atau SGLang. Model bawaannya adalah `deepseek-flash` dari DeepSeek, yang kini dilayani DeepSeek V4.1 Flash ([detail](../PROVIDERS.md#deepseek-v41-flash)).
Lihat [panduan mode dan izin](../MODES.md) untuk detailnya.
`/model` mengganti model di antara giliran, dan `/model auto` memilih satu model untuk setiap giliran (`/router` mengatur caranya). `/turn inspect` menampilkan model yang dipakai sebuah giliran, biayanya, dan berapa lama prosesnya. Lihat [Penyedia](../PROVIDERS.md).
## Apa yang bisa dilakukan
### Tanda terima dan pembatalan
### Baru di 0.10.2
`/receipts`, atau `codewhale receipts --last` setelah Anda keluar, mencantumkan file yang diubah sebuah sesi, perintah yang dijalankannya, panggilan web dan MCP-nya, agen yang dimulainya, setiap persetujuan dan siapa yang memberikannya, serta apa yang gagal. `/undo` membatalkan permintaan terakhir Anda dan file yang diubahnya dalam satu langkah. `/restore` mengembalikan seluruh ruang kerja ke snapshot sebelumnya, dan karena ini menimpa suntingan sesudahnya, perintah ini memerlukan `/trust on` atau Full Access. Lihat [Tanda terima](../RECEIPTS.md).
- `/pet on` mengubah terminal Anda menjadi paus animasi yang menunjukkan apa
yang sedang dilakukan agen, sementara kotak pesan tetap aktif. 980 partikelnya
mengeja langkah saat ini dalam bahasa Inggris, Tionghoa, atau Jepang.
- `/workbar terminal` menampilkan shell yang dijalankan agen selagi shell itu
berjalan. Ketik ke salah satunya, atau tekan `Ctrl+N` untuk membuka shell Anda
sendiri (macOS dan Linux).
- `/undo` membatalkan seluruh permintaan terakhir Anda dalam satu langkah,
termasuk setiap berkas yang diubahnya, dan `/diff` berfungsi di folder tanpa
Git.
- Saat sebuah rencana sudah siap, Codewhale
bertanya apakah akan memulai Work dengan Tanya atau Tinjauan otomatis, atau
melanjutkan perencanaan.
- `/color` memberi setiap obrolan warna kotak penulisan sendiri, yang disimpan
bersama sesi.
- `web_search` dapat memakai Search API baru dari DeepSeek: atur
`[search] provider = "deepseek"` dengan kunci DeepSeek.
- Di luar Akses penuh, `curl` atau `wget` yang akan mengunggah kredensial tidak
pernah berjalan tanpa persetujuan Anda, dan perintah yang menyembunyikan
Unicode tak terlihat akan ditolak. `write` tidak lagi menimpa berkas yang belum
dibaca agen, atau berkas yang berubah setelah agen membacanya.
### Beberapa agen pada satu tugas
### Model
Lebih dari 40 penyedia sudah tersedia bawaan, termasuk Anthropic, OpenAI,
DeepSeek, Google, Mistral, Moonshot, OpenRouter, dan xAI. Endpoint apa pun yang
kompatibel dengan OpenAI juga bisa dipakai, begitu pula model lokal melalui
Ollama, vLLM, atau SGLang. Defaultnya adalah `deepseek-flash` dari DeepSeek,
yang dipindahkan DeepSeek ke DeepSeek-V4.1-Flash-1017 pada 2026-10-17; 0.10.1
menjalankannya tanpa pembaruan
([detail](../PROVIDERS.md#deepseek-v41-flash)).
`/model` mengganti model di antara giliran, dan `/model auto` memilih model
untuk setiap giliran (`/router` mengatur caranya). `/turn inspect` menampilkan
model yang dipakai sebuah giliran, biayanya, dan berapa lama prosesnya.
`codewhale auth chatgpt` memungkinkan Anda memakai paket ChatGPT sebagai ganti
kunci API (eksperimental). Lihat [Penyedia](../PROVIDERS.md).
### Receipt dan pembatalan
`/receipts`, atau `codewhale receipts --last` setelah Anda keluar, mencantumkan
berkas yang diubah, perintah yang dijalankan, panggilan web dan MCP, agen yang
dimulai, persetujuan beserta siapa yang memberikannya, dan kegagalan. `/undo` membatalkan permintaan terakhir Anda beserta berkas yang diubahnya, dalam satu langkah dan tanpa mode kepercayaan. `/restore`
mengembalikan seluruh workspace
ke snapshot sebelumnya; karena itu menimpa edit yang lebih baru, perintah ini
memerlukan `/trust on` atau Akses penuh. Lihat [Receipt](../RECEIPTS.md).
Eksekusi exec yang menyediakan alat disimpan dalam setiap format output, jadi
`codewhale receipts --last` bisa dipakai setelah `exec --auto`, termasuk dengan
`--json`. Eksekusi yang hanya menjawab dengan teks atau `--json` hanya disimpan
saat melanjutkan percakapan atau ketika pemadatan percakapan dimulai; gunakan
`--output-format stream-json` agar selalu tersimpan untuk receipt atau
`exec --continue`.
### Pekerjaan yang lebih panjang
`/goal` menetapkan sasaran yang berlanjut lintas giliran. Codewhale dapat
membagi pekerjaan ke beberapa [sub-agen](../SUBAGENTS.md), menjalankan
[armada](../FLEET.md) agen, atau mengikuti
[workflow](../WORKFLOW_AUTHORING.md) yang disimpan di repositori.
### Beralih dari agen lain
Codewhale membaca `AGENTS.md` dengan sendirinya. Berkas instruksi yang ditulis
untuk alat lain, seperti `CLAUDE.md`, `.cursorrules`, atau
`.github/copilot-instructions.md`, hanya dimuat jika Anda mengaktifkannya dengan
`project_instruction_imports = ["claude"]` (atau `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`) di config Anda; lihat
[config.example.toml](../../config.example.toml). Codewhale memberi peringatan jika
menemukan berkas seperti itu yang tidak dimuatnya.
`/import-claude` menyiapkan impor pengaturan Claude Code dan server MCP Anda
untuk Anda tinjau. `/plugin install` menerima plugin Claude Code yang berisi
skill, perintah, profil agen, dan server MCP, dan menolak plugin yang memerlukan
hook atau server LSP ([detail](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` menetapkan sasaran yang berlanjut lintas giliran. Codewhale dapat membagi pekerjaan ke [sub-agen](../SUBAGENTS.md), menjalankan [Fleet](../FLEET.md) agen dengan peran dan model masing-masing, atau mengikuti [alur kerja](../WORKFLOW_AUTHORING.md) yang disimpan di repositori.
### Ekstensi
Hubungkan [server MCP](../MCP.md), tambahkan [skill](../SKILLS.md) dan
[plugin](../PLUGINS.md), dan jalankan [hook](../HOOKS.md) pada event sesi
dan alat. Mode kode (eksperimental, aktif secara default) memungkinkan model
menulis satu program `execute_tools` yang memanggil beberapa alat MCP dan
plugin; setiap panggilan tetap tunduk pada aturan persetujuan Anda dan tetap
memiliki receipt-nya. Plugin Computer Use yang dipasang terpisah (eksperimental, hanya macOS) dapat
mengamati dan mengoperasikan aplikasi lain. Plugin ini tetap nonaktif sampai
Anda meninjau aksesnya dan mengaktifkannya
([panduan](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Hubungkan [server MCP](../MCP.md), tambahkan [skill](../SKILLS.md) dan [plugin](../PLUGINS.md), dan jalankan [hook](../HOOKS.md) pada peristiwa sesi dan alat. Mode kode (eksperimental, aktif secara bawaan) memungkinkan model menulis satu program `execute_tools` yang memanggil beberapa alat MCP dan plugin; setiap panggilan tetap mengikuti aturan persetujuan Anda dan menyimpan tanda terimanya. Plugin Computer Use yang dibundel dengan v0.10.2 (eksperimental, hanya macOS) dapat mengamati dan mengoperasikan aplikasi lain, dan tetap mati sampai Anda meninjau aksesnya dan mengaktifkannya ([panduan](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Hadir di 0.10.3: plugin ini [dirilis terpisah](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Cara menjalankannya
### Cara menjalankannya
| Perintah | Fungsinya |
| --- | --- |
| `codewhale` | Aplikasi terminal interaktif |
| `codewhale exec "…"` | Satu tugas tanpa antarmuka. Tanpa flag tambahan, ia menjawab tanpa memakai alat; `--auto` mengaktifkan alat dengan Akses penuh secara default, `--sandbox workspace-write` membatasinya, dan `--output-format stream-json` men-streaming event sebagai JSON |
| `codewhale web` | UI web lokal di `127.0.0.1` ([panduan](../WEB.md)) |
| `codewhale review --pr N` | Tinjauan yang bersifat saran untuk pull request GitHub. [Penyiapan bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) menghasilkan workflow dengan versi dipasangi pin untuk tinjauan otomatis dan `@codewhale review`, memakai kunci modelmu sendiri dan identitas App opsional |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), API HTTP lokal untuk thread, event, persetujuan, dan perubahan berkas setiap giliran |
| `codewhale exec "…"` | Satu tugas tanpa antarmuka, untuk skrip dan CI ([menjalankan tanpa antarmuka](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Klien web lokal di `127.0.0.1` ([panduan](../WEB.md)) |
| `codewhale review --pr N` | Tinjauan bersifat saran untuk pull request GitHub; [pengaturan bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) menjalankannya dengan kunci model Anda sendiri |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), API HTTP lokal untuk thread, peristiwa, persetujuan, dan perubahan file setiap giliran |
| `codewhale serve --acp` | Agent Client Protocol melalui stdio, untuk editor seperti Zed |
Aplikasi terminal, `exec`, `web`, dan Runtime API memakai satu engine yang sama
([arsitektur](../ARCHITECTURE.md)).
[Ekstensi VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
yang dipelihara komunitas terhubung ke engine itu dari sidebar
([sumber](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Aplikasi desktop native yang dibangun di atas Runtime API sedang dikembangkan;
belum ada unduhan publik.
Aplikasi terminal, `exec`, `web`, dan Runtime API memakai satu mesin yang sama ([arsitektur](../ARCHITECTURE.md)). [Ekstensi VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) yang dikelola komunitas terhubung dengannya dari bilah samping ([sumber](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Biaya dan akun
## Cara ia tetap aman
Codewhale gratis dan berlisensi MIT. Dengan kunci API sendiri, Anda membayar
langsung ke penyedia; model lokal tidak memerlukan kunci. Footer dan `/cost`
menampilkan biaya sesi jika harganya diketahui, dan harga yang tidak diketahui
ditampilkan sebagai tidak diketahui, tidak pernah sebagai gratis.
Dua sakelar menentukan seberapa banyak Codewhale boleh bertindak sendiri. Saat kolom input kosong, `Tab` mengganti mode: **Plan** membaca dan mencari tanpa mengubah apa pun, **Work** mengedit file dan menjalankan perintah, dan **Operate** punya akses yang sama dengan Work dan terus bekerja sampai tujuan terverifikasi atau ia membutuhkan Anda. `Shift+Tab` mengganti izin. **Ask**, bawaannya, menerapkan suntingan file di repositori Anda tanpa bertanya dan bertanya sebelum perintah shell yang tidak hanya membaca. **Auto-Review** membiarkan aturan dan model peninjau menyetujui panggilan rutin dan menolak yang berisiko tinggi; beralih ke Ask untuk menyetujuinya sendiri. **Full Access** tidak pernah bertanya dan mematikan sandbox Codewhale, meskipun aturan repositori dan kebijakan terkelola tetap berlaku. [Panduan v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) berisi detailnya.
Anda tidak memerlukan akun. Kunci yang Anda tambahkan dengan `/provider` tetap
tersimpan di mesin Anda.
Hadir di 0.10.3: `Shift+Tab` menjadi satu tombol putar melalui Ask, Accept Edits, Plan, Auto-Review dan Full Access, `Tab` tidak lagi mengganti mode, dan Operate dihapus. Ask akan bertanya juga sebelum setiap suntingan file, dan bawaan baru, Accept Edits, akan menerapkan suntingan di dalam repositori git dan tetap bertanya sebelum perintah. [Panduan saat ini](../MODES.md) menjelaskannya.
## Keamanan dan privasi
Di Ask dan Auto-Review, perintah berjalan di sandbox sistem operasi jika sistemnya punya: Seatbelt di macOS, dan bubblewrap di Linux jika terpasang. Windows belum punya sandbox sistem operasi, dan Full Access mematikan sandbox. Di dalam sandbox, perintah shell dan sesi terminal tidak dapat membaca penyimpanan kredensial seperti `~/.ssh`, `~/.aws`, dan file `.env`. `/preview-request` menampilkan pratinjau permintaan berikutnya dengan data sensitif disamarkan, tanpa mengirimkannya.
Dalam Tanya dan Tinjauan otomatis, perintah berjalan di sandbox OS jika sistem
menyediakannya: Seatbelt di macOS, dan bubblewrap di Linux jika terpasang.
Windows belum memiliki sandbox OS, dan Akses penuh menonaktifkan sandbox. Di
dalam sandbox, perintah shell tidak dapat membaca penyimpanan kredensial seperti
`~/.ssh`, `~/.aws`, dan berkas `.env`; mulai 0.10.2, aturan yang sama berlaku
untuk sesi terminal dan lebih banyak alat berkas. `/preview-request` menampilkan pratinjau permintaan berikutnya yang sudah
disamarkan tanpa mengirimnya.
Anda tidak memerlukan akun, dan kunci yang Anda tambahkan dengan `/provider` tetap di mesin Anda. Dengan kunci API sendiri, Anda membayar penyedia secara langsung, dan model lokal tidak memerlukan kunci. Footer dan `/cost` menampilkan biaya sebuah sesi jika harganya diketahui, dan harga yang tidak diketahui ditampilkan sebagai tidak diketahui, tidak pernah sebagai gratis.
Telemetri aktif secara default. Telemetri mengirim hitungan agregat (versi dan
platform, durasi dan hasil sesi, penyedia bawaan yang Anda pakai, hitungan fitur
dan error) bersama ID instalasi acak yang diganti setiap 90 hari, dan tidak
pernah mengirim percakapan, kode, prompt, nama model, nama berkas atau
repositori, maupun kredensial.
`codewhale config set telemetry false` menonaktifkannya. Saat dijalankan,
Codewhale juga memeriksa GitHub untuk rilis baru; atur
`CODEWHALE_NO_UPDATE_CHECK=1` untuk melewatinya. Selengkapnya di
[urutan otorisasi](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md),
dan [telemetri](../TELEMETRY.md).
Telemetri aktif secara bawaan. Ia mengirim hitungan gabungan (versi dan platform, lama dan hasil sesi, penyedia bawaan yang Anda pakai, hitungan fitur dan galat) dengan ID pemasangan acak yang berganti setiap 90 hari, dan tidak pernah mengirim percakapan, kode, prompt, nama model, nama file atau repositori, maupun kredensial. Perintah ini mematikannya:
```bash
codewhale config set telemetry false
```
Saat dimulai, Codewhale juga memeriksa GitHub untuk rilis baru; atur `CODEWHALE_NO_UPDATE_CHECK=1` untuk melewatinya. Selengkapnya di [urutan otorisasi](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md), dan [telemetri](../TELEMETRY.md).
## Ke mana arahnya
Codewhale sedang menjadi satu lingkungan yang mencakup terminal Anda, aplikasi desktop, browser, dan komputer cloud, semuanya dijalankan oleh satu mesin. Setiap bagian di bawah menyebutkan posisinya hari ini.
| Bagian | Status | Hari ini |
| --- | --- | --- |
| Aplikasi terminal | Dirilis | Instal di macOS, Linux, atau Windows dan jalankan `codewhale` di repositori mana pun. |
| Klien browser lokal | Dirilis | Jalankan `codewhale web` untuk membaca percakapan, mengirim tugas, dan menjawab persetujuan di browser Anda; klien ini menyertai terminal dan tidak memerlukan akun. |
| Banyak agen pada satu tugas | Dirilis | Sub-agen, Fleet, dan alur kerja memungkinkan beberapa agen berbagi satu tugas, masing-masing dengan perannya sendiri. |
| Aplikasi desktop | Dalam pengembangan, belum ada unduhan | Kami sedang membangun aplikasi desktop di atas mesin yang sama, dan belum ada unduhan publik. |
| Komputer cloud | Hanya undangan | Komputer cloud hanya untuk undangan, dan kami sedang membangunnya agar sebuah sesi dapat terus bekerja di mesin di cloud. |
| Satu sesi di semuanya | Sedang dibangun | Kami sedang membangun satu sesi yang ikut bersama Anda dari terminal ke desktop, browser, dan cloud, dan tetap milik Anda sepanjang jalan. |
[Peta jalan](../ROADMAP.md) menjelaskan cakupan setiap rilis dan di mana Anda bisa membantu.
## Pindah dari agen lain
Codewhale membaca `AGENTS.md` dengan sendirinya. File instruksi yang ditulis untuk alat lain, seperti `CLAUDE.md`, `.cursorrules`, atau `.github/copilot-instructions.md`, hanya dimuat jika Anda mengaktifkannya dengan `project_instruction_imports = ["claude"]` (atau `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) di konfigurasi; lihat [config.example.toml](../../config.example.toml). Codewhale memberi peringatan saat menemukan file seperti itu yang tidak dimuatnya.
`/import-claude` menyiapkan impor pengaturan Claude Code dan server MCP Anda untuk Anda tinjau. `/plugin install` menerima plugin Claude Code yang berisi skill, perintah, profil agen, dan server MCP, serta menolak plugin yang memerlukan hook atau server LSP ([detail](../CLAUDE_PLUGIN_COMPAT.md)).
## Dokumentasi
| Mulai dari sini | Referensi |
Panduan ini mengikuti cabang utama dan dapat menjelaskan perubahan yang belum ada di rilis terbaru.
| Mulai di sini | Referensi |
| --- | --- |
| [Instalasi](../INSTALL.md) | [Konfigurasi](../CONFIGURATION.md) |
| [Penyedia dan model lokal](../PROVIDERS.md) | [Arsitektur](../ARCHITECTURE.md) |
| [Mode dan izin](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Pintasan keyboard](../KEYBINDINGS.md) | [Penulisan plugin](../PLUGIN_AUTHORING.md) |
| [Tinjauan PR GitHub](../GITHUB_ACTION.md) | [Seluruh dokumentasi](../README.md) |
| [Panduan pengguna](../GUIDE.md) | [Konfigurasi](../CONFIGURATION.md) |
| [Pemasangan](../INSTALL.md) | [Arsitektur](../ARCHITECTURE.md) |
| [Penyedia dan model lokal](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Mode dan izin](../MODES.md) | [Menulis plugin](../PLUGIN_AUTHORING.md) |
| [Pintasan tombol](../KEYBINDINGS.md) | [Tanda terima](../RECEIPTS.md) |
| [Tinjauan pull request GitHub](../GITHUB_ACTION.md) | [Semua dokumentasi](../README.md) |
## Komunitas
## Berkontribusi
Codewhale menjadi seperti sekarang berkat komunitasnya, dan semua masukan disambut: bug, ide, atau sesuatu yang terlihat atau terasa janggal.
[Buka issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) untuk semua itu; issue juga tempat terbaik untuk memulai fitur baru.
Pull request disambut untuk perbaikan, terjemahan, penyedia, dan pekerjaan yang sudah direncanakan.
[Panduan kontribusi](../../CONTRIBUTING.md) menunjukkan ke mana tiap jenis bantuan sebaiknya dikirim, dan [peta jalan](../ROADMAP.md) menunjukkan arah proyek.
Kontributor tetap mendapat kredit atas pekerjaan yang digabungkan, dan [tata letak repositori](../../CONTRIBUTING.md#project-structure) menunjukkan letak tiap bagian.
Codewhale dibangun secara terbuka oleh orang-orang yang memakainya, dalam banyak bahasa.
Ikuti obrolan di [Discord](https://discord.gg/37gfS3ksug), atau tambahkan
maintainer, Hunter, di WeChat (`hunterbown`) dan minta bergabung ke grup
Whale Brothers. Semua orang disambut.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Dinding kontributor Codewhale: satu avatar untuk setiap orang yang kode, commit bersama, pull request yang dilanjutkan, atau laporan yang diberi kredit ada di Codewhale, dengan jumlah total di atas."></a>
[Dinding kontributor](../CONTRIBUTORS.md) menghitung semua orang yang kode, commit bersama, pull request yang dilanjutkan, atau laporan yang diberi kredit ada di Codewhale, termasuk orang yang terlewat oleh daftar kontributor GitHub sendiri. `scripts/contributor-wall.py` membuat ulang gambar dan daftar itu dari riwayat git dan GitHub.
Semua masukan diterima: bug, ide, atau sesuatu yang tampak atau terasa salah. [Buka issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) untuk semua itu; issue juga tempat terbaik untuk memulai fitur baru. Pull request diterima untuk perbaikan, terjemahan, penyedia, dan pekerjaan yang sudah direncanakan. Pertanyaan bisa diajukan di [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). [Panduan kontribusi](../../CONTRIBUTING.md) menunjukkan ke mana setiap jenis bantuan pergi, bagaimana pekerjaan Anda masuk dengan nama Anda, dan [di mana semuanya berada](../../CONTRIBUTING.md#project-structure).
Mengobrollah di [Discord](https://discord.gg/37gfS3ksug), atau tambahkan pengelola, Hunter, di WeChat (`hunterbown`) dan minta bergabung dengan grup Whale Brothers. Semua orang dipersilakan.
## Sejarah dan lisensi
Codewhale berawal dari `deepseek-tui` dan masih membaca konfigurasi serta sesi
proyek itu. Codewhale dipelihara secara mandiri dan tidak berafiliasi dengan
DeepSeek atau penyedia model lain mana pun. Terima kasih kepada
[semua yang telah berkontribusi](../CONTRIBUTORS.md).
Codewhale bermula sebagai `deepseek-tui` dan masih membaca konfigurasi dan sesi proyek itu. Ia dikelola secara independen dan tidak berafiliasi dengan DeepSeek atau penyedia model lain mana pun.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Kode yang diadaptasi dari proyek sumber terbuka lain dicantumkan
di [pemberitahuan pihak ketiga](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Kode yang diadaptasi dari proyek sumber terbuka lain tercantum dalam pemberitahuan pihak ketiga untuk [sumber yang disertakan](../../THIRD_PARTY_NOTICES.md) dan [desain yang diadaptasi](../THIRD_PARTY_NOTICES.md).
+101 -224
View File
@@ -1,288 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Un agente di programmazione open source per il terminale che funziona con qualsiasi modello.**
<h1>Il modello può essere di chiunque. L’agente dovrebbe essere tuo.</h1>
Dai un compito a Codewhale: legge il repository, modifica i file ed esegue
comandi finché il compito non è completato o finché non ha bisogno di un tuo
input. Funziona con più di 40 provider integrati, DeepSeek V4.1 Flash come
predefinito, e con modelli eseguiti sulla tua macchina. `/receipts` elenca i
file che ha modificato, i comandi che ha eseguito e le chiamate web e MCP che ha
fatto.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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)
[Sito web](https://codewhale.net) · [Documentazione](../README.md) · [Changelog](../../CHANGELOG.md) · [Contribuire](../../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) · [Українська](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) · [Polski](README.pl.md) · [العربية](README.ar.md) · [Català](README.ca.md)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Una sessione di terminale di Codewhale" width="760">
<sub>Una build di sviluppo della 0.10.2 con un modello di test scriptato, in Full Access dentro un’area di lavoro usa e getta. La modifica, tre test e una revisione di un sub-agente sono stati eseguiti davvero.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — 30% di utilizzo in più di DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Scopri l’offerta Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale riceve una commissione per le segnalazioni da OrcaRouter.
## Installazione
macOS e Linux:
Codewhale è un agente di programmazione open source per il tuo terminale, scritto in Rust. Funziona con qualsiasi modello, può dividere un compito tra più agenti e puoi leggerne ogni riga.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Il programma di installazione mette in `~/.local/bin` `codewhale` e il suo alias
breve `codew`, con checksum verificato. Se poi la shell risponde
`command not found`, esegui la riga PATH che l’installer stampa
([dettagli](../INSTALL.md#put-it-on-your-path)). `codewhale update` lo
aggiorna. Questi comandi installano l’ultima release. Questa pagina segue
`main`, quindi una funzione contrassegnata con una versione arriva in quella
release; il [changelog](../../CHANGELOG.md) elenca le novità di ogni release.
Questo installa l’ultima versione su macOS o Linux, e non richiede un account. [Windows, npm e Cargo](#installazione) sono più sotto.
<details>
<summary><b>Windows, npm, Cargo e altri modi per installarlo</b></summary>
[![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)
[Sito web](https://codewhale.net) · [Documentazione](../README.md) · [Registro delle modifiche](../../CHANGELOG.md) · [Contribuire](../../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) · [Українська](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) · [Polski](README.pl.md) · [العربية](README.ar.md) · [Català](README.ca.md)
<sub>Questa traduzione è una bozza automatica e non è ancora stata rivista da un madrelingua.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale in un terminale dopo un compito dimostrativo. Riferisce di aver aggiunto un’opzione --json a export.py, che tutti e 3 i test locali sono passati e che una revisione delegata non ha trovato problemi. L’elenco dei compiti sotto mostra tre passaggi completati, e la riga di stato mostra Full Access e il provider locale website-demo.">
<sub>Una build di sviluppo della 0.10.3, non ancora rilasciata, con un modello di test scriptato, in Full Access dentro un workspace usa e getta. La modifica, tre test e una revisione di un sub-agente sono stati eseguiti davvero.</sub>
</div>
## Installazione
Il comando qui sopra mette `codewhale`, verificato con checksum, e il suo alias breve `codew` in `~/.local/bin`. Se poi la shell dice `command not found`, segui la nota sul PATH che stampa l’installer ([dettagli](../INSTALL.md#put-it-on-your-path)). `codewhale update` lo aggiorna.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
I binari precompilati coprono Linux, macOS e Windows su x64 e arm64. Nix,
Homebrew su Linux, Android/Termux (anteprima) e i download manuali sono descritti
nella [guida all’installazione](../INSTALL.md), i container in
[Docker](../DOCKER.md). Usa un solo metodo di installazione per macchina;
altrimenti nel `PATH` finiscono due copie e vince quella che compare per prima.
</details>
I binari precompilati coprono Linux, macOS e Windows su x64 e arm64. Scoop, Nix, Homebrew su Linux, Android e Termux (anteprima) e i download manuali sono nella [guida all’installazione](../INSTALL.md), e i container in [Docker](../DOCKER.md). Usa un solo metodo di installazione per macchina; altrimenti due copie finiscono nel tuo `PATH` e vince la prima trovata.
## Avvio rapido
1. Fai commit o stash del tuo lavoro, poi esegui `codewhale` dalla radice di un
repository git. Per impostazione predefinita (**Accept Edits**) modifica i file nel repository senza chiedere
e chiede prima di ogni comando; `Shift+Tab` scorre il selettore dei permessi quando vuoi che chieda di più o di meno.
2. Esegui `/provider` (o premi `F3`), scegli un provider, incolla la sua chiave
API e scegli un modello. DeepSeek è il provider predefinito. Se non hai una
chiave, scegli invece un runtime locale. Se non è configurato alcun provider
e Ollama sta già servendo un modello di chat, Codewhale lo usa
automaticamente; dalla 0.10.2 te lo propone quando invii il primo messaggio.
1. Fai commit o stash del tuo lavoro, poi esegui `codewhale` dalla radice di un repository git. Per impostazione predefinita applica le modifiche ai file del repository senza chiedere e chiede prima di ogni comando shell che non sia di sola lettura.
2. Esegui `/provider` (o premi `F3`), scegli un provider, incolla la sua chiave API e scegli un modello. DeepSeek è il provider predefinito. Al primo avvio senza chiave, Codewhale chiede un provider quando invii il primo messaggio, e propone un modello locale quando risponde un server Ollama locale.
3. Scrivi un compito:
```text
Fix the failing tests and explain what changed.
```
I comandi in sola lettura vengono eseguiti subito. Per qualsiasi altro comando
di shell Codewhale chiede prima: `y` lo esegue una volta, `a` consente i comandi
simili per il resto della conversazione, `n` lo rifiuta. `/undo` annulla la tua
ultima richiesta e le relative modifiche ai file. `/help` elenca comandi e tasti.
I comandi in sola lettura partono subito. Per qualsiasi altro comando di shell Codewhale chiede prima: `y` lo esegue una volta, `a` consente comandi simili per il resto della conversazione e `n` rifiuta. `/undo` annulla la tua ultima richiesta e le sue modifiche ai file, e `/help` elenca comandi e tasti.
Per script e CI, `codewhale exec` esegue un compito senza interfaccia. Per
impostazione predefinita, `--auto` usa Full Access: gli strumenti vengono
eseguiti senza chiedere, i comandi di shell non hanno la sandbox di Codewhale
e la modalità di fiducia consente agli strumenti per i file di scrivere fuori
dall’area di lavoro. Aggiungi `--sandbox workspace-write` per mantenere la
sandbox della shell e le restrizioni degli strumenti per i file all’area di
lavoro, con la modalità di fiducia disattivata:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modalità e permessi
Una nuova installazione parte in modalità Work con il permesso Accept Edits. Un unico selettore cambia entrambi: `Shift+Tab` scorre Ask → Accept Edits → Plan → Auto-Review → Full Access.
| | Si cambia con | Opzioni |
| --- | --- | --- |
| Modalità | la tappa Plan di `Shift+Tab`, o `/mode` | **Plan** legge e cerca, ma non modifica nulla. **Work** (ogni altra tappa) modifica file ed esegue comandi; avvia un obiettivo con `/goal` quando una richiesta richiede più di un turno. |
| Permesso | `Shift+Tab` | **Ask** chiede prima di ogni modifica ai file e di ogni comando di shell che non sia in sola lettura. **Accept Edits** applica senza chiedere le modifiche ai file nel tuo repository git e continua a chiedere prima dei comandi. **Auto-Review** lascia che regole e un modello revisore approvino le chiamate di routine e rifiuta quelle ad alto rischio; passa ad Ask per approvarle tu stesso. **Full Access** non chiede mai, e i comandi possono accedere a tutto ciò che si trova su questo computer; le regole del repository e le policy gestite restano comunque valide. |
I dettagli sono nella [guida a modalità e permessi](../MODES.md).
Per script e CI, `codewhale exec` esegue un compito senza interfaccia. Leggi [esecuzioni senza interfaccia](../INSTALL.md#headless-scripts-ci) prima di dargli strumenti con `--auto`, perché `--auto` usa Full Access a meno che tu non aggiunga una sandbox.
## Cosa fa
### Novità della 0.10.2
Dai un compito a Codewhale: legge il repository, modifica file ed esegue comandi finché il compito è finito o gli serve una tua risposta. Le [note dell’ultima versione](https://github.com/codewhale-hq/Codewhale/releases/latest) elencano le novità più recenti, e il [registro delle modifiche](../../CHANGELOG.md) contiene ogni versione.
- `/pet on` trasforma il terminale in una balena animata che mostra cosa sta
facendo l’agente, mentre la casella dei messaggi resta utilizzabile. Le sue
980 particelle scrivono il passaggio corrente in inglese, cinese o giapponese.
- `/workbar terminal` mostra le shell che l’agente sta eseguendo, mentre sono in
esecuzione. Puoi scrivere in una di esse, o premere `Ctrl+N` per aprire una
shell tutta tua (macOS e Linux).
- `/undo` annulla l’intera ultima richiesta in un solo passaggio, compreso ogni
file che ha modificato, e `/diff` funziona nelle cartelle senza Git.
- Quando un piano è pronto, Codewhale chiede se avviare Work con Ask o
Auto-Review, oppure continuare a pianificare.
- `/color` dà a ogni chat un colore proprio per la casella dei messaggi, salvato
con la sessione.
- `web_search` può usare la nuova Search API di DeepSeek: imposta
`[search] provider = "deepseek"` con una chiave DeepSeek.
- Al di fuori di Full Access, un `curl` o `wget` che caricherebbe una
credenziale non viene mai eseguito senza la tua approvazione, e un comando che
nasconde Unicode invisibile viene rifiutato. `write` non sostituisce più un
file che l’agente non ha letto, o che è cambiato dopo che l’ha letto.
### Qualsiasi modello
### Modelli
Più di 40 provider sono integrati, tra cui Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter e xAI. Funziona qualsiasi endpoint compatibile con OpenAI, e anche i modelli locali tramite Ollama, vLLM o SGLang. Il modello predefinito è `deepseek-flash` di DeepSeek, che ora serve DeepSeek V4.1 Flash ([dettagli](../PROVIDERS.md#deepseek-v41-flash)).
Sono integrati più di 40 provider, tra cui Anthropic, OpenAI, DeepSeek, Google,
Mistral, Moonshot, OpenRouter e xAI. Funziona qualsiasi endpoint compatibile con
OpenAI, e anche i modelli locali tramite Ollama, vLLM o SGLang. Il predefinito è
`deepseek-flash` di DeepSeek, che DeepSeek ha spostato su
DeepSeek-V4.1-Flash-1017 il 2026-10-17; la 0.10.1 lo esegue senza aggiornamenti
([dettagli](../PROVIDERS.md#deepseek-v41-flash)).
`/model` cambia modello tra un turno e l’altro, e `/model auto` ne sceglie uno
per ogni turno (`/router` imposta come). `/turn inspect` mostra quale modello ha
usato un turno, quanto è costato e quanto è durato. `codewhale auth chatgpt` ti
permette di usare un abbonamento ChatGPT invece di una chiave API
(sperimentale). Vedi [Provider](../PROVIDERS.md).
`/model` cambia modello tra un turno e l’altro, e `/model auto` ne sceglie uno per ogni turno (`/router` stabilisce come). `/turn inspect` mostra quale modello ha usato un turno, quanto è costato e quanto è durato. Vedi [Provider](../PROVIDERS.md).
### Ricevute e annullamento
`/receipts`, oppure `codewhale receipts --last` dopo l’uscita, elenca i file
modificati, i comandi eseguiti, le chiamate web e MCP, gli agenti avviati, le
approvazioni e chi le ha date, e gli errori. `/undo` annulla la tua ultima richiesta e i file che ha modificato, in un solo passaggio e senza modalità fidata. `/restore` riporta l’intera area di lavoro a
uno snapshot precedente; poiché sovrascrive le modifiche successive, richiede
`/trust on` o Full Access. Vedi [Ricevute](../RECEIPTS.md).
`/receipts`, oppure `codewhale receipts --last` dopo l’uscita, elenca i file che una sessione ha modificato, i comandi eseguiti, le chiamate web e MCP, gli agenti avviati, ogni approvazione e chi l’ha data, e cosa è fallito. `/undo` annulla la tua ultima richiesta e i file che ha modificato in un solo passo. `/restore` riporta l’intero workspace a uno snapshot precedente e, poiché sovrascrive le modifiche successive, richiede `/trust on` o Full Access. Vedi [Ricevute](../RECEIPTS.md).
Le esecuzioni di exec che offrono strumenti vengono salvate in ogni formato di
output, quindi `codewhale receipts --last` funziona dopo `exec --auto`, anche
con `--json`. Le esecuzioni che forniscono solo una risposta in testo o con
`--json` vengono salvate solo quando si riprende una conversazione o quando
inizia la compattazione della conversazione; usa `--output-format stream-json`
per salvarle sempre per le ricevute o per `exec --continue`.
### Più agenti su un compito
### Lavori più lunghi
`/goal` imposta un obiettivo che resta valido da un turno all’altro. Codewhale
può suddividere il lavoro tra [sub-agenti](../SUBAGENTS.md), avviare una
[flotta](../FLEET.md) di agenti o seguire un
[workflow](../WORKFLOW_AUTHORING.md) versionato nel repository.
### Se arrivi da un altro agente
Codewhale legge `AGENTS.md` da solo. I file di istruzioni scritti per altri
strumenti, come `CLAUDE.md`, `.cursorrules` o
`.github/copilot-instructions.md`, vengono caricati solo se li abiliti
esplicitamente con `project_instruction_imports = ["claude"]` (oppure
`"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) nella tua
configurazione; vedi [config.example.toml](../../config.example.toml). Codewhale
avvisa quando ne trova uno che non ha caricato.
`/import-claude` prepara un’importazione delle tue impostazioni e dei tuoi
server MCP di Claude Code, che puoi poi rivedere. `/plugin install` accetta
plugin di Claude Code che contengono skill, comandi, profili di agente e server
MCP, e rifiuta i plugin che richiedono hook o server LSP
([dettagli](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` imposta un obiettivo che prosegue tra i turni. Codewhale può dividere il lavoro tra [sub-agenti](../SUBAGENTS.md), eseguire una [Fleet](../FLEET.md) di agenti con ruoli e modelli propri, oppure seguire un [workflow](../WORKFLOW_AUTHORING.md) salvato nel repository.
### Estensioni
Collega [server MCP](../MCP.md), aggiungi [skill](../SKILLS.md) e
[plugin](../PLUGINS.md) ed esegui [hook](../HOOKS.md) sugli eventi di
sessione e degli strumenti. La modalità codice (sperimentale, attiva per
impostazione predefinita) consente al modello di scrivere un unico programma
`execute_tools` che chiama più strumenti MCP e dei plugin; ogni chiamata resta
soggetta alle tue regole di approvazione e conserva la sua ricevuta. Il plugin
Computer Use installato separatamente (sperimentale, solo macOS) può osservare e usare altre
applicazioni. Resta disattivato finché non ne
controlli gli accessi e lo abiliti
([guida](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Collega [server MCP](../MCP.md), aggiungi [skill](../SKILLS.md) e [plugin](../PLUGINS.md), ed esegui [hook](../HOOKS.md) sugli eventi di sessione e degli strumenti. La modalità codice (sperimentale, attiva per impostazione predefinita) permette al modello di scrivere un programma `execute_tools` che chiama più strumenti MCP e di plugin; ogni chiamata rispetta comunque le tue regole di approvazione e conserva la sua ricevuta. Il plugin Computer Use incluso in v0.10.2 (sperimentale, solo macOS) può osservare e usare altre app, e resta spento finché non ne controlli l’accesso e lo attivi ([guida](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). In arrivo con 0.10.3: il plugin viene rilasciato [a parte](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Modi di eseguirlo
### Modi per avviarlo
| Comando | Cosa fa |
| --- | --- |
| `codewhale` | L’app interattiva nel terminale |
| `codewhale exec "…"` | Un compito senza interfaccia. Da solo risponde senza usare strumenti; `--auto` abilita gli strumenti con Full Access per impostazione predefinita, `--sandbox workspace-write` li limita, e `--output-format stream-json` trasmette gli eventi in streaming come JSON |
| `codewhale web` | Un’interfaccia web locale su `127.0.0.1` ([guida](../WEB.md)) |
| `codewhale review --pr N` | Una revisione consultiva di una pull request GitHub. La [configurazione del bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) genera un workflow con versione fissata per le revisioni automatiche e `@codewhale review`, usando la tua chiave modello e un'identità App facoltativa |
| `codewhale` | L’app interattiva da terminale |
| `codewhale exec "…"` | Un compito senza interfaccia, per script e CI ([esecuzioni senza interfaccia](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Un client web locale su `127.0.0.1` ([guida](../WEB.md)) |
| `codewhale review --pr N` | Una revisione consultiva di una pull request su GitHub; la [configurazione del bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) la esegue con la tua chiave del modello |
| `codewhale app-server --http` | La [Runtime API](../RUNTIME_API.md), un’API HTTP locale per thread, eventi, approvazioni e le modifiche ai file di ogni turno |
| `codewhale serve --acp` | L’Agent Client Protocol su stdio, per editor come Zed |
L’app nel terminale, `exec`, `web` e la Runtime API condividono un unico motore
([architettura](../ARCHITECTURE.md)). Un’[estensione VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
mantenuta dalla comunità vi si collega dalla barra laterale ([sorgente](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Un’app desktop nativa basata sulla Runtime API è in sviluppo; non ha ancora un
download pubblico.
L’app da terminale, `exec`, `web` e la Runtime API condividono un solo motore ([architettura](../ARCHITECTURE.md)). Un’[estensione per VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) mantenuta dalla comunità si collega dalla barra laterale ([sorgente](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Costi e account
## Come resta sicuro
Codewhale è gratuito e rilasciato con licenza MIT. Con la tua chiave API paghi
direttamente il provider; i modelli locali non richiedono una chiave. Il piè di
pagina e `/cost` mostrano quanto è costata una sessione quando il prezzo è
noto; un prezzo sconosciuto viene mostrato come sconosciuto, mai come gratuito.
Due interruttori dicono quanto Codewhale può fare da solo. Con l’input vuoto, `Tab` cambia modalità: **Plan** legge e cerca ma non cambia nulla, **Work** modifica file ed esegue comandi, e **Operate** ha lo stesso accesso di Work e continua finché l’obiettivo è verificato o ha bisogno di te. `Shift+Tab` cambia il permesso. **Ask**, il predefinito, applica le modifiche ai file del tuo repository senza chiedere e chiede prima dei comandi shell che non sono di sola lettura. **Auto-Review** lascia che regole e un modello revisore approvino le chiamate di routine e rifiuta quelle ad alto rischio; passa ad Ask per approvarle tu. **Full Access** non chiede mai e disattiva la sandbox di Codewhale, anche se le regole del repository e la policy gestita restano valide. La [guida di v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) ha i dettagli.
Non ti serve un account. Le chiavi che aggiungi con `/provider` restano sulla
tua macchina.
In arrivo con 0.10.3: `Shift+Tab` diventa un’unica manopola che passa per Ask, Accept Edits, Plan, Auto-Review e Full Access, `Tab` non cambia più modalità e Operate viene ritirato. Ask chiederà anche prima di ogni modifica ai file, e il nuovo predefinito, Accept Edits, applicherà le modifiche dentro il repository git continuando a chiedere prima dei comandi. La [guida attuale](../MODES.md) lo descrive.
## Sicurezza e privacy
In Ask e Auto-Review i comandi girano in una sandbox del sistema operativo, dove il sistema ne ha una: Seatbelt su macOS e bubblewrap su Linux quando è installato. Windows non ha ancora una sandbox del sistema operativo, e Full Access disattiva la sandbox. Dentro la sandbox, i comandi di shell e le sessioni di terminale non possono leggere archivi di credenziali come `~/.ssh`, `~/.aws` e i file `.env`. `/preview-request` mostra un’anteprima oscurata della prossima richiesta senza inviarla.
In Ask e Auto-Review i comandi vengono eseguiti in una sandbox del sistema
operativo, dove il sistema ne ha una: Seatbelt su macOS e bubblewrap su Linux
quando è installato. Windows non ha ancora una sandbox del sistema operativo, e
Full Access disattiva la sandbox. Dentro la sandbox, i comandi di shell non
possono leggere gli archivi di credenziali come `~/.ssh`, `~/.aws` e i file
`.env`; dalla 0.10.2 la stessa regola vale anche per le sessioni di terminale e
per altri strumenti sui file. `/preview-request` mostra un’anteprima della
richiesta successiva con i dati oscurati, senza inviarla.
Non ti serve un account, e le chiavi che aggiungi con `/provider` restano sulla tua macchina. Con la tua chiave API paghi direttamente il provider, e i modelli locali non richiedono chiavi. Il piè di pagina e `/cost` mostrano quanto è costata una sessione quando il prezzo è noto, e un prezzo sconosciuto appare come sconosciuto, mai come gratuito.
La telemetria è attiva per impostazione predefinita. Invia conteggi aggregati
(versione e piattaforma, durata ed esito della sessione, quali provider
integrati hai usato, conteggi di funzioni ed errori) con un ID di installazione
casuale che cambia ogni 90 giorni, e non invia mai conversazioni, codice,
prompt, nomi di modelli, nomi di file o di repository, né credenziali. `codewhale config set telemetry false` la disattiva. All’avvio
Codewhale controlla anche su GitHub se c’è una nuova release; imposta
`CODEWHALE_NO_UPDATE_CHECK=1` per saltare questo controllo. Altri dettagli in
[ordine di autorizzazione](../AUTHORIZATION_ORDER.md),
[sandbox](../SANDBOX.md) e [telemetria](../TELEMETRY.md).
La telemetria è attiva per impostazione predefinita. Invia conteggi aggregati (versione e piattaforma, durata ed esito della sessione, quali provider integrati hai usato, conteggi di funzioni ed errori) con un ID di installazione casuale che cambia ogni 90 giorni, e mai conversazioni, codice, prompt, nomi di modelli, nomi di file o repository, né credenziali. Questo comando la disattiva:
```bash
codewhale config set telemetry false
```
All’avvio Codewhale controlla anche su GitHub se c’è una nuova versione; imposta `CODEWHALE_NO_UPDATE_CHECK=1` per saltare il controllo. Altro in [ordine di autorizzazione](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) e [telemetria](../TELEMETRY.md).
## Dove sta andando
Codewhale sta diventando un unico ambiente che copre il tuo terminale, un’app desktop, il browser e i computer nel cloud, tutto guidato da un solo motore. Ogni parte qui sotto dice a che punto si trova oggi.
| Parte | Stato | Oggi |
| --- | --- | --- |
| App da terminale | Pubblicato | Installala su macOS, Linux o Windows ed esegui `codewhale` in qualsiasi repository. |
| Client browser locale | Pubblicato | Esegui `codewhale web` per leggere la conversazione, inviare un compito e rispondere alle approvazioni nel tuo browser; arriva con il terminale e non richiede un account. |
| Molti agenti su un compito | Pubblicato | Subagenti, Fleet e workflow permettono a più agenti di condividere un compito, ciascuno con il proprio ruolo. |
| App desktop | In sviluppo, nessun download | Stiamo costruendo un’app desktop sullo stesso motore, e non ha ancora un download pubblico. |
| Computer nel cloud | Solo su invito | I computer nel cloud sono solo su invito, e li stiamo costruendo perché una sessione possa continuare a lavorare su una macchina nel cloud. |
| Una sessione attraverso tutti | In costruzione | Stiamo costruendo una sessione che ti accompagna dal terminale al desktop, al browser e al cloud, e resta tua per tutto il percorso. |
La [roadmap](../ROADMAP.md) dice cosa copre ogni versione e dove puoi dare una mano.
## Se arrivi da un altro agente
Codewhale legge `AGENTS.md` da solo. I file di istruzioni scritti per altri strumenti, come `CLAUDE.md`, `.cursorrules` o `.github/copilot-instructions.md`, vengono caricati solo se li attivi con `project_instruction_imports = ["claude"]` (oppure `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) nella tua configurazione; vedi [config.example.toml](../../config.example.toml). Codewhale ti avvisa quando ne trova uno che non ha caricato.
`/import-claude` prepara un’importazione delle tue impostazioni di Claude Code e dei server MCP da farti rivedere. `/plugin install` accetta plugin di Claude Code che contengono skill, comandi, profili di agente e server MCP, e rifiuta i plugin che richiedono hook o server LSP ([dettagli](../CLAUDE_PLUGIN_COMPAT.md)).
## Documentazione
| Per iniziare | Per approfondire |
Queste guide seguono il ramo principale e possono descrivere modifiche non ancora presenti nell’ultima versione.
| Inizia da qui | Riferimento |
| --- | --- |
| [Installazione](../INSTALL.md) | [Configurazione](../CONFIGURATION.md) |
| [Provider e modelli locali](../PROVIDERS.md) | [Architettura](../ARCHITECTURE.md) |
| [Modalità e permessi](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Scorciatoie da tastiera](../KEYBINDINGS.md) | [Creare plugin](../PLUGIN_AUTHORING.md) |
| [Revisione PR su GitHub](../GITHUB_ACTION.md) | [Tutta la documentazione](../README.md) |
| [Guida per l’utente](../GUIDE.md) | [Configurazione](../CONFIGURATION.md) |
| [Installazione](../INSTALL.md) | [Architettura](../ARCHITECTURE.md) |
| [Provider e modelli locali](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modalità e permessi](../MODES.md) | [Scrivere plugin](../PLUGIN_AUTHORING.md) |
| [Scorciatoie da tastiera](../KEYBINDINGS.md) | [Ricevute](../RECEIPTS.md) |
| [Revisione delle pull request su GitHub](../GITHUB_ACTION.md) | [Tutta la documentazione](../README.md) |
## Comunità
## Contribuire
Codewhale è quello che è grazie alla sua comunità, e ogni feedback è benvenuto: un bug, un’idea o qualcosa che è sembrato strano da vedere o da usare.
[Apri una issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) per ognuno di questi casi; una issue è anche il posto migliore per iniziare una nuova funzionalità.
Le pull request sono benvenute per correzioni, traduzioni, provider e lavoro già pianificato.
La [guida per contribuire](../../CONTRIBUTING.md) indica dove va ogni tipo di aiuto, e la [roadmap](../ROADMAP.md) indica dove sta andando il progetto.
Chi contribuisce mantiene il credito per il lavoro integrato, e la [struttura del repository](../../CONTRIBUTING.md#project-structure) mostra dove si trova ogni cosa.
Codewhale è costruito alla luce del sole da chi lo usa, in molte lingue.
Scrivici su [Discord](https://discord.gg/37gfS3ksug), oppure aggiungi il
maintainer, Hunter, su WeChat (`hunterbown`) e chiedi di entrare nel gruppo
Whale Brothers. Chiunque è benvenuto.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Il muro dei contributori di Codewhale: un avatar per ogni persona il cui codice, commit in coautoria, pull request riprese o segnalazioni accreditate sono in Codewhale, con il totale in alto."></a>
Il [muro dei contributori](../CONTRIBUTORS.md) conta tutte le persone il cui codice, commit in coautoria, pull request riprese o segnalazioni accreditate sono in Codewhale, comprese quelle che l’elenco dei contributori di GitHub non mostra. `scripts/contributor-wall.py` rigenera immagine ed elenco dalla cronologia git e da GitHub.
Ogni riscontro è benvenuto: un bug, un’idea o qualcosa che sembrava o dava una sensazione sbagliata. [Apri una issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) per ognuno di questi; una issue è anche il posto migliore per avviare una nuova funzione. Le pull request sono benvenute per correzioni, traduzioni, provider e lavoro pianificato. Le domande vanno nelle [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). La [guida per contribuire](../../CONTRIBUTING.md) mostra dove va ogni tipo di aiuto, come il tuo lavoro entra con il tuo nome e [dove si trova ogni cosa](../../CONTRIBUTING.md#project-structure).
Chatta su [Discord](https://discord.gg/37gfS3ksug), oppure aggiungi il maintainer, Hunter, su WeChat (`hunterbown`) e chiedi di entrare nel gruppo Whale Brothers. Tutti sono benvenuti.
## Storia e licenza
Codewhale è nato come `deepseek-tui` e legge ancora la configurazione e le
sessioni di quel progetto. È mantenuto in modo indipendente e non è affiliato a
DeepSeek né ad alcun altro fornitore di modelli. Grazie a
[tutti coloro che hanno contribuito](../CONTRIBUTORS.md).
Codewhale è nato come `deepseek-tui` e legge ancora la configurazione e le sessioni di quel progetto. È mantenuto in modo indipendente e non è affiliato a DeepSeek né ad altri provider di modelli.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Il codice adattato da altri progetti open source è elencato
negli [avvisi di terze parti](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Il codice adattato da altri progetti open source è elencato negli avvisi di terze parti per le [sorgenti incluse](../../THIRD_PARTY_NOTICES.md) e i [progetti adattati](../THIRD_PARTY_NOTICES.md).
+96 -175
View File
@@ -1,20 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**どのモデルでも使える、ターミナル向けのオープンソースのコーディングエージェント。**
<h1>モデルは誰のものでもかまいません。エージェントはあなたのものであるべきです。</h1>
Codewhale にタスクを渡すと、タスクが完了するか、あなたの入力が必要になるまで、リポジトリを読み、ファイルを編集し、コマンドを実行します。
組み込みの 40 を超えるプロバイダー(既定は DeepSeek V4.1 Flash)に加え、自分のマシンで動かすモデルでも使えます。
`/receipts` は、変更したファイル、実行したコマンド、行った Web と MCP の呼び出しを一覧表示します。
Codewhale は、ターミナルで使うオープンソースのコーディングエージェントで、Rust で書かれています。どんなモデルでも動き、1 つのタスクを複数のエージェントに分担させられます。そのコードは 1 行残らず読めます。
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```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)
@@ -22,223 +25,141 @@ Codewhale にタスクを渡すと、タスクが完了するか、あなたの
[English](../../README.md) · [简体中文](README.zh-CN.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) · [Українська](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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Codewhale のターミナルセッション" width="760">
<sub>この翻訳は機械翻訳による下書きで、ネイティブによるレビューはまだありません。</sub>
<sub>スクリプト化したテストモデルを使う 0.10.2 の開発ビルドを、使い捨てのワークスペース内でフルアクセスにして実行した画面です。編集、3 つのテスト、サブエージェントによるレビューは実際に実行されています。</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="デモタスクを終えたターミナルの Codewhale。export.py に --json フラグを追加し、ローカルテスト 3 件がすべて通り、委任したレビューで問題が見つからなかったと報告しています。下のタスク一覧には完了した 3 つのステップが並び、ステータス行には Full Access とローカルの website-demo プロバイダーが表示されています。">
<sub>スクリプト化したテストモデルを使う 0.10.3(未リリース)の開発ビルドを、使い捨てのワークスペースで Full Access で動かしたものです。編集、3 件のテスト、サブエージェントによるレビューは実際に実行されました。</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — DeepSeek v4.1 Flash の利用量が 30% 増加" width="760">
</a>
</p>
[Codewhale × OrcaRouter の特典を見る](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale は OrcaRouter から紹介料を受け取ります。
## インストール
macOS と Linux:
上のコマンドは、チェックサムで検証した `codewhale` と短い別名 `codew` を `~/.local/bin` に置きます。その後シェルが `command not found` と表示したら、インストーラーが表示する PATH の案内に従ってください([詳細](../INSTALL.md#put-it-on-your-path))。`codewhale update` でアップグレードできます。
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
インストーラーは、チェックサム検証済みの `codewhale` と短縮エイリアス `codew` を `~/.local/bin` に配置します。
その後シェルが `command not found` と表示する場合は、インストーラーが出力する PATH 用の行を実行してください([詳細](../INSTALL.md#put-it-on-your-path))。
アップグレードは `codewhale update` で行えます。
これらのコマンドは最新のリリースをインストールします。
このページは `main` に合わせて更新されるため、バージョンが記された機能はそのリリースで提供されます。各リリースで追加される内容は[変更履歴](../../CHANGELOG.md)に記載しています。
<details>
<summary><b>Windows、npm、Cargo、その他のインストール方法</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
ビルド済みバイナリは、x64 と arm64 の Linux、macOS、Windows に対応しています。
Nix、Linux 上の Homebrew、Android/Termux(プレビュー)、手動ダウンロードについては[インストールガイド](../INSTALL.md)を、コンテナについては [Docker](../DOCKER.md) を参照してください。
インストール方法は 1 台のマシンにつき 1 つにしてください。
そうしないと `PATH` 上に 2 つのコピーができ、先に見つかった方が使われます。
</details>
ビルド済みバイナリは Linux、macOS、Windows の x64 と arm64 に対応しています。Scoop、Nix、Linux の Homebrew、Android と Termux(プレビュー)、手動ダウンロードは[インストールガイド](../INSTALL.md)に、コンテナーは [Docker](../DOCKER.md) にあります。インストール方法は 1 台につき 1 つにしてください。そうしないと `PATH` に 2 つのコピーが入り、先にある方が使われます。
## クイックスタート
1. 作業中の変更をコミットまたは stash してから、git リポジトリのルートで `codewhale` を実行します。
既定(**編集を承認**、Accept Edits)では、リポジトリ内のファイル編集を確認なしで適用し、コマンド実行の前に確認します。確認を増やしたり減らしたりしたいときは、`Shift+Tab` で権限を 1 段ずつ切り替えます。
2. `/provider` を実行(または `F3` を押す)し、プロバイダーを選んで API キーを貼り付け、モデルを選びます。
既定のプロバイダーは DeepSeek です。
キーがない場合は、代わりにローカルランタイムを選びます。
プロバイダーが未設定で、Ollama がすでにチャットモデルを提供している場合、Codewhale は自動的にそれを使います。
0.10.2 からは、最初のメッセージを送信したときにそれを使うよう提案します。
3. タスクを入力します。
1. 作業をコミットまたはスタッシュしてから、git リポジトリのルートで `codewhale` を実行します。既定では、リポジトリ内のファイル編集は確認なしで適用し、読み取り専用でないシェルコマンドは実行前に毎回確認します。
2. `/provider` を実行(または `F3` を押す)し、プロバイダーを選んで API キーを貼り付け、モデルを選びます。既定のプロバイダーは DeepSeek です。キーがない状態で初めて起動すると、最初のメッセージを送ったときにプロバイダーを尋ね、ローカルの Ollama サーバーが応答すればローカルモデルを提案します。
3. タスクを入力します:
```text
Fix the failing tests and explain what changed.
```
読み取り専用のコマンドはすぐに実行されます。
それ以外のシェルコマンドは、Codewhale が先に確認します。
`y` で 1 回だけ実行、`a` でこの会話の残りの間は同様のコマンドを許可、`n` で拒否します。
`/undo` は直前のリクエストとそのファイル変更を元に戻します。
`/help` でコマンドとキーの一覧を表示します。
読み取り専用のコマンドはすぐに実行されます。それ以外のシェルコマンドは先に確認されます。`y` で今回だけ実行、`a` でこの会話の間は同じようなコマンドを許可、`n` で拒否です。`/undo` は直前のリクエストとそのファイル変更を取り消し、`/help` はコマンドとキーを一覧表示します。
スクリプトや CI では、`codewhale exec` がインターフェースなしで 1 つのタスクを実行します。
既定では、`--auto` はフルアクセスを使います。ツールは確認なしで実行され、シェルコマンドには Codewhale のサンドボックスが適用されず、信頼モードによりファイルツールはワークスペースの外にも書き込めます。
`--sandbox workspace-write` を追加すると、信頼モードをオフにし、シェルのサンドボックスとファイルツールのワークスペース制限を維持できます。
スクリプトや CI では、`codewhale exec` がインターフェースなしで 1 つのタスクを実行します。`--auto` でツールを渡す前に[ヘッドレス実行](../INSTALL.md#headless-scripts-ci)を読んでください。サンドボックスを指定しない限り、`--auto` は Full Access を使うからです。
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## できること
## モードと権限
Codewhale にタスクを渡すと、タスクが終わるか入力が必要になるまで、リポジトリを読み、ファイルを編集し、コマンドを実行します。[最新リリースのリリースノート](https://github.com/codewhale-hq/Codewhale/releases/latest)に最新の変更があり、[変更履歴](../../CHANGELOG.md)には全バージョンが載っています。
新規インストール直後は、Work モード、権限は「編集を承認」の状態で始まります。1 つのダイヤルで両方を切り替えます。`Shift+Tab` で 確認 → 編集を承認 → Plan → 自動レビュー → フルアクセス の順に切り替わります。
### どんなモデルでも
| | 切り替え方法 | 選択肢 |
| --- | --- | --- |
| モード | `Shift+Tab` の Plan の位置、または `/mode` | **Plan** は読み取りと検索を行いますが、何も変更しません。**Work**(それ以外のすべての位置)はファイルを編集し、コマンドを実行します。リクエストに複数のターンが必要な場合は、`/goal` で目標を開始します。 |
| 権限 | `Shift+Tab` | **確認**(Ask)では、すべてのファイル編集と、読み取り専用ではないすべてのシェルコマンドの前に確認が入ります。**編集を承認**(Accept Edits)では、git リポジトリ内のファイル編集は確認なしで適用され、コマンドの前には引き続き確認が入ります。**自動レビュー**(Auto-Review)では、ルールとレビュー担当のモデルが定型的な呼び出しを承認し、高リスクの呼び出しは拒否します。それらを自分で承認するには「確認」に切り替えてください。**フルアクセス**(Full Access)は一切確認せず、コマンドはこのコンピューター上のあらゆるものにアクセスできます。リポジトリのルールと管理ポリシーは引き続き適用されます。 |
Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、OpenRouter、xAI など 40 以上のプロバイダーを内蔵しています。OpenAI 互換のエンドポイントならどれでも使え、Ollama、vLLM、SGLang を通したローカルモデルも使えます。既定のモデルは DeepSeek の `deepseek-flash` で、現在は DeepSeek V4.1 Flash が応答します([詳細](../PROVIDERS.md#deepseek-v41-flash))。
詳しくは[モードと権限のガイド](../MODES.md)を参照してください。
## 主な機能
### 0.10.2 の新機能
- `/pet on` は、ターミナルをアニメーションのクジラに変え、エージェントが何をしているかを見せます。その間もメッセージ入力欄はそのまま使えます。
980 個の粒子が、現在のステップを英語、中国語、日本語のいずれかで描き出します。
- `/workbar terminal` は、エージェントが実行中のシェルをリアルタイムで表示します。
そこに入力することも、`Ctrl+N` で自分用のシェルを開くこともできます(macOS と Linux)。
- `/undo` は、直前のリクエスト全体を、変更したすべてのファイルを含めて 1 回で元に戻します。
また、`/diff` は Git のないフォルダーでも使えます。
- 計画の準備ができたら、Codewhale は「確認」と「自動レビュー」のどちらで Work を始めるか、それとも計画を続けるかを尋ねます。
- `/color` は、チャットごとに入力欄の色を設定し、セッションとともに保存します。
- `web_search` で DeepSeek の新しい Search API を使えます。
DeepSeek のキーを用意して `[search] provider = "deepseek"` を設定してください。
- フルアクセス以外では、認証情報をアップロードしてしまう `curl` や `wget` は承認なしには実行されず、不可視の Unicode 文字を隠したコマンドは拒否されます。
`write` は、エージェントがまだ読んでいないファイルや、読んだ後に変更されたファイルを置き換えなくなりました。
### モデル
Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、OpenRouter、xAI など、40 を超えるプロバイダーを組み込んでいます。
OpenAI 互換のエンドポイントであればどれでも使え、Ollama、vLLM、SGLang 経由のローカルモデルも使えます。
既定は DeepSeek の `deepseek-flash` です。
DeepSeek は 2026-10-17 にこれを DeepSeek-V4.1-Flash-1017 に切り替えましたが、0.10.1 はアップデートなしで動作します([詳細](../PROVIDERS.md#deepseek-v41-flash))。
`/model` でターンの合間にモデルを切り替えられ、`/model auto` ではターンごとにモデルが選ばれます(選び方は `/router` で設定します)。
`/turn inspect` は、あるターンで使われたモデル、費用、所要時間を表示します。
`codewhale auth chatgpt` を使うと、API キーの代わりに ChatGPT のプランを利用できます(実験的)。
[プロバイダー](../PROVIDERS.md)を参照してください。
`/model` はターンの合間にモデルを切り替え、`/model auto` はターンごとにモデルを選びます(選び方は `/router` で設定)。`/turn inspect` は、あるターンがどのモデルを使い、いくらかかり、どれだけ時間がかかったかを表示します。[プロバイダー](../PROVIDERS.md)を参照してください。
### レシートと取り消し
`/receipts`(終了後は `codewhale receipts --last`)は、変更されたファイル、実行されたコマンド、Web と MCP の呼び出し、起動されたエージェント、承認とその承認者、失敗を一覧表示します。
`/undo` は直前のリクエストと変更されたファイルを、信頼モードなしで一度に元に戻します。
`/restore` はワークスペース全体を以前のスナップショットまで巻き戻します。
それ以降の編集を上書きするため、`/trust on` またはフルアクセスが必要です。
[レシート](../RECEIPTS.md)を参照してください。
`/receipts`(終了後は `codewhale receipts --last`)は、セッションが変更したファイル、実行したコマンド、ウェブと MCP の呼び出し、起動したエージェント、各承認とその承認者、失敗した操作を一覧にします。`/undo` は直前のリクエストと変更したファイルを 1 回で取り消します。`/restore` はワークスペース全体を以前のスナップショットに戻します。後の編集を上書きするため、`/trust on` か Full Access が必要です。[レシート](../RECEIPTS.md)を参照してください。
ツールを利用できる exec の実行は、どの出力形式でも保存されるため、`--json` を含む `exec --auto` の実行後に `codewhale receipts --last` を使えます。
回答のみを返すテキスト出力や `--json` の実行は、再開時か会話の圧縮が始まるときにだけ保存されます。
レシートや `exec --continue` のために常に保存するには、`--output-format stream-json` を使ってください。
### 1 つのタスクに複数のエージェント
### 長い作業
`/goal` は、ターンをまたいで持続する目標を設定します。
Codewhale は作業を[サブエージェント](../SUBAGENTS.md)に分担させたり、複数のエージェントを [Fleet](../FLEET.md) として動かしたり、リポジトリにコミットされた[ワークフロー](../WORKFLOW_AUTHORING.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` は、スキル、コマンド、エージェントプロファイル、MCP サーバーを含む Claude Code プラグインを受け付け、フックや LSP サーバーを必要とするプラグインは拒否します([詳細](../CLAUDE_PLUGIN_COMPAT.md))。
`/goal` はターンをまたいで続く目標を設定します。Codewhale は作業を[サブエージェント](../SUBAGENTS.md)に分け、それぞれの役割とモデルを持つエージェントの [Fleet](../FLEET.md) を動かし、リポジトリにコミットされた[ワークフロー](../WORKFLOW_AUTHORING.md)に従うこともできます。
### 拡張
[MCP サーバー](../MCP.md)を接続し、[スキル](../SKILLS.md)や[プラグイン](../PLUGINS.md)を追加し、セッションやツールのイベントで[フック](../HOOKS.md)を実行できます。
コードモード(実験的、既定で有効)では、モデルが複数の MCP ツールやプラグインツールを呼び出す 1 つの `execute_tools` プログラムを書けます。
個々の呼び出しは引き続き承認ルールに従い、それぞれのレシートも残ります。
個別にインストールする Computer Use プラグイン(実験的、macOS のみ)は、他のアプリを観察・操作できます。
アクセス範囲を確認して有効にするまではオフのままです([ガイド](https://github.com/codewhale-hq/codewhale-cu-plugin))。
[MCP サーバー](../MCP.md)を接続し、[スキル](../SKILLS.md)と[プラグイン](../PLUGINS.md)を追加し、セッションやツールのイベントで[フック](../HOOKS.md)を実行できます。コードモード(実験的、既定で有効)では、モデルが複数の MCP ツールやプラグインツールを呼び出す `execute_tools` プログラムを 1 つ書けます。各呼び出しはあなたの承認ルールに従い、レシートも残ります。v0.10.2 に同梱の Computer Use プラグイン(実験的、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 "…"` | インターフェースなしで 1 つのタスクを実行します。オプションなしではツールを使わずに回答し、`--auto` は既定でフルアクセスでツールを有効にし、`--sandbox workspace-write` はそれらを制限し、`--output-format stream-json` でイベントを JSON としてストリーミングします |
| `codewhale web` | `127.0.0.1` で動作するローカル Web UI([ガイド](../WEB.md)) |
| `codewhale review --pr N` | GitHub のプルリクエストに対する参考としてのレビュー。[GitHub ボット設定](../GITHUB_ACTION.md#set-up-your-own-bot) は、自動レビューと `@codewhale review` のためのバージョンを固定したワークフローを生成し、自分のモデルキーと任意の App ID を使います |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md)。スレッド、イベント、承認、各ターンのファイル変更のためのローカル HTTP API |
| `codewhale serve --acp` | stdio 経由の Agent Client Protocol。Zed などのエディター向け |
| `codewhale exec "…"` | インターフェースなしで 1 つのタスクを実行(スクリプトや CI 向け、[ヘッドレス実行](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | `127.0.0.1` で動くローカルのウェブクライアント([ガイド](../WEB.md)) |
| `codewhale review --pr N` | GitHub のプルリクエストへの助言的なレビュー。[GitHub ボットの設定](../GITHUB_ACTION.md#set-up-your-own-bot)を使うと、あなた自身のモデルキーで動かせます |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md)。スレッド、イベント、承認、各ターンのファイル変更を扱うローカル HTTP API |
| `codewhale serve --acp` | stdio 上の Agent Client Protocol。Zed などのエディター向け |
ターミナルアプリ、`exec`、`web`、Runtime API は 1 つのエンジンを共有しています([アーキテクチャ](../ARCHITECTURE.md))。
コミュニティが保守している [VS Code 拡張機能](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)は、サイドバーからこのエンジンに接続します([ソース](https://github.com/HengQuWorld/CodeWhale-VSCode))。
Runtime API の上に構築したネイティブのデスクトップアプリを開発中です。
まだ公開ダウンロードはありません。
ターミナルアプリ、`exec`、`web`、Runtime API は 1 つのエンジンを共有しています([アーキテクチャ](../ARCHITECTURE.md))。コミュニティが保守する [VS Code 拡張機能](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)はサイドバーから接続します([ソース](https://github.com/HengQuWorld/CodeWhale-VSCode))。
## 料金とアカウント
## 安全を保つしくみ
Codewhale は無料で、MIT ライセンスです。
自分の API キーを使う場合は、プロバイダーに直接支払います。
ローカルモデルにキーは不要です。
価格がわかっている場合、フッターと `/cost` にセッションの費用が表示されます。
価格が不明な場合は「不明」と表示され、無料として表示されることはありません。
2 つの切り替えで、Codewhale が確認なしにどこまで行うかが決まります。入力欄が空のとき `Tab` はモードを切り替えます。**Plan** は読み取りと検索だけで何も変更せず、**Work** はファイルを編集しコマンドを実行し、**Operate** は Work と同じ権限で、目標が検証されるかあなたの入力が必要になるまで作業を続けます。`Shift+Tab` は権限を切り替えます。既定の **Ask** はリポジトリ内のファイル編集を確認なしで適用し、読み取り専用でないシェルコマンドの前に確認します。**Auto-Review** はルールとレビュー用モデルに日常的な呼び出しを承認させ、高リスクなものは拒否します。それらを自分で承認するには Ask に切り替えます。**Full Access** は一切確認せず Codewhale のサンドボックスを無効にしますが、リポジトリのルールと管理ポリシーは引き続き適用されます。詳しくは [v0.10.2 のガイド](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md)をご覧ください。
アカウントは必須ではありません。
`/provider` で追加したキーは、あなたのマシン上にとどまります。
0.10.3 で予定:`Shift+Tab` は Ask、Accept Edits、Plan、Auto-Review、Full Access を順に切り替える 1 つのダイヤルになり、`Tab` はモードを切り替えなくなり、Operate は廃止されます。Ask はファイル編集の前にも毎回確認するようになり、新しい既定の Accept Edits は git リポジトリ内の編集を適用し、コマンドの前には引き続き確認します。[現在のガイド](../MODES.md)で説明しています。
## 安全性とプライバシー
Ask と Auto-Review では、システムに OS のサンドボックスがあればその中でコマンドを実行します。macOS では Seatbelt、Linux では bubblewrap がインストールされていればそれを使います。Windows にはまだ OS のサンドボックスがなく、Full Access ではサンドボックスがオフになります。サンドボックス内では、シェルコマンドとターミナルセッションは `~/.ssh`、`~/.aws`、`.env` ファイルなどの資格情報ストアを読めません。`/preview-request` は次のリクエストを送らずに、伏せ字にしたプレビューを表示します。
「確認」と「自動レビュー」では、システムに OS のサンドボックスがあれば、コマンドはその中で実行されます。
macOS では Seatbelt、Linux では bubblewrap がインストールされていればそれを使います。
Windows にはまだ OS のサンドボックスがなく、フルアクセスではサンドボックスが無効になります。
サンドボックス内では、シェルコマンドは `~/.ssh`、`~/.aws`、`.env` ファイルなどの認証情報の保存場所を読み取れません。
0.10.2 からは、同じルールがターミナルセッションとより多くのファイルツールにも適用されます。
`/preview-request` は、次のリクエストを送信せずに、機密情報を伏せたプレビューを表示します。
アカウントは不要で、`/provider` で追加したキーはあなたのマシンに残ります。自分の API キーを使うと料金はプロバイダーに直接支払い、ローカルモデルにはキーが要りません。料金がわかる場合はフッターと `/cost` にセッションの費用が表示され、不明な料金は不明と表示され、無料とは表示されません。
テレメトリは既定で有効です。
送信するのは集計値(バージョンとプラットフォーム、セッションの長さと結果、使用した組み込みプロバイダー、機能とエラーの回数)と、90 日ごとに切り替わるランダムなインストール ID で、会話、コード、プロンプト、モデル名、ファイル名やリポジトリ名、認証情報は決して含みません。
`codewhale config set telemetry false` で無効にできます。
また、Codewhale は起動時に GitHub で新しいリリースを確認します。
これを省くには `CODEWHALE_NO_UPDATE_CHECK=1` を設定してください。
詳しくは[認可の順序](../AUTHORIZATION_ORDER.md)、[サンドボックス](../SANDBOX.md)、[テレメトリ](../TELEMETRY.md)を参照してください。
テレメトリーは既定でオンです。集計した数値(バージョンとプラットフォーム、セッションの長さと結果、使った内蔵プロバイダー、機能とエラーの回数)を、90 日ごとに変わるランダムなインストール ID とともに送信し、会話、コード、プロンプト、モデル名、ファイル名やリポジトリ名、資格情報は決して送りません。次のコマンドでオフにできます:
```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` を実行すると、ブラウザーで会話を読み、タスクを送り、承認に応答できます。ターミナルに付属し、アカウントは不要です。 |
| 1 つのタスクに多数のエージェント | リリース済み | サブエージェント、Fleet、ワークフローにより、複数のエージェントがそれぞれの役割で 1 つのタスクを分担できます。 |
| デスクトップアプリ | 開発中、ダウンロードなし | 同じエンジンの上でデスクトップアプリを構築中で、公開ダウンロードはまだありません。 |
| クラウドコンピューター | 招待制 | クラウドコンピューターは招待制で、セッションがクラウド上のマシンで作業を続けられるよう構築中です。 |
| それらをつなぐ 1 つのセッション | 構築中 | ターミナルからデスクトップ、ブラウザー、クラウドまで、あなたについていき、最後まであなたのものである 1 つのセッションを構築中です。 |
[ロードマップ](../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` は、スキル、コマンド、エージェントプロファイル、MCP サーバーを含む Claude Code プラグインを受け入れ、フックや LSP サーバーが必要なプラグインは拒否します([詳細](../CLAUDE_PLUGIN_COMPAT.md))。
## ドキュメント
| まずはここから | リファレンス |
これらのガイドはメインブランチに沿っており、最新リリースにまだ含まれていない変更を説明している場合があります。
| はじめに | リファレンス |
| --- | --- |
| [インストール](../INSTALL.md) | [設定](../CONFIGURATION.md) |
| [プロバイダーとローカルモデル](../PROVIDERS.md) | [アーキテクチャ](../ARCHITECTURE.md) |
| [モードと権限](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [キーバインド](../KEYBINDINGS.md) | [プラグイン作成](../PLUGIN_AUTHORING.md) |
| [GitHub PR レビュー](../GITHUB_ACTION.md) | [すべてのドキュメント](../README.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) |
| [GitHub のプルリクエストレビュー](../GITHUB_ACTION.md) | [すべてのドキュメント](../README.md) |
## コミュニティ
## コントリビュート
Codewhale が今の姿になったのはコミュニティのおかげです。バグ、アイデア、見た目や使い心地の違和感など、どんなフィードバックも歓迎します。
いずれも [issue を作成](https://github.com/codewhale-hq/CodeWhale/issues/new/choose)してください。新機能も issue から始めるのが最善です。
修正、翻訳、プロバイダーの追加、計画済みの作業については、プルリクエストを歓迎します。
[コントリビューションガイド](../../CONTRIBUTING.md)には協力の種類ごとの窓口を、[ロードマップ](../ROADMAP.md)にはプロジェクトの方向をまとめています。
取り込まれた作業のクレジットはコントリビューターに残ります。[リポジトリ構成](../../CONTRIBUTING.md#project-structure)で各部分の場所を確認できます。
Codewhale は、使う人たちによって、たくさんの言語でオープンに作られています。
[Discord](https://discord.gg/37gfS3ksug) で話すか、WeChat でメンテナーの Hunter(`hunterbown`)を追加して、Whale Brothers グループへの参加を依頼してください。どなたでも歓迎します。
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Codewhale のコントリビューターウォール。Codewhale にコード、共同作者のコミット、引き継がれたプルリクエスト、クレジットされた報告がある人それぞれのアバターが並び、上部に合計人数があります。"></a>
## 歴史とライセンス
[コントリビューターウォール](../CONTRIBUTORS.md)は、Codewhale にコード、共同作者のコミット、引き継がれたプルリクエスト、クレジットされた報告があるすべての人を数えており、GitHub 自身のコントリビューター一覧が見落とす人も含みます。`scripts/contributor-wall.py` が git の履歴と GitHub から画像と一覧を作り直します。
Codewhale は `deepseek-tui` として始まり、今もそのプロジェクトの設定とセッションを読み込みます。
独立して保守されており、DeepSeek をはじめとするどのモデルプロバイダーとも提携していません。
[これまでに貢献してくれたすべての方](../CONTRIBUTORS.md)に感謝します。
バグ、アイデア、見た目や使い心地の違和感など、どんなフィードバックも歓迎です。どれも [issue を作成](https://github.com/codewhale-hq/Codewhale/issues/new/choose)してください。新機能を始めるのにも issue がいちばんです。修正、翻訳、プロバイダー、計画済みの作業のプルリクエストも歓迎です。質問は [Discussions](https://github.com/codewhale-hq/Codewhale/discussions) へどうぞ。[コントリビューションガイド](../../CONTRIBUTING.md)には、手伝い方ごとの行き先、あなたの名前で作業が取り込まれる流れ、[どこに何があるか](../../CONTRIBUTING.md#project-structure)が書かれています。
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[Discord](https://discord.gg/37gfS3ksug) で話すか、メンテナーの Hunter を WeChat(`hunterbown`)で追加して Whale Brothers グループへの参加を頼んでください。どなたでも歓迎です。
[MIT](../../LICENSE)。他のオープンソースプロジェクトから改変して取り入れたコードは、[サードパーティ通知](../THIRD_PARTY_NOTICES.md)に記載しています。
## 経緯とライセンス
Codewhale は `deepseek-tui` として始まり、今もそのプロジェクトの設定とセッションを読み込めます。独立して保守されており、DeepSeek やほかのモデルプロバイダーとは提携していません。
[MIT](../../LICENSE)。ほかのオープンソースプロジェクトから取り入れたコードは、第三者通知の[同梱したソース](../../THIRD_PARTY_NOTICES.md)と[取り入れた設計](../THIRD_PARTY_NOTICES.md)に記載しています。
+104 -218
View File
@@ -1,279 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**어떤 모델과도 함께 쓸 수 있는 오픈 소스 터미널용 코딩 에이전트.**
<h1>모델은 누구의 것이어도 됩니다. 에이전트는 당신의 것이어야 합니다.</h1>
Codewhale에 작업을 맡기면 저장소를 읽고, 파일을 편집하고, 명령을 실행하면서
작업이 끝나거나 사용자의 입력이 필요할 때까지 진행합니다. 40개가 넘는 내장
제공업체(기본값은 DeepSeek V4.1 Flash)와 사용자의 컴퓨터에서 실행되는 모델을 쓸 수
있습니다. `/receipts`는 Codewhale이 변경한 파일, 실행한 명령, 수행한 웹 및
MCP 호출을 보여 줍니다.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Codewhale 터미널 세션" width="760">
<sub>스크립트로 동작하는 테스트 모델을 쓴 0.10.2 개발 빌드를 버려도 되는 작업 공간에서 전체 접근 권한으로 실행한 화면입니다. 편집, 테스트 세 개, 하위 에이전트 리뷰는 실제로 실행되었습니다.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — DeepSeek v4.1 Flash 사용량 30% 추가" width="760">
</a>
</p>
[Codewhale × OrcaRouter 혜택 보기](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale은 OrcaRouter에서 추천 수수료를 받습니다.
## 설치
macOS와 Linux:
Codewhale은 터미널에서 쓰는 오픈 소스 코딩 에이전트이며 Rust로 작성되었습니다. 어떤 모델과도 함께 작동하고, 하나의 작업을 여러 에이전트에게 나눌 수 있으며, 코드 한 줄 한 줄을 직접 읽을 수 있습니다.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
설치 스크립트는 체크섬을 검증한 `codewhale`과 짧은 별칭 `codew`를
`~/.local/bin`에 설치합니다. 이후 셸에서 `command not found`가 나오면 설치
스크립트가 출력하는 PATH 설정 줄을 실행하세요
([자세히](../INSTALL.md#put-it-on-your-path)). 업그레이드는
`codewhale update`로 합니다. 이 명령들은 최신 릴리스를 설치합니다. 이 페이지는
`main`을 따르므로, 버전이 표시된 기능은 그 릴리스에서 제공됩니다. 각 릴리스에
추가된 내용은 [변경 내역](../../CHANGELOG.md)에서 볼 수 있습니다.
이 명령은 macOS 또는 Linux에 최신 릴리스를 설치하며 계정이 필요 없습니다. [Windows, npm, Cargo](#설치)는 아래에 있습니다.
<details>
<summary><b>Windows, npm, Cargo 등 다른 설치 방법</b></summary>
[![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) · [Español](README.es-419.md) · [Português](README.pt-BR.md) · [Русский](README.ru.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)
<sub>이 번역은 기계 번역 초안이며 원어민 검토를 아직 받지 않았습니다.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="데모 작업을 마친 터미널의 Codewhale. export.py에 --json 플래그를 추가했고, 로컬 테스트 3개가 모두 통과했으며, 위임한 리뷰에서 문제가 없었다고 보고합니다. 아래 작업 목록에는 완료된 세 단계가 있고, 상태 줄에는 Full Access와 로컬 website-demo 제공자가 표시됩니다.">
<sub>스크립트로 만든 테스트 모델을 쓰는 0.10.3(아직 출시 전) 개발 빌드를 일회용 작업 공간에서 Full Access로 실행했습니다. 편집, 테스트 세 개, 서브 에이전트 리뷰는 실제로 실행되었습니다.</sub>
</div>
## 설치
위 명령은 체크섬으로 검증한 `codewhale`과 짧은 별칭 `codew`를 `~/.local/bin`에 넣습니다. 그 뒤 셸이 `command not found`라고 하면 설치 프로그램이 출력하는 PATH 안내를 따르세요([자세히](../INSTALL.md#put-it-on-your-path)). `codewhale update`로 업그레이드합니다.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
미리 빌드된 바이너리는 x64와 arm64의 Linux, macOS, Windows를 지원합니다. Nix,
Linux의 Homebrew, Android/Termux(프리뷰), 수동 다운로드는
[설치 안내서](../INSTALL.md)에서, 컨테이너는 [Docker](../DOCKER.md)에서
다룹니다. 한 컴퓨터에는 설치 방법을 하나만 쓰세요. 그렇지 않으면 `PATH`에
사본이 두 개 생기고, 먼저 오는 쪽이 실행됩니다.
</details>
미리 빌드된 바이너리는 Linux, macOS, Windows의 x64와 arm64를 지원합니다. Scoop, Nix, Linux의 Homebrew, Android와 Termux(미리 보기), 수동 다운로드는 [설치 가이드](../INSTALL.md)에, 컨테이너는 [Docker](../DOCKER.md)에 있습니다. 컴퓨터 한 대에는 설치 방법을 하나만 쓰세요. 그렇지 않으면 `PATH`에 사본 두 개가 생기고 앞에 있는 쪽이 실행됩니다.
## 빠른 시작
1. 작업 중인 변경을 커밋하거나 stash한 다음, git 저장소의 루트에서
`codewhale`을 실행합니다. 기본 설정(**편집 수락**, Accept Edits)에서는 저장소의 파일 편집을 묻지 않고 적용하고
명령을 실행하기 전에 묻습니다. 더 자주 또는 덜 묻게 하려면 `Shift+Tab`으로 권한을 한 단계씩 바꿉니다.
2. `/provider`를 실행하거나 `F3`을 눌러 제공업체를 고르고, API 키를 붙여 넣은
뒤 모델을 선택합니다. 기본 제공업체는 DeepSeek입니다. 키가 없으면 대신 로컬
런타임을 고르세요. 설정된 제공업체가 없고 Ollama가 이미 채팅 모델을 제공하고
있으면 Codewhale이 자동으로 그 모델을 사용합니다. 0.10.2부터는 첫 메시지를
보낼 때 그 모델을 쓰도록 제안합니다.
3. 작업을 입력합니다.
1. 작업을 커밋하거나 stash한 다음, git 저장소 루트에서 `codewhale`을 실행하세요. 기본적으로 저장소 안의 파일 편집은 묻지 않고 적용하며, 읽기 전용이 아닌 셸 명령은 실행하기 전에 매번 묻습니다.
2. `/provider`를 실행(또는 `F3`)하고 제공자를 고른 뒤 API 키를 붙여 넣고 모델을 선택하세요. 기본 제공자는 DeepSeek입니다. 키 없이 처음 실행하면 첫 메시지를 보낼 때 제공자를 묻고, 로컬 Ollama 서버가 응답하면 로컬 모델을 제안합니다.
3. 작업을 입력하세요:
```text
Fix the failing tests and explain what changed.
```
읽기 전용 명령은 바로 실행됩니다. 그 밖의 셸 명령은 Codewhale이 먼저 묻습니다.
`y`는 한 번만 실행하고, `a`는 남은 대화 동안 같은 종류의 명령을 허용하며,
`n`은 거부합니다. `/undo`는 마지막 요청과 그 요청의 파일 변경을 되돌립니다. 명령과 단축키 목록은 `/help`에서
볼 수 있습니다.
읽기 전용 명령은 바로 실행됩니다. 그 밖의 셸 명령은 먼저 묻습니다. `y`는 이번 한 번 실행, `a`는 이 대화 동안 비슷한 명령 허용, `n`은 거절입니다. `/undo`는 마지막 요청과 그 파일 변경을 되돌리고, `/help`는 명령과 키를 보여 줍니다.
스크립트와 CI용으로는 인터페이스 없이 작업 하나를 실행하는 `codewhale exec`
명령이 있습니다. 기본적으로 `--auto`는 전체 접근 권한을 사용합니다. 도구는
묻지 않고 실행되고, 셸 명령에는 Codewhale 샌드박스가 적용되지 않으며, 신뢰
모드에서는 파일 도구가 작업 공간 밖에도 쓸 수 있습니다.
`--sandbox workspace-write`를 추가하면 신뢰 모드를 끄고 셸 샌드박스와 파일
도구의 작업 공간 제한을 유지할 수 있습니다.
스크립트와 CI에서는 `codewhale exec`가 인터페이스 없이 작업 하나를 실행합니다. `--auto`로 도구를 주기 전에 [헤드리스 실행](../INSTALL.md#headless-scripts-ci)을 읽어 보세요. 샌드박스를 추가하지 않으면 `--auto`는 Full Access를 쓰기 때문입니다.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## 하는 일
## 모드와 권한
Codewhale에 작업을 주면 작업이 끝나거나 입력이 필요할 때까지 저장소를 읽고, 파일을 편집하고, 명령을 실행합니다. [최신 릴리스 노트](https://github.com/codewhale-hq/Codewhale/releases/latest)에 최신 변경 사항이 있고, [변경 기록](../../CHANGELOG.md)에는 모든 버전이 있습니다.
새로 설치하면 실행 모드와 편집 수락 권한으로 시작합니다. 다이얼 하나로 둘을 모두 전환합니다. `Shift+Tab`은 확인 → 편집 수락 → 계획 → 자동 검토 → 전체 접근 순으로 넘어갑니다.
### 어떤 모델이든
| | 전환 방법 | 옵션 |
| --- | --- | --- |
| 모드 | `Shift+Tab`의 계획 단계 또는 `/mode` | **계획**(Plan)은 읽고 검색하지만 아무것도 바꾸지 않습니다. **실행**(Work, 나머지 모든 단계)은 파일을 편집하고 명령을 실행합니다. 요청에 여러 턴이 필요하면 `/goal`로 목표를 시작합니다. |
| 권한 | `Shift+Tab` | **확인**(Ask)은 모든 파일 편집과 읽기 전용이 아닌 모든 셸 명령을 실행 전에 묻습니다. **편집 수락**(Accept Edits)은 git 저장소 안의 파일 편집은 묻지 않고 적용하고, 명령은 여전히 실행 전에 묻습니다. **자동 검토**(Auto-Review)는 규칙과 리뷰어 모델이 일상적인 호출을 승인하게 하고 위험도가 높은 호출은 거부합니다. 그런 호출을 직접 승인하려면 확인으로 전환하세요. **전체 접근**(Full Access)은 전혀 묻지 않고, 명령은 이 컴퓨터의 모든 것에 접근할 수 있습니다. 저장소 규칙과 관리 정책은 계속 적용됩니다. |
Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter, xAI를 비롯해 40개가 넘는 제공자가 내장되어 있습니다. OpenAI 호환 엔드포인트라면 무엇이든 쓸 수 있고, Ollama, vLLM, SGLang을 통한 로컬 모델도 됩니다. 기본 모델은 DeepSeek의 `deepseek-flash`이며, 지금은 DeepSeek V4.1 Flash가 응답합니다([자세히](../PROVIDERS.md#deepseek-v41-flash)).
자세한 내용은 [모드와 권한 안내서](../MODES.md)를 참고하세요.
## 할 수 있는 일
### 0.10.2의 새로운 기능
- `/pet on`은 터미널을 에이전트가 하는 일을 보여 주는 움직이는 고래로 바꾸며,
그동안에도 메시지 입력란은 계속 쓸 수 있습니다. 980개의 입자가 현재 단계를
영어, 중국어 또는 일본어 글자로 그려 냅니다.
- `/workbar terminal`은 에이전트가 실행 중인 셸을 실행되는 그대로 보여 줍니다.
그중 하나에 직접 입력하거나, `Ctrl+N`을 눌러 자신만의 셸을 열 수 있습니다
(macOS와 Linux).
- `/undo`는 마지막 요청 전체를 그 요청이 변경한 모든 파일까지 포함해 한 번에
되돌리고, `/diff`는 Git이 없는 폴더에서도 동작합니다.
- 계획이 준비되면, Codewhale은 실행 모드를 확인 권한으로
시작할지 자동 검토 권한으로 시작할지, 아니면 계획을 계속할지 묻습니다.
- `/color`는 채팅마다 고유한 입력란 색을 지정하며, 이 색은 세션과 함께
저장됩니다.
- `web_search`는 DeepSeek의 새 Search API를 사용할 수 있습니다. DeepSeek 키와
함께 `[search] provider = "deepseek"`를 설정하세요.
- 전체 접근이 아닐 때는 자격 증명을 업로드하게 될 `curl`이나 `wget` 명령이
사용자의 승인 없이 실행되는 일이 없으며, 보이지 않는 유니코드를 숨긴 명령은
거부됩니다. `write`는 에이전트가 읽지 않은 파일이나 읽은 뒤에 변경된 파일을
더 이상 덮어쓰지 않습니다.
### 모델
Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter, xAI를
포함해 40개가 넘는 제공업체가 내장되어 있습니다. OpenAI 호환 엔드포인트라면
어느 것이든 쓸 수 있고, Ollama, vLLM, SGLang을 통한 로컬 모델도 쓸 수
있습니다. 기본값은 DeepSeek의 `deepseek-flash`이며, DeepSeek는 2026-10-17에 이
모델을 DeepSeek-V4.1-Flash-1017로 바꿨습니다. 0.10.1은 업데이트 없이 이 모델을
실행합니다([자세히](../PROVIDERS.md#deepseek-v41-flash)).
`/model`로 턴 사이에 모델을 바꾸고, `/model auto`는 턴마다 모델을 고릅니다
(고르는 방식은 `/router`로 설정합니다). `/turn inspect`는 한 턴에 쓰인 모델,
비용, 걸린 시간을 보여 줍니다. `codewhale auth chatgpt`를 쓰면 API 키 대신
ChatGPT 요금제를 사용할 수 있습니다(실험적). [제공업체](../PROVIDERS.md)를
참고하세요.
`/model`은 턴 사이에 모델을 바꾸고, `/model auto`는 턴마다 모델을 고릅니다(고르는 방식은 `/router`로 설정). `/turn inspect`는 어떤 턴이 어떤 모델을 썼고 비용이 얼마였으며 시간이 얼마나 걸렸는지 보여 줍니다. [제공자](../PROVIDERS.md)를 참고하세요.
### 영수증과 되돌리기
`/receipts`(종료한 뒤에는 `codewhale receipts --last`)는 변경된 파일, 실행된
명령, 웹 및 MCP 호출, 시작된 에이전트, 승인 내역과 승인한 주체, 실패를 보여
줍니다. `/undo`는 마지막 요청과 그 요청이 변경한 파일을 신뢰 모드 없이 한 번에 되돌립니다. `/restore`는 작업 공간 전체를 이전
스냅샷으로 되돌리는데, 이후의 편집을 덮어쓰기 때문에 `/trust on` 또는 전체
접근 권한이 필요합니다. [영수증](../RECEIPTS.md)을 참고하세요.
`/receipts`(종료 후에는 `codewhale receipts --last`)는 세션이 바꾼 파일, 실행한 명령, 웹과 MCP 호출, 시작한 에이전트, 각 승인과 승인한 사람, 실패한 작업을 보여 줍니다. `/undo`는 마지막 요청과 그 요청이 바꾼 파일을 한 번에 되돌립니다. `/restore`는 작업 공간 전체를 이전 스냅숏으로 되돌리는데, 이후 편집을 덮어쓰므로 `/trust on` 또는 Full Access가 필요합니다. [영수증](../RECEIPTS.md)을 참고하세요.
도구를 사용할 수 있는 exec 실행은 모든 출력 형식에서 저장되므로, `--json`을
포함한 `exec --auto` 실행 후에도 `codewhale receipts --last`를 쓸 수 있습니다.
답변만 하는 텍스트 및 `--json` 실행은 재개하거나 대화 압축이 시작될 때만
저장됩니다. 영수증이나 `exec --continue`를 위해 항상 저장하려면
`--output-format stream-json`을 사용하세요.
### 하나의 작업에 여러 에이전트
### 긴 작업
`/goal`은 여러 턴에 걸쳐 유지되는 목표를 정합니다. Codewhale은 작업을
[하위 에이전트](../SUBAGENTS.md)에 나눠 맡기거나, 여러 에이전트로 구성된
[Fleet](../FLEET.md)를 실행하거나, 저장소에 커밋된
[워크플로](../WORKFLOW_AUTHORING.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`은 스킬, 명령, 에이전트 프로필, MCP
서버를 담은 Claude Code 플러그인을 받아들이고, 훅이나 LSP 서버가 필요한
플러그인은 거부합니다([자세히](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal`은 여러 턴에 걸쳐 이어지는 목표를 정합니다. Codewhale은 작업을 [서브 에이전트](../SUBAGENTS.md)에게 나누거나, 각자의 역할과 모델을 가진 에이전트 [Fleet](../FLEET.md)를 실행하거나, 저장소에 커밋된 [워크플로](../WORKFLOW_AUTHORING.md)를 따를 수 있습니다.
### 확장
[MCP 서버](../MCP.md)를 연결하고, [스킬](../SKILLS.md)과
[플러그인](../PLUGINS.md)을 추가하고, 세션 및 도구 이벤트에서
[훅](../HOOKS.md)을 실행할 수 있습니다. 코드 모드(실험적, 기본으로 켜짐)에서는
모델이 여러 MCP 및 플러그인 도구를 호출하는 `execute_tools` 프로그램 하나를
작성할 수 있으며, 각 호출은 여전히 승인 규칙을 따르고 영수증에 남습니다. 기본
별도로 설치하는 Computer Use
플러그인(실험적, macOS 전용)은 다른 앱을 관찰하고 조작할 수 있습니다. 접근
범위를 검토하고 활성화하기 전까지는 꺼져 있습니다
([안내서](https://github.com/codewhale-hq/codewhale-cu-plugin)).
[MCP 서버](../MCP.md)를 연결하고, [스킬](../SKILLS.md)과 [플러그인](../PLUGINS.md)을 추가하고, 세션과 도구 이벤트에서 [훅](../HOOKS.md)을 실행하세요. 코드 모드(실험적, 기본 사용)는 모델이 여러 MCP 도구와 플러그인 도구를 호출하는 `execute_tools` 프로그램 하나를 작성하게 합니다. 각 호출은 여전히 승인 규칙을 따르고 영수증을 남깁니다. v0.10.2에 포함된 Computer Use 플러그인(실험적, 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 "…"` | 인터페이스 없이 작업 하나를 실행합니다. 옵션 없이 쓰면 도구를 사용하지 않고 답변만 하고, `--auto`는 기본적으로 전체 접근 권한으로 도구를 활성화하고, `--sandbox workspace-write`는 도구를 제한하며, `--output-format stream-json`은 이벤트를 JSON으로 스트리밍합니다 |
| `codewhale web` | `127.0.0.1`에서 동작하는 로컬 웹 UI([안내서](../WEB.md)) |
| `codewhale review --pr N` | GitHub 풀 리퀘스트에 대한 참고용 리뷰. [GitHub 봇 설정](../GITHUB_ACTION.md#set-up-your-own-bot)은 자동 리뷰와 `@codewhale review`를 위한 버전이 고정된 워크플로를 생성하며, 직접 모델 키와 선택적인 App 신원을 사용합니다 |
| `codewhale app-server --http` | 스레드, 이벤트, 승인, 각 턴의 파일 변경을 다루는 로컬 HTTP API인 [Runtime API](../RUNTIME_API.md) |
| `codewhale serve --acp` | Zed 같은 에디터를 위한 stdio 기반 Agent Client Protocol |
| `codewhale exec "…"` | 인터페이스 없이 작업 하나를 실행하며, 스크립트와 CI용입니다([헤드리스 실행](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | `127.0.0.1`에서 동작하는 로컬 웹 클라이언트([가이드](../WEB.md)) |
| `codewhale review --pr N` | GitHub 풀 리퀘스트에 대한 권고성 리뷰입니다. [GitHub 봇 설정](../GITHUB_ACTION.md#set-up-your-own-bot)으로 당신의 모델 키를 써서 실행할 수 있습니다 |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md). 스레드, 이벤트, 승인, 턴마다의 파일 변경을 다루는 로컬 HTTP API |
| `codewhale serve --acp` | stdio를 통한 Agent Client Protocol로, Zed 같은 편집기용입니다 |
터미널 앱, `exec`, `web`, Runtime API는 하나의 엔진을 공유합니다
([아키텍처](../ARCHITECTURE.md)). 커뮤니티가 관리하는
[VS Code 확장](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)은
사이드바에서 이 엔진에 연결됩니다([소스](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Runtime API를 기반으로 한 네이티브 데스크톱 앱이 개발 중이며, 아직 공개
다운로드는 없습니다.
터미널 앱, `exec`, `web`, Runtime API는 하나의 엔진을 함께 씁니다([아키텍처](../ARCHITECTURE.md)). 커뮤니티가 관리하는 [VS Code 확장](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)은 사이드바에서 연결됩니다([소스](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## 비용과 계정
## 안전을 지키는 방법
Codewhale은 무료이며 MIT 라이선스로 배포됩니다. 자신의 API 키를 쓰면
제공업체에 직접 비용을 내고, 로컬 모델은 키가 필요 없습니다. 가격을 알 수
있으면 하단 표시줄과 `/cost`에 세션 비용이 표시되며, 가격을 알 수 없으면 무료가
아니라 알 수 없음으로 표시합니다.
두 개의 스위치가 Codewhale이 묻지 않고 할 수 있는 범위를 정합니다. 입력창이 비어 있을 때 `Tab`은 모드를 바꿉니다. **Plan**은 읽고 검색만 하며 아무것도 바꾸지 않고, **Work**는 파일을 편집하고 명령을 실행하며, **Operate**는 Work와 같은 권한으로 목표가 검증되거나 사용자의 입력이 필요할 때까지 계속 작업합니다. `Shift+Tab`은 권한을 바꿉니다. 기본값인 **Ask**는 저장소 안의 파일 편집을 묻지 않고 적용하고, 읽기 전용이 아닌 셸 명령 전에는 묻습니다. **Auto-Review**는 규칙과 검토 모델이 일상적인 호출을 승인하게 하고 위험도가 높은 호출은 거부합니다. 그런 호출을 직접 승인하려면 Ask로 바꾸세요. **Full Access**는 절대 묻지 않고 Codewhale의 샌드박스를 끄지만, 저장소 규칙과 관리 정책은 계속 적용됩니다. 자세한 내용은 [v0.10.2 가이드](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md)에 있습니다.
계정은 없어도 됩니다. `/provider`로 추가한 키는 사용자의 컴퓨터에 보관됩니다.
0.10.3 예정: `Shift+Tab`은 Ask, Accept Edits, Plan, Auto-Review, Full Access를 차례로 거치는 하나의 다이얼이 되고, `Tab`은 더 이상 모드를 바꾸지 않으며, Operate는 폐지됩니다. Ask는 모든 파일 편집 전에도 묻게 되며, 새 기본값인 Accept Edits는 git 저장소 안의 편집을 적용하고 명령 전에는 계속 묻습니다. [현재 가이드](../MODES.md)에서 설명합니다.
## 안전과 개인정보
Ask와 Auto-Review에서는 시스템에 OS 샌드박스가 있으면 그 안에서 명령을 실행합니다. macOS에서는 Seatbelt, Linux에서는 bubblewrap이 설치되어 있을 때 bubblewrap입니다. Windows에는 아직 OS 샌드박스가 없고, Full Access는 샌드박스를 끕니다. 샌드박스 안에서는 셸 명령과 터미널 세션이 `~/.ssh`, `~/.aws`, `.env` 파일 같은 자격 증명 저장소를 읽을 수 없습니다. `/preview-request`는 다음 요청을 보내지 않고 민감한 정보를 가린 미리 보기를 보여 줍니다.
확인과 자동 검토 권한에서는 시스템에 OS 샌드박스가 있으면 그 안에서 명령이
실행됩니다. macOS에서는 Seatbelt를, Linux에서는 bubblewrap이 설치되어 있으면
bubblewrap을 사용합니다. Windows에는 아직 OS 샌드박스가 없으며, 전체 접근은
샌드박스를 끕니다. 샌드박스 안에서 셸 명령은 `~/.ssh`, `~/.aws`, `.env` 파일
같은 자격 증명 저장소를 읽을 수 없으며, 0.10.2부터는 같은 규칙이 터미널 세션과
더 많은 파일 도구에도 적용됩니다. `/preview-request`는 다음 요청을 보내지 않고, 민감 정보를
가린 미리 보기를 보여 줍니다.
계정은 필요 없고, `/provider`로 추가한 키는 당신의 컴퓨터에만 남습니다. 자신의 API 키를 쓰면 제공자에게 직접 비용을 내고, 로컬 모델은 키가 필요 없습니다. 가격을 알 때는 바닥글과 `/cost`가 세션 비용을 보여 주고, 모르는 가격은 무료가 아니라 알 수 없음으로 표시합니다.
텔레메트리는 기본으로 켜져 있습니다. 90일마다 바뀌는 무작위 설치 ID와 함께
집계된 수치(버전과 플랫폼, 세션 길이와 결과, 사용한 내장 제공업체, 기능 및
오류 횟수)를 보내며, 대화, 코드, 프롬프트, 모델 이름, 파일 또는 저장소 이름,
자격 증명은 절대 보내지 않습니다.
`codewhale config set telemetry false`로 끌 수 있습니다. Codewhale은 시작할 때
GitHub에서 새 릴리스도 확인합니다. 이 확인을 건너뛰려면
`CODEWHALE_NO_UPDATE_CHECK=1`을 설정하세요. 자세한 내용은
[권한 확인 순서](../AUTHORIZATION_ORDER.md), [샌드박스](../SANDBOX.md),
[텔레메트리](../TELEMETRY.md)를 참고하세요.
원격 측정은 기본으로 켜져 있습니다. 집계된 수치(버전과 플랫폼, 세션 길이와 결과, 사용한 내장 제공자, 기능과 오류 횟수)를 90일마다 바뀌는 무작위 설치 ID와 함께 보내며, 대화, 코드, 프롬프트, 모델 이름, 파일이나 저장소 이름, 자격 증명은 절대 보내지 않습니다. 다음 명령으로 끌 수 있습니다:
```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`은 스킬, 명령, 에이전트 프로필, MCP 서버가 담긴 Claude Code 플러그인을 받아들이고, 훅이나 LSP 서버가 필요한 플러그인은 거절합니다([자세히](../CLAUDE_PLUGIN_COMPAT.md)).
## 문서
| 시작하기 | 참고 자료 |
이 가이드는 메인 브랜치를 따르므로 최신 릴리스에 아직 없는 변경 사항을 설명할 수 있습니다.
| 여기서 시작 | 참고 자료 |
| --- | --- |
| [설치](../INSTALL.md) | [설정](../CONFIGURATION.md) |
| [제공업체와 로컬 모델](../PROVIDERS.md) | [아키텍처](../ARCHITECTURE.md) |
| [모드와 권한](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [단축키](../KEYBINDINGS.md) | [플러그인 작성](../PLUGIN_AUTHORING.md) |
| [GitHub PR 리뷰](../GITHUB_ACTION.md) | [전체 문서](../README.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) |
| [GitHub 풀 리퀘스트 리뷰](../GITHUB_ACTION.md) | [전체 문서](../README.md) |
## 커뮤니티
## 기여하기
Codewhale이 지금의 모습이 된 것은 커뮤니티 덕분입니다. 버그, 아이디어, 보기에나 쓰기에 어색했던 점까지 모든 피드백을 환영합니다.
어느 것이든 [이슈를 열어](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) 주세요. 새 기능도 이슈에서 시작하는 것이 가장 좋습니다.
수정, 번역, 제공업체 추가, 계획된 작업은 풀 리퀘스트를 환영합니다.
[기여 가이드](../../CONTRIBUTING.md)는 도움의 종류별로 어디로 가면 되는지, [로드맵](../ROADMAP.md)은 프로젝트가 어디로 가는지 알려 줍니다.
반영된 작업의 크레딧은 기여자에게 남으며, [저장소 구조](../../CONTRIBUTING.md#project-structure)에서 각 부분의 위치를 확인할 수 있습니다.
Codewhale은 쓰는 사람들이 여러 언어로 공개적으로 만듭니다.
[Discord](https://discord.gg/37gfS3ksug)에서 이야기하거나, WeChat에서 메인테이너
Hunter(`hunterbown`)를 추가하고 Whale Brothers 그룹 가입을 요청하세요. 누구나 환영합니다.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Codewhale 기여자 벽. Codewhale에 코드, 공동 저자 커밋, 이어받은 풀 리퀘스트, 크레디트가 남은 보고가 있는 사람마다 아바타가 하나씩 있고, 맨 위에 전체 인원이 있습니다."></a>
[기여자 벽](../CONTRIBUTORS.md)은 Codewhale에 코드, 공동 저자 커밋, 이어받은 풀 리퀘스트, 크레디트가 남은 보고가 있는 모든 사람을 세며, GitHub 자체 기여자 목록이 놓치는 사람도 포함합니다. `scripts/contributor-wall.py`가 git 기록과 GitHub로 그림과 목록을 다시 만듭니다.
버그, 아이디어, 보기나 쓰기에 어색했던 점 등 어떤 피드백이든 환영합니다. 모두 [이슈를 열어](https://github.com/codewhale-hq/Codewhale/issues/new/choose) 주세요. 새 기능을 시작하기에도 이슈가 가장 좋습니다. 수정, 번역, 제공자, 계획된 작업에 대한 풀 리퀘스트도 환영합니다. 질문은 [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를 비롯한 어떤 모델 제공업체와도 제휴
관계가 없습니다. [기여해 주신 모든 분](../CONTRIBUTORS.md)께 감사드립니다.
Codewhale은 `deepseek-tui`로 시작했으며 지금도 그 프로젝트의 설정과 세션을 읽습니다. 독립적으로 유지 관리되며 DeepSeek이나 다른 모델 제공자와 제휴 관계가 없습니다.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). 다른 오픈 소스 프로젝트에서 가져와 수정한 코드는
[서드파티 고지](../THIRD_PARTY_NOTICES.md)에 정리되어 있습니다.
[MIT](../../LICENSE). 다른 오픈 소스 프로젝트에서 가져온 코드는 제3자 고지의 [포함된 소스](../../THIRD_PARTY_NOTICES.md)와 [가져온 설계](../THIRD_PARTY_NOTICES.md)에 나와 있습니다.
+103 -232
View File
@@ -1,294 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Agent programistyczny open source do terminala, który działa z dowolnym modelem.**
<h1>Model może należeć do kogokolwiek. Agent powinien być twój.</h1>
Dajesz Codewhale zadanie, a on czyta repozytorium, edytuje pliki i uruchamia
polecenia, dopóki zadanie nie zostanie wykonane albo nie będzie potrzebował
informacji od Ciebie. Działa z ponad 40 wbudowanymi dostawcami (domyślnie z
DeepSeek V4.1 Flash) oraz z modelami uruchomionymi na Twoim własnym komputerze.
`/receipts` wyświetla listę plików, które zmienił, poleceń, które uruchomił,
oraz wywołań internetowych i MCP, które wykonał.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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)
[Strona](https://codewhale.net) · [Dokumentacja](../README.md) · [Dziennik zmian](../../CHANGELOG.md) · [Współtworzenie](../../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) · [Українська](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) · [العربية](README.ar.md) · [Català](README.ca.md)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Sesja Codewhale w terminalu" width="760">
<sub>Wersja rozwojowa 0.10.2 ze skryptowanym modelem testowym, z uprawnieniem Full Access, w jednorazowym obszarze roboczym. Edycja, trzy testy i przegląd wykonany przez subagenta odbyły się naprawdę.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — o 30% więcej korzystania z DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Zobacz ofertę Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale otrzymuje prowizję za polecenia od OrcaRouter.
## Instalacja
macOS i Linux:
Codewhale to otwartoźródłowy agent programistyczny do twojego terminala, napisany w Rust. Działa z dowolnym modelem, potrafi podzielić jedno zadanie między kilku agentów, a każdą jego linię możesz przeczytać.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Instalator umieszcza w `~/.local/bin` plik `codewhale` i jego krótki alias
`codew`, po weryfikacji sum kontrolnych. Jeśli powłoka zgłosi potem
`command not found`, uruchom linię z PATH, którą wypisuje instalator
([szczegóły](../INSTALL.md#put-it-on-your-path)). Do aktualizacji służy
`codewhale update`. Te polecenia instalują najnowsze wydanie. Ta strona opisuje
gałąź `main`, więc funkcja oznaczona wersją pojawi się w tym wydaniu;
[dziennik zmian](../../CHANGELOG.md) pokazuje, co wnosi każde wydanie.
To polecenie instaluje najnowsze wydanie w systemie macOS lub Linux i nie wymaga konta. [Windows, npm i Cargo](#instalacja) są niżej.
<details>
<summary><b>Windows, npm, Cargo i inne sposoby instalacji</b></summary>
[![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)
[Strona](https://codewhale.net) · [Dokumentacja](../README.md) · [Lista zmian](../../CHANGELOG.md) · [Współtworzenie](../../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) · [Українська](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) · [العربية](README.ar.md) · [Català](README.ca.md)
<sub>To tłumaczenie jest roboczym tekstem maszynowym i nie zostało jeszcze sprawdzone przez osobę, dla której polski jest językiem ojczystym.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale w terminalu po zadaniu demonstracyjnym. Informuje, że dodał flagę --json do export.py, że wszystkie 3 lokalne testy przeszły i że delegowany przegląd nie znalazł problemów. Lista zadań poniżej pokazuje trzy ukończone kroki, a wiersz stanu pokazuje Full Access i lokalnego dostawcę website-demo.">
<sub>Kompilacja deweloperska wersji 0.10.3, jeszcze niewydanej, ze skryptowanym modelem testowym, w trybie Full Access w jednorazowym obszarze roboczym. Edycja, trzy testy i przegląd przez podagenta zostały naprawdę wykonane.</sub>
</div>
## Instalacja
Powyższe polecenie umieszcza sprawdzony sumą kontrolną `codewhale` i jego krótki alias `codew` w `~/.local/bin`. Jeśli potem powłoka zgłosi `command not found`, wykonaj wskazówkę o PATH, którą wypisuje instalator ([szczegóły](../INSTALL.md#put-it-on-your-path)). `codewhale update` go aktualizuje.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
Gotowe pliki binarne są dostępne dla Linuksa, macOS i Windows na x64 i arm64.
Nix, Homebrew w Linuksie, Android/Termux (wersja zapoznawcza) i ręczne
pobieranie opisuje [przewodnik instalacji](../INSTALL.md), a kontenery
[Docker](../DOCKER.md). Na jednej maszynie używaj jednej metody instalacji;
inaczej w `PATH` znajdą się dwie kopie i zadziała ta, która jest pierwsza.
</details>
Gotowe pliki binarne są dostępne dla systemów Linux, macOS i Windows na x64 i arm64. Scoop, Nix, Homebrew w systemie Linux, Android i Termux (wersja zapoznawcza) oraz ręczne pobieranie opisuje [przewodnik instalacji](../INSTALL.md), a kontenery — [Docker](../DOCKER.md). Używaj jednej metody instalacji na komputerze; w przeciwnym razie w `PATH` znajdą się dwie kopie i wygra ta znaleziona jako pierwsza.
## Szybki start
1. Zrób commit lub stash swoich zmian, a następnie uruchom `codewhale` w
katalogu głównym repozytorium git. Domyślnie (**Accept Edits**) zmienia pliki w repozytorium bez pytania
i pyta przed każdym poleceniem; `Shift+Tab` przełącza uprawnienie krok po kroku, gdy chcesz, by pytał częściej lub rzadziej.
2. Uruchom `/provider` (lub naciśnij `F3`), wybierz dostawcę, wklej jego klucz
API i wybierz model. Domyślnym dostawcą jest DeepSeek. Jeśli nie masz
klucza, wybierz zamiast tego lokalne środowisko. Jeśli żaden dostawca nie
jest skonfigurowany, a Ollama już udostępnia model czatu, Codewhale
automatycznie go użyje; od 0.10.2 proponuje go, gdy wyślesz pierwszą
wiadomość.
1. Zatwierdź lub odłóż do stash swoją pracę, a potem uruchom `codewhale` w katalogu głównym repozytorium git. Domyślnie stosuje zmiany plików w repozytorium bez pytania i pyta przed każdym poleceniem powłoki, które nie tylko czyta.
2. Uruchom `/provider` (lub naciśnij `F3`), wybierz dostawcę, wklej jego klucz API i wybierz model. Domyślnym dostawcą jest DeepSeek. Przy pierwszym uruchomieniu bez klucza Codewhale pyta o dostawcę, gdy wyślesz pierwszą wiadomość, i proponuje model lokalny, gdy odpowie lokalny serwer Ollama.
3. Wpisz zadanie:
```text
Fix the failing tests and explain what changed.
```
Polecenia tylko do odczytu uruchamiają się od razu. Przed każdym innym
poleceniem powłoki Codewhale najpierw pyta: `y` uruchamia je jednorazowo, `a`
zezwala na podobne polecenia do końca rozmowy, `n` odmawia. `/undo` cofa Twoje
ostatnie zlecenie i zmiany, które wprowadziło w plikach. `/help` wyświetla polecenia i skróty klawiszowe.
Polecenia tylko do odczytu uruchamiają się od razu. Przy każdym innym poleceniu powłoki Codewhale najpierw pyta: `y` uruchamia je raz, `a` zezwala na podobne polecenia do końca rozmowy, a `n` odmawia. `/undo` cofa twoją ostatnią prośbę i jej zmiany w plikach, a `/help` wyświetla polecenia i klawisze.
W skryptach i CI `codewhale exec` wykonuje jedno zadanie bez interfejsu.
Domyślnie `--auto` używa Full Access: narzędzia działają bez pytania, polecenia
powłoki działają bez piaskownicy Codewhale, a tryb zaufania pozwala narzędziom
plikowym zapisywać pliki poza obszarem roboczym. Dodaj
`--sandbox workspace-write`, aby zachować piaskownicę powłoki i ograniczyć
narzędzia plikowe do obszaru roboczego, z wyłączonym trybem zaufania:
W skryptach i CI `codewhale exec` wykonuje jedno zadanie bez interfejsu. Przeczytaj o [uruchomieniach bez interfejsu](../INSTALL.md#headless-scripts-ci), zanim dasz mu narzędzia przez `--auto`, ponieważ `--auto` używa Full Access, jeśli nie dodasz piaskownicy.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Co robi
## Tryby i uprawnienia
Daj Codewhale zadanie, a przeczyta repozytorium, zmieni pliki i uruchomi polecenia, aż zadanie będzie gotowe albo będzie potrzebować twojej odpowiedzi. [Informacje o najnowszym wydaniu](https://github.com/codewhale-hq/Codewhale/releases/latest) wymieniają najnowsze zmiany, a [dziennik zmian](../../CHANGELOG.md) obejmuje każdą wersję.
Świeża instalacja startuje w trybie Work z uprawnieniem Accept Edits. Jedno pokrętło przełącza oba: `Shift+Tab` przechodzi kolejno Ask → Accept Edits → Plan → Auto-Review → Full Access.
### Dowolny model
| | Przełączanie | Opcje |
| --- | --- | --- |
| Tryb | pozycja Plan na `Shift+Tab` lub `/mode` | **Plan** czyta i przeszukuje, ale niczego nie zmienia. **Work** (każda inna pozycja) edytuje pliki i uruchamia polecenia; uruchom cel poleceniem `/goal`, gdy zlecenie wymaga więcej niż jednej tury. |
| Uprawnienie | `Shift+Tab` | **Ask** pyta przed każdą zmianą w pliku i przed każdym poleceniem powłoki, które nie jest tylko do odczytu. **Accept Edits** wprowadza zmiany w plikach Twojego repozytorium git bez pytania i nadal pyta przed poleceniami. **Auto-Review** pozwala regułom i modelowi recenzującemu zatwierdzać rutynowe wywołania, a wywołania wysokiego ryzyka odrzuca; aby zatwierdzać je samodzielnie, przełącz na Ask. **Full Access** nigdy nie pyta, a polecenia mają dostęp do wszystkiego na tym komputerze; reguły repozytorium i polityka zarządzana nadal obowiązują. |
Wbudowano ponad 40 dostawców, w tym Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter i xAI. Działa każdy punkt końcowy zgodny z OpenAI, a także modele lokalne przez Ollama, vLLM lub SGLang. Domyślnym modelem jest `deepseek-flash` od DeepSeek, za którym stoi teraz DeepSeek V4.1 Flash ([szczegóły](../PROVIDERS.md#deepseek-v41-flash)).
Szczegóły opisuje [przewodnik po trybach i uprawnieniach](../MODES.md).
`/model` zmienia model między turami, a `/model auto` wybiera model na każdą turę (sposób ustawia `/router`). `/turn inspect` pokazuje, jakiego modelu użyła tura, ile kosztowała i jak długo trwała. Zobacz [Dostawcy](../PROVIDERS.md).
## Co potrafi
### Potwierdzenia i cofanie
### Nowości w 0.10.2
`/receipts` lub `codewhale receipts --last` po wyjściu wymienia pliki zmienione w sesji, uruchomione polecenia, wywołania sieciowe i MCP, uruchomionych agentów, każde zatwierdzenie i osobę, która je wydała, oraz to, co się nie udało. `/undo` w jednym kroku cofa twoją ostatnią prośbę i zmienione przez nią pliki. `/restore` przywraca cały obszar roboczy do wcześniejszej migawki, a ponieważ nadpisuje późniejsze zmiany, wymaga `/trust on` lub Full Access. Zobacz [Potwierdzenia](../RECEIPTS.md).
- `/pet on` zamienia terminal w animowanego wieloryba, który pokazuje, czym
zajmuje się agent, a pole wiadomości pozostaje przy tym aktywne. Jego 980
cząsteczek układa się w nazwę bieżącego kroku po angielsku, chińsku lub
japońsku.
- `/workbar terminal` pokazuje powłoki uruchomione przez agenta na bieżąco, w
trakcie ich działania. Możesz pisać w każdej z nich albo nacisnąć `Ctrl+N`,
aby otworzyć własną powłokę (macOS i Linux).
- `/undo` cofa całe Twoje ostatnie zlecenie w jednym kroku, łącznie ze
wszystkimi zmienionymi przez nie plikami, a `/diff` działa w folderach bez
Gita.
- Gdy plan jest gotowy, Codewhale pyta, czy rozpocząć Work z Ask lub
Auto-Review, czy dalej planować.
- `/color` nadaje każdemu czatowi własny kolor pola wiadomości, zapisywany
razem z sesją.
- `web_search` może korzystać z nowego Search API od DeepSeek: ustaw
`[search] provider = "deepseek"` i podaj klucz DeepSeek.
- Poza Full Access polecenie `curl` lub `wget`, które wysłałoby dane
uwierzytelniające, nigdy nie uruchomi się bez Twojej zgody, a polecenie
ukrywające niewidoczne znaki Unicode zostaje odrzucone. `write` nie zastępuje
już pliku, którego agent nie przeczytał, ani pliku, który zmienił się po
przeczytaniu.
### Kilku agentów przy jednym zadaniu
### Modele
Wbudowanych jest ponad 40 dostawców, w tym Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter i xAI. Działa każdy punkt końcowy zgodny
z OpenAI, a także modele lokalne przez Ollama, vLLM lub SGLang. Domyślnym
modelem jest `deepseek-flash` od DeepSeek, który DeepSeek 2026-10-17 przełączył
na DeepSeek-V4.1-Flash-1017; 0.10.1 obsługuje go bez aktualizacji
([szczegóły](../PROVIDERS.md#deepseek-v41-flash)).
`/model` przełącza model między turami, a `/model auto` wybiera model dla
każdej tury (sposób wyboru ustawia `/router`). `/turn inspect` pokazuje, jakiego
modelu użyła tura, ile kosztowała i jak długo trwała. `codewhale auth chatgpt`
pozwala korzystać z subskrypcji ChatGPT zamiast klucza API (eksperymentalnie).
Zobacz [Dostawcy](../PROVIDERS.md).
### Pokwitowania i cofanie
`/receipts` (albo `codewhale receipts --last` po wyjściu z programu) wyświetla
listę zmienionych plików, uruchomionych poleceń, wywołań internetowych i MCP,
uruchomionych agentów, zatwierdzeń wraz z tym, kto ich udzielił, oraz
niepowodzeń. `/undo` cofa Twoje ostatnie zlecenie i zmienione przez nie pliki w jednym kroku, bez trybu zaufania. `/restore`
przywraca cały obszar roboczy do wcześniejszej migawki; ponieważ nadpisuje to
późniejsze zmiany, wymaga `/trust on` lub Full Access. Zobacz
[Pokwitowania](../RECEIPTS.md).
Uruchomienia exec z dostępnymi narzędziami są zapisywane w każdym formacie
wyjściowym, więc `codewhale receipts --last` działa po `exec --auto`, także
z `--json`. Uruchomienia bez narzędzi z wyjściem tekstowym lub `--json` są
zapisywane tylko przy wznawianiu lub gdy zaczyna się kompakcja rozmowy; użyj
`--output-format stream-json`, aby zawsze je zapisywać na potrzeby pokwitowań
lub `exec --continue`.
### Dłuższa praca
`/goal` ustawia cel, który obowiązuje przez kolejne tury. Codewhale może
podzielić pracę między [subagentów](../SUBAGENTS.md), uruchomić
[flotę](../FLEET.md) agentów albo wykonać
[przepływ pracy](../WORKFLOW_AUTHORING.md) zapisany w repozytorium.
### Przejście z innego agenta
Codewhale sam czyta `AGENTS.md`. Pliki instrukcji napisane dla innych narzędzi,
takie jak `CLAUDE.md`, `.cursorrules` czy `.github/copilot-instructions.md`, są
wczytywane tylko wtedy, gdy włączysz to w konfiguracji ustawieniem
`project_instruction_imports = ["claude"]` (lub `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`); zobacz
[config.example.toml](../../config.example.toml). Codewhale ostrzega, gdy znajdzie
taki plik, którego nie wczytał.
`/import-claude` przygotowuje import Twoich ustawień Claude Code i serwerów MCP
do przejrzenia. `/plugin install` przyjmuje wtyczki Claude Code zawierające
umiejętności, polecenia, profile agentów i serwery MCP, a odrzuca wtyczki
wymagające hooków lub serwerów LSP
([szczegóły](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` ustawia cel, który trwa przez kolejne tury. Codewhale może podzielić pracę między [podagentów](../SUBAGENTS.md), uruchomić [Fleet](../FLEET.md) agentów z własnymi rolami i modelami albo wykonać [przepływ pracy](../WORKFLOW_AUTHORING.md) zapisany w repozytorium.
### Rozszerzenia
Podłączaj [serwery MCP](../MCP.md), dodawaj [umiejętności](../SKILLS.md) i
[wtyczki](../PLUGINS.md) oraz uruchamiaj [hooki](../HOOKS.md) na
zdarzeniach sesji i narzędzi. Code mode (eksperymentalny, domyślnie włączony)
pozwala modelowi napisać jeden program `execute_tools`, który wywołuje kilka
narzędzi MCP i wtyczek; każde wywołanie nadal podlega Twoim regułom
zatwierdzania i ma własne pokwitowanie. Osobno instalowana wtyczka Computer Use
(eksperymentalna, tylko macOS) potrafi obserwować i obsługiwać inne aplikacje.
Pozostaje wyłączona, dopóki nie sprawdzisz jej dostępu i jej nie włączysz
([przewodnik](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Podłączaj [serwery MCP](../MCP.md), dodawaj [umiejętności](../SKILLS.md) i [wtyczki](../PLUGINS.md) oraz uruchamiaj [hooki](../HOOKS.md) przy zdarzeniach sesji i narzędzi. Tryb kodu (eksperymentalny, domyślnie włączony) pozwala modelowi napisać jeden program `execute_tools`, który wywołuje kilka narzędzi MCP i wtyczek; każde wywołanie nadal podlega twoim regułom zatwierdzania i zachowuje potwierdzenie. Wtyczka Computer Use dołączona do v0.10.2 (eksperymentalna, tylko macOS) może obserwować inne aplikacje i nimi sterować; pozostaje wyłączona, dopóki nie sprawdzisz jej dostępu i jej nie włączysz ([przewodnik](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Nadchodzi w 0.10.3: wtyczka będzie wydawana [osobno](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Sposoby uruchamiania
### Sposoby uruchamiania
| Polecenie | Co robi |
| --- | --- |
| `codewhale` | Interaktywna aplikacja terminalowa |
| `codewhale exec "…"` | Jedno zadanie bez interfejsu. Bez dodatkowych flag odpowiada bez użycia narzędzi; `--auto` domyślnie włącza narzędzia z Full Access, `--sandbox workspace-write` je ogranicza, a `--output-format stream-json` strumieniuje zdarzenia jako JSON |
| `codewhale web` | Lokalny interfejs przeglądarkowy pod `127.0.0.1` ([przewodnik](../WEB.md)) |
| `codewhale review --pr N` | Doradczy przegląd pull requesta na GitHubie. [Konfiguracja bota GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) generuje przypięty do wersji workflow do automatycznych przeglądów i `@codewhale review`, z użyciem własnego klucza modelu i opcjonalnej tożsamości App |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), lokalne HTTP API dla wątków, zdarzeń, zatwierdzeń i zmian w plikach z każdej tury |
| `codewhale exec "…"` | Jedno zadanie bez interfejsu, dla skryptów i CI ([uruchomienia bez interfejsu](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Lokalny klient webowy na `127.0.0.1` ([przewodnik](../WEB.md)) |
| `codewhale review --pr N` | Doradczy przegląd pull requesta na GitHubie; [konfiguracja bota GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) uruchamia go z twoim własnym kluczem modelu |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), lokalne API HTTP dla wątków, zdarzeń, zatwierdzeń i zmian plików w każdej turze |
| `codewhale serve --acp` | Agent Client Protocol przez stdio, dla edytorów takich jak Zed |
Aplikacja terminalowa, `exec`, `web` i Runtime API korzystają z jednego silnika
([architektura](../ARCHITECTURE.md)). Utrzymywane przez społeczność
[rozszerzenie VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
łączy się z nim z panelu bocznego ([kod źródłowy](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Natywna aplikacja desktopowa oparta na Runtime API jest w trakcie tworzenia;
nie ma jeszcze publicznej wersji do pobrania.
Aplikacja terminalowa, `exec`, `web` i Runtime API korzystają z jednego silnika ([architektura](../ARCHITECTURE.md)). Utrzymywane przez społeczność [rozszerzenie VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) łączy się z nim z paska bocznego ([kod źródłowy](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Koszty i konta
## Jak dba o bezpieczeństwo
Codewhale jest darmowy i udostępniany na licencji MIT. Z własnym kluczem API
płacisz bezpośrednio dostawcy; modele lokalne nie wymagają klucza. Stopka i
`/cost` pokazują koszt sesji, gdy cena jest znana; nieznana cena jest
pokazywana jako nieznana, nigdy jako darmowa.
Dwa przełączniki określają, ile Codewhale może zrobić sam. Gdy pole wpisywania jest puste, `Tab` zmienia tryb: **Plan** czyta i szuka, ale niczego nie zmienia, **Work** edytuje pliki i uruchamia polecenia, a **Operate** ma te same uprawnienia co Work i działa, dopóki cel nie zostanie zweryfikowany albo nie będzie potrzebować ciebie. `Shift+Tab` zmienia uprawnienie. **Ask**, domyślne, stosuje zmiany plików w twoim repozytorium bez pytania i pyta przed poleceniami powłoki, które nie tylko czytają. **Auto-Review** pozwala regułom i modelowi recenzującemu zatwierdzać rutynowe wywołania i odrzuca te wysokiego ryzyka; przełącz na Ask, aby zatwierdzić je samodzielnie. **Full Access** nigdy nie pyta i wyłącza piaskownicę Codewhale, choć reguły repozytorium i zarządzane zasady nadal obowiązują. Szczegóły są w [przewodniku dla v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md).
Konto nie jest wymagane. Klucze dodane przez `/provider` pozostają na Twoim
komputerze.
Nadchodzi w 0.10.3: `Shift+Tab` stanie się jednym pokrętłem przez Ask, Accept Edits, Plan, Auto-Review i Full Access, `Tab` przestanie zmieniać tryb, a Operate zostanie wycofany. Ask będzie pytać także przed każdą zmianą pliku, a nowe ustawienie domyślne, Accept Edits, będzie stosować zmiany wewnątrz repozytorium git i nadal pytać przed poleceniami. Opisuje to [aktualny przewodnik](../MODES.md).
## Bezpieczeństwo i prywatność
W Ask i Auto-Review polecenia działają w piaskownicy systemu operacyjnego, jeśli system ją ma: Seatbelt w macOS i bubblewrap w systemie Linux, gdy jest zainstalowany. Windows nie ma jeszcze piaskownicy systemowej, a Full Access wyłącza piaskownicę. W piaskownicy polecenia powłoki i sesje terminala nie mogą czytać magazynów poświadczeń, takich jak `~/.ssh`, `~/.aws` i pliki `.env`. `/preview-request` pokazuje następne żądanie z ukrytymi danymi, nie wysyłając go.
Przy uprawnieniach Ask i Auto-Review polecenia działają w piaskownicy
systemowej, jeśli system ją ma: Seatbelt w macOS i bubblewrap w Linuksie, gdy
jest zainstalowany. Windows nie ma jeszcze piaskownicy systemowej, a Full
Access wyłącza piaskownicę. W piaskownicy polecenia powłoki nie mogą odczytywać
magazynów danych uwierzytelniających, takich jak `~/.ssh`, `~/.aws` i pliki
`.env`; od 0.10.2 ta sama reguła obejmuje sesje terminala i więcej narzędzi
plikowych. `/preview-request` pokazuje zredagowany podgląd następnego
zapytania, nie wysyłając go.
Nie potrzebujesz konta, a klucze dodane przez `/provider` zostają na twoim komputerze. Z własnym kluczem API płacisz dostawcy bezpośrednio, a modele lokalne nie potrzebują klucza. Stopka i `/cost` pokazują koszt sesji, gdy cena jest znana; nieznana cena jest pokazywana jako nieznana, nigdy jako darmowa.
Telemetria jest domyślnie włączona. Wysyła zagregowane liczniki (wersja i
platforma, długość i wynik sesji, używani wbudowani dostawcy, liczniki użycia
funkcji i błędów) wraz z losowym identyfikatorem instalacji, który zmienia się
co 90 dni; nigdy nie wysyła rozmów, kodu, promptów, nazw modeli, nazw plików
ani repozytoriów, ani danych uwierzytelniających.
`codewhale config set telemetry false` ją wyłącza. Przy uruchomieniu Codewhale
sprawdza też na GitHubie, czy jest nowe wydanie; ustaw
`CODEWHALE_NO_UPDATE_CHECK=1`, aby to pominąć. Więcej o
[kolejności autoryzacji](../AUTHORIZATION_ORDER.md),
[piaskownicy](../SANDBOX.md) i [telemetrii](../TELEMETRY.md).
Telemetria jest domyślnie włączona. Wysyła zbiorcze liczniki (wersja i platforma, długość i wynik sesji, użyci wbudowani dostawcy, liczniki funkcji i błędów) z losowym identyfikatorem instalacji zmienianym co 90 dni, i nigdy nie wysyła rozmów, kodu, promptów, nazw modeli, nazw plików ani repozytoriów, ani poświadczeń. To polecenie ją wyłącza:
```bash
codewhale config set telemetry false
```
Przy starcie Codewhale sprawdza też na GitHubie, czy jest nowe wydanie; ustaw `CODEWHALE_NO_UPDATE_CHECK=1`, aby to pominąć. Więcej w [kolejności autoryzacji](../AUTHORIZATION_ORDER.md), [piaskownicy](../SANDBOX.md) i [telemetrii](../TELEMETRY.md).
## Dokąd zmierza
Codewhale staje się jednym środowiskiem obejmującym twój terminal, aplikację na komputer, przeglądarkę i komputery w chmurze, napędzanym jednym silnikiem. Każda część poniżej mówi, na jakim etapie jest dziś.
| Część | Stan | Dziś |
| --- | --- | --- |
| Aplikacja terminalowa | Wydane | Zainstaluj ją w systemie macOS, Linux lub Windows i uruchom `codewhale` w dowolnym repozytorium. |
| Lokalny klient w przeglądarce | Wydane | Uruchom `codewhale web`, aby czytać rozmowę, wysyłać zadanie i odpowiadać na prośby o zatwierdzenie w przeglądarce; jest dołączony do terminala i nie wymaga konta. |
| Wielu agentów przy jednym zadaniu | Wydane | Podagenci, Fleety i przepływy pracy pozwalają kilku agentom dzielić jedno zadanie, każdemu z własną rolą. |
| Aplikacja na komputer | W rozwoju, bez pobierania | Budujemy aplikację na komputer na tym samym silniku i nie ma ona jeszcze publicznego pobierania. |
| Komputery w chmurze | Tylko na zaproszenie | Komputery w chmurze są dostępne tylko na zaproszenie, a budujemy je tak, by sesja mogła dalej pracować na maszynie w chmurze. |
| Jedna sesja przez wszystkie | W budowie | Budujemy jedną sesję, która idzie z tobą od terminala do aplikacji na komputer, przeglądarki i chmury i przez całą drogę pozostaje twoja. |
[Plan rozwoju](../ROADMAP.md) mówi, co obejmuje każde wydanie i gdzie możesz pomóc.
## Jeśli przechodzisz z innego agenta
Codewhale sam czyta `AGENTS.md`. Pliki instrukcji pisane dla innych narzędzi, takie jak `CLAUDE.md`, `.cursorrules` czy `.github/copilot-instructions.md`, są wczytywane tylko wtedy, gdy włączysz je przez `project_instruction_imports = ["claude"]` (lub `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) w konfiguracji; zobacz [config.example.toml](../../config.example.toml). Codewhale ostrzega, gdy znajdzie taki plik i go nie wczyta.
`/import-claude` przygotowuje import twoich ustawień Claude Code i serwerów MCP do przejrzenia. `/plugin install` przyjmuje wtyczki Claude Code zawierające umiejętności, polecenia, profile agentów i serwery MCP, a odrzuca wtyczki, które potrzebują hooków lub serwerów LSP ([szczegóły](../CLAUDE_PLUGIN_COMPAT.md)).
## Dokumentacja
| Zacznij tutaj | Materiały referencyjne |
Te przewodniki odpowiadają gałęzi głównej i mogą opisywać zmiany, których nie ma jeszcze w najnowszym wydaniu.
| Zacznij tutaj | Dokumentacja techniczna |
| --- | --- |
| [Instalacja](../INSTALL.md) | [Konfiguracja](../CONFIGURATION.md) |
| [Dostawcy i modele lokalne](../PROVIDERS.md) | [Architektura](../ARCHITECTURE.md) |
| [Tryby i uprawnienia](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Skróty klawiszowe](../KEYBINDINGS.md) | [Tworzenie wtyczek](../PLUGIN_AUTHORING.md) |
| [Przegląd PR na GitHubie](../GITHUB_ACTION.md) | [Cała dokumentacja](../README.md) |
| [Przewodnik użytkownika](../GUIDE.md) | [Konfiguracja](../CONFIGURATION.md) |
| [Instalacja](../INSTALL.md) | [Architektura](../ARCHITECTURE.md) |
| [Dostawcy i modele lokalne](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Tryby i uprawnienia](../MODES.md) | [Pisanie wtyczek](../PLUGIN_AUTHORING.md) |
| [Skróty klawiszowe](../KEYBINDINGS.md) | [Potwierdzenia](../RECEIPTS.md) |
| [Przegląd pull requestów na GitHubie](../GITHUB_ACTION.md) | [Cała dokumentacja](../README.md) |
## Społeczność
## Współtworzenie
Codewhale jest tym, czym jest, dzięki swojej społeczności, a każda opinia jest mile widziana: błąd, pomysł albo coś, co źle wyglądało lub źle się używało.
[Otwórz issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) w każdej z tych spraw; issue to także najlepsze miejsce, by zacząć nową funkcję.
Pull requesty są mile widziane w przypadku poprawek, tłumaczeń, dostawców i zaplanowanych prac.
[Przewodnik dla współtwórców](../../CONTRIBUTING.md) pokazuje, dokąd trafia każdy rodzaj pomocy, a [plan rozwoju](../ROADMAP.md) pokazuje, dokąd zmierza projekt.
Współtwórcy zachowują autorstwo włączonej pracy, a [układ repozytorium](../../CONTRIBUTING.md#project-structure) pokazuje, gdzie co się znajduje.
Codewhale budują otwarcie ludzie, którzy z niego korzystają, w wielu językach.
Rozmawiaj na [Discordzie](https://discord.gg/37gfS3ksug) albo dodaj opiekuna
projektu, Huntera, na WeChacie (`hunterbown`) i poproś o dołączenie do grupy
Whale Brothers. Każdy jest mile widziany.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Ściana współtwórców Codewhale: awatar każdej osoby, której kod, współautorskie commity, kontynuowane pull requesty lub uznane zgłoszenia są w Codewhale, a na górze łączna liczba."></a>
[Ściana współtwórców](../CONTRIBUTORS.md) liczy wszystkich, których kod, współautorskie commity, kontynuowane pull requesty lub uznane zgłoszenia są w Codewhale, także osoby pomijane przez własną listę współtwórców GitHuba. `scripts/contributor-wall.py` odtwarza obraz i listę z historii git i danych z GitHuba.
Każda opinia jest mile widziana: błąd, pomysł albo coś, co wyglądało lub działało źle. [Otwórz issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) w każdej z tych spraw; issue to też najlepsze miejsce, by zacząć nową funkcję. Pull requesty są mile widziane przy poprawkach, tłumaczeniach, dostawcach i zaplanowanej pracy. Pytania zadawaj w [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). [Przewodnik dla współtwórców](../../CONTRIBUTING.md) pokazuje, dokąd trafia każdy rodzaj pomocy, jak twoja praca wchodzi do projektu pod twoim nazwiskiem i [gdzie co leży](../../CONTRIBUTING.md#project-structure).
Rozmawiaj na [Discordzie](https://discord.gg/37gfS3ksug) albo dodaj opiekuna projektu, Huntera, na WeChacie (`hunterbown`) i poproś o dołączenie do grupy Whale Brothers. Każdy jest mile widziany.
## Historia i licencja
Codewhale zaczynał jako `deepseek-tui` i nadal czyta konfigurację oraz sesje
tego projektu. Jest utrzymywany niezależnie i nie jest powiązany z DeepSeek ani
z żadnym innym dostawcą modeli. Dziękujemy
[wszystkim, którzy wnieśli swój wkład](../CONTRIBUTORS.md).
Codewhale zaczynał jako `deepseek-tui` i nadal czyta konfigurację i sesje tamtego projektu. Jest utrzymywany niezależnie i nie jest powiązany z DeepSeek ani z żadnym innym dostawcą modeli.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Kod zaadaptowany z innych projektów open source wymieniono w
[informacjach o komponentach zewnętrznych](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Kod zaadaptowany z innych projektów open source jest wymieniony w informacjach o stronach trzecich dla [dołączonych źródeł](../../THIRD_PARTY_NOTICES.md) i [zaadaptowanych rozwiązań](../THIRD_PARTY_NOTICES.md).
+100 -223
View File
@@ -1,288 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Um agente de programação de código aberto para o seu terminal que funciona com qualquer modelo.**
<h1>O modelo pode ser de qualquer pessoa. O agente deve ser seu.</h1>
Dê uma tarefa ao Codewhale e ele lê o repositório, edita arquivos e executa
comandos até concluir a tarefa ou precisar de uma resposta sua. Ele funciona com
mais de 40 provedores integrados, com DeepSeek V4.1 Flash como padrão, e com modelos
rodando na sua própria máquina. `/receipts` lista os arquivos que ele alterou,
os comandos que executou e as chamadas web e MCP que fez.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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)
[Site](https://codewhale.net) · [Documentação](../README.md) · [Changelog](../../CHANGELOG.md) · [Contribuindo](../../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) · [Русский](README.ru.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Uma sessão de terminal do Codewhale" width="760">
<sub>Um build de desenvolvimento da 0.10.2 com um modelo de teste roteirizado, em Acesso total dentro de um workspace descartável. A edição, três testes e uma revisão de sub-agente rodaram de verdade.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — 30% a mais de uso do DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Ver a oferta Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). A Codewhale recebe uma comissão por indicação da OrcaRouter.
## Instalação
macOS e Linux:
Codewhale é um agente de programação de código aberto para o seu terminal, escrito em Rust. Ele funciona com qualquer modelo, pode dividir uma tarefa entre vários agentes, e você pode ler cada linha do código.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
O instalador coloca `codewhale` e o alias curto `codew`, com checksum
verificado, em `~/.local/bin`. Se depois o shell responder `command not found`,
execute a linha de PATH que o instalador exibe
([detalhes](../INSTALL.md#put-it-on-your-path)). `codewhale update` faz a
atualização. Esses comandos instalam a versão mais recente. Esta página
acompanha a branch `main`, então um recurso marcado com uma versão chega nessa
versão; o [changelog](../../CHANGELOG.md) lista o que cada versão traz.
Isso instala a versão mais recente no macOS ou no Linux, e não exige conta. [Windows, npm e Cargo](#instalação) estão mais abaixo.
<details>
<summary><b>Windows, npm, Cargo e outras formas de instalar</b></summary>
[![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)
[Site](https://codewhale.net) · [Documentação](../README.md) · [Registro de alterações](../../CHANGELOG.md) · [Contribuir](../../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) · [Русский](README.ru.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)
<sub>Esta tradução é um rascunho automático que ainda não foi revisado por um falante nativo.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale em um terminal depois de uma tarefa de demonstração. Ele informa que adicionou uma opção --json ao export.py, que os 3 testes locais passaram e que uma revisão delegada não encontrou problemas. A lista de tarefas abaixo mostra três etapas concluídas, e a linha de status mostra Full Access e o provedor local website-demo.">
<sub>Uma build de desenvolvimento da 0.10.3, que ainda não foi lançada, com um modelo de teste roteirizado, em Full Access dentro de um workspace descartável. A edição, três testes e uma revisão por um subagente rodaram de verdade.</sub>
</div>
## Instalação
O comando acima coloca o `codewhale`, verificado por checksum, e seu apelido curto `codew` em `~/.local/bin`. Se depois o shell disser `command not found`, siga a nota sobre o PATH que o instalador imprime ([detalhes](../INSTALL.md#put-it-on-your-path)). `codewhale update` faz a atualização.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
Há binários pré-compilados para Linux, macOS e Windows em x64 e arm64. Nix,
Homebrew no Linux, Android/Termux (prévia) e downloads manuais estão no
[guia de instalação](../INSTALL.md), e contêineres em
[Docker](../DOCKER.md). Use um único método de instalação por máquina; caso
contrário, duas cópias acabam no `PATH` e vale a que vier primeiro.
</details>
Há binários pré-compilados para Linux, macOS e Windows em x64 e arm64. Scoop, Nix, Homebrew no Linux, Android e Termux (prévia) e downloads manuais estão no [guia de instalação](../INSTALL.md), e contêineres em [Docker](../DOCKER.md). Use um único método de instalação por máquina; senão duas cópias ficam no seu `PATH` e vale a que aparecer primeiro.
## Início rápido
1. Faça commit ou stash do seu trabalho e execute `codewhale` na raiz de um
repositório git. Por padrão (**Aceitar edições**, Accept Edits), ele edita arquivos no repositório sem perguntar
e pergunta antes de cada comando; `Shift+Tab` percorre o seletor de permissões quando você quiser que ele pergunte mais ou menos.
2. Execute `/provider` (ou pressione `F3`), escolha um provedor, cole a chave
de API dele e escolha um modelo. DeepSeek é o provedor padrão. Sem uma
chave, escolha um runtime local. Se nenhum provedor estiver configurado e o
Ollama já estiver servindo um modelo de chat, o Codewhale passa a usá-lo
automaticamente; a partir da 0.10.2, ele o oferece quando você envia sua
primeira mensagem.
1. Faça commit ou stash do seu trabalho e rode `codewhale` na raiz de um repositório git. Por padrão, ele aplica edições de arquivos no repositório sem perguntar e pergunta antes de cada comando de shell que não seja somente leitura.
2. Rode `/provider` (ou pressione `F3`), escolha um provedor, cole a chave de API e escolha um modelo. DeepSeek é o provedor padrão. Na primeira execução sem chave, o Codewhale pede um provedor quando você envia a primeira mensagem, e oferece um modelo local quando um servidor Ollama local responde.
3. Digite uma tarefa:
```text
Fix the failing tests and explain what changed.
```
Comandos somente leitura rodam na hora. Para qualquer outro comando de shell, o
Codewhale pergunta antes: `y` executa uma vez, `a` permite comandos parecidos
pelo resto da conversa, `n` recusa. `/undo` desfaz seu último pedido e as
alterações de arquivos que ele fez.
`/help` lista os comandos e as teclas.
Comandos somente leitura rodam na hora. Para qualquer outro comando de shell, o Codewhale pergunta antes: `y` roda uma vez, `a` permite comandos parecidos pelo resto da conversa, e `n` recusa. `/undo` desfaz seu último pedido e as alterações de arquivos dele, e `/help` lista comandos e teclas.
Para scripts e CI, `codewhale exec` executa uma tarefa sem a interface. Por
padrão, `--auto` usa Acesso total: as ferramentas rodam sem perguntar, os
comandos de shell não têm o sandbox do Codewhale e o modo de confiança permite
que as ferramentas de arquivos escrevam fora do workspace. Adicione
`--sandbox workspace-write` para manter o sandbox do shell e as restrições das
ferramentas de arquivos ao workspace, com o modo de confiança desligado:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modos e permissões
Uma instalação nova começa no modo Work com a permissão Aceitar edições. Um único seletor alterna os dois: `Shift+Tab` percorre Perguntar → Aceitar edições → Plan → Revisão automática → Acesso total.
| | Alterne com | Opções |
| --- | --- | --- |
| Modo | a parada Plan do `Shift+Tab`, ou `/mode` | **Plan** lê e pesquisa, mas não altera nada. **Work** (todas as outras paradas) edita arquivos e executa comandos; inicie um objetivo com `/goal` quando uma solicitação precisar de mais de um turno. |
| Permissão | `Shift+Tab` | **Perguntar** (Ask) pergunta antes de toda edição de arquivo e de todo comando de shell que não seja somente leitura. **Aceitar edições** (Accept Edits) aplica edições de arquivos no seu repositório git sem perguntar e continua perguntando antes de comandos. **Revisão automática** (Auto-Review) deixa regras e um modelo revisor aprovarem chamadas rotineiras e recusa as de alto risco; mude para Perguntar para aprová-las você mesmo. **Acesso total** (Full Access) nunca pergunta, e os comandos podem acessar tudo neste computador; as regras do repositório e a política gerenciada continuam valendo. |
Os detalhes estão no [guia de modos e permissões](../MODES.md).
Para scripts e CI, `codewhale exec` roda uma tarefa sem a interface. Leia [execuções sem interface](../INSTALL.md#headless-scripts-ci) antes de dar ferramentas a ele com `--auto`, porque `--auto` usa Full Access a menos que você adicione um sandbox.
## O que ele faz
### Novidades na 0.10.2
Dê uma tarefa ao Codewhale e ele lê o repositório, edita arquivos e roda comandos até a tarefa terminar ou precisar da sua resposta. As [notas da versão mais recente](https://github.com/codewhale-hq/Codewhale/releases/latest) listam as mudanças mais novas, e o [changelog](../../CHANGELOG.md) traz todas as versões.
- `/pet on` transforma o seu terminal em uma baleia animada que mostra o que o
agente está fazendo, enquanto a caixa de mensagem continua ativa. Suas 980
partículas escrevem a etapa atual em inglês, chinês ou japonês.
- `/workbar terminal` mostra os shells que o agente está executando enquanto
eles rodam. Digite em um deles ou pressione `Ctrl+N` para abrir um shell só
seu (macOS e Linux).
- `/undo` desfaz todo o seu último pedido de uma vez, incluindo cada arquivo que
ele alterou, e `/diff` funciona em pastas sem Git.
- Quando um plano está pronto, o Codewhale pergunta se você quer começar o
Work com Perguntar ou Revisão automática, ou continuar planejando.
- `/color` dá a cada chat sua própria cor na caixa de mensagem, salva com a
sessão.
- `web_search` pode usar a nova Search API da DeepSeek: defina
`[search] provider = "deepseek"` com uma chave da DeepSeek.
- Fora do Acesso total, um `curl` ou `wget` que enviaria uma credencial nunca
roda sem a sua aprovação, e um comando que esconde Unicode invisível é
recusado. `write` não substitui mais um arquivo que o agente não leu, nem um
que mudou depois que ele o leu.
### Qualquer modelo
### Modelos
Mais de 40 provedores vêm integrados, entre eles Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter e xAI. Qualquer endpoint compatível com a OpenAI funciona, assim como modelos locais via Ollama, vLLM ou SGLang. O modelo padrão é o `deepseek-flash` da DeepSeek, que agora serve o DeepSeek V4.1 Flash ([detalhes](../PROVIDERS.md#deepseek-v41-flash)).
Mais de 40 provedores vêm integrados, incluindo Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter e xAI. Qualquer endpoint compatível com
OpenAI funciona, assim como modelos locais via Ollama, vLLM ou SGLang. O padrão
é o `deepseek-flash` da DeepSeek, que a DeepSeek passou para o
DeepSeek-V4.1-Flash-1017 em 2026-10-17; a 0.10.1 o executa sem precisar de
atualização ([detalhes](../PROVIDERS.md#deepseek-v41-flash)).
`/model` troca de modelo entre turnos, e `/model auto` escolhe um para cada
turno (`/router` configura como). `/turn inspect` mostra qual modelo um turno
usou, quanto custou e quanto tempo levou. `codewhale auth chatgpt` permite usar
um plano do ChatGPT em vez de uma chave de API (experimental). Veja
[Provedores](../PROVIDERS.md).
`/model` troca de modelo entre turnos, e `/model auto` escolhe um para cada turno (`/router` define como). `/turn inspect` mostra qual modelo um turno usou, quanto custou e quanto tempo levou. Veja [Provedores](../PROVIDERS.md).
### Recibos e desfazer
`/receipts`, ou `codewhale receipts --last` depois que você sai, lista os
arquivos alterados, os comandos executados, as chamadas web e MCP, os agentes
iniciados, as aprovações e quem as deu, e as falhas. `/undo` desfaz seu último pedido e os arquivos que ele alterou, em uma única etapa e sem o modo de confiança. `/restore` volta o workspace inteiro para um snapshot
anterior; como isso sobrescreve edições posteriores, exige `/trust on` ou Acesso
total. Veja [Recibos](../RECEIPTS.md).
`/receipts`, ou `codewhale receipts --last` depois de sair, lista os arquivos que uma sessão alterou, os comandos que rodou, as chamadas web e MCP, os agentes que iniciou, cada aprovação e quem a deu, e o que falhou. `/undo` desfaz seu último pedido e os arquivos que ele alterou em um passo. `/restore` volta todo o workspace para um snapshot anterior e, como isso sobrescreve edições posteriores, exige `/trust on` ou Full Access. Veja [Recibos](../RECEIPTS.md).
As execuções de exec que oferecem ferramentas são salvas em todos os formatos
de saída, então `codewhale receipts --last` funciona depois de `exec --auto`,
inclusive com `--json`. As execuções que só dão uma resposta em texto ou com
`--json` são salvas apenas ao retomar uma conversa ou quando a compactação da
conversa começa; use `--output-format stream-json` para sempre salvá-las para
os recibos ou para `exec --continue`.
### Vários agentes em uma tarefa
### Trabalhos mais longos
`/goal` define um objetivo que se mantém entre turnos. O Codewhale pode dividir
o trabalho entre [sub-agentes](../SUBAGENTS.md), executar uma
[frota](../FLEET.md) de agentes ou seguir um
[workflow](../WORKFLOW_AUTHORING.md) versionado no repositório.
### Vindo de outro agente
O Codewhale lê o `AGENTS.md` por conta própria. Arquivos de instruções escritos
para outras ferramentas, como `CLAUDE.md`, `.cursorrules` ou
`.github/copilot-instructions.md`, só são carregados quando você opta por eles
com `project_instruction_imports = ["claude"]` (ou `"cursor"`, `"cline"`,
`"windsurf"`, `"copilot"`, `"all"`) na sua configuração; veja
[config.example.toml](../../config.example.toml). O Codewhale avisa quando encontra
um que não carregou.
`/import-claude` prepara uma importação das suas configurações e servidores MCP
do Claude Code para você revisar. `/plugin install` aceita plugins do Claude
Code que contêm skills, comandos, perfis de agente e servidores MCP, e recusa
plugins que precisam de hooks ou servidores LSP
([detalhes](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` define um objetivo que continua entre turnos. O Codewhale pode dividir o trabalho entre [subagentes](../SUBAGENTS.md), rodar uma [Fleet](../FLEET.md) de agentes com papéis e modelos próprios, ou seguir um [fluxo de trabalho](../WORKFLOW_AUTHORING.md) salvo no repositório.
### Extensões
Conecte [servidores MCP](../MCP.md), adicione [skills](../SKILLS.md) e
[plugins](../PLUGINS.md) e execute [hooks](../HOOKS.md) em eventos de
sessão e de ferramentas. O Code mode (experimental, ativado por padrão) permite
que o modelo escreva um único programa `execute_tools` que chama várias
ferramentas de MCP e de plugins; cada chamada continua sujeita às suas regras de
aprovação e mantém o seu recibo. O plugin Computer Use instalado separadamente (experimental,
só no macOS) pode observar e operar outros aplicativos. Ele fica desligado até você
revisar o acesso dele e ativá-lo
([guia](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Conecte [servidores MCP](../MCP.md), adicione [skills](../SKILLS.md) e [plugins](../PLUGINS.md), e rode [hooks](../HOOKS.md) em eventos de sessão e de ferramentas. O modo código (experimental, ativado por padrão) permite que o modelo escreva um programa `execute_tools` que chama várias ferramentas MCP e de plugins; cada chamada continua seguindo suas regras de aprovação e mantém seu recibo. O plugin Computer Use incluído na v0.10.2 (experimental, só macOS) pode observar e operar outros apps, e fica desligado até você revisar o acesso dele e ativá-lo ([guia](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Chegando na 0.10.3: o plugin passa a ser lançado [separadamente](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Formas de executar
### Formas de rodar
| Comando | O que faz |
| --- | --- |
| `codewhale` | O aplicativo interativo de terminal |
| `codewhale exec "…"` | Uma tarefa sem a interface. Sozinho, ele responde sem usar ferramentas; `--auto` habilita ferramentas com Acesso total por padrão, `--sandbox workspace-write` as restringe, e `--output-format stream-json` transmite os eventos como JSON |
| `codewhale web` | Uma interface web local em `127.0.0.1` ([guia](../WEB.md)) |
| `codewhale review --pr N` | Uma revisão consultiva de um pull request do GitHub. A [configuração do bot do GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) gera um workflow com versão fixada para revisões automáticas e `@codewhale review`, usando sua própria chave de modelo e uma identidade de App opcional |
| `codewhale` | O app interativo de terminal |
| `codewhale exec "…"` | Uma tarefa sem a interface, para scripts e CI ([execuções sem interface](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Um cliente web local em `127.0.0.1` ([guia](../WEB.md)) |
| `codewhale review --pr N` | Uma revisão consultiva de um pull request do GitHub; a [configuração do bot do GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) a roda com a sua própria chave de modelo |
| `codewhale app-server --http` | A [Runtime API](../RUNTIME_API.md), uma API HTTP local para threads, eventos, aprovações e as alterações de arquivos de cada turno |
| `codewhale serve --acp` | O Agent Client Protocol via stdio, para editores como o Zed |
O aplicativo de terminal, o `exec`, o `web` e a Runtime API compartilham um
único engine ([arquitetura](../ARCHITECTURE.md)). Uma
[extensão do VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
mantida pela comunidade se conecta a ele pela barra lateral
([código-fonte](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Um aplicativo desktop nativo baseado na Runtime API está em desenvolvimento;
ainda não há download público.
O app de terminal, `exec`, `web` e a Runtime API compartilham um motor ([arquitetura](../ARCHITECTURE.md)). Uma [extensão para VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) mantida pela comunidade se conecta a ele pela barra lateral ([código-fonte](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Custo e contas
## Como ele se mantém seguro
O Codewhale é gratuito e tem licença MIT. Com sua própria chave de API, você
paga diretamente ao provedor; modelos locais não precisam de chave. O rodapé e
`/cost` mostram quanto uma sessão custou quando o preço é conhecido, e um preço
desconhecido aparece como desconhecido, nunca como gratuito.
Duas chaves dizem quanto o Codewhale pode fazer sozinho. Com a entrada vazia, `Tab` troca o modo: **Plan** lê e pesquisa mas não muda nada, **Work** edita arquivos e roda comandos, e **Operate** tem o mesmo acesso que Work e continua até o objetivo ser verificado ou precisar de você. `Shift+Tab` troca a permissão. **Ask**, o padrão, aplica edições de arquivos no seu repositório sem perguntar e pergunta antes de comandos de shell que não são somente leitura. **Auto-Review** deixa regras e um modelo revisor aprovarem chamadas rotineiras e recusa as de alto risco; mude para Ask para aprová-las você mesmo. **Full Access** nunca pergunta e desliga o sandbox do Codewhale, embora as regras do repositório e a política gerenciada continuem valendo. O [guia da v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) tem os detalhes.
Você não precisa de uma conta. As chaves que você adiciona com `/provider`
ficam na sua máquina.
Chegando na 0.10.3: `Shift+Tab` vira um único seletor que passa por Ask, Accept Edits, Plan, Auto-Review e Full Access, `Tab` deixa de trocar o modo e Operate é aposentado. Ask passará a perguntar também antes de cada edição de arquivo, e o novo padrão, Accept Edits, aplicará edições dentro do repositório git e continuará perguntando antes de comandos. O [guia atual](../MODES.md) descreve isso.
## Segurança e privacidade
Em Ask e Auto-Review, os comandos rodam em um sandbox do sistema operacional quando o sistema tem um: Seatbelt no macOS, e bubblewrap no Linux quando está instalado. O Windows ainda não tem sandbox do sistema, e Full Access desliga o sandbox. Dentro do sandbox, comandos de shell e sessões de terminal não conseguem ler armazenamentos de credenciais como `~/.ssh`, `~/.aws` e arquivos `.env`. `/preview-request` mostra uma prévia com dados ocultos da próxima requisição sem enviá-la.
Em Perguntar e Revisão automática, os comandos rodam em um sandbox do sistema
operacional quando o sistema tem um: Seatbelt no macOS e bubblewrap no Linux,
quando está instalado. O Windows ainda não tem sandbox do sistema operacional,
e o Acesso total desliga o sandbox. Dentro do sandbox, comandos de shell não
conseguem ler armazenamentos de credenciais como `~/.ssh`, `~/.aws` e arquivos
`.env`; a partir da 0.10.2, a mesma regra vale para sessões de terminal e mais
ferramentas de arquivos. `/preview-request` mostra uma prévia da próxima
requisição, com dados sensíveis ocultados, sem enviá-la.
Você não precisa de conta, e as chaves adicionadas com `/provider` ficam na sua máquina. Com a sua própria chave de API, você paga o provedor diretamente, e modelos locais não precisam de chave. O rodapé e `/cost` mostram quanto uma sessão custou quando o preço é conhecido, e um preço desconhecido aparece como desconhecido, nunca como grátis.
A telemetria vem ativada por padrão. Ela envia contagens agregadas (versão e
plataforma, duração e resultado da sessão, quais provedores integrados você
usou, contagens de recursos e de erros) com um ID de instalação aleatório que
muda a cada 90 dias, e nunca envia conversas, código, prompts, nomes de modelos,
nomes de arquivos ou de repositórios, nem credenciais. `codewhale config set telemetry false` a desativa. Na
inicialização, o Codewhale também consulta o GitHub em busca de uma nova
versão; defina `CODEWHALE_NO_UPDATE_CHECK=1` para pular essa verificação. Mais
em [ordem de autorização](../AUTHORIZATION_ORDER.md),
[sandboxing](../SANDBOX.md) e [telemetria](../TELEMETRY.md).
A telemetria vem ativada por padrão. Ela envia contagens agregadas (versão e plataforma, duração e resultado da sessão, quais provedores integrados você usou, contagens de recursos e de erros) com um ID de instalação aleatório que muda a cada 90 dias, e nunca conversas, código, prompts, nomes de modelos, nomes de arquivos ou repositórios, nem credenciais. Este comando a desativa:
```bash
codewhale config set telemetry false
```
Ao iniciar, o Codewhale também verifica no GitHub se há uma versão nova; defina `CODEWHALE_NO_UPDATE_CHECK=1` para pular isso. Mais em [ordem de autorização](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) e [telemetria](../TELEMETRY.md).
## Para onde ele vai
O Codewhale está se tornando um único ambiente que abrange seu terminal, um aplicativo de desktop, o navegador e computadores na nuvem, tudo movido por um só motor. Cada parte abaixo diz em que ponto está hoje.
| Parte | Estado | Hoje |
| --- | --- | --- |
| Aplicativo de terminal | Lançado | Instale no macOS, Linux ou Windows e execute `codewhale` em qualquer repositório. |
| Cliente de navegador local | Lançado | Execute `codewhale web` para ler a conversa, enviar uma tarefa e responder a aprovações no navegador; ele vem com o terminal e não exige conta. |
| Vários agentes em uma tarefa | Lançado | Subagentes, Fleets e fluxos de trabalho permitem que vários agentes dividam uma tarefa, cada um com seu papel. |
| Aplicativo de desktop | Em desenvolvimento, sem download | Estamos construindo um aplicativo de desktop sobre o mesmo motor, e ele ainda não tem download público. |
| Computadores na nuvem | Somente por convite | Os computadores na nuvem são somente por convite, e estamos construindo esses computadores para que uma sessão continue trabalhando em uma máquina na nuvem. |
| Uma sessão por todos eles | Em construção | Estamos construindo uma sessão que acompanha você do terminal ao desktop, ao navegador e à nuvem, e continua sua durante todo o caminho. |
O [roteiro](../ROADMAP.md) diz o que cada versão cobre e onde você pode ajudar.
## Vindo de outro agente
O Codewhale lê o `AGENTS.md` por conta própria. Arquivos de instruções escritos para outras ferramentas, como `CLAUDE.md`, `.cursorrules` ou `.github/copilot-instructions.md`, só são carregados quando você ativa com `project_instruction_imports = ["claude"]` (ou `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) na sua configuração; veja [config.example.toml](../../config.example.toml). O Codewhale avisa quando encontra um que não carregou.
`/import-claude` prepara uma importação das suas configurações do Claude Code e dos servidores MCP para você revisar. `/plugin install` aceita plugins do Claude Code que contêm skills, comandos, perfis de agente e servidores MCP, e recusa plugins que precisam de hooks ou servidores LSP ([detalhes](../CLAUDE_PLUGIN_COMPAT.md)).
## Documentação
Estes guias acompanham o branch principal e podem descrever mudanças que ainda não estão na versão mais recente.
| Comece aqui | Referência |
| --- | --- |
| [Instalação](../INSTALL.md) | [Configuração](../CONFIGURATION.md) |
| [Provedores e modelos locais](../PROVIDERS.md) | [Arquitetura](../ARCHITECTURE.md) |
| [Modos e permissões](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Atalhos de teclado](../KEYBINDINGS.md) | [Criação de plugins](../PLUGIN_AUTHORING.md) |
| [Revisão de PR no GitHub](../GITHUB_ACTION.md) | [Toda a documentação](../README.md) |
| [Guia do usuário](../GUIDE.md) | [Configuração](../CONFIGURATION.md) |
| [Instalação](../INSTALL.md) | [Arquitetura](../ARCHITECTURE.md) |
| [Provedores e modelos locais](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modos e permissões](../MODES.md) | [Criação de plugins](../PLUGIN_AUTHORING.md) |
| [Atalhos de teclado](../KEYBINDINGS.md) | [Recibos](../RECEIPTS.md) |
| [Revisão de pull requests no GitHub](../GITHUB_ACTION.md) | [Toda a documentação](../README.md) |
## Comunidade
## Contribuir
O Codewhale é o que é graças à comunidade, e todo feedback é bem-vindo: um bug, uma ideia ou algo que pareceu estranho ao ver ou ao usar.
[Abra uma issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) para qualquer um deles; uma issue também é o melhor lugar para começar um recurso novo.
Pull requests são bem-vindos para correções, traduções, provedores e trabalho já planejado.
O [guia de contribuição](../../CONTRIBUTING.md) mostra para onde vai cada tipo de ajuda, e o [roadmap](../ROADMAP.md) mostra para onde o projeto está indo.
Quem contribui mantém o crédito pelo trabalho incorporado, e a [estrutura do repositório](../../CONTRIBUTING.md#project-structure) mostra onde fica cada coisa.
O Codewhale é construído abertamente por quem o usa, em muitos idiomas.
Converse no [Discord](https://discord.gg/37gfS3ksug), ou adicione o mantenedor,
Hunter, no WeChat (`hunterbown`) e peça para entrar no grupo Whale Brothers. Todas as pessoas são bem-vindas.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="O mural de contribuidores do Codewhale: um avatar para cada pessoa cujo código, commits em coautoria, pull requests continuados ou relatos creditados estão no Codewhale, com o total no topo."></a>
## Histórico e licença
O [mural de contribuidores](../CONTRIBUTORS.md) conta todas as pessoas cujo código, commits em coautoria, pull requests continuados ou relatos creditados estão no Codewhale, inclusive quem a própria lista de contribuidores do GitHub deixa de fora. `scripts/contributor-wall.py` gera de novo a imagem e a lista a partir do histórico do git e do GitHub.
O Codewhale começou como `deepseek-tui` e ainda lê a configuração e as sessões
desse projeto. Ele é mantido de forma independente e não é afiliado à DeepSeek
nem a nenhum outro provedor de modelos. Agradecemos a
[todos que contribuíram](../CONTRIBUTORS.md).
Todo retorno é bem-vindo: um bug, uma ideia ou algo que parecia ou soava errado. [Abra uma issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) para qualquer um deles; uma issue também é o melhor lugar para começar um recurso novo. Pull requests são bem-vindos para correções, traduções, provedores e trabalho planejado. Perguntas vão para o [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). O [guia de contribuição](../../CONTRIBUTING.md) mostra para onde vai cada tipo de ajuda, como o seu trabalho entra com o seu nome, e [onde fica cada coisa](../../CONTRIBUTING.md#project-structure).
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
Converse no [Discord](https://discord.gg/37gfS3ksug), ou adicione o mantenedor, Hunter, no WeChat (`hunterbown`) e peça para entrar no grupo Whale Brothers. Todos são bem-vindos.
[MIT](../../LICENSE). O código adaptado de outros projetos de código aberto está
listado nos [avisos de terceiros](../THIRD_PARTY_NOTICES.md).
## História e licença
O Codewhale começou como `deepseek-tui` e ainda lê a configuração e as sessões daquele projeto. Ele é mantido de forma independente e não é afiliado à DeepSeek nem a nenhum outro provedor de modelos.
[MIT](../../LICENSE). O código adaptado de outros projetos de código aberto está listado nos avisos de terceiros para [fontes incluídas](../../THIRD_PARTY_NOTICES.md) e [designs adaptados](../THIRD_PARTY_NOTICES.md).
+102 -228
View File
@@ -1,291 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Агент для программирования в терминале с открытым исходным кодом, который работает с любой моделью.**
<h1>Модель может быть чьей угодно. Агент должен быть вашим.</h1>
Дайте Codewhale задачу, и он читает репозиторий, редактирует файлы и выполняет
команды, пока задача не будет решена или ему не понадобится ваш ответ. Он
работает с более чем 40 встроенными провайдерами (по умолчанию — DeepSeek V4.1
Flash) и с моделями, запущенными на вашей собственной машине. `/receipts`
перечисляет файлы, которые он изменил, команды, которые он выполнил, и
сделанные им веб- и MCP-вызовы.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Сессия Codewhale в терминале" width="760">
<sub>Сборка 0.10.2 для разработки с тестовой моделью, работающей по сценарию, с разрешением Full Access в одноразовой рабочей области. Правка, три теста и проверка субагентом были выполнены по-настоящему.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — на 30% больше использования DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Посмотреть предложение Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale получает от OrcaRouter вознаграждение за рекомендации.
## Установка
macOS и Linux:
Codewhale — агент для программирования с открытым исходным кодом для вашего терминала, написанный на Rust. Он работает с любой моделью, умеет разделить одну задачу между несколькими агентами, и каждую его строку можно прочитать.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Установщик проверяет контрольные суммы и кладёт `codewhale` и его короткий
псевдоним `codew` в `~/.local/bin`. Если после этого оболочка выдаёт
`command not found`, выполните строку для PATH, которую выводит установщик
([подробнее](../INSTALL.md#put-it-on-your-path)). Обновление — командой
`codewhale update`. Эти команды устанавливают последний релиз. Страница
описывает ветку `main`, поэтому функция с пометкой версии появится в
соответствующем релизе; что добавляет каждый релиз, смотрите в
[списке изменений](../../CHANGELOG.md).
Эта команда устанавливает последний выпуск на macOS или Linux, и учётная запись не нужна. [Windows, npm и Cargo](#установка) описаны ниже.
<details>
<summary><b>Windows, npm, Cargo и другие способы установки</b></summary>
[![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)
<sub>Этот перевод — машинный черновик, ещё не проверенный носителями языка.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale в терминале после демонстрационной задачи. Он сообщает, что добавил флаг --json в export.py, что все 3 локальных теста прошли и что делегированная проверка не нашла проблем. Список задач ниже показывает три выполненных шага, а строка состояния — Full Access и локального провайдера website-demo.">
<sub>Сборка разработки версии 0.10.3, которая ещё не выпущена, со сценарной тестовой моделью, в режиме Full Access в одноразовом рабочем пространстве. Правка, три теста и проверка субагентом выполнялись по-настоящему.</sub>
</div>
## Установка
Команда выше помещает проверенный по контрольной сумме `codewhale` и его короткий псевдоним `codew` в `~/.local/bin`. Если после этого оболочка пишет `command not found`, следуйте подсказке про PATH, которую выводит установщик ([подробнее](../INSTALL.md#put-it-on-your-path)). `codewhale update` обновляет его.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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. Nix,
Homebrew в Linux, Android/Termux (предварительная версия) и ручная загрузка
описаны в [руководстве по установке](../INSTALL.md), а контейнеры — в разделе
[Docker](../DOCKER.md). Используйте на одной машине только один способ
установки, иначе в `PATH` окажутся две копии и сработает та, что стоит первой.
</details>
Готовые бинарные файлы есть для Linux, macOS и Windows на x64 и arm64. Scoop, Nix, Homebrew в Linux, Android и Termux (предварительная версия) и ручная загрузка описаны в [руководстве по установке](../INSTALL.md), а контейнеры — в [Docker](../DOCKER.md). Используйте на одной машине только один способ установки; иначе в `PATH` окажутся две копии, и сработает та, что найдётся первой.
## Быстрый старт
1. Закоммитьте свои изменения или уберите их в stash, затем запустите
`codewhale` из корня git-репозитория. По умолчанию (**Accept Edits**) он правит файлы в репозитории без запроса
и спрашивает перед каждой командой; `Shift+Tab` переключает разрешение по шагам, когда нужно, чтобы он спрашивал чаще или реже.
2. Выполните `/provider` (или нажмите `F3`), выберите провайдера, вставьте его
ключ API и выберите модель. Провайдер по умолчанию — DeepSeek. Если ключа
нет, выберите вместо этого локальный рантайм. Если ни один провайдер не
настроен, а Ollama уже обслуживает чат-модель, Codewhale использует её
автоматически; начиная с 0.10.2 он предлагает её, когда вы отправляете
первое сообщение.
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` показывает список команд и клавиш.
Команды только для чтения выполняются сразу. Для любой другой команды оболочки Codewhale сначала спрашивает: `y` выполняет её один раз, `a` разрешает похожие команды до конца беседы, а `n` отказывает. `/undo` отменяет ваш последний запрос и его изменения в файлах, а `/help` показывает команды и клавиши.
Для скриптов и CI `codewhale exec` выполняет одну задачу без интерфейса. По
умолчанию `--auto` использует Full Access: инструменты выполняются без запроса,
команды оболочки работают без песочницы Codewhale, а режим доверия позволяет
файловым инструментам записывать файлы за пределами рабочей области. Добавьте
`--sandbox workspace-write`, чтобы сохранить песочницу оболочки и ограничить
файловые инструменты рабочей областью, отключив режим доверия:
Для скриптов и CI `codewhale exec` выполняет одну задачу без интерфейса. Прочитайте о [запуске без интерфейса](../INSTALL.md#headless-scripts-ci), прежде чем давать ему инструменты через `--auto`, потому что `--auto` использует Full Access, если вы не добавите песочницу.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Что он делает
## Режимы и разрешения
Дайте Codewhale задачу, и он прочитает репозиторий, отредактирует файлы и выполнит команды, пока задача не будет готова или ему не понадобится ваш ответ. В [заметках к последнему релизу](https://github.com/codewhale-hq/Codewhale/releases/latest) перечислены новейшие изменения, а в [журнале изменений](../../CHANGELOG.md) есть все версии.
Сразу после установки включены режим Work и разрешение Accept Edits. Один переключатель меняет оба: `Shift+Tab` по шагам переключает Ask → Accept Edits → Plan → Auto-Review → Full Access.
### Любая модель
| | Переключение | Варианты |
| --- | --- | --- |
| Режим | положение Plan на `Shift+Tab` или `/mode` | **Plan** читает и ищет, но ничего не меняет. **Work** (все остальные положения) редактирует файлы и выполняет команды; запустите цель с помощью `/goal`, когда запрос требует более одного хода. |
| Разрешение | `Shift+Tab` | **Ask** спрашивает перед каждой правкой файла и перед каждой командой оболочки, кроме команд только для чтения. **Accept Edits** применяет правки файлов в вашем git-репозитории без запроса и по-прежнему спрашивает перед командами. **Auto-Review** позволяет правилам и модели-рецензенту одобрять рутинные вызовы и отклоняет вызовы с высоким риском; чтобы одобрять их самостоятельно, переключитесь на Ask. **Full Access** никогда не спрашивает, а команды получают доступ ко всему на этом компьютере; правила репозитория и управляемая политика продолжают действовать. |
Встроено более 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)).
Подробности — в [руководстве по режимам и разрешениям](../MODES.md).
## Что он умеет
### Новое в 0.10.2
- `/pet on` превращает терминал в анимированного кита, который показывает, чем
занят агент, а поле сообщения при этом остаётся доступным. Его 980 частиц
складываются в название текущего шага на английском, китайском или японском.
- `/workbar terminal` показывает оболочки, которые запускает агент, прямо во
время их работы. В любую из них можно вводить текст, а `Ctrl+N` открывает
вашу собственную оболочку (macOS и Linux).
- `/undo` отменяет весь ваш последний запрос за один шаг, включая все
изменённые им файлы, а `/diff` работает в папках без Git.
- Когда план готов, Codewhale спрашивает, начать ли Work с Ask или Auto-Review
или продолжить планирование.
- `/color` задаёт каждому чату свой цвет поля ввода, который сохраняется вместе
с сессией.
- `web_search` может использовать новый Search API от DeepSeek: задайте
`[search] provider = "deepseek"` и укажите ключ DeepSeek.
- Вне Full Access команда `curl` или `wget`, которая отправила бы учётные
данные, никогда не выполняется без вашего одобрения, а команда, скрывающая
невидимые символы Unicode, отклоняется. `write` больше не заменяет файл,
который агент не читал или который изменился после того, как агент его
прочитал.
### Модели
Встроено более 40 провайдеров, среди них Anthropic, OpenAI, DeepSeek, Google,
Mistral, Moonshot, OpenRouter и xAI. Работает любая OpenAI-совместимая конечная
точка, а также локальные модели через Ollama, vLLM или SGLang. По умолчанию
используется `deepseek-flash` от DeepSeek, который DeepSeek 2026-10-17 перевёл
на DeepSeek-V4.1-Flash-1017; 0.10.1 работает с ним без обновления
([подробнее](../PROVIDERS.md#deepseek-v41-flash)).
`/model` переключает модель между ходами, а `/model auto` выбирает модель для
каждого хода (как именно — настраивается через `/router`). `/turn inspect`
показывает, какую модель использовал ход, сколько он стоил и сколько длился.
`codewhale auth chatgpt` позволяет пользоваться подпиской ChatGPT вместо ключа
API (экспериментально). См. [Провайдеры](../PROVIDERS.md).
`/model` меняет модель между ходами, а `/model auto` выбирает модель для каждого хода (как именно, задаёт `/router`). `/turn inspect` показывает, какую модель использовал ход, сколько он стоил и сколько длился. См. [Провайдеры](../PROVIDERS.md).
### Квитанции и отмена
`/receipts` (или `codewhale receipts --last` после выхода) перечисляет
изменённые файлы, выполненные команды, веб- и MCP-вызовы, запущенных агентов,
одобрения и тех, кто их дал, а также сбои. `/undo` отменяет ваш последний запрос и изменения в его файлах за один шаг, без режима доверия. `/restore` откатывает всю рабочую область к более
раннему снимку; поскольку при этом перезаписываются более поздние правки, для
него нужен `/trust on` или Full Access. См. [Квитанции](../RECEIPTS.md).
`/receipts` или `codewhale receipts --last` после выхода перечисляет файлы, изменённые за сеанс, выполненные команды, веб- и MCP-вызовы, запущенных агентов, каждое подтверждение и того, кто его дал, а также неудачи. `/undo` за один шаг отменяет ваш последний запрос и изменённые им файлы. `/restore` возвращает всё рабочее пространство к более раннему снимку; так как это перезаписывает последующие правки, нужен `/trust on` или Full Access. См. [Квитанции](../RECEIPTS.md).
Запуски exec, в которых доступны инструменты, сохраняются при любом формате
вывода, поэтому `codewhale receipts --last` работает после `exec --auto`, в том
числе с `--json`. Запуски без инструментов с текстовым выводом или `--json`
сохраняются только при возобновлении или когда начинается сжатие разговора;
используйте `--output-format stream-json`, чтобы всегда сохранять их для
квитанций или `exec --continue`.
### Несколько агентов на одной задаче
### Долгие задачи
`/goal` задаёт цель, которая сохраняется между ходами. Codewhale может
распределять работу между [субагентами](../SUBAGENTS.md), запускать группу
агентов ([Fleet](../FLEET.md)) или следовать
[рабочему процессу](../WORKFLOW_AUTHORING.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)).
`/goal` задаёт цель, которая сохраняется между ходами. Codewhale может разделить работу между [субагентами](../SUBAGENTS.md), запустить [Fleet](../FLEET.md) агентов со своими ролями и моделями или следовать [рабочему процессу](../WORKFLOW_AUTHORING.md), сохранённому в репозитории.
### Расширения
Подключайте [MCP-серверы](../MCP.md), добавляйте [навыки](../SKILLS.md) и
[плагины](../PLUGINS.md), запускайте [хуки](../HOOKS.md) на события сессии
и инструментов. Code mode (экспериментальный, включён по умолчанию) позволяет
модели написать одну программу `execute_tools`, которая вызывает несколько
инструментов MCP и плагинов; каждый вызов по-прежнему проходит через ваши
правила одобрения и получает свою квитанцию. Отдельно устанавливаемый плагин
Computer Use (экспериментальный, только macOS) может наблюдать за другими
приложениями и управлять ими. Он остаётся выключенным, пока вы не проверите
его доступ и не включите его
([руководство](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Подключайте [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 "…"` | Одна задача без интерфейса. Сам по себе он отвечает, не используя инструменты; `--auto` по умолчанию включает инструменты с Full Access, `--sandbox workspace-write` ограничивает их, а `--output-format stream-json` выводит события потоком в формате JSON |
| `codewhale web` | Локальный веб-интерфейс на `127.0.0.1` ([руководство](../WEB.md)) |
| `codewhale review --pr N` | Рекомендательный обзор pull request на GitHub. [Настройка бота GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) создаёт закреплённый workflow для автоматических обзоров и `@codewhale review`, используя ваш собственный ключ модели и необязательную идентификацию App |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md) — локальный HTTP API для тредов, событий, одобрений и изменений файлов в каждом ходе |
| `codewhale serve --acp` | Agent Client Protocol через stdio для редакторов, например Zed |
| `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)).
Нативное настольное приложение на основе Runtime API находится в разработке;
публичной загрузки для него пока нет.
Терминальное приложение, `exec`, `web` и Runtime API используют один движок ([архитектура](../ARCHITECTURE.md)). [Расширение для VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode), которое поддерживает сообщество, подключается к нему из боковой панели ([исходный код](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Стоимость и аккаунты
## Как он обеспечивает безопасность
Codewhale бесплатен и распространяется под лицензией MIT. Со своим ключом API
вы платите провайдеру напрямую; локальным моделям ключ не нужен. Нижняя строка
и `/cost` показывают, сколько стоила сессия, когда цена известна; неизвестная
цена отображается как неизвестная и никогда — как бесплатная.
Два переключателя определяют, сколько 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).
Аккаунт не обязателен. Ключи, которые вы добавляете через `/provider`, остаются
на вашей машине.
Появится в 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` показывает следующий запрос со скрытыми данными, не отправляя его.
При разрешениях Ask и Auto-Review команды выполняются в песочнице ОС, если она
есть в системе: Seatbelt в macOS и bubblewrap в Linux, если он установлен. В
Windows песочницы ОС пока нет, а Full Access отключает песочницу. Внутри
песочницы команды оболочки не могут читать хранилища учётных данных, такие как
`~/.ssh`, `~/.aws` и файлы `.env`; начиная с 0.10.2 то же правило
распространяется на терминальные сессии и на большее число файловых
инструментов. `/preview-request` показывает следующий запрос со скрытыми
конфиденциальными данными, не отправляя его.
Учётная запись не нужна, а ключи, добавленные через `/provider`, остаются на вашей машине. Со своим API-ключом вы платите провайдеру напрямую, а локальным моделям ключ не нужен. Нижняя строка и `/cost` показывают стоимость сеанса, когда цена известна; неизвестная цена показывается как неизвестная, но никогда как бесплатная.
Телеметрия включена по умолчанию. Она отправляет агрегированные счётчики
(версия и платформа, длительность и итог сессии, какие встроенные провайдеры вы
использовали, счётчики функций и ошибок) вместе со случайным ID установки,
который меняется каждые 90 дней, и никогда не отправляет разговоры, код,
промпты, названия моделей, имена файлов или репозиториев и учётные данные.
`codewhale config set telemetry false` отключает её. При запуске Codewhale
также проверяет на GitHub, не вышел ли новый релиз; чтобы пропустить эту
проверку, задайте `CODEWHALE_NO_UPDATE_CHECK=1`. Подробнее:
[порядок авторизации](../AUTHORIZATION_ORDER.md),
[песочница](../SANDBOX.md) и [телеметрия](../TELEMETRY.md).
Телеметрия включена по умолчанию. Она отправляет агрегированные счётчики (версия и платформа, длительность и итог сеанса, какие встроенные провайдеры вы использовали, счётчики функций и ошибок) со случайным идентификатором установки, который меняется каждые 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)).
## Документация
Эти руководства следуют основной ветке и могут описывать изменения, которых ещё нет в последнем выпуске.
| С чего начать | Справочник |
| --- | --- |
| [Установка](../INSTALL.md) | [Конфигурация](../CONFIGURATION.md) |
| [Провайдеры и локальные модели](../PROVIDERS.md) | [Архитектура](../ARCHITECTURE.md) |
| [Режимы и разрешения](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Сочетания клавиш](../KEYBINDINGS.md) | [Создание плагинов](../PLUGIN_AUTHORING.md) |
| [Обзор PR в GitHub](../GITHUB_ACTION.md) | [Вся документация](../README.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 стал таким благодаря сообществу, и мы рады любой обратной связи: ошибке, идее или тому, что выглядело или ощущалось не так.
[Откройте issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) в любом из этих случаев; новую функцию тоже лучше всего начинать с issue.
Pull request’ы приветствуются для исправлений, переводов, провайдеров и запланированной работы.
[Руководство для участников](../../CONTRIBUTING.md) объясняет, куда направить каждый вид помощи, а [дорожная карта](../ROADMAP.md) показывает, куда движется проект.
Авторство принятой работы остаётся за участниками, а [структура репозитория](../../CONTRIBUTING.md#project-structure) показывает, где что находится.
Codewhale открыто создают те, кто им пользуется, на многих языках.
Общайтесь в [Discord](https://discord.gg/37gfS3ksug) или добавьте мейнтейнера,
Хантера, в WeChat (`hunterbown`) и попросите добавить вас в группу
Whale Brothers. Мы рады каждому.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Стена участников Codewhale: по аватару на каждого человека, чей код, коммиты в соавторстве, продолженные pull request или отмеченные сообщения есть в Codewhale, а вверху общее число."></a>
[Стена участников](../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, ни с
другими поставщиками моделей. Спасибо [всем, кто внёс вклад](../CONTRIBUTORS.md).
Codewhale начинался как `deepseek-tui` и до сих пор читает конфигурацию и сеансы того проекта. Он поддерживается независимо и не связан ни с DeepSeek, ни с другим провайдером моделей.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Код, адаптированный из других проектов с открытым исходным
кодом, перечислен в [уведомлениях о сторонних компонентах](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Код, заимствованный из других проектов с открытым исходным кодом, перечислен в уведомлениях о третьих сторонах для [включённых исходников](../../THIRD_PARTY_NOTICES.md) и [заимствованных решений](../THIRD_PARTY_NOTICES.md).
+92 -214
View File
@@ -1,23 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Terminaliniz için her modelle çalışan, açık kaynaklı bir kodlama ajanı.**
<h1>Model herkesin olabilir. Ajan sizin olmalı.</h1>
Codewhale'e bir görev verin; görev bitene ya da sizden girdi gerekene kadar depoyu
okur, dosyaları düzenler ve komutları çalıştırır. 40'tan fazla yerleşik sağlayıcıyla
(varsayılan olarak DeepSeek V4.1 Flash) ve kendi makinenizde çalışan modellerle
çalışır.
`/receipts`, değiştirdiği dosyaları, çalıştırdığı komutları ve yaptığı web ve MCP
çağrılarını listeler.
Codewhale, terminaliniz için Rust ile yazılmış açık kaynaklı bir kodlama ajanıdır. Her modelle çalışır, bir görevi birkaç ajana bölebilir ve her satırını okuyabilirsiniz.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Bu komut, macOS veya Linux'a en son sürümü kurar ve hesap gerektirmez. [Windows, npm ve Cargo](#kurulum) aşağıda.
[![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)
@@ -25,263 +25,141 @@ okur, dosyaları düzenler ve komutları çalıştırır. 40'tan fazla yerleşik
[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) · [Українська](README.uk.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [繁體中文](README.zh-TW.md) · [हिन्दी](README.hi.md) · [Italiano](README.it.md) · [Polski](README.pl.md) · [العربية](README.ar.md) · [Català](README.ca.md)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Bir Codewhale terminal oturumu" width="760">
<sub>Bu çeviri makine taslağıdır ve henüz anadili konuşan biri tarafından gözden geçirilmedi.</sub>
<sub>Betikli bir test modeliyle, atılabilir bir çalışma alanında Full Access ile çalışan bir 0.10.2 geliştirme derlemesi. Düzenleme, üç test ve bir alt ajan incelemesi gerçekten çalıştı.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Bir demo görevinden sonra terminalde Codewhale. export.py dosyasına --json bayrağı eklediğini, 3 yerel testin de geçtiğini ve devredilen incelemenin sorun bulmadığını bildiriyor. Alttaki görev listesinde tamamlanmış üç adım var ve durum satırında Full Access ile yerel website-demo sağlayıcısı görünüyor.">
<sub>Betiklenmiş bir test modeliyle, henüz yayınlanmamış 0.10.3'ün geliştirme derlemesi, tek kullanımlık bir çalışma alanında Full Access ile. Düzenleme, üç test ve bir alt ajan incelemesi gerçekten çalıştı.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — %30 daha fazla DeepSeek v4.1 Flash kullanımı" width="760">
</a>
</p>
[Codewhale × OrcaRouter teklifini görüntüleyin](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale, OrcaRouter’dan yönlendirme komisyonu alır.
## Kurulum
macOS ve Linux:
Yukarıdaki komut, sağlama toplamıyla doğrulanmış `codewhale` ile kısa takma adı `codew`'yi `~/.local/bin` içine koyar. Kabuğunuz ardından `command not found` derse, kurucunun yazdırdığı PATH notunu izleyin ([ayrıntılar](../INSTALL.md#put-it-on-your-path)). `codewhale update` onu yükseltir.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
Kurulum betiği, sağlama toplamı doğrulanmış `codewhale` ikili dosyasını ve kısa
takma adı olan `codew` komutunu `~/.local/bin` dizinine koyar. Ardından kabuğunuz
`command not found` derse, betiğin yazdırdığı PATH satırını çalıştırın
([ayrıntılar](../INSTALL.md#put-it-on-your-path)). `codewhale update` kurulumu
yükseltir. Bu komutlar en son sürümü kurar. Bu sayfa `main` dalını izler; bu yüzden
bir sürüm numarasıyla işaretlenen özellik o sürümle gelir. Her sürümün neler
eklediğini [değişiklik günlüğü](../../CHANGELOG.md) listeler.
<details>
<summary><b>Windows, npm, Cargo ve diğer kurulum yolları</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Hazır derlenmiş ikili dosyalar x64 ve arm64 üzerinde Linux, macOS ve Windows'u
kapsar. Nix, Linux'ta Homebrew, Android/Termux (önizleme) ve elle indirme
[kurulum kılavuzunda](../INSTALL.md), konteynerler ise [Docker](../DOCKER.md)
sayfasında anlatılır. Her makinede tek bir kurulum yöntemi kullanın; aksi halde
`PATH` üzerinde iki kopya olur ve hangisi önce gelirse o çalışır.
</details>
Hazır ikili dosyalar x64 ve arm64 üzerinde Linux, macOS ve Windows'u kapsar. Scoop, Nix, Linux'ta Homebrew, Android ve Termux (önizleme) ile elle indirme [kurulum kılavuzunda](../INSTALL.md), konteynerler ise [Docker](../DOCKER.md) sayfasında. Her makinede tek bir kurulum yöntemi kullanın; aksi hâlde `PATH` üzerinde iki kopya olur ve önce bulunan kazanır.
## Hızlı başlangıç
1. Çalışmanızı commit edin veya stash'leyin, ardından bir git deposunun kök
dizininde `codewhale` çalıştırın. Varsayılan olarak (**Accept Edits**) depodaki dosyaları sormadan düzenler
ve her komuttan önce sorar; daha fazla veya daha az sormasını istediğinizde `Shift+Tab` ile izni adım adım değiştirin.
2. `/provider` çalıştırın (veya `F3` tuşuna basın), bir sağlayıcı seçin, onun API
anahtarını yapıştırın ve bir model seçin. Varsayılan sağlayıcı DeepSeek'tir.
Anahtarınız yoksa bunun yerine yerel bir çalışma ortamı seçin. Hiçbir sağlayıcı
yapılandırılmamışsa ve Ollama zaten bir sohbet modeli sunuyorsa Codewhale onu
kendiliğinden kullanır; 0.10.2'den itibaren ilk mesajınızı gönderdiğinizde onu
kullanmayı önerir.
1. Çalışmanızı commit edin veya stash'leyin, sonra bir git deposunun kökünde `codewhale` çalıştırın. Varsayılan olarak depodaki dosya düzenlemelerini sormadan uygular ve yalnızca okuma yapmayan her kabuk komutundan önce sorar.
2. `/provider` çalıştırın (veya `F3`'e basın), bir sağlayıcı seçin, API anahtarını yapıştırın ve bir model seçin. Varsayılan sağlayıcı DeepSeek'tir. Anahtar olmadan ilk açılışta Codewhale, ilk mesajınızı gönderdiğinizde bir sağlayıcı sorar ve yerel bir Ollama sunucusu yanıt verirse yerel bir model önerir.
3. Bir görev yazın:
```text
Fix the failing tests and explain what changed.
```
Salt okunur komutlar hemen çalışır. Diğer her kabuk komutu için Codewhale önce
sorar: `y` komutu bir kez çalıştırır, `a` konuşmanın geri kalanında benzer
komutlara izin verir, `n` reddeder. `/undo` son isteğinizi ve onun dosya
değişikliklerini geri alır. `/help`
komutları ve tuşları listeler.
Salt okunur komutlar hemen çalışır. Diğer her kabuk komutu için Codewhale önce sorar: `y` bir kez çalıştırır, `a` sohbetin geri kalanında benzer komutlara izin verir, `n` reddeder. `/undo` son isteğinizi ve dosya değişikliklerini geri alır, `/help` komutları ve tuşları listeler.
Betikler ve CI için `codewhale exec`, tek bir görevi arayüz olmadan çalıştırır.
Varsayılan olarak `--auto`, Full Access kullanır: araçlar sormadan çalışır,
kabuk komutları için Codewhale korumalı alanı yoktur ve güven modu, dosya
araçlarının çalışma alanı dışına yazmasına izin verir. Kabuk korumalı alanını
ve dosya araçlarının çalışma alanı kısıtlamalarını güven modu kapalı olarak
korumak için `--sandbox workspace-write` ekleyin:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Modlar ve izinler
Yeni bir kurulum Work modunda ve Accept Edits izniyle başlar. Tek bir kadran ikisini de değiştirir: `Shift+Tab` sırayla Ask → Accept Edits → Plan → Auto-Review → Full Access arasında geçiş yapar.
| | Nasıl değiştirilir | Seçenekler |
| --- | --- | --- |
| Mod | `Shift+Tab` üzerindeki Plan durağı veya `/mode` | **Plan** okur ve arar ama hiçbir şeyi değiştirmez. **Work** (diğer tüm duraklar) dosyaları düzenler ve komutları çalıştırır; bir istek birden fazla tur gerektirdiğinde `/goal` ile bir hedef başlatın. |
| İzin | `Shift+Tab` | **Ask** her dosya düzenlemesinden ve salt okunur olmayan her kabuk komutundan önce sorar. **Accept Edits** git deponuzdaki dosya düzenlemelerini sormadan uygular, komutlardan önce yine sorar. **Auto-Review** rutin çağrıların kurallar ve bir inceleyici model tarafından onaylanmasına izin verir, yüksek riskli olanları reddeder; bunları kendiniz onaylamak için Ask iznine geçin. **Full Access** hiç sormaz ve komutlar bu bilgisayardaki her şeye erişebilir; depo kuralları ve yönetilen politika yine de geçerlidir. |
Ayrıntılar için [modlar ve izinler kılavuzuna](../MODES.md) bakın.
Betikler ve CI için `codewhale exec` arayüz olmadan tek bir görev çalıştırır. `--auto` ile ona araç vermeden önce [arayüzsüz çalıştırma](../INSTALL.md#headless-scripts-ci) bölümünü okuyun, çünkü bir sandbox eklemedikçe `--auto` Full Access kullanır.
## Ne yapar
### 0.10.2'deki yenilikler
Codewhale'e bir görev verin; görev bitene ya da girdinize ihtiyaç duyana kadar depoyu okur, dosyaları düzenler ve komutlar çalıştırır. [Son sürümün notları](https://github.com/codewhale-hq/Codewhale/releases/latest) en yeni değişiklikleri listeler, [değişiklik günlüğü](../../CHANGELOG.md) ise her sürümü içerir.
- `/pet on`, terminalinizi ajanın ne yaptığını gösteren hareketli bir balinaya
dönüştürür; bu sırada mesaj kutusu kullanılabilir kalır. 980 parçacığı o anki
adımı İngilizce, Çince veya Japonca olarak yazar.
- `/workbar terminal`, ajanın çalıştırdığı kabukları çalışırken gösterir. Birine
yazın ya da kendinize ait bir kabuk için `Ctrl+N` tuşuna basın (macOS ve Linux).
- `/undo`, son isteğinizin tamamını, değiştirdiği her dosya dahil tek adımda geri
alır; `/diff` de Git kullanılmayan klasörlerde çalışır.
- Bir plan hazır olduğunda Codewhale, Work'e Ask ile mi yoksa Auto-Review ile mi
başlanacağını ya da planlamaya devam edilip edilmeyeceğini sorar.
- `/color`, her sohbete oturumla birlikte kaydedilen kendi yazma kutusu rengini
verir.
- `web_search`, DeepSeek'in yeni Search API'sini kullanabilir: bir DeepSeek
anahtarıyla `[search] provider = "deepseek"` ayarlayın.
- Full Access dışında, bir kimlik bilgisini yükleyecek bir `curl` veya `wget`
onayınız olmadan asla çalışmaz; görünmez Unicode gizleyen bir komut ise
reddedilir. `write` artık ajanın okumadığı ya da okuduktan sonra değişmiş bir
dosyanın üzerine yazmaz.
### Her model
### Modeller
Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter ve xAI dahil 40'tan fazla sağlayıcı yerleşik gelir. OpenAI uyumlu her uç nokta çalışır; Ollama, vLLM veya SGLang üzerinden yerel modeller de çalışır. Varsayılan model DeepSeek'in `deepseek-flash` modelidir ve artık DeepSeek V4.1 Flash tarafından sunulur ([ayrıntılar](../PROVIDERS.md#deepseek-v41-flash)).
Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter ve xAI dahil
40'tan fazla sağlayıcı yerleşik olarak gelir. OpenAI uyumlu her uç nokta çalışır;
Ollama, vLLM veya SGLang üzerinden yerel modeller de çalışır. Varsayılan model,
DeepSeek'in `deepseek-flash` modelidir; DeepSeek bu modeli 2026-10-17'de
DeepSeek-V4.1-Flash-1017'ye taşıdı. 0.10.1 onu güncelleme gerektirmeden çalıştırır
([ayrıntılar](../PROVIDERS.md#deepseek-v41-flash)).
`/model` turlar arasında model değiştirir; `/model auto` ise her tur için bir model
seçer (seçimin nasıl yapılacağını `/router` ayarlar). `/turn inspect`, bir turun
hangi modeli kullandığını, ne kadara mal olduğunu ve ne kadar sürdüğünü gösterir.
`codewhale auth chatgpt`, API anahtarı yerine bir ChatGPT planı kullanmanızı sağlar
(deneysel). Bkz. [Sağlayıcılar](../PROVIDERS.md).
`/model` turlar arasında model değiştirir, `/model auto` her tur için bir model seçer (nasıl seçileceğini `/router` ayarlar). `/turn inspect` bir turun hangi modeli kullandığını, maliyetini ve ne kadar sürdüğünü gösterir. Bkz. [Sağlayıcılar](../PROVIDERS.md).
### Makbuzlar ve geri alma
`/receipts` (veya çıktıktan sonra `codewhale receipts --last`), değiştirilen
dosyaları, çalıştırılan komutları, web ve MCP çağrılarını, başlatılan ajanları,
onayları ve bunları kimin verdiğini ve hataları listeler. `/undo` son isteğinizi ve değiştirdiği dosyaları tek adımda, güven modu olmadan geri alır. `/restore` tüm çalışma alanını daha önceki bir anlık görüntüye geri
döndürür; bu, sonraki düzenlemelerin üzerine yazdığı için `/trust on` veya Full
Access gerektirir. Bkz. [Makbuzlar](../RECEIPTS.md).
`/receipts` veya çıktıktan sonra `codewhale receipts --last`, bir oturumun değiştirdiği dosyaları, çalıştırdığı komutları, web ve MCP çağrılarını, başlattığı ajanları, her onayı ve onayı kimin verdiğini ve neyin başarısız olduğunu listeler. `/undo` son isteğinizi ve değiştirdiği dosyaları tek adımda geri alır. `/restore` tüm çalışma alanını daha önceki bir anlık görüntüye döndürür; bu sonraki düzenlemelerin üzerine yazdığı için `/trust on` veya Full Access gerektirir. Bkz. [Makbuzlar](../RECEIPTS.md).
Araçların kullanılabilir olduğu exec çalıştırmaları her çıktı biçiminde
kaydedilir; böylece `codewhale receipts --last`, `--json` dahil olmak üzere
`exec --auto` sonrasında çalışır. Yalnızca yanıt üreten metin ve `--json`
çalıştırmaları ancak devam ettirilirken veya konuşma sıkıştırması başladığında
kaydedilir; makbuzlar veya `exec --continue` için bunları her zaman kaydetmek
üzere `--output-format stream-json` kullanın.
### Bir görevde birkaç ajan
### Daha uzun işler
`/goal`, turlar boyunca geçerli kalan bir hedef belirler. Codewhale işi
[alt ajanlara](../SUBAGENTS.md) bölebilir, bir [ajan filosu](../FLEET.md)
çalıştırabilir veya depoya eklenmiş bir [iş akışını](../WORKFLOW_AUTHORING.md)
izleyebilir.
### Başka bir ajandan geçiş
Codewhale `AGENTS.md` dosyasını kendiliğinden okur. `CLAUDE.md`, `.cursorrules`
veya `.github/copilot-instructions.md` gibi başka araçlar için yazılmış talimat
dosyaları, yalnızca yapılandırmanızda `project_instruction_imports = ["claude"]`
(veya `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) ile bunu açıkça
seçtiğinizde yüklenir; bkz. [config.example.toml](../../config.example.toml). Codewhale,
yüklemediği böyle bir dosya bulduğunda uyarır.
`/import-claude`, Claude Code ayarlarınızın ve MCP sunucularınızın içe aktarımını
gözden geçirmeniz için hazırlar. `/plugin install`, beceriler, komutlar, ajan
profilleri ve MCP sunucuları içeren Claude Code eklentilerini kabul eder; kanca
veya LSP sunucusu gerektiren eklentileri reddeder
([ayrıntılar](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal`, turlar boyunca süren bir hedef belirler. Codewhale işi [alt ajanlara](../SUBAGENTS.md) bölebilir, kendi rolleri ve modelleri olan ajanlardan oluşan bir [Fleet](../FLEET.md) çalıştırabilir veya depoya kaydedilmiş bir [iş akışını](../WORKFLOW_AUTHORING.md) izleyebilir.
### Uzantılar
[MCP sunucuları](../MCP.md) bağlayın, [beceriler](../SKILLS.md) ve
[eklentiler](../PLUGINS.md) ekleyin, oturum ve araç olaylarında
[kancalar](../HOOKS.md) çalıştırın. Code mode (deneysel, varsayılan olarak açık),
modelin birkaç MCP ve eklenti aracını çağıran tek bir `execute_tools` programı
yazmasını sağlar; her çağrı yine onay kurallarınızdan geçer ve makbuzunu korur.
Ayrı olarak yüklenen Computer Use eklentisi
(deneysel, yalnızca macOS) diğer uygulamaları gözlemleyip kullanabilir. Siz
erişimini gözden geçirip etkinleştirene kadar kapalı kalır
([kılavuz](https://github.com/codewhale-hq/codewhale-cu-plugin)).
[MCP sunucularını](../MCP.md) bağlayın, [beceriler](../SKILLS.md) ve [eklentiler](../PLUGINS.md) ekleyin, oturum ve araç olaylarında [kancalar](../HOOKS.md) çalıştırın. Kod modu (deneysel, varsayılan olarak açık), modelin birkaç MCP ve eklenti aracını çağıran tek bir `execute_tools` programı yazmasına izin verir; her çağrı yine onay kurallarınıza uyar ve makbuzunu korur. v0.10.2 ile gelen Computer Use eklentisi (deneysel, yalnızca macOS) diğer uygulamaları izleyip kullanabilir ve siz erişimini inceleyip etkinleştirene kadar kapalı kalır ([kılavuz](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). 0.10.3 ile gelecek: eklenti [ayrı olarak](https://github.com/codewhale-hq/codewhale-cu-plugin) yayımlanır.
## Çalıştırma yolları
### Çalıştırma yolları
| Komut | Ne yapar |
| --- | --- |
| `codewhale` | Etkileşimli terminal uygulaması |
| `codewhale exec "…"` | Arayüz olmadan tek bir görev. Tek başına araç kullanmadan yanıt verir; `--auto` varsayılan olarak araçları Full Access ile etkinleştirir, `--sandbox workspace-write` bunları kısıtlar, `--output-format stream-json` olayları JSON olarak akış halinde verir |
| `codewhale web` | `127.0.0.1` üzerinde yerel bir web arayüzü ([kılavuz](../WEB.md)) |
| `codewhale review --pr N` | Bir GitHub pull request'inin tavsiye niteliğinde incelemesi. [GitHub bot kurulumu](../GITHUB_ACTION.md#set-up-your-own-bot), otomatik incelemeler ve `@codewhale review` için sürümü sabitlenmiş bir workflow üretir; kendi model anahtarınızı ve isteğe bağlı App kimliğini kullanır |
| `codewhale exec "…"` | Arayüz olmadan tek bir görev, betikler ve CI için ([arayüzsüz çalıştırma](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | `127.0.0.1` üzerinde yerel bir web istemcisi ([kılavuz](../WEB.md)) |
| `codewhale review --pr N` | Bir GitHub pull request'i için tavsiye niteliğinde bir inceleme; [GitHub botu kurulumu](../GITHUB_ACTION.md#set-up-your-own-bot) onu kendi model anahtarınızla çalıştırır |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md); iş parçacıkları, olaylar, onaylar ve her turun dosya değişiklikleri için yerel bir HTTP API |
| `codewhale serve --acp` | Zed gibi editörler için stdio üzerinden Agent Client Protocol |
| `codewhale serve --acp` | Zed gibi düzenleyiciler için stdio üzerinden Agent Client Protocol |
Terminal uygulaması, `exec`, `web` ve Runtime API tek bir motoru paylaşır
([mimari](../ARCHITECTURE.md)). Topluluk tarafından sürdürülen bir
[VS Code eklentisi](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
kenar çubuğundan bu motora bağlanır ([kaynak](https://github.com/HengQuWorld/CodeWhale-VSCode)).
Runtime API üzerine kurulu, platforma özgü bir masaüstü uygulaması geliştiriliyor;
henüz herkese açık bir indirmesi yok.
Terminal uygulaması, `exec`, `web` ve Runtime API tek bir motoru paylaşır ([mimari](../ARCHITECTURE.md)). Topluluk tarafından sürdürülen bir [VS Code uzantısı](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) kenar çubuğundan ona bağlanır ([kaynak](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Maliyet ve hesaplar
## Nasıl güvende kalır
Codewhale ücretsizdir ve MIT lisanslıdır. Kendi API anahtarınızla ödemeyi doğrudan
sağlayıcıya yaparsınız; yerel modeller anahtar gerektirmez. Alt bilgi satırı ve
`/cost`, fiyat biliniyorsa bir oturumun maliyetini gösterir; bilinmeyen bir fiyat
asla ücretsiz olarak değil, bilinmeyen olarak gösterilir.
İki anahtar, Codewhale'in sormadan ne kadar şey yapabileceğini belirler. Giriş boşken `Tab` modu değiştirir: **Plan** okur ve arar ama hiçbir şeyi değiştirmez, **Work** dosyaları düzenler ve komutlar çalıştırır, **Operate** ise Work ile aynı erişime sahiptir ve hedef doğrulanana ya da size ihtiyaç duyana kadar devam eder. `Shift+Tab` izni değiştirir. Varsayılan olan **Ask**, deponuzdaki dosya düzenlemelerini sormadan uygular ve yalnızca okuma yapmayan kabuk komutlarından önce sorar. **Auto-Review**, kuralların ve bir inceleme modelinin rutin çağrıları onaylamasına izin verir ve yüksek riskli olanları reddeder; bunları kendiniz onaylamak için Ask'e geçin. **Full Access** hiç sormaz ve Codewhale'in sandbox'ını kapatır, ancak depo kuralları ve yönetilen politika geçerli olmaya devam eder. Ayrıntılar [v0.10.2 kılavuzunda](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md).
Hesaba ihtiyacınız yok. `/provider` ile eklediğiniz anahtarlar makinenizde kalır.
0.10.3 ile gelecek: `Shift+Tab`, Ask, Accept Edits, Plan, Auto-Review ve Full Access arasında dönen tek bir kadran olur, `Tab` artık modu değiştirmez ve Operate kaldırılır. Ask her dosya düzenlemesinden önce de soracak, yeni varsayılan Accept Edits ise git deposu içindeki düzenlemeleri uygulayıp komutlardan önce sormaya devam edecek. [Güncel kılavuz](../MODES.md) bunu anlatır.
## Güvenlik ve gizlilik
Ask ve Auto-Review'de komutlar, sistemde varsa bir işletim sistemi sandbox'ında çalışır: macOS'ta Seatbelt, Linux'ta kuruluysa bubblewrap. Windows'ta henüz işletim sistemi sandbox'ı yok ve Full Access sandbox'ı kapatır. Sandbox içinde kabuk komutları ve terminal oturumları `~/.ssh`, `~/.aws` ve `.env` dosyaları gibi kimlik bilgisi depolarını okuyamaz. `/preview-request`, bir sonraki isteğin hassas bilgileri gizlenmiş önizlemesini göndermeden gösterir.
Ask ve Auto-Review izinlerinde komutlar, sistemde varsa bir işletim sistemi
korumalı alanında çalışır: macOS'ta Seatbelt, Linux'ta ise kuruluysa bubblewrap.
Windows'ta henüz işletim sistemi korumalı alanı yoktur ve Full Access korumalı
alanı kapatır. Korumalı alanın içinde kabuk komutları `~/.ssh`, `~/.aws` ve `.env`
dosyaları gibi kimlik bilgisi depolarını okuyamaz; 0.10.2'den itibaren aynı kural
terminal oturumlarını ve daha fazla dosya aracını da kapsar. `/preview-request`, bir sonraki isteğin gizlenmiş (redacted) bir
önizlemesini, isteği göndermeden gösterir.
Hesaba ihtiyacınız yok ve `/provider` ile eklediğiniz anahtarlar makinenizde kalır. Kendi API anahtarınızla sağlayıcıya doğrudan ödeme yaparsınız; yerel modeller anahtar gerektirmez. Fiyat biliniyorsa alt bilgi ve `/cost` bir oturumun maliyetini gösterir; bilinmeyen fiyat ücretsiz olarak değil, bilinmiyor olarak gösterilir.
Telemetri varsayılan olarak açıktır. Her 90 günde bir değişen rastgele bir kurulum
kimliğiyle birlikte toplu sayımlar (sürüm ve platform, oturum süresi ve sonucu,
kullandığınız yerleşik sağlayıcılar, özellik ve hata sayıları) gönderir;
konuşmalar, kod, istemler, model adları, dosya veya depo adları ya da kimlik
bilgileri asla gönderilmez.
`codewhale config set telemetry false` telemetriyi kapatır. Codewhale başlangıçta
ayrıca yeni bir sürüm için GitHub'ı kontrol eder; bunu atlamak için
`CODEWHALE_NO_UPDATE_CHECK=1` ayarlayın. Daha fazlası için
[yetkilendirme sırası](../AUTHORIZATION_ORDER.md),
[korumalı alan](../SANDBOX.md) ve [telemetri](../TELEMETRY.md) belgelerine
bakın.
Telemetri varsayılan olarak açıktır. Toplu sayılar (sürüm ve platform, oturum süresi ve sonucu, kullandığınız yerleşik sağlayıcılar, özellik ve hata sayıları) ile her 90 günde bir değişen rastgele bir kurulum kimliği gönderir; sohbetleri, kodu, istemleri, model adlarını, dosya veya depo adlarını ya da kimlik bilgilerini asla göndermez. Bu komut onu kapatır:
```bash
codewhale config set telemetry false
```
Codewhale başlangıçta GitHub'da yeni bir sürüm olup olmadığını da denetler; atlamak için `CODEWHALE_NO_UPDATE_CHECK=1` ayarlayın. Daha fazlası [yetkilendirme sırası](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) ve [telemetri](../TELEMETRY.md) sayfalarında.
## Nereye gidiyor
Codewhale; terminalinizi, bir masaüstü uygulamasını, tarayıcıyı ve bulut bilgisayarlarını kapsayan tek bir ortam hâline geliyor; hepsi tek bir motorla çalışıyor. Aşağıdaki her bölüm, bugün nerede durduğunu söyler.
| Bölüm | Durum | Bugün |
| --- | --- | --- |
| Terminal uygulaması | Yayımlandı | macOS, Linux veya Windows'a kurun ve herhangi bir depoda `codewhale` çalıştırın. |
| Yerel tarayıcı istemcisi | Yayımlandı | Sohbeti okumak, görev göndermek ve onayları yanıtlamak için tarayıcınızda `codewhale web` çalıştırın; terminalle birlikte gelir ve hesap gerektirmez. |
| Bir görevde birçok ajan | Yayımlandı | Alt ajanlar, Fleet'ler ve iş akışları, birkaç ajanın her biri kendi rolüyle bir görevi paylaşmasını sağlar. |
| Masaüstü uygulaması | Geliştiriliyor, indirme yok | Aynı motor üzerinde bir masaüstü uygulaması geliştiriyoruz ve henüz herkese açık bir indirmesi yok. |
| Bulut bilgisayarları | Yalnızca davetle | Bulut bilgisayarları yalnızca davetle erişilebilir; bir oturum bulutta bir makinede çalışmaya devam edebilsin diye onları geliştiriyoruz. |
| Hepsini kapsayan tek bir oturum | Yapım aşamasında | Sizinle terminalden masaüstüne, tarayıcıya ve buluta giden ve yol boyunca sizin kalan tek bir oturum geliştiriyoruz. |
[Yol haritası](../ROADMAP.md), her sürümün neyi kapsadığını ve nerede yardım edebileceğinizi söyler.
## Başka bir ajandan geliyorsanız
Codewhale `AGENTS.md` dosyasını kendiliğinden okur. `CLAUDE.md`, `.cursorrules` veya `.github/copilot-instructions.md` gibi başka araçlar için yazılmış talimat dosyaları, yalnızca yapılandırmanızda `project_instruction_imports = ["claude"]` (veya `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) ile etkinleştirdiğinizde yüklenir; bkz. [config.example.toml](../../config.example.toml). Codewhale, yüklemediği böyle bir dosya bulduğunda uyarır.
`/import-claude`, Claude Code ayarlarınızın ve MCP sunucularınızın içe aktarımını incelemeniz için hazırlar. `/plugin install`, beceriler, komutlar, ajan profilleri ve MCP sunucuları içeren Claude Code eklentilerini kabul eder; kanca veya LSP sunucusu gerektiren eklentileri reddeder ([ayrıntılar](../CLAUDE_PLUGIN_COMPAT.md)).
## Belgeler
Bu kılavuzlar ana dalı izler ve henüz son sürümde olmayan değişiklikleri anlatabilir.
| Buradan başlayın | Başvuru |
| --- | --- |
| [Kurulum](../INSTALL.md) | [Yapılandırma](../CONFIGURATION.md) |
| [Sağlayıcılar ve yerel modeller](../PROVIDERS.md) | [Mimari](../ARCHITECTURE.md) |
| [Modlar ve izinler](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Tuş atamaları](../KEYBINDINGS.md) | [Eklenti geliştirme](../PLUGIN_AUTHORING.md) |
| [GitHub PR incelemesi](../GITHUB_ACTION.md) | [Tüm belgeler](../README.md) |
| [Kullanıcı kılavuzu](../GUIDE.md) | [Yapılandırma](../CONFIGURATION.md) |
| [Kurulum](../INSTALL.md) | [Mimari](../ARCHITECTURE.md) |
| [Sağlayıcılar ve yerel modeller](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Modlar ve izinler](../MODES.md) | [Eklenti yazma](../PLUGIN_AUTHORING.md) |
| [Tuş atamaları](../KEYBINDINGS.md) | [Makbuzlar](../RECEIPTS.md) |
| [GitHub pull request incelemesi](../GITHUB_ACTION.md) | [Tüm belgeler](../README.md) |
## Topluluk
## Katkıda bulunma
Codewhale bugünkü hâlini topluluğuna borçlu ve her geri bildirim memnuniyetle karşılanır: bir hata, bir fikir ya da görünüşü veya kullanımı tuhaf gelen bir şey.
Bunların herhangi biri için [issue açın](https://github.com/codewhale-hq/CodeWhale/issues/new/choose); yeni bir özelliğe başlamak için de en iyi yer bir issue’dur.
Düzeltmeler, çeviriler, sağlayıcılar ve planlanmış işler için pull request’ler memnuniyetle karşılanır.
[Katkı rehberi](../../CONTRIBUTING.md) her yardım türünün nereye gideceğini, [yol haritası](../ROADMAP.md) ise projenin nereye gittiğini gösterir.
Kabul edilen çalışmanın emeği katkıda bulunana aittir ve [depo düzeni](../../CONTRIBUTING.md#project-structure) her şeyin nerede olduğunu gösterir.
Codewhale, onu kullanan insanlar tarafından birçok dilde açıkta geliştirilir.
[Discord](https://discord.gg/37gfS3ksug) üzerinde sohbet edin veya projenin
bakımcısı Hunter'ı WeChat'te (`hunterbown`) ekleyip Whale Brothers grubuna katılmak
istediğinizi söyleyin. Herkesi bekleriz.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Codewhale katkıda bulunanlar duvarı: kodu, ortak yazarlı commit'leri, devam ettirilen pull request'leri veya adı anılan bildirimleri Codewhale'de bulunan her kişi için bir avatar ve en üstte toplam sayı."></a>
## Geçmiş ve lisans
[Katkıda bulunanlar duvarı](../CONTRIBUTORS.md), kodu, ortak yazarlı commit'leri, devam ettirilen pull request'leri veya adı anılan bildirimleri Codewhale'de bulunan herkesi sayar; GitHub'ın kendi katkıda bulunanlar listesinin kaçırdığı kişiler de buna dahildir. `scripts/contributor-wall.py` resmi ve listeyi git geçmişinden ve GitHub'dan yeniden oluşturur.
Codewhale, `deepseek-tui` olarak başladı ve hâlâ o projenin yapılandırmasını ve
oturumlarını okur. Bağımsız olarak sürdürülür ve DeepSeek ya da başka herhangi bir
model sağlayıcısıyla bağlantılı değildir.
[Katkıda bulunan herkese](../CONTRIBUTORS.md) teşekkürler.
Her geri bildirim memnuniyetle karşılanır: bir hata, bir fikir ya da yanlış görünen veya hissettiren bir şey. Bunların her biri için [bir issue açın](https://github.com/codewhale-hq/Codewhale/issues/new/choose); yeni bir özelliğe başlamak için de en iyi yer bir issue'dur. Düzeltmeler, çeviriler, sağlayıcılar ve planlanmış işler için pull request'ler memnuniyetle karşılanır. Sorular [Discussions](https://github.com/codewhale-hq/Codewhale/discussions) bölümüne. [Katkı kılavuzu](../../CONTRIBUTING.md), her yardım türünün nereye gittiğini, çalışmanızın adınızla nasıl birleştirildiğini ve [neyin nerede olduğunu](../../CONTRIBUTING.md#project-structure) gösterir.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[Discord](https://discord.gg/37gfS3ksug) üzerinden sohbet edin ya da proje sorumlusu Hunter'ı WeChat'te (`hunterbown`) ekleyip Whale Brothers grubuna katılmak istediğinizi söyleyin. Herkes hoş karşılanır.
[MIT](../../LICENSE). Diğer açık kaynak projelerden uyarlanan kod
[üçüncü taraf bildirimlerinde](../THIRD_PARTY_NOTICES.md) listelenir.
## Tarihçe ve lisans
Codewhale `deepseek-tui` olarak başladı ve hâlâ o projenin yapılandırmasını ve oturumlarını okur. Bağımsız olarak sürdürülür ve DeepSeek'e ya da başka bir model sağlayıcısına bağlı değildir.
[MIT](../../LICENSE). Diğer açık kaynak projelerden uyarlanan kod, üçüncü taraf bildirimlerinde [dahil edilen kaynaklar](../../THIRD_PARTY_NOTICES.md) ve [uyarlanan tasarımlar](../THIRD_PARTY_NOTICES.md) için listelenir.
+102 -231
View File
@@ -1,294 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Агент для програмування з відкритим кодом у вашому терміналі, що працює з будь-якою моделлю.**
<h1>Модель може належати будь-кому. Агент має належати вам.</h1>
Дайте Codewhale завдання, і він читатиме репозиторій, редагуватиме файли та
виконуватиме команди, доки завдання не буде виконано або йому не знадобиться
щось від вас. Він працює з понад 40 вбудованими провайдерами (за замовчуванням
DeepSeek V4.1 Flash), а також із моделями, запущеними на вашій власній машині.
`/receipts` перелічує змінені ним файли, виконані команди, а також вебзапити й
виклики MCP.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Сесія Codewhale в терміналі" width="760">
<sub>Збірка 0.10.2 для розробки з тестовою моделлю, що діє за сценарієм, з дозволом «Повний доступ» в одноразовому робочому просторі. Зміна, три тести й перевірка субагентом відбулися насправді.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — на 30% більше використання DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Переглянути пропозицію Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale отримує від OrcaRouter винагороду за рекомендації.
## Встановлення
macOS і Linux:
Codewhale — агент для програмування з відкритим кодом для вашого термінала, написаний на Rust. Він працює з будь-якою моделлю, вміє розділити одне завдання між кількома агентами, і кожен його рядок можна прочитати.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Інсталятор встановлює в `~/.local/bin` перевірені за контрольними сумами
`codewhale` і його короткий псевдонім `codew`. Якщо після цього оболонка
виводить `command not found`, виконайте рядок для PATH, який друкує інсталятор
([докладніше](../INSTALL.md#put-it-on-your-path)). Оновлення виконує
`codewhale update`. Ці команди встановлюють останній реліз. Ця сторінка
відповідає гілці `main`, тож функція з позначкою версії з’явиться у
відповідному релізі; що додає кожен реліз, дивіться в
[журналі змін](../../CHANGELOG.md).
Ця команда встановлює останній випуск на macOS або Linux, і обліковий запис не потрібен. [Windows, npm і Cargo](#встановлення) описано нижче.
<details>
<summary><b>Windows, npm, Cargo та інші способи встановлення</b></summary>
[![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)
<sub>Цей переклад є машинною чернеткою, яку ще не перевіряли носії мови.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale у терміналі після демонстраційного завдання. Він повідомляє, що додав прапорець --json до export.py, що всі 3 локальні тести пройшли і що делегована перевірка не знайшла проблем. Список завдань нижче показує три виконані кроки, а рядок стану — Full Access і локального постачальника website-demo.">
<sub>Збірка розробки версії 0.10.3, яку ще не випущено, зі сценарною тестовою моделлю, у режимі Full Access в одноразовому робочому просторі. Правка, три тести й перевірка субагентом виконувалися насправді.</sub>
</div>
## Встановлення
Команда вище кладе перевірений за контрольною сумою `codewhale` і його короткий псевдонім `codew` у `~/.local/bin`. Якщо після цього оболонка пише `command not found`, виконайте підказку щодо PATH, яку виводить інсталятор ([докладніше](../INSTALL.md#put-it-on-your-path)). `codewhale update` оновлює його.
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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. Nix,
Homebrew у Linux, Android/Termux (попередня версія) і ручне завантаження
описано в [посібнику зі встановлення](../INSTALL.md), а контейнери — у
[Docker](../DOCKER.md). Використовуйте на одній машині лише один спосіб
встановлення, інакше в `PATH` опиняться дві копії й спрацює та, що стоїть
першою.
</details>
Готові двійкові файли є для Linux, macOS і Windows на x64 та arm64. Scoop, Nix, Homebrew у Linux, Android і Termux (попередня версія) та ручне завантаження описано в [посібнику зі встановлення](../INSTALL.md), а контейнери — у [Docker](../DOCKER.md). Використовуйте на одній машині лише один спосіб встановлення; інакше в `PATH` опиняться дві копії, і спрацює та, що знайдеться першою.
## Швидкий старт
1. Закомітьте або відкладіть у stash свою роботу, потім запустіть `codewhale`
з кореня git-репозиторію. За замовчуванням (**Приймати правки**, Accept Edits) він змінює файли в репозиторії без запиту
і питає перед кожною командою; `Shift+Tab` послідовно перемикає дозвіл, коли потрібно, щоб він питав частіше або рідше.
2. Виконайте `/provider` (або натисніть `F3`), виберіть провайдера, вставте
його ключ API і виберіть модель. Провайдер за замовчуванням — DeepSeek. Якщо
ключа немає, виберіть натомість локальний рантайм. Якщо жодного провайдера
не налаштовано, а в Ollama вже запущено чат-модель, Codewhale автоматично
використає її; починаючи з 0.10.2, він пропонує її, коли ви надсилаєте
перше повідомлення.
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`
показує команди й клавіші.
Команди лише для читання виконуються одразу. Для будь-якої іншої команди оболонки Codewhale спершу питає: `y` виконує її один раз, `a` дозволяє схожі команди до кінця розмови, а `n` відмовляє. `/undo` скасовує ваш останній запит і його зміни у файлах, а `/help` показує команди й клавіші.
Для скриптів і CI `codewhale exec` виконує одне завдання без інтерфейсу. За
замовчуванням `--auto` використовує «Повний доступ»: інструменти виконуються
без запиту, команди оболонки працюють без пісочниці Codewhale, а режим довіри
дозволяє файловим інструментам записувати файли поза робочим простором. Додайте
`--sandbox workspace-write`, щоб зберегти пісочницю оболонки й обмежити файлові
інструменти робочим простором, вимкнувши режим довіри:
Для скриптів і CI `codewhale exec` виконує одне завдання без інтерфейсу. Прочитайте про [запуск без інтерфейсу](../INSTALL.md#headless-scripts-ci), перш ніж давати йому інструменти через `--auto`, бо `--auto` використовує Full Access, якщо ви не додасте пісочницю.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Що він робить
## Режими й дозволи
Дайте Codewhale завдання, і він прочитає репозиторій, відредагує файли та виконає команди, доки завдання не буде виконано або йому не знадобиться ваша відповідь. У [нотатках до останнього релізу](https://github.com/codewhale-hq/Codewhale/releases/latest) перелічено найновіші зміни, а в [журналі змін](../../CHANGELOG.md) є всі версії.
Після нового встановлення Codewhale запускається в режимі Work з дозволом
«Приймати правки». Один перемикач змінює обидва: `Shift+Tab` послідовно перемикає «Запитувати» → «Приймати правки» → Plan → «Автоперевірка» → «Повний доступ».
### Будь-яка модель
| | Як перемкнути | Варіанти |
| --- | --- | --- |
| Режим | позиція Plan на `Shift+Tab` або `/mode` | **Plan** читає й шукає, але нічого не змінює. **Work** (усі інші позиції) редагує файли й виконує команди; запустіть ціль за допомогою `/goal`, коли запит потребує більше одного ходу. |
| Дозвіл | `Shift+Tab` | **Запитувати** (Ask) питає перед кожною зміною файлу та перед кожною командою оболонки, яка не є лише для читання. **Приймати правки** (Accept Edits) застосовує зміни у файлах вашого git-репозиторію без запиту й надалі питає перед командами. **Автоперевірка** (Auto-Review) дає правилам і моделі-рецензенту схвалювати рутинні виклики й відхиляє виклики з високим ризиком; щоб схвалювати їх самостійно, перейдіть на «Запитувати». **Повний доступ** (Full Access) ніколи не питає, а команди матимуть доступ до всього на цьому комп’ютері; правила репозиторію та керована політика й далі діють. |
Вбудовано понад 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)).
Докладніше — у [посібнику з режимів і дозволів](../MODES.md).
## Що він уміє
### Нове в 0.10.2
- `/pet on` перетворює ваш термінал на анімованого кита, який показує, що
робить агент, а поле повідомлення при цьому лишається активним. Його 980
частинок складаються в назву поточного кроку англійською, китайською або
японською.
- `/workbar terminal` показує оболонки, які запускає агент, просто під час
їхньої роботи. У будь-яку з них можна вводити текст, а `Ctrl+N` відкриває
вашу власну оболонку (macOS і Linux).
- `/undo` за один крок скасовує весь ваш останній запит разом з усіма зміненими
ним файлами, а `/diff` працює в теках без Git.
- Коли план готовий, Codewhale питає, чи почати Work із дозволом «Запитувати»
або «Автоперевірка», чи продовжити планування.
- `/color` дає кожному чату власний колір поля введення, що зберігається
разом із сесією.
- `web_search` може використовувати новий Search API від DeepSeek: задайте
`[search] provider = "deepseek"` і ключ DeepSeek.
- Поза «Повним доступом» `curl` або `wget`, що надіслали б облікові дані,
ніколи не виконуються без вашого схвалення, а команду, що приховує невидимі
символи Unicode, буде відхилено. `write` більше не замінює файл, який агент
не читав або який змінився після того, як агент його прочитав.
### Моделі
Вбудовано понад 40 провайдерів, серед них Anthropic, OpenAI, DeepSeek,
Google, Mistral, Moonshot, OpenRouter і xAI. Працює будь-яка OpenAI-сумісна
кінцева точка, а також локальні моделі через Ollama, vLLM або SGLang. За
замовчуванням використовується `deepseek-flash` від DeepSeek, який DeepSeek
2026-10-17 переключив на DeepSeek-V4.1-Flash-1017; 0.10.1 працює з ним без
оновлення ([докладніше](../PROVIDERS.md#deepseek-v41-flash)).
`/model` перемикає модель між ходами, а `/model auto` вибирає модель для
кожного ходу (як саме, налаштовує `/router`). `/turn inspect` показує, яку
модель використав хід, скільки він коштував і скільки тривав.
`codewhale auth chatgpt` дає змогу користуватися підпискою ChatGPT замість
ключа API (експериментально). Див. [Провайдери](../PROVIDERS.md).
`/model` змінює модель між ходами, а `/model auto` вибирає модель для кожного ходу (як саме, задає `/router`). `/turn inspect` показує, яку модель використав хід, скільки він коштував і скільки тривав. Див. [Постачальники](../PROVIDERS.md).
### Квитанції та скасування
`/receipts` (або `codewhale receipts --last` після виходу) перелічує змінені
файли, виконані команди, вебзапити й виклики MCP, запущених агентів,
підтвердження і те, хто їх дав, а також збої. `/undo` скасовує ваш останній запит і зміни у його файлах за один крок, без режиму довіри. `/restore` повертає весь робочий простір до раніше
збереженого знімка; оскільки це перезаписує пізніші зміни, потрібен
`/trust on` або «Повний доступ». Див. [Квитанції](../RECEIPTS.md).
`/receipts` або `codewhale receipts --last` після виходу перелічує файли, змінені за сеанс, виконані команди, веб- і MCP-виклики, запущених агентів, кожне підтвердження й того, хто його дав, а також невдачі. `/undo` за один крок скасовує ваш останній запит і змінені ним файли. `/restore` повертає весь робочий простір до раннішого знімка; оскільки це перезаписує подальші правки, потрібен `/trust on` або Full Access. Див. [Квитанції](../RECEIPTS.md).
Запуски exec, у яких доступні інструменти, зберігаються за будь-якого формату
виводу, тому `codewhale receipts --last` працює після `exec --auto`, зокрема
з `--json`. Запуски без інструментів із текстовим виводом або `--json`
зберігаються лише при відновленні або коли починається стиснення розмови;
використовуйте `--output-format stream-json`, щоб завжди зберігати їх для
квитанцій або `exec --continue`.
### Кілька агентів на одному завданні
### Довші завдання
`/goal` задає ціль, яка зберігається між ходами. Codewhale може розподіляти
роботу між [субагентами](../SUBAGENTS.md), запускати
[групу агентів](../FLEET.md) або виконувати
[робочий процес](../WORKFLOW_AUTHORING.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)).
`/goal` задає мету, яка зберігається між ходами. Codewhale може розділити роботу між [субагентами](../SUBAGENTS.md), запустити [Fleet](../FLEET.md) агентів із власними ролями й моделями або виконувати [робочий процес](../WORKFLOW_AUTHORING.md), збережений у репозиторії.
### Розширення
Підключайте [MCP-сервери](../MCP.md), додавайте [навички](../SKILLS.md) і
[плагіни](../PLUGINS.md) та запускайте [гуки](../HOOKS.md) на події сесії
та інструментів. Code mode (експериментальний, увімкнений за замовчуванням)
дає моделі змогу написати одну програму `execute_tools`, яка викликає кілька
інструментів MCP і плагінів; кожен виклик і далі проходить через ваші правила
підтвердження й отримує свою квитанцію. Окремо встановлюваний плагін Computer Use (експериментальний, лише для macOS), може спостерігати за іншими
застосунками й керувати ними. Він залишається вимкненим, доки ви не перевірите
його доступ і не ввімкнете його
([посібник](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Підключайте [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 "…"` | Одне завдання без інтерфейсу. Без додаткових прапорців він відповідає, не використовуючи інструментів; `--auto` за замовчуванням вмикає інструменти з «Повним доступом», `--sandbox workspace-write` обмежує їх, а `--output-format stream-json` передає події потоком у форматі JSON |
| `codewhale web` | Локальний вебінтерфейс на `127.0.0.1` ([посібник](../WEB.md)) |
| `codewhale review --pr N` | Рекомендаційний огляд pull request у GitHub. [Налаштування бота GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) створює закріплений workflow для автоматичних оглядів і `@codewhale review`, використовуючи власний ключ моделі та необов'язкову ідентифікацію App |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md) — локальний HTTP API для тредів, подій, підтверджень і змін у файлах кожного ходу |
| `codewhale serve --acp` | Agent Client Protocol через stdio для редакторів, як-от Zed |
| `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)).
Нативний настільний застосунок на основі Runtime API в розробці; публічного
завантаження для нього поки немає.
Термінальний застосунок, `exec`, `web` і Runtime API використовують один рушій ([архітектура](../ARCHITECTURE.md)). [Розширення для VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode), яке підтримує спільнота, підключається до нього з бічної панелі ([вихідний код](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Вартість і облікові записи
## Як він дбає про безпеку
Codewhale безкоштовний і поширюється за ліцензією MIT. З власним ключем API ви
платите провайдерові напряму; локальним моделям ключ не потрібен. Нижній рядок
і `/cost` показують, скільки коштувала сесія, якщо ціна відома; невідома ціна
показується як невідома і ніколи — як безкоштовна.
Два перемикачі визначають, скільки 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).
Обліковий запис не обов’язковий. Ключі, які ви додаєте через `/provider`,
залишаються на вашій машині.
З’явиться в 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` показує наступний запит із прихованими даними, не надсилаючи його.
З дозволами «Запитувати» й «Автоперевірка» команди виконуються в пісочниці ОС,
якщо система її має: Seatbelt у macOS і bubblewrap у Linux, якщо його
встановлено. У Windows пісочниці ОС поки немає, а «Повний доступ» вимикає
пісочницю. Усередині пісочниці команди оболонки не можуть читати сховища
облікових даних, як-от `~/.ssh`, `~/.aws` і файли `.env`; починаючи з 0.10.2,
те саме правило поширюється на термінальні сесії та більше файлових
інструментів. `/preview-request` показує наступний запит із прихованими
чутливими даними, не надсилаючи його.
Обліковий запис не потрібен, а ключі, додані через `/provider`, залишаються на вашій машині. Зі своїм API-ключем ви платите постачальнику напряму, а локальним моделям ключ не потрібен. Нижній рядок і `/cost` показують вартість сеансу, коли ціна відома; невідома ціна показується як невідома, але ніколи як безкоштовна.
Телеметрію ввімкнено за замовчуванням. Вона надсилає агреговані лічильники
(версія й платформа, тривалість і результат сесії, які вбудовані провайдери ви
використовували, лічильники функцій і помилок) разом із випадковим
ідентифікатором встановлення, який змінюється кожні 90 днів, і ніколи не
надсилає розмови, код, промпти, назви моделей, назви файлів чи репозиторіїв
або облікові дані. `codewhale config set telemetry false` її вимикає. Під час
запуску Codewhale також перевіряє на GitHub, чи вийшов новий реліз; щоб
пропустити цю перевірку, задайте `CODEWHALE_NO_UPDATE_CHECK=1`.
Докладніше: [порядок авторизації](../AUTHORIZATION_ORDER.md),
[пісочниця](../SANDBOX.md) і [телеметрія](../TELEMETRY.md).
Телеметрію ввімкнено за замовчуванням. Вона надсилає агреговані лічильники (версія й платформа, тривалість і підсумок сеансу, які вбудовані постачальники ви використовували, лічильники функцій і помилок) з випадковим ідентифікатором встановлення, що змінюється кожні 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)).
## Документація
Ці посібники відповідають основній гілці й можуть описувати зміни, яких ще немає в останньому випуску.
| З чого почати | Довідка |
| --- | --- |
| [Встановлення](../INSTALL.md) | [Конфігурація](../CONFIGURATION.md) |
| [Провайдери та локальні моделі](../PROVIDERS.md) | [Архітектура](../ARCHITECTURE.md) |
| [Режими й дозволи](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Комбінації клавіш](../KEYBINDINGS.md) | [Створення плагінів](../PLUGIN_AUTHORING.md) |
| [Огляд PR у GitHub](../GITHUB_ACTION.md) | [Уся документація](../README.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 став таким завдяки спільноті, і ми раді будь-якому відгуку: помилці, ідеї або тому, що виглядало чи відчувалося не так.
[Створіть issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) у будь-якому з цих випадків; нову функцію теж найкраще починати з issue.
Pull request’и вітаються для виправлень, перекладів, провайдерів і запланованої роботи.
[Посібник для учасників](../../CONTRIBUTING.md) пояснює, куди спрямувати кожен вид допомоги, а [дорожня карта](../ROADMAP.md) показує, куди рухається проєкт.
Авторство прийнятої роботи залишається за учасниками, а [структура репозиторію](../../CONTRIBUTING.md#project-structure) показує, де що лежить.
Codewhale відкрито створюють ті, хто ним користується, багатьма мовами.
Спілкуйтеся в [Discord](https://discord.gg/37gfS3ksug) або додайте супровідника
проєкту, Гантера, у WeChat (`hunterbown`) і попросіть додати вас до групи
Whale Brothers. Ми раді кожному.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Стіна учасників Codewhale: по аватару на кожну людину, чий код, коміти у співавторстві, продовжені pull request або відзначені повідомлення є в Codewhale, а вгорі загальна кількість."></a>
[Стіна учасників](../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, ні з жодним
іншим провайдером моделей. Дякуємо
[усім, хто долучився до проєкту](../CONTRIBUTORS.md).
Codewhale починався як `deepseek-tui` і досі читає конфігурацію та сеанси того проєкту. Його підтримують незалежно, і він не пов’язаний ні з DeepSeek, ні з іншим постачальником моделей.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Код, адаптований з інших проєктів із відкритим кодом,
перелічено в [повідомленнях про сторонні компоненти](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Код, запозичений з інших проєктів з відкритим кодом, перелічено в повідомленнях про третіх осіб для [включених джерел](../../THIRD_PARTY_NOTICES.md) і [запозичених рішень](../THIRD_PARTY_NOTICES.md).
+96 -217
View File
@@ -1,22 +1,23 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**Tác nhân lập trình mã nguồn mở chạy trong terminal, hoạt động với mọi mô hình.**
<h1>Mô hình có thể là của bất kỳ ai. Agent nên là của bạn.</h1>
Giao cho Codewhale một tác vụ, nó sẽ đọc kho mã, chỉnh sửa tệp và chạy lệnh cho
đến khi tác vụ hoàn thành hoặc cần bạn cung cấp thêm thông tin. Codewhale hoạt
động với hơn 40 nhà cung cấp tích hợp sẵn, mặc định là DeepSeek V4.1 Flash, và
với các mô hình chạy trên chính máy của bạn. `/receipts` liệt kê các tệp nó đã thay đổi,
các lệnh nó đã chạy, cùng các lệnh gọi web và MCP nó đã thực hiện.
Codewhale là một agent lập trình mã nguồn mở cho terminal của bạn, được viết bằng Rust. Nó làm việc với bất kỳ mô hình nào, có thể chia một nhiệm vụ cho nhiều agent, và bạn có thể đọc từng dòng mã của nó.
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
Lệnh này cài bản phát hành mới nhất trên macOS hoặc Linux và không cần tài khoản. [Windows, npm và Cargo](#cài-đặt) ở bên dưới.
[![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)
@@ -24,263 +25,141 @@ các lệnh nó đã chạy, cùng các lệnh gọi web và MCP nó đã thực
[English](../../README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.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) · [Українська](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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="Một phiên terminal của Codewhale" width="760">
<sub>Bản dịch này là bản nháp do máy dịch và chưa được người bản ngữ xem lại.</sub>
<sub>Một bản dựng phát triển 0.10.2 với mô hình thử nghiệm chạy theo kịch bản, ở chế độ Full Access trong một không gian làm việc dùng một lần. Thao tác chỉnh sửa, ba bài kiểm thử và lượt đánh giá của tác nhân phụ đều chạy thật.</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="Codewhale trong terminal sau một nhiệm vụ demo. Nó báo đã thêm cờ --json vào export.py, cả 3 bài kiểm thử cục bộ đều đạt và bài review được ủy quyền không tìm thấy vấn đề. Danh sách nhiệm vụ bên dưới có ba bước đã hoàn thành, và dòng trạng thái hiển thị Full Access cùng nhà cung cấp cục bộ website-demo.">
<sub>Một bản dựng phát triển của 0.10.3, phiên bản chưa phát hành, với mô hình kiểm thử theo kịch bản, chạy ở Full Access trong một workspace dùng một lần. Phần chỉnh sửa, ba bài kiểm thử và một lần review của sub-agent đều chạy thật.</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter — thêm 30% dung lượng sử dụng DeepSeek v4.1 Flash" width="760">
</a>
</p>
[Xem ưu đãi Codewhale × OrcaRouter](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale nhận phí giới thiệu từ OrcaRouter.
## Cài đặt
macOS và Linux:
Lệnh ở trên đặt `codewhale` đã kiểm tra checksum và bí danh ngắn `codew` vào `~/.local/bin`. Nếu shell sau đó báo `command not found`, hãy làm theo ghi chú PATH mà trình cài đặt in ra ([chi tiết](../INSTALL.md#put-it-on-your-path)). `codewhale update` sẽ nâng cấp nó.
```bash
curl -fsSL https://codewhale.net/install.sh | sh
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
```
Trình cài đặt đặt `codewhale` và bí danh ngắn `codew` của nó, đã được xác minh
checksum, vào `~/.local/bin`. Nếu sau đó shell báo `command not found`, hãy chạy
dòng PATH mà trình cài đặt in ra
([chi tiết](../INSTALL.md#put-it-on-your-path)). Dùng `codewhale update` để
nâng cấp. Các lệnh này cài bản phát hành mới nhất. Trang này theo nhánh `main`,
nên một tính năng được đánh dấu phiên bản sẽ có mặt trong bản phát hành đó;
[nhật ký thay đổi](../../CHANGELOG.md) liệt kê những gì mỗi bản phát hành bổ sung.
<details>
<summary><b>Windows, npm, Cargo và các cách cài khác</b></summary>
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
```
Có sẵn tệp nhị phân dựng sẵn cho Linux, macOS và Windows trên x64 và arm64. Nix,
Homebrew trên Linux, Android/Termux (bản xem trước) và tải thủ công được trình
bày trong [hướng dẫn cài đặt](../INSTALL.md), còn container thì ở
[Docker](../DOCKER.md). Mỗi máy chỉ nên dùng một cách cài đặt; nếu không, hai
bản sẽ cùng nằm trên `PATH` và bản nào đứng trước sẽ được dùng.
</details>
Bản nhị phân dựng sẵn có cho Linux, macOS và Windows trên x64 và arm64. Scoop, Nix, Homebrew trên Linux, Android và Termux (bản xem trước) cùng cách tải thủ công có trong [hướng dẫn cài đặt](../INSTALL.md), còn container có trong [Docker](../DOCKER.md). Mỗi máy chỉ nên dùng một cách cài; nếu không, hai bản sẽ cùng nằm trên `PATH` và bản nào đứng trước sẽ được dùng.
## Bắt đầu nhanh
1. Commit hoặc stash công việc của bạn, rồi chạy `codewhale` từ thư mục gốc của
một kho git. Theo mặc định, nó (**Accept Edits**) chỉnh sửa tệp trong kho mà không hỏi
và hỏi trước mỗi lệnh; `Shift+Tab` chuyển từng nấc quyền khi bạn muốn nó hỏi nhiều hơn hoặc ít hơn.
2. Chạy `/provider` (hoặc nhấn `F3`), chọn một nhà cung cấp, dán khóa API của
nhà cung cấp đó và chọn một mô hình. DeepSeek là nhà cung cấp mặc định. Nếu
không có khóa, hãy chọn một runtime cục bộ. Nếu chưa cấu hình nhà cung cấp
nào và Ollama đang phục vụ sẵn một mô hình trò chuyện, Codewhale sẽ tự động
dùng mô hình đó; từ 0.10.2, nó sẽ đề xuất mô hình đó khi bạn gửi tin nhắn đầu
tiên.
3. Nhập một tác vụ:
1. Commit hoặc stash công việc của bạn, rồi chạy `codewhale` từ thư mục gốc của một kho git. Mặc định, nó áp dụng các chỉnh sửa tệp trong kho mà không hỏi, và hỏi trước mỗi lệnh shell không chỉ đọc.
2. Chạy `/provider` (hoặc nhấn `F3`), chọn một nhà cung cấp, dán khóa API và chọn mô hình. Nhà cung cấp mặc định là DeepSeek. Ở lần khởi chạy đầu tiên khi chưa có khóa, Codewhale hỏi nhà cung cấp khi bạn gửi tin nhắn đầu tiên, và đề xuất một mô hình cục bộ khi máy chủ Ollama cục bộ phản hồi.
3. Nhập một nhiệm vụ:
```text
Fix the failing tests and explain what changed.
```
Các lệnh chỉ đọc chạy ngay. Với mọi lệnh shell khác, Codewhale hỏi trước: `y`
chạy lệnh một lần, `a` cho phép các lệnh tương tự trong phần còn lại của cuộc
trò chuyện, `n` từ chối. `/undo` hoàn tác yêu cầu gần nhất của bạn cùng các thay
đổi tệp của nó. `/help` liệt kê các lệnh
và phím tắt.
Lệnh chỉ đọc chạy ngay. Với mọi lệnh shell khác, Codewhale hỏi trước: `y` chạy một lần, `a` cho phép các lệnh tương tự trong phần còn lại của cuộc trò chuyện, và `n` từ chối. `/undo` hoàn tác yêu cầu cuối cùng cùng các thay đổi tệp của nó, và `/help` liệt kê lệnh và phím.
Với script và CI, `codewhale exec` chạy một tác vụ mà không cần giao diện. Theo
mặc định, `--auto` dùng Full Access: công cụ chạy mà không hỏi, lệnh shell
không bị sandbox của Codewhale giới hạn, và chế độ tin cậy cho phép công cụ
tệp ghi ra ngoài không gian làm việc. Thêm `--sandbox workspace-write` để giữ
sandbox cho shell và giới hạn công cụ tệp trong không gian làm việc, đồng thời
tắt chế độ tin cậy:
Với script và CI, `codewhale exec` chạy một nhiệm vụ mà không cần giao diện. Hãy đọc [chạy không giao diện](../INSTALL.md#headless-scripts-ci) trước khi cho nó công cụ bằng `--auto`, vì `--auto` dùng Full Access trừ khi bạn thêm sandbox.
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## Nó làm gì
## Chế độ và quyền
Giao cho Codewhale một nhiệm vụ, nó sẽ đọc kho mã, chỉnh sửa tệp và chạy lệnh cho đến khi xong hoặc cần bạn nhập thêm. [Ghi chú phát hành mới nhất](https://github.com/codewhale-hq/Codewhale/releases/latest) liệt kê các thay đổi mới nhất, và [nhật ký thay đổi](../../CHANGELOG.md) có mọi phiên bản.
Bản cài đặt mới khởi động ở chế độ Work với quyền Accept Edits. Một nút xoay duy nhất chuyển cả hai: `Shift+Tab` lần lượt chuyển Ask → Accept Edits → Plan → Auto-Review → Full Access.
### Bất kỳ mô hình nào
| | Chuyển bằng | Tùy chọn |
| --- | --- | --- |
| Chế độ | nấc Plan trên `Shift+Tab`, hoặc `/mode` | **Plan** đọc và tìm kiếm nhưng không thay đổi gì. **Work** (mọi nấc khác) chỉnh sửa tệp và chạy lệnh; hãy bắt đầu một mục tiêu với `/goal` khi yêu cầu cần nhiều hơn một lượt. |
| Quyền | `Shift+Tab` | **Ask** hỏi trước mỗi chỉnh sửa tệp và trước mọi lệnh shell không phải chỉ đọc. **Accept Edits** áp dụng các chỉnh sửa tệp trong kho git của bạn mà không hỏi và vẫn hỏi trước khi chạy lệnh. **Auto-Review** để các quy tắc và một mô hình đánh giá phê duyệt các lệnh gọi thông thường, và từ chối các lệnh gọi rủi ro cao; hãy chuyển sang Ask để tự phê duyệt những lệnh gọi đó. **Full Access** không bao giờ hỏi, và lệnh có thể truy cập mọi thứ trên máy tính này; các quy tắc của kho mã và chính sách được quản lý vẫn được áp dụng. |
Hơn 40 nhà cung cấp được tích hợp sẵn, gồm Anthropic, OpenAI, DeepSeek, Google, Mistral, Moonshot, OpenRouter và xAI. Mọi endpoint tương thích OpenAI đều dùng được, và cả mô hình cục bộ qua Ollama, vLLM hoặc SGLang. Mô hình mặc định là `deepseek-flash` của DeepSeek, hiện do DeepSeek V4.1 Flash phục vụ ([chi tiết](../PROVIDERS.md#deepseek-v41-flash)).
Xem chi tiết trong [hướng dẫn về chế độ và quyền](../MODES.md).
## Codewhale làm được gì
### Có gì mới trong 0.10.2
- `/pet on` biến terminal của bạn thành một chú cá voi chuyển động cho thấy tác
nhân đang làm gì, trong khi ô nhập tin nhắn vẫn dùng được. 980 hạt của nó ghép
thành bước hiện tại bằng tiếng Anh, tiếng Trung hoặc tiếng Nhật.
- `/workbar terminal` hiển thị các shell mà tác nhân đang chạy ngay trong lúc
chúng chạy. Bạn có thể gõ vào một shell, hoặc nhấn `Ctrl+N` để mở shell của
riêng bạn (macOS và Linux).
- `/undo` hoàn tác toàn bộ yêu cầu gần nhất của bạn trong một bước, gồm mọi tệp
mà yêu cầu đó đã thay đổi, và `/diff` hoạt động cả trong thư mục không dùng Git.
- Khi một kế hoạch đã sẵn sàng, Codewhale hỏi bạn muốn bắt
đầu Work với Ask hay Auto-Review, hay tiếp tục lập kế hoạch.
- `/color` đặt cho mỗi cuộc trò chuyện một màu ô soạn thảo riêng, được lưu cùng
phiên.
- `web_search` có thể dùng Search API mới của DeepSeek: đặt
`[search] provider = "deepseek"` cùng với một khóa DeepSeek.
- Ngoài Full Access, một lệnh `curl` hoặc `wget` có thể tải lên thông tin xác thực
sẽ không bao giờ chạy khi chưa có sự phê duyệt của bạn, và một lệnh che giấu ký
tự Unicode vô hình sẽ bị từ chối. `write` không còn thay thế một tệp mà tác
nhân chưa đọc, hoặc một tệp đã thay đổi sau khi tác nhân đọc nó.
### Mô hình
Hơn 40 nhà cung cấp được tích hợp sẵn, gồm Anthropic, OpenAI, DeepSeek, Google,
Mistral, Moonshot, OpenRouter và xAI. Mọi endpoint tương thích OpenAI đều dùng
được, mô hình cục bộ qua Ollama, vLLM hoặc SGLang cũng vậy. Mặc định là
`deepseek-flash` của DeepSeek, mô hình mà DeepSeek đã chuyển sang
DeepSeek-V4.1-Flash-1017 vào ngày 2026-10-17; 0.10.1 chạy được mô hình này mà
không cần cập nhật ([chi tiết](../PROVIDERS.md#deepseek-v41-flash)).
`/model` đổi mô hình giữa các lượt, còn `/model auto` chọn một mô hình cho từng
lượt (`/router` thiết lập cách chọn). `/turn inspect` cho biết một lượt đã dùng
mô hình nào, tốn bao nhiêu chi phí và mất bao lâu. `codewhale auth chatgpt` cho
phép bạn dùng gói ChatGPT thay cho khóa API (thử nghiệm). Xem
[Nhà cung cấp](../PROVIDERS.md).
`/model` đổi mô hình giữa các lượt, và `/model auto` chọn một mô hình cho mỗi lượt (`/router` thiết lập cách chọn). `/turn inspect` cho biết một lượt đã dùng mô hình nào, tốn bao nhiêu và mất bao lâu. Xem [Nhà cung cấp](../PROVIDERS.md).
### Biên nhận và hoàn tác
`/receipts`, hoặc `codewhale receipts --last` sau khi bạn thoát, liệt kê các tệp
đã thay đổi, các lệnh đã chạy, các lệnh gọi web và MCP, các tác nhân đã khởi
chạy, các phê duyệt và người đã phê duyệt, cùng các lần thất bại. `/undo` hoàn tác yêu cầu gần nhất của bạn và những tệp mà yêu cầu đó đã thay đổi trong một bước, không cần chế độ tin cậy. `/restore` đưa toàn bộ không gian làm việc về một
snapshot trước đó; vì thao tác này ghi đè các chỉnh sửa sau đó, nó cần
`/trust on` hoặc Full Access. Xem [Biên nhận](../RECEIPTS.md).
`/receipts`, hoặc `codewhale receipts --last` sau khi thoát, liệt kê các tệp một phiên đã thay đổi, các lệnh đã chạy, các lời gọi web và MCP, các agent đã khởi động, mỗi lần phê duyệt và người phê duyệt, và những gì thất bại. `/undo` hoàn tác yêu cầu cuối cùng cùng các tệp nó đã thay đổi trong một bước. `/restore` đưa toàn bộ workspace về một snapshot trước đó, và vì việc này ghi đè các chỉnh sửa sau đó nên cần `/trust on` hoặc Full Access. Xem [Biên nhận](../RECEIPTS.md).
Các lần chạy exec có sẵn công cụ đều được lưu ở mọi định dạng đầu ra,
vì vậy `codewhale receipts --last` dùng được sau `exec --auto`, kể cả khi dùng
`--json`. Các lần chạy chỉ trả lời bằng văn bản hoặc `--json` chỉ được lưu khi
tiếp tục cuộc trò chuyện hoặc khi bắt đầu nén cuộc trò chuyện; dùng
`--output-format stream-json` để luôn lưu chúng cho biên nhận hoặc
`exec --continue`.
### Nhiều agent trên một nhiệm vụ
### Công việc dài hơi
`/goal` đặt một mục tiêu được giữ qua các lượt. Codewhale có thể chia việc cho
các [tác nhân phụ](../SUBAGENTS.md), chạy một [nhóm tác nhân](../FLEET.md),
hoặc làm theo một [workflow](../WORKFLOW_AUTHORING.md) đã được commit vào kho
mã.
### Chuyển từ tác nhân khác
Codewhale tự đọc `AGENTS.md`. Các tệp chỉ dẫn viết cho công cụ khác, như
`CLAUDE.md`, `.cursorrules` hoặc `.github/copilot-instructions.md`, chỉ được nạp
khi bạn chủ động bật bằng `project_instruction_imports = ["claude"]` (hoặc
`"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) trong cấu hình; xem
[config.example.toml](../../config.example.toml). Codewhale sẽ cảnh báo khi tìm thấy
một tệp như vậy mà nó không nạp.
`/import-claude` chuẩn bị việc nhập cài đặt Claude Code và các máy chủ MCP của
bạn để bạn xem lại. `/plugin install` chấp nhận các plugin Claude Code chứa
skill, lệnh, hồ sơ tác nhân và máy chủ MCP, và từ chối các plugin cần hook hoặc
máy chủ LSP ([chi tiết](../CLAUDE_PLUGIN_COMPAT.md)).
`/goal` đặt một mục tiêu kéo dài qua nhiều lượt. Codewhale có thể chia việc cho các [sub-agent](../SUBAGENTS.md), chạy một [Fleet](../FLEET.md) gồm các agent với vai trò và mô hình riêng, hoặc làm theo một [quy trình làm việc](../WORKFLOW_AUTHORING.md) được commit trong kho.
### Tiện ích mở rộng
Kết nối [máy chủ MCP](../MCP.md), thêm [skill](../SKILLS.md) và
[plugin](../PLUGINS.md), và chạy [hook](../HOOKS.md) theo sự kiện phiên và
công cụ. Chế độ code (thử nghiệm, bật theo mặc định) cho phép mô hình viết một
chương trình `execute_tools` gọi nhiều công cụ MCP và plugin; mỗi lệnh gọi vẫn
tuân theo quy tắc phê duyệt của bạn và vẫn có biên nhận riêng. Plugin Computer
Use được cài đặt riêng (thử nghiệm, chỉ có trên macOS) có thể quan
sát và điều khiển các ứng dụng khác. Plugin này luôn tắt cho đến khi bạn xem lại
quyền truy cập của nó và bật nó lên
([hướng dẫn](https://github.com/codewhale-hq/codewhale-cu-plugin)).
Kết nối [máy chủ MCP](../MCP.md), thêm [kỹ năng](../SKILLS.md) và [plugin](../PLUGINS.md), và chạy [hook](../HOOKS.md) trên các sự kiện phiên và công cụ. Chế độ mã (thử nghiệm, bật mặc định) cho phép mô hình viết một chương trình `execute_tools` gọi nhiều công cụ MCP và plugin; mỗi lời gọi vẫn tuân theo quy tắc phê duyệt của bạn và giữ biên nhận. Plugin Computer Use đi kèm v0.10.2 (thử nghiệm, chỉ macOS) có thể quan sát và điều khiển các ứng dụng khác, và nó luôn tắt cho đến khi bạn xem lại quyền truy cập và bật nó ([hướng dẫn](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/crates/tui/plugins/computer-use/README.md)). Sắp có trong 0.10.3: plugin này được [phát hành riêng](https://github.com/codewhale-hq/codewhale-cu-plugin).
## Các cách chạy
### Các cách chạy
| Lệnh | Chức năng |
| Lệnh | Tác dụng |
| --- | --- |
| `codewhale` | Ứng dụng terminal tương tác |
| `codewhale exec "…"` | Một tác vụ không có giao diện. Khi không kèm cờ, nó trả lời mà không dùng công cụ; `--auto` bật công cụ với Full Access theo mặc định, `--sandbox workspace-write` giới hạn chúng, còn `--output-format stream-json` phát trực tiếp các sự kiện dưới dạng JSON |
| `codewhale web` | Giao diện web cục bộ tại `127.0.0.1` ([hướng dẫn](../WEB.md)) |
| `codewhale review --pr N` | Đánh giá mang tính tham khảo cho một pull request trên GitHub. [Thiết lập bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) tạo một workflow được ghim phiên bản cho các đánh giá tự động và `@codewhale review`, dùng khóa mô hình của riêng bạn và danh tính App tùy chọn |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), một API HTTP cục bộ cho thread, sự kiện, phê duyệt và các thay đổi tệp của từng lượt |
| `codewhale serve --acp` | Agent Client Protocol qua stdio, dành cho các trình soạn thảo như Zed |
| `codewhale exec "…"` | Một nhiệm vụ không cần giao diện, cho script và CI ([chạy không giao diện](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | Một ứng dụng web cục bộ trên `127.0.0.1` ([hướng dẫn](../WEB.md)) |
| `codewhale review --pr N` | Một bài review mang tính tư vấn cho pull request trên GitHub; [cài đặt bot GitHub](../GITHUB_ACTION.md#set-up-your-own-bot) chạy nó bằng khóa mô hình của chính bạn |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md), một HTTP API cục bộ cho luồng, sự kiện, phê duyệt và thay đổi tệp của từng lượt |
| `codewhale serve --acp` | Agent Client Protocol qua stdio, cho các trình soạn thảo như Zed |
Ứng dụng terminal, `exec`, `web` và Runtime API dùng chung một engine
([kiến trúc](../ARCHITECTURE.md)). Một
[tiện ích mở rộng VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
do cộng đồng duy trì kết nối với engine này từ thanh bên
([mã nguồn](https://github.com/HengQuWorld/CodeWhale-VSCode)). Một ứng dụng
desktop native xây dựng trên Runtime API đang được phát triển; hiện chưa có bản
tải xuống công khai.
Ứng dụng terminal, `exec`, `web` và Runtime API dùng chung một động cơ ([kiến trúc](../ARCHITECTURE.md)). Một [tiện ích VS Code](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode) do cộng đồng duy trì kết nối với nó từ thanh bên ([mã nguồn](https://github.com/HengQuWorld/CodeWhale-VSCode)).
## Chi phí và tài khoản
## Cách nó giữ an toàn
Codewhale miễn phí và được cấp phép theo MIT. Khi dùng khóa API của riêng mình,
bạn trả tiền trực tiếp cho nhà cung cấp; mô hình cục bộ không cần khóa. Thanh
dưới cùng và `/cost` hiển thị chi phí của một phiên khi biết giá, còn giá chưa
biết được hiển thị là chưa biết, không bao giờ là miễn phí.
Hai công tắc quyết định Codewhale được tự làm bao nhiêu. Khi ô nhập trống, `Tab` đổi chế độ: **Plan** chỉ đọc và tìm kiếm, không thay đổi gì, **Work** chỉnh sửa tệp và chạy lệnh, còn **Operate** có cùng quyền như Work và tiếp tục cho đến khi mục tiêu được xác minh hoặc cần đến bạn. `Shift+Tab` đổi quyền. **Ask**, mặc định, áp dụng chỉnh sửa tệp trong kho mà không hỏi và hỏi trước các lệnh shell không chỉ đọc. **Auto-Review** để các quy tắc và một mô hình duyệt phê duyệt các lệnh gọi thông thường và từ chối lệnh rủi ro cao; chuyển sang Ask để tự phê duyệt chúng. **Full Access** không bao giờ hỏi và tắt sandbox của Codewhale, dù quy tắc của kho và chính sách quản lý vẫn áp dụng. [Hướng dẫn v0.10.2](https://github.com/codewhale-hq/Codewhale/blob/v0.10.2/docs/MODES.md) có chi tiết.
Bạn không cần tài khoản. Các khóa bạn thêm bằng `/provider` được lưu trên máy
của bạn.
Sắp có trong 0.10.3: `Shift+Tab` trở thành một núm xoay qua Ask, Accept Edits, Plan, Auto-Review và Full Access, `Tab` không còn đổi chế độ, và Operate bị loại bỏ. Ask sẽ hỏi trước cả mỗi chỉnh sửa tệp, còn mặc định mới, Accept Edits, sẽ áp dụng chỉnh sửa trong kho git và vẫn hỏi trước các lệnh. [Hướng dẫn hiện tại](../MODES.md) mô tả điều này.
## An toàn và quyền riêng tư
Ở Ask và Auto-Review, lệnh chạy trong sandbox của hệ điều hành nếu hệ thống có: Seatbelt trên macOS, và bubblewrap trên Linux khi đã cài. Windows chưa có sandbox hệ điều hành, và Full Access tắt sandbox. Bên trong sandbox, lệnh shell và phiên terminal không thể đọc các kho thông tin xác thực như `~/.ssh`, `~/.aws` và tệp `.env`. `/preview-request` hiển thị bản xem trước đã che thông tin nhạy cảm của yêu cầu tiếp theo mà không gửi nó.
Ở Ask và Auto-Review, lệnh chạy trong sandbox của hệ điều hành nếu hệ thống có:
Seatbelt trên macOS, và bubblewrap trên Linux khi đã được cài đặt. Windows hiện
chưa có sandbox của hệ điều hành, và Full Access tắt sandbox. Bên trong sandbox,
lệnh shell không thể đọc các kho thông tin xác thực như `~/.ssh`, `~/.aws` và các
tệp `.env`; từ 0.10.2, quy tắc này cũng áp dụng cho các phiên terminal và nhiều
công cụ tệp hơn. `/preview-request` hiển thị bản xem trước của yêu cầu tiếp theo, đã che thông
tin nhạy cảm, mà không gửi yêu cầu đó đi.
Bạn không cần tài khoản, và khóa bạn thêm bằng `/provider` ở lại trên máy của bạn. Với khóa API của riêng bạn, bạn trả tiền trực tiếp cho nhà cung cấp, còn mô hình cục bộ không cần khóa. Chân trang và `/cost` cho biết một phiên đã tốn bao nhiêu khi biết giá, và giá chưa biết được hiển thị là chưa biết, không bao giờ là miễn phí.
Telemetry được bật theo mặc định. Nó gửi các số liệu tổng hợp (phiên bản và nền
tảng, thời lượng và kết quả của phiên, các nhà cung cấp tích hợp sẵn mà bạn đã
dùng, số đếm tính năng và lỗi) kèm một ID cài đặt ngẫu nhiên được thay mới sau
mỗi 90 ngày, và không bao giờ gửi cuộc trò chuyện, mã nguồn, prompt, tên mô hình,
tên tệp hay tên kho mã, hoặc thông tin xác thực.
`codewhale config set telemetry false` sẽ tắt telemetry. Khi khởi động,
Codewhale cũng kiểm tra GitHub xem có bản phát hành mới không; đặt
`CODEWHALE_NO_UPDATE_CHECK=1` để bỏ qua bước này. Xem thêm tại
[thứ tự cấp quyền](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) và
[telemetry](../TELEMETRY.md).
Telemetry được bật mặc định. Nó gửi các số liệu tổng hợp (phiên bản và nền tảng, độ dài và kết quả phiên, các nhà cung cấp tích hợp bạn đã dùng, số lần dùng tính năng và số lỗi) kèm một ID cài đặt ngẫu nhiên đổi mỗi 90 ngày, và không bao giờ gửi cuộc trò chuyện, mã, prompt, tên mô hình, tên tệp hay tên kho, hoặc thông tin xác thực. Lệnh này tắt nó:
```bash
codewhale config set telemetry false
```
Khi khởi động, Codewhale cũng kiểm tra GitHub để tìm bản phát hành mới; đặt `CODEWHALE_NO_UPDATE_CHECK=1` để bỏ qua. Xem thêm [thứ tự cấp quyền](../AUTHORIZATION_ORDER.md), [sandbox](../SANDBOX.md) và [telemetry](../TELEMETRY.md).
## Hướng đi sắp tới
Codewhale đang trở thành một môi trường duy nhất trải khắp terminal, ứng dụng máy tính, trình duyệt và máy tính đám mây của bạn, tất cả chạy bằng một động cơ. Mỗi phần bên dưới cho biết hôm nay nó đang ở đâu.
| Phần | Trạng thái | Hôm nay |
| --- | --- | --- |
| Ứng dụng terminal | Đã phát hành | Cài trên macOS, Linux hoặc Windows và chạy `codewhale` trong bất kỳ kho mã nào. |
| Ứng dụng khách trình duyệt cục bộ | Đã phát hành | Chạy `codewhale web` để đọc cuộc trò chuyện, gửi nhiệm vụ và trả lời yêu cầu phê duyệt ngay trong trình duyệt; nó đi kèm terminal và không cần tài khoản. |
| Nhiều agent trên một nhiệm vụ | Đã phát hành | Sub-agent, Fleet và quy trình làm việc cho phép nhiều agent chia sẻ một nhiệm vụ, mỗi agent một vai trò. |
| Ứng dụng máy tính | Đang phát triển, chưa có bản tải | Chúng tôi đang xây dựng một ứng dụng máy tính trên cùng động cơ, và nó chưa có bản tải công khai. |
| Máy tính đám mây | Chỉ theo lời mời | Máy tính đám mây chỉ dành cho người được mời, và chúng tôi đang xây dựng chúng để một phiên có thể tiếp tục làm việc trên một máy trong đám mây. |
| Một phiên xuyên suốt tất cả | Đang xây dựng | Chúng tôi đang xây dựng một phiên đi cùng bạn từ terminal đến máy tính, trình duyệt và đám mây, và vẫn là của bạn suốt chặng đường. |
[Lộ trình](../ROADMAP.md) cho biết mỗi bản phát hành bao gồm những gì và bạn có thể giúp ở đâu.
## Chuyển từ agent khác sang
Codewhale tự đọc `AGENTS.md`. Các tệp hướng dẫn viết cho công cụ khác, như `CLAUDE.md`, `.cursorrules` hoặc `.github/copilot-instructions.md`, chỉ được nạp khi bạn chủ động bật bằng `project_instruction_imports = ["claude"]` (hoặc `"cursor"`, `"cline"`, `"windsurf"`, `"copilot"`, `"all"`) trong cấu hình; xem [config.example.toml](../../config.example.toml). Codewhale cảnh báo khi tìm thấy một tệp như vậy mà nó không nạp.
`/import-claude` chuẩn bị việc nhập cài đặt Claude Code và máy chủ MCP của bạn để bạn xem lại. `/plugin install` chấp nhận plugin Claude Code chứa kỹ năng, lệnh, hồ sơ agent và máy chủ MCP, và từ chối plugin cần hook hoặc máy chủ LSP ([chi tiết](../CLAUDE_PLUGIN_COMPAT.md)).
## Tài liệu
Các hướng dẫn này đi theo nhánh chính và có thể mô tả những thay đổi chưa có trong bản phát hành mới nhất.
| Bắt đầu tại đây | Tham khảo |
| --- | --- |
| [Cài đặt](../INSTALL.md) | [Cấu hình](../CONFIGURATION.md) |
| [Nhà cung cấp và mô hình cục bộ](../PROVIDERS.md) | [Kiến trúc](../ARCHITECTURE.md) |
| [Chế độ và quyền](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [Phím tắt](../KEYBINDINGS.md) | [Viết plugin](../PLUGIN_AUTHORING.md) |
| [Đánh giá PR trên GitHub](../GITHUB_ACTION.md) | [Toàn bộ tài liệu](../README.md) |
| [Hướng dẫn sử dụng](../GUIDE.md) | [Cấu hình](../CONFIGURATION.md) |
| [Cài đặt](../INSTALL.md) | [Kiến trúc](../ARCHITECTURE.md) |
| [Nhà cung cấp và mô hình cục bộ](../PROVIDERS.md) | [Runtime API](../RUNTIME_API.md) |
| [Chế độ và quyền](../MODES.md) | [Viết plugin](../PLUGIN_AUTHORING.md) |
| [Phím tắt](../KEYBINDINGS.md) | [Biên nhận](../RECEIPTS.md) |
| [Review pull request trên GitHub](../GITHUB_ACTION.md) | [Toàn bộ tài liệu](../README.md) |
## Cộng đồng
## Đóng góp
Codewhale có được như hôm nay là nhờ cộng đồng, và mọi phản hồi đều được chào đón: một lỗi, một ý tưởng, hay một chỗ trông hoặc dùng chưa ổn.
Hãy [mở issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose) cho bất kỳ điều nào trong số đó; issue cũng là nơi tốt nhất để bắt đầu một tính năng mới.
Pull request được chào đón cho các bản sửa lỗi, bản dịch, nhà cung cấp và công việc đã lên kế hoạch.
[Hướng dẫn đóng góp](../../CONTRIBUTING.md) cho biết mỗi kiểu đóng góp nên gửi về đâu, còn [lộ trình](../ROADMAP.md) cho biết dự án đang hướng tới đâu.
Người đóng góp được ghi nhận cho phần việc được hợp nhất, và [bố cục kho mã](../../CONTRIBUTING.md#project-structure) cho biết mọi thứ nằm ở đâu.
Codewhale được xây dựng công khai bởi những người dùng nó, bằng nhiều ngôn ngữ.
Trò chuyện trên [Discord](https://discord.gg/37gfS3ksug), hoặc thêm người duy
trì dự án, Hunter, trên WeChat (`hunterbown`) và xin vào nhóm Whale Brothers. Mọi người đều được chào đón.
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Bức tường người đóng góp của Codewhale: mỗi người có mã, commit đồng tác giả, pull request được tiếp nối hoặc báo cáo được ghi công trong Codewhale có một ảnh đại diện, với tổng số người ở trên cùng."></a>
[Bức tường người đóng góp](../CONTRIBUTORS.md) tính mọi người có mã, commit đồng tác giả, pull request được tiếp nối hoặc báo cáo được ghi công trong Codewhale, kể cả những người mà danh sách người đóng góp của chính GitHub bỏ sót. `scripts/contributor-wall.py` tạo lại hình và danh sách từ lịch sử git và GitHub.
Mọi phản hồi đều được hoan nghênh: một lỗi, một ý tưởng, hoặc điều gì đó trông hay dùng thấy không ổn. [Mở một issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose) cho bất kỳ điều nào trong số đó; issue cũng là nơi tốt nhất để bắt đầu một tính năng mới. Pull request được hoan nghênh cho bản sửa lỗi, bản dịch, nhà cung cấp và công việc đã lên kế hoạch. Câu hỏi hãy gửi lên [Discussions](https://github.com/codewhale-hq/Codewhale/discussions). [Hướng dẫn đóng góp](../../CONTRIBUTING.md) cho biết mỗi kiểu giúp đỡ nên đi đâu, công việc của bạn được hợp nhất mang tên bạn như thế nào, và [mọi thứ nằm ở đâu](../../CONTRIBUTING.md#project-structure).
Trò chuyện trên [Discord](https://discord.gg/37gfS3ksug), hoặc thêm người bảo trì, Hunter, trên WeChat (`hunterbown`) và xin vào nhóm Whale Brothers. Mọi người đều được chào đón.
## Lịch sử và giấy phép
Codewhale khởi đầu là `deepseek-tui` và vẫn đọc cấu hình cùng các phiên của dự
án đó. Dự án được duy trì độc lập và không liên kết với DeepSeek hay bất kỳ nhà
cung cấp mô hình nào khác. Cảm ơn
[mọi người đã đóng góp](../CONTRIBUTORS.md).
Codewhale bắt đầu với tên `deepseek-tui` và vẫn đọc được cấu hình và phiên của dự án đó. Nó được duy trì độc lập và không liên kết với DeepSeek hay bất kỳ nhà cung cấp mô hình nào khác.
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE). Mã được điều chỉnh từ các dự án mã nguồn mở khác được liệt kê
trong [thông báo bên thứ ba](../THIRD_PARTY_NOTICES.md).
[MIT](../../LICENSE). Mã được điều chỉnh từ các dự án mã nguồn mở khác được liệt kê trong thông báo bên thứ ba cho [mã nguồn được đưa vào](../../THIRD_PARTY_NOTICES.md) và [thiết kế được tham khảo](../THIRD_PARTY_NOTICES.md).
+100 -179
View File
@@ -1,244 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**在终端中运行、可搭配任意模型的开源编程智能体。**
<h1>模型可以是任何人的。智能体应当属于你。</h1>
给 Codewhale 一个任务,它会读取仓库、编辑文件、运行命令,直到任务完成或需要你提供输入为止。
它支持超过 40 个内置提供商(默认使用 DeepSeek V4.1 Flash),也支持在你自己机器上运行的模型。
`/receipts` 会列出它修改过的文件、运行过的命令,以及它发起的 Web 和 MCP 调用。
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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.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) · [Українська](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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="一次 Codewhale 终端会话" width="760">
<sub>一个使用脚本化测试模型的 0.10.2 开发版本,在一次性工作区中以“完全访问”权限运行。其中的编辑、三个测试和一次子智能体审查都是真实运行的。</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter:DeepSeek v4.1 Flash 用量增加 30%" width="760">
</a>
</p>
[查看 Codewhale × OrcaRouter 优惠](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale 会从 OrcaRouter 获得推荐佣金。
## 安装
macOS 和 Linux:
Codewhale 是一个运行在终端里的开源编程智能体,用 Rust 编写。它支持任意模型,可以把一项任务分给多个智能体,而且它的每一行代码都任你阅读。
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
安装器会把经过校验和验证的 `codewhale` 及其简短别名 `codew` 放到 `~/.local/bin`。
如果之后 shell 提示 `command not found`,请运行安装器打印出的那行 PATH 命令
([详情](../INSTALL.md#put-it-on-your-path))。使用 `codewhale update` 升级。这些命令安装的是最新发布版本。
本页跟随 `main` 更新,因此标注了版本号的功能会在该版本中推出;[更新日志](../../CHANGELOG.md)列出了每个版本新增的内容。
这会在 macOS 或 Linux 上安装最新发布版本,无需账号。[Windows、npm 和 Cargo](#安装) 的安装方式见下文。
<details>
<summary><b>Windows、npm、Cargo 及其他安装方式</b></summary>
[![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.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) · [Українська](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)
<sub>本翻译为机器草稿,尚未经母语者审校。</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="一个演示任务结束后的 Codewhale 终端界面。它报告已为 export.py 添加 --json 参数,3 个本地测试全部通过,委派的审查没有发现问题。下方的任务列表显示三个已完成的步骤,状态栏显示 Full Access 和本地 website-demo 提供商。">
<sub>尚未发布的 0.10.3 的开发构建,使用脚本化的测试模型,在一次性工作区中以 Full Access 运行。其中的编辑、三个测试和一次子智能体审查都是真实运行的。</sub>
</div>
## 安装
上面的命令会把经过校验和验证的 `codewhale` 及其简短别名 `codew` 放到 `~/.local/bin`。如果之后 shell 提示 `command not found`,请按安装器打印的 PATH 提示操作([详情](../INSTALL.md#put-it-on-your-path))。使用 `codewhale update` 升级。
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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 架构。Nix、Linux 上的
Homebrew、Android/Termux(预览版)以及手动下载见[安装指南](../INSTALL.md),容器见
[Docker](../DOCKER.md)。每台机器只使用一种安装方式;否则 `PATH` 上会出现两份副本,
排在前面的那一份生效。
</details>
预编译二进制文件覆盖 Linux、macOS 和 Windows 的 x64 与 arm64 架构。Scoop、Nix、Linux 上的 Homebrew、Android 和 Termux(预览版)以及手动下载见[安装指南](../INSTALL.md),容器见 [Docker](../DOCKER.md)。每台机器只使用一种安装方式;否则 `PATH` 上会出现两份副本,排在前面的那一份生效。
## 快速开始
1. 先提交或 stash 你的改动,然后在 git 仓库的根目录运行 `codewhale`。默认情况下,
它在**接受编辑**(Accept Edits)下直接编辑仓库中的文件而不询问,并在每条命令之前询问;想让它多问或少问时,用 `Shift+Tab` 逐档切换权限。
2. 运行 `/provider`(或按 `F3`),选择一个提供商,粘贴它的 API 密钥,然后选择模型。
默认提供商是 DeepSeek。没有密钥时,可以改选本地运行时。如果尚未配置任何提供商,
而 Ollama 已经在提供聊天模型,Codewhale 会自动使用它;
从 0.10.2 起,它会在你发送第一条消息时提议使用它。
1. 提交或暂存你的改动,然后在 git 仓库根目录运行 `codewhale`。默认情况下,它会直接应用仓库内的文件修改而不询问,并在每条非只读的 shell 命令前先询问你。
2. 运行 `/provider`(或按 `F3`),选择一个提供商,粘贴它的 API 密钥,然后选择模型。默认提供商是 DeepSeek。首次启动且没有密钥时,Codewhale 会在你发送第一条消息时请你选择提供商;如果本地 Ollama 服务器有响应,它会提议使用本地模型。
3. 输入一个任务:
```text
Fix the failing tests and explain what changed.
```
只读命令会直接运行。其他任何 shell 命令,Codewhale 都会先询问:`y` 运行这一次,
`a` 在本次对话接下来的时间里允许类似的命令,`n` 拒绝。`/undo` 会撤销你的上一个请求及其
文件改动。`/help` 列出命令和按键。
只读命令会直接运行。其他任何 shell 命令,Codewhale 都会先询问:`y` 运行这一次,`a` 在本次对话接下来的时间里允许类似的命令,`n` 拒绝。`/undo` 会撤销你的上一个请求及其文件改动,`/help` 列出命令和按键。
在脚本和 CI 中,`codewhale exec` 不启动界面,只运行一个任务。默认情况下,`--auto` 使用
“完全访问”权限:工具不经询问就运行,shell 命令不受 Codewhale 沙箱限制,信任模式允许
文件工具写入工作区之外的位置。加上 `--sandbox workspace-write` 可保留 shell 沙箱和
文件工具的工作区限制,并关闭信任模式:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## 模式与权限
全新安装后,默认处于 Work 模式和“接受编辑”权限。一个拨盘同时切换两者:`Shift+Tab` 依次切换 询问 → 接受编辑 → Plan → 自动审核 → 完全访问。
| | 切换方式 | 选项 |
| --- | --- | --- |
| 模式 | `Shift+Tab` 上的 Plan 档,或 `/mode` | **Plan** 只读取和搜索,不做任何改动。**Work**(其余各档)编辑文件并运行命令。当请求需要多个回合时,用 `/goal` 开始一个目标。 |
| 权限 | `Shift+Tab` | **询问**(Ask)在每次文件编辑和每条非只读的 shell 命令之前都会询问。**接受编辑**(Accept Edits)在你的 git 仓库中直接应用文件编辑而不询问,并仍会在运行命令之前先询问。**自动审核**(Auto-Review)让规则和一个审查模型批准常规调用,并拒绝高风险调用;如需亲自批准这些调用,请切换到“询问”。**完全访问**(Full Access)从不询问,命令可以访问这台电脑上的任何内容;仓库规则和受管策略仍然适用。 |
详情见[模式与权限指南](../MODES.md)。
在脚本和 CI 中,`codewhale exec` 不启动界面,只运行一个任务。用 `--auto` 给它工具之前,请先阅读[无界面运行](../INSTALL.md#headless-scripts-ci),因为除非你加上沙箱,`--auto` 使用的是 Full Access。
## 功能
### 0.10.2 新增内容
给 Codewhale 一个任务,它会阅读仓库、编辑文件并运行命令,直到任务完成或需要你的输入。[最新版本的发布说明](https://github.com/codewhale-hq/Codewhale/releases/latest)列出了最新改动,[更新日志](../../CHANGELOG.md)包含每个版本。
- `/pet on` 会把你的终端变成一头动画鲸鱼,展示智能体正在做什么,同时消息框仍可正常使用。
它的 980 个粒子会用英文、中文或日文拼出当前步骤。
- `/workbar terminal` 会实时显示智能体正在运行的 shell。你可以在其中输入,
也可以按 `Ctrl+N` 打开一个你自己的 shell(macOS 和 Linux)。
- `/undo` 一步撤销你的整个上一个请求,包括它修改过的每个文件;`/diff` 也可以在没有 Git
的文件夹中使用。
- 当计划准备就绪时,Codewhale 会询问你是以“询问”还是“自动审核”权限开始
Work,还是继续规划。
- `/color` 为每个对话设置各自的输入框颜色,并随会话一起保存。
- `web_search` 可以使用 DeepSeek 新推出的 Search API:在拥有 DeepSeek 密钥的情况下设置
`[search] provider = "deepseek"`。
- 在“完全访问”之外,会上传凭据的 `curl` 或 `wget` 命令未经你批准绝不会运行,
隐藏了不可见 Unicode 字符的命令会被拒绝。`write` 不再替换智能体尚未读取过的文件,
也不再替换在它读取之后发生过变化的文件。
### 任意模型
### 模型
内置超过 40 个提供商,包括 Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、OpenRouter 和 xAI。任何兼容 OpenAI 的端点都可以使用,通过 Ollama、vLLM 或 SGLang 运行的本地模型也可以。默认模型是 DeepSeek 的 `deepseek-flash`,它现在由 DeepSeek V4.1 Flash 提供([详情](../PROVIDERS.md#deepseek-v41-flash))。
内置超过 40 个提供商,包括 Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、
OpenRouter 和 xAI。任何兼容 OpenAI 的端点都可以使用,通过 Ollama、vLLM 或 SGLang
运行的本地模型也可以。默认模型是 DeepSeek 的 `deepseek-flash`,DeepSeek 已于 2026-10-17
将其切换为 DeepSeek-V4.1-Flash-1017;0.10.1 无需更新即可运行它
([详情](../PROVIDERS.md#deepseek-v41-flash))。
`/model` 可在回合之间切换模型,`/model auto` 会为每个回合挑选一个模型(用 `/router`
设置挑选方式)。`/turn inspect` 显示某个回合使用了哪个模型、花费多少以及耗时多久。
`codewhale auth chatgpt` 让你可以用 ChatGPT 套餐代替 API 密钥(实验性)。
参见[提供商](../PROVIDERS.md)。
`/model` 可在回合之间切换模型,`/model auto` 会为每个回合挑选一个模型(用 `/router` 设置挑选方式)。`/turn inspect` 显示某个回合使用了哪个模型、花费多少以及耗时多久。参见[提供商](../PROVIDERS.md)。
### 回执与撤销
`/receipts`(退出后可用 `codewhale receipts --last`)会列出修改过的文件、运行过的命令、
Web 和 MCP 调用、启动过的智能体、审批及审批人,以及失败记录。`/undo` 一步撤销你的上一个请求及其修改的文件,无需信任模式。`/restore` 把整个工作区回滚到更早的快照;由于这会覆盖之后的编辑,它需要 `/trust on`
或“完全访问”权限。参见[回执](../RECEIPTS.md)。
`/receipts`(退出后可用 `codewhale receipts --last`)会列出一次会话修改过的文件、运行过的命令、发出的网页和 MCP 调用、启动的智能体、每次批准及批准人,以及失败的操作。`/undo` 一步撤销你的上一个请求及其修改的文件。`/restore` 会把整个工作区回滚到更早的快照;由于这会覆盖之后的编辑,它需要 `/trust on` 或 Full Access。参见[回执](../RECEIPTS.md)。
可使用工具的 exec 运行无论采用哪种输出格式都会保存,因此在 `exec --auto` 之后,
包括使用 `--json` 时,`codewhale receipts --last` 都能正常工作。仅作答且使用文本输出或
`--json` 的运行,只有在恢复对话或开始压缩对话时才会保存;使用
`--output-format stream-json` 可始终保存这些运行,供回执或 `exec --continue` 使用。
### 多个智能体共同完成一项任务
### 更长的任务
`/goal` 设定一个跨回合持续有效的目标。Codewhale 可以把工作拆分给
[子智能体](../SUBAGENTS.md),运行由多个智能体组成的 [Fleet](../FLEET.md),
或者按照提交到仓库中的[工作流](../WORKFLOW_AUTHORING.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` 接受包含技能、命令、智能体配置文件和 MCP 服务器的 Claude Code 插件,
但会拒绝需要钩子或 LSP 服务器的插件([详情](../CLAUDE_PLUGIN_COMPAT.md))。
`/goal` 设置一个跨回合延续的目标。Codewhale 可以把工作分给[子智能体](../SUBAGENTS.md),运行一组各有角色和模型的智能体 [Fleet](../FLEET.md),或者按照提交在仓库中的[工作流](../WORKFLOW_AUTHORING.md)执行。
### 扩展
连接 [MCP 服务器](../MCP.md),添加[技能](../SKILLS.md)和[插件](../PLUGINS.md),
并在会话和工具事件上运行[钩子](../HOOKS.md)。代码模式(Code mode,实验性,默认开启)
让模型编写一个 `execute_tools` 程序来调用多个 MCP 和插件工具;每次调用仍要遵守你的审批规则,
并保留各自的回执。独立安装的 Computer Use 插件(实验性,
仅限 macOS)可以观察和操作其他应用。在你审阅其访问权限并启用之前,它保持关闭
([指南](https://github.com/codewhale-hq/codewhale-cu-plugin))。
连接 [MCP 服务器](../MCP.md),添加[技能](../SKILLS.md)和[插件](../PLUGINS.md),并在会话和工具事件上运行[钩子](../HOOKS.md)。代码模式(实验性,默认开启)让模型编写一个调用多个 MCP 和插件工具的 `execute_tools` 程序;每次调用仍需遵守你的批准规则,并保留回执。v0.10.2 内置的 Computer Use 插件(实验性,仅限 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 "…"` | 不启动界面,运行一个任务。单独使用时,它只作答而不使用工具;`--auto` 默认以“完全访问”权限启用工具,`--sandbox workspace-write` 对工具施加限制,`--output-format stream-json` 以 JSON 形式流式输出事件 |
| `codewhale web` | 监听 `127.0.0.1` 的本地 Web 界面([指南](../WEB.md)) |
| `codewhale review --pr N` | 对 GitHub PR 进行仅供参考的审查。[GitHub 机器人设置](../GITHUB_ACTION.md#set-up-your-own-bot) 会生成一个固定版本的 workflow,用于自动审查和 `@codewhale review`,使用你自己的模型密钥和可选的 App 身份 |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md),用于对话线程、事件、审批以及每个回合文件改动的本地 HTTP API |
| `codewhale exec "…"` | 不启动界面运行一个任务,用于脚本和 CI([无界面运行](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | 运行在 `127.0.0.1` 上的本地网页客户端([指南](../WEB.md)) |
| `codewhale review --pr N` | 对 GitHub 拉取请求进行建议性审查;[GitHub 机器人设置](../GITHUB_ACTION.md#set-up-your-own-bot)用你自己的模型密钥运行它 |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md),一个本地 HTTP API,提供线程、事件、批准以及每个回合的文件改动 |
| `codewhale serve --acp` | 通过 stdio 提供 Agent Client Protocol,供 Zed 等编辑器使用 |
终端应用、`exec`、`web` 和 Runtime API 共用同一个引擎([架构](../ARCHITECTURE.md))。
社区维护的
[VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
可以从侧边栏连接到它([源码](https://github.com/HengQuWorld/CodeWhale-VSCode))。
基于 Runtime API 构建的原生桌面应用正在开发中,目前还没有公开下载。
终端应用、`exec`、`web` 和 Runtime API 共用同一个引擎([架构](../ARCHITECTURE.md))。社区维护的 [VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)可以从侧边栏连接到它([源代码](https://github.com/HengQuWorld/CodeWhale-VSCode))。
## 费用与账号
## 如何保证安全
Codewhale 免费,采用 MIT 许可证。使用你自己的 API 密钥时,费用直接付给提供商;
本地模型不需要密钥。价格已知时,底部状态栏和 `/cost` 会显示一次会话的花费;
价格未知时会显示为未知,而不会显示为免费。
两个开关决定 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)有详细说明。
你不需要账号。通过 `/provider` 添加的密钥会留在你的机器上。
即将在 0.10.3 推出:`Shift+Tab` 将成为一个依次经过 Ask、Accept Edits、Plan、Auto-Review 和 Full Access 的拨盘,`Tab` 不再切换模式,Operate 也将取消。Ask 将在每次文件修改前也询问,而新的默认选项 Accept Edits 会应用 git 仓库内的修改,并仍在命令前询问。[当前指南](../MODES.md)对此有说明。
## 安全与隐私
在 Ask 和 Auto-Review 中,命令会在系统提供的操作系统沙箱中运行:macOS 上是 Seatbelt,Linux 上安装了 bubblewrap 时是 bubblewrap。Windows 目前还没有操作系统沙箱,Full Access 会关闭沙箱。在沙箱内,shell 命令和终端会话无法读取 `~/.ssh`、`~/.aws` 和 `.env` 文件等凭据存储。`/preview-request` 会显示下一个请求的脱敏预览,而不会真正发送。
在“询问”和“自动审核”权限下,只要系统提供操作系统沙箱,命令就会在其中运行:
macOS 上是 Seatbelt,Linux 上是 bubblewrap(需已安装)。Windows 目前还没有操作系统沙箱,
而“完全访问”会关闭沙箱。在沙箱内,shell 命令无法读取 `~/.ssh`、`~/.aws` 和 `.env`
文件等凭据存储;从 0.10.2 起,同样的规则也适用于终端会话和更多文件工具。
`/preview-request` 会显示下一次请求经过脱敏的预览,但不会发送它。
你不需要账号,用 `/provider` 添加的密钥只保存在你的机器上。使用你自己的 API 密钥时,你直接向提供商付费;本地模型不需要密钥。价格已知时,页脚和 `/cost` 会显示一次会话的花费;价格未知时显示为未知,绝不显示为免费。
遥测默认开启。它发送汇总计数(版本和平台、会话时长和结果、你使用了哪些内置提供商、
功能和错误计数),并附带一个每 90 天轮换一次的随机安装 ID;它从不包含对话、代码、提示词、
模型名称、文件名或仓库名,也从不包含凭据。运行 `codewhale config set telemetry false` 即可关闭。启动时,Codewhale 还会
检查 GitHub 上是否有新版本;设置 `CODEWHALE_NO_UPDATE_CHECK=1` 可跳过这一检查。
更多信息见[授权顺序](../AUTHORIZATION_ORDER.md)、[沙箱](../SANDBOX.md)和
[遥测](../TELEMETRY.md)。
遥测默认开启。它会发送聚合计数(版本和平台、会话时长和结果、你使用过的内置提供商、功能和错误计数),附带一个每 90 天轮换的随机安装 ID,绝不发送对话、代码、提示词、模型名称、文件或仓库名称以及凭据。用这条命令关闭它:
```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` 接受包含技能、命令、智能体配置和 MCP 服务器的 Claude Code 插件,并拒绝需要钩子或 LSP 服务器的插件([详情](../CLAUDE_PLUGIN_COMPAT.md))。
## 文档
这些指南跟随主分支,可能会描述尚未包含在最新版本中的改动。
| 从这里开始 | 参考 |
| --- | --- |
| [安装](../INSTALL.md) | [配置](../CONFIGURATION.md) |
| [提供商与本地模型](../PROVIDERS.md) | [架构](../ARCHITECTURE.md) |
| [模式与权限](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [快捷键](../KEYBINDINGS.md) | [插件开发](../PLUGIN_AUTHORING.md) |
| [GitHub PR 审查](../GITHUB_ACTION.md) | [全部文档](../README.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) |
| [GitHub 拉取请求审查](../GITHUB_ACTION.md) | [全部文档](../README.md) |
## 社区
## 参与贡献
Codewhale 能有今天,靠的是社区。所有反馈我们都欢迎:一个 bug、一个想法,或者只是某处看起来、用起来不对劲。
这些都可以[提交 issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose);新功能也最适合从 issue 开始。
修复、翻译、提供商以及已规划的工作,欢迎直接提交 PR。
[贡献指南](../../CONTRIBUTING.md)说明了每种帮助该去哪里,[路线图](../ROADMAP.md)说明了项目的方向。
被合并的工作会保留贡献者的署名;[仓库结构](../../CONTRIBUTING.md#project-structure)说明了各部分代码所在的位置。
Codewhale 由使用它的人公开构建,用许多种语言。
欢迎在 [Discord](https://discord.gg/37gfS3ksug) 上交流,或在微信上添加维护者 Hunter
(`hunterbown`),申请加入 Whale Brothers 群。欢迎每一个人。
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Codewhale 贡献者墙:每一位在 Codewhale 中留下代码、共同署名提交、被延续的拉取请求或获得致谢的报告的人各有一个头像,顶部是总人数。"></a>
[贡献者墙](../CONTRIBUTORS.md)统计了每一位在 Codewhale 中留下代码、共同署名提交、被延续的拉取请求或获得致谢的报告的人,包括 GitHub 自己的贡献者列表漏掉的人。`scripts/contributor-wall.py` 会根据 git 历史和 GitHub 重新生成这张图和名单。
欢迎任何反馈:一个 bug、一个想法,或者某处看起来、用起来不对劲的地方。这些都可以[提交 issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose);新功能也最好从 issue 开始。欢迎为修复、翻译、提供商和计划中的工作提交拉取请求。问题可以发到 [Discussions](https://github.com/codewhale-hq/Codewhale/discussions)。[贡献指南](../../CONTRIBUTING.md)说明了每种帮助该去哪里、你的工作如何署名合入,以及[各部分代码在哪里](../../CONTRIBUTING.md#project-structure)。
可以在 [Discord](https://discord.gg/37gfS3ksug) 上聊天,或者添加维护者 Hunter 的微信(`hunterbown`),申请加入 Whale Brothers 群。欢迎所有人。
## 历史与许可证
Codewhale 最初名为 `deepseek-tui`,至今仍会读取该项目的配置和会话。它是独立维护的项目,
与 DeepSeek 或任何其他模型提供商均无隶属关系。感谢[每一位贡献者](../CONTRIBUTORS.md)。
Codewhale 最初名为 `deepseek-tui`,至今仍能读取该项目的配置和会话。它由独立维护,与 DeepSeek 或任何其他模型提供商均无关联。
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE)。改编自其他开源项目的代码列在[第三方声明](../THIRD_PARTY_NOTICES.md)中。
[MIT](../../LICENSE)。改编自其他开源项目的代码列在第三方声明中:[内置的源代码](../../THIRD_PARTY_NOTICES.md)和[借鉴的设计](../THIRD_PARTY_NOTICES.md)。
+107 -185
View File
@@ -1,243 +1,165 @@
<!-- source: README.md sha256:a9ec5fb3f3dd -->
<!-- source: README.md sha256:fd76d718e3a2 -->
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../brand/wordmark-inverted.svg">
<img src="../../brand/wordmark.svg" alt="Codewhale" width="320">
<source media="(prefers-color-scheme: dark)" srcset="../../brand/mark-reversed.svg">
<img src="../../brand/mark-mono.svg" alt="Codewhale" width="72" height="72">
</picture>
**在終端機中運作、可搭配任何模型的開源程式開發代理(coding agent)。**
<h1>模型可以是任何人的。代理應該屬於你。</h1>
交給 Codewhale 一項任務,它會讀取儲存庫、編輯檔案並執行指令,直到任務完成或需要你提供輸入為止。
它支援超過 40 個內建供應商(預設為 DeepSeek V4.1 Flash),也能使用在你自己機器上執行的模型。
`/receipts` 會列出它變更的檔案、執行的指令,以及它發出的網路與 MCP 呼叫。
[![CI](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/codewhale-hq/CodeWhale/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![npm](https://img.shields.io/npm/v/codewhale?label=npm)](https://www.npmjs.com/package/codewhale)
[![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) · [Українська](README.uk.md) · [Français](README.fr.md) · [Deutsch](README.de.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)
<img src="../../web/public/codewhale-tui-0102-demo.png" alt="一次 Codewhale 終端機工作階段" width="760">
<sub>使用腳本化測試模型的 0.10.2 開發版本,在用完即丟的工作區中以「完整存取」執行。其中的編輯、三項測試與一次子代理審查都是實際執行的。</sub>
</div>
<p align="center">
<a href="https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67" rel="sponsored">
<img src="../../web/public/codewhale-x-orcarouter.webp" alt="Codewhale × OrcaRouter:DeepSeek v4.1 Flash 用量增加 30%" width="760">
</a>
</p>
[查看 Codewhale × OrcaRouter 優惠](https://www.orcarouter.ai/redeem/1a6250545fdc4e0aaccb0a4470159e67). Codewhale 會從 OrcaRouter 獲得推薦佣金。
## 安裝
macOS 與 Linux:
Codewhale 是一個在終端機中執行的開源程式設計代理,以 Rust 撰寫。它支援任何模型,可以把一項任務分給多個代理,而且它的每一行程式碼都任你閱讀。
```bash
curl -fsSL https://codewhale.net/install.sh | sh
```
安裝程式會把經過 checksum 驗證的 `codewhale` 及其簡短別名 `codew` 放到 `~/.local/bin`。
如果之後 shell 顯示 `command not found`,請執行安裝程式印出的那一行 PATH 指令
([詳細說明](../INSTALL.md#put-it-on-your-path))。執行 `codewhale update` 即可升級。這些指令安裝的是最新發行版本。
本頁跟隨 `main` 更新,因此標示版本的功能會在該版本推出;[變更記錄](../../CHANGELOG.md)列出了每個版本新增的內容。
這會在 macOS 或 Linux 上安裝最新發行版本,不需要帳號。[Windows、npm 和 Cargo](#安裝) 的安裝方式見下文。
<details>
<summary><b>Windows、npm、Cargo 與其他安裝方式</b></summary>
[![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) · [Українська](README.uk.md) · [Français](README.fr.md) · [Deutsch](README.de.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)
<sub>本翻譯為機器草稿,尚未經母語者審校。</sub>
<img src="../../web/public/codewhale-tui-0102-demo.png" width="760" alt="一個示範任務結束後的 Codewhale 終端機畫面。它回報已為 export.py 加上 --json 參數,3 個本機測試全部通過,委派的審查沒有發現問題。下方的任務清單顯示三個已完成的步驟,狀態列顯示 Full Access 和本機 website-demo 提供者。">
<sub>尚未發布的 0.10.3 開發版建置,使用腳本化的測試模型,在一次性工作區中以 Full Access 執行。其中的編輯、三個測試和一次子代理審查都是真實執行的。</sub>
</div>
## 安裝
上面的指令會把經過總和檢查碼驗證的 `codewhale` 及其簡短別名 `codew` 放到 `~/.local/bin`。如果之後 shell 顯示 `command not found`,請依照安裝程式印出的 PATH 提示操作([詳情](../INSTALL.md#put-it-on-your-path))。使用 `codewhale update` 升級。
```bash
winget install HunterBown.CodeWhale # Windows x64 (or Scoop, or the installer from GitHub Releases)
npm install -g codewhale # wraps the same release binaries
cargo install codewhale-cli --locked # crates.io; can trail GitHub Releases
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
```
預先建置的二進位檔涵蓋 x64 與 arm64 上的 Linux、macOS 與 Windows。Nix、Linux 上的
Homebrew、Android/Termux(預覽版)與手動下載請見[安裝指南](../INSTALL.md),容器請見
[Docker](../DOCKER.md)。每台機器請只使用一種安裝方式;否則 `PATH` 上會出現兩份副本,
以排在前面的那份為準。
預先編譯的二進位檔涵蓋 Linux、macOS 和 Windows 的 x64 與 arm64 架構。Scoop、Nix、Linux 上的 Homebrew、Android 和 Termux(預覽版)以及手動下載請見[安裝指南](../INSTALL.md),容器請見 [Docker](../DOCKER.md)。每台電腦只使用一種安裝方式;否則 `PATH` 上會出現兩份副本,排在前面的那一份生效。
</details>
## 快速開始
## 快速入門
1. 先提交(commit)或暫存(stash)你的工作,然後在 git 儲存庫的根目錄執行 `codewhale`。
預設情況下,它在**接受編輯**(Accept Edits)下直接編輯儲存庫中的檔案、不先詢問,並在每個指令之前詢問;想讓它多問或少問時,用 `Shift+Tab` 逐檔切換權限。
2. 執行 `/provider`(或按 `F3`),選擇供應商、貼上它的 API 金鑰,再選擇模型。預設供應商是
DeepSeek。如果沒有金鑰,請改選本機執行階段(local runtime)。若尚未設定任何供應商,而 Ollama 已在提供
聊天模型,Codewhale 會自動使用它;從 0.10.2 起,它會在你送出第一則訊息時提議使用它。
3. 輸入任務:
1. 提交或暫存你的變更,然後在 git 儲存庫根目錄執行 `codewhale`。預設情況下,它會直接套用儲存庫內的檔案修改而不詢問,並在每個非唯讀的 shell 指令前先詢問你。
2. 執行 `/provider`(或按 `F3`),選擇一個提供者,貼上它的 API 金鑰,然後選擇模型。預設提供者是 DeepSeek。首次啟動且沒有金鑰時,Codewhale 會在你送出第一則訊息時請你選擇提供者;如果本機 Ollama 伺服器有回應,它會提議使用本機模型。
3. 輸入一個任務:
```text
Fix the failing tests and explain what changed.
```
唯讀指令會直接執行。其他任何 shell 指令,Codewhale 都會先詢問:`y` 執行這一次,
`a` 允許本次對話後續類似的指令,`n` 拒絕。`/undo` 會還原你上一個請求及其
檔案變更。`/help` 會列出指令與按鍵。
唯讀指令會直接執行。其他任何 shell 指令,Codewhale 都會先詢問:`y` 執行這一次,`a` 在本次對話接下來的時間裡允許類似的指令,`n` 拒絕。`/undo` 會復原你的上一個請求及其檔案變更,`/help` 列出指令和按鍵。
在腳本與 CI 中,`codewhale exec` 會在沒有介面的情況下執行一項任務。預設情況下,`--auto`
使用「完整存取」權限:工具不經詢問就執行,shell 指令不受 Codewhale 沙箱限制,信任模式
允許檔案工具寫入工作區以外的位置。加上 `--sandbox workspace-write` 即可保留 shell 沙箱
與檔案工具的工作區限制,並關閉信任模式:
```bash
codewhale exec --auto --sandbox workspace-write "fix the failing tests and explain what changed"
```
## 模式與權限
全新安裝會以 Work 模式與「接受編輯」權限啟動。一個撥盤同時切換兩者:`Shift+Tab` 依序切換 詢問 → 接受編輯 → Plan → 自動審核 → 完整存取。
| | 切換方式 | 選項 |
| --- | --- | --- |
| 模式 | `Shift+Tab` 上的 Plan 檔,或 `/mode` | **Plan** 會讀取與搜尋,但不做任何變更。**Work**(其餘各檔)會編輯檔案並執行指令。當請求需要多個回合時,用 `/goal` 開始一個目標。 |
| 權限 | `Shift+Tab` | **詢問**(Ask)會在每次檔案編輯與每個非唯讀的 shell 指令之前先詢問。**接受編輯**(Accept Edits)會在你的 git 儲存庫中直接套用檔案編輯、不先詢問,並仍會在執行指令前先詢問。**自動審核**(Auto-Review)讓規則與審核模型核准例行呼叫,並拒絕高風險呼叫;若要自行核准這些呼叫,請切換到「詢問」。**完整存取**(Full Access)從不詢問,指令可以存取這台電腦上的任何內容;儲存庫規則與受管理的政策仍然適用。 |
詳情請參閱[模式與權限指南](../MODES.md)。
在腳本和 CI 中,`codewhale exec` 不啟動介面,只執行一個任務。用 `--auto` 給它工具之前,請先閱讀[無介面執行](../INSTALL.md#headless-scripts-ci),因為除非你加上沙箱,`--auto` 使用的是 Full Access。
## 功能
### 0.10.2 新增內容
給 Codewhale 一個任務,它會閱讀儲存庫、編輯檔案並執行指令,直到任務完成或需要你的輸入。[最新版本的發行說明](https://github.com/codewhale-hq/Codewhale/releases/latest)列出最新變更,[更新日誌](../../CHANGELOG.md)包含每個版本。
- `/pet on` 會把你的終端機變成一隻動畫鯨魚,顯示代理正在做什麼,同時訊息框仍可照常使用。
牠的 980 個粒子會以英文、中文或日文拼出目前的步驟。
- `/workbar terminal` 會即時顯示代理正在執行的 shell。你可以在其中輸入,
也可以按 `Ctrl+N` 開啟你自己的 shell(macOS 與 Linux)。
- `/undo` 一步就能還原你上一個完整的請求,包括它變更的每個檔案;`/diff` 也能在沒有 Git
的資料夾中使用。
- 當計畫準備就緒時,Codewhale 會詢問你要以「詢問」還是「自動審核」開始 Work,
或是繼續規劃。
- `/color` 會為每個對話設定各自的輸入框顏色,並隨工作階段一起儲存。
- `web_search` 可以使用 DeepSeek 新推出的 Search API:在擁有 DeepSeek 金鑰的情況下設定
`[search] provider = "deepseek"`。
- 在「完整存取」以外,會上傳憑證的 `curl` 或 `wget` 未經你核准絕不會執行,
而隱藏了不可見 Unicode 字元的指令會被拒絕。`write` 不再取代代理尚未讀取過的檔案,
也不再取代在它讀取之後已變更的檔案。
### 任何模型
### 模型
內建超過 40 個提供者,包括 Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、OpenRouter 和 xAI。任何相容 OpenAI 的端點都可以使用,透過 Ollama、vLLM 或 SGLang 執行的本機模型也可以。預設模型是 DeepSeek 的 `deepseek-flash`,它現在由 DeepSeek V4.1 Flash 提供([詳情](../PROVIDERS.md#deepseek-v41-flash))。
內建超過 40 個供應商,包括 Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、
OpenRouter 與 xAI。任何相容 OpenAI 的端點都能使用,透過 Ollama、vLLM 或 SGLang 執行的
本機模型也可以。預設模型是 DeepSeek 的 `deepseek-flash`,DeepSeek 已於 2026-10-17
將其切換為 DeepSeek-V4.1-Flash-1017;0.10.1 不需更新即可執行
([詳細說明](../PROVIDERS.md#deepseek-v41-flash))。
`/model` 可在回合之間切換模型,`/model auto` 會為每個回合挑選一個模型(用 `/router` 設定挑選方式)。`/turn inspect` 顯示某個回合使用了哪個模型、花費多少以及耗時多久。請見[提供者](../PROVIDERS.md)。
`/model` 可在回合之間切換模型,`/model auto` 會為每個回合挑選模型(以 `/router`
設定挑選方式)。`/turn inspect` 會顯示某個回合使用了哪個模型、花費多少以及耗時多久。
`codewhale auth chatgpt` 讓你可以用 ChatGPT 方案取代 API 金鑰(實驗性)。
請參閱[供應商](../PROVIDERS.md)。
### 收據與復原
### 回條與復原
`/receipts`(離開後可用 `codewhale receipts --last`)會列出一次工作階段修改過的檔案、執行過的指令、發出的網頁和 MCP 呼叫、啟動的代理、每次核准及核准者,以及失敗的操作。`/undo` 一步復原你的上一個請求及其修改的檔案。`/restore` 會把整個工作區回復到較早的快照;由於這會覆寫之後的編輯,它需要 `/trust on` 或 Full Access。請見[收據](../RECEIPTS.md)。
`/receipts`(或在結束後執行 `codewhale receipts --last`)會列出變更的檔案、執行的指令、
網路與 MCP 呼叫、啟動的代理、核准紀錄與核准人,以及失敗項目。`/undo` 一步還原你上一個請求及其變更的檔案,無需信任模式。`/restore` 會把整個工作區回復到先前的快照;由於這會覆寫之後的編輯,因此需要 `/trust on`
或「完整存取」。請參閱[回條](../RECEIPTS.md)。
### 多個代理共同完成一項任務
可使用工具的 exec 執行紀錄無論採用哪種輸出格式都會儲存,因此在 `exec --auto` 之後,
包括使用 `--json` 時,`codewhale receipts --last` 都能正常運作。只回答且使用文字輸出或
`--json` 的執行紀錄,只有在繼續先前的對話或開始壓縮對話時才會儲存;使用
`--output-format stream-json` 即可一律儲存這些紀錄,供回條或 `exec --continue` 使用。
`/goal` 設定一個跨回合延續的目標。Codewhale 可以把工作分給[子代理](../SUBAGENTS.md),執行一組各有角色和模型的代理 [Fleet](../FLEET.md),或依照提交在儲存庫中的[工作流程](../WORKFLOW_AUTHORING.md)執行。
### 長時間工作
### 擴充
`/goal` 會設定一個跨回合延續的目標。Codewhale 可以把工作分給[子代理](../SUBAGENTS.md)、
執行[代理團隊(Fleet)](../FLEET.md),或依照已提交到儲存庫的
[工作流程](../WORKFLOW_AUTHORING.md)進行。
連接 [MCP 伺服器](../MCP.md),加入[技能](../SKILLS.md)和[外掛](../PLUGINS.md),並在工作階段和工具事件上執行[掛鉤](../HOOKS.md)。程式碼模式(實驗性,預設開啟)讓模型撰寫一個呼叫多個 MCP 和外掛工具的 `execute_tools` 程式;每次呼叫仍須遵守你的核准規則,並保留收據。v0.10.2 內建的 Computer Use 外掛(實驗性,僅限 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 會自行讀取 `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`
接受包含技能、指令、代理設定檔與 MCP 伺服器的 Claude Code 外掛,並拒絕需要 Hook 或 LSP
伺服器的外掛([詳細說明](../CLAUDE_PLUGIN_COMPAT.md))。
### 擴充功能
連接 [MCP 伺服器](../MCP.md)、加入[技能](../SKILLS.md)與[外掛](../PLUGINS.md),
並在工作階段與工具事件上執行 [Hook](../HOOKS.md)。程式碼模式(Code mode,實驗性,預設開啟)
讓模型撰寫一個 `execute_tools` 程式來呼叫多個 MCP 與外掛工具;每次呼叫仍須遵守你的核准規則,
並保留各自的回條。獨立安裝的 Computer Use 外掛(實驗性,
僅限 macOS)可以觀察並操作其他應用程式。在你檢視其存取範圍並啟用之前,它會保持關閉
([指南](https://github.com/codewhale-hq/codewhale-cu-plugin))。
## 執行方式
| 指令 | 作用 |
| 指令 | 用途 |
| --- | --- |
| `codewhale` | 互動式終端機應用程式 |
| `codewhale exec "…"` | 在沒有介面的情況下執行一項任務。單獨使用時,它只回答、不使用工具;`--auto` 預設以「完整存取」權限啟用工具,`--sandbox workspace-write` 對工具加以限制,`--output-format stream-json` 以 JSON 串流輸出事件 |
| `codewhale web` | 在 `127.0.0.1` 上的本機 Web UI([指南](../WEB.md)) |
| `codewhale review --pr N` | 對 GitHub PR(Pull Request)進行僅供參考的審查。[GitHub 機器人設定](../GITHUB_ACTION.md#set-up-your-own-bot) 會產生一個固定版本的工作流程,用於自動審查和 `@codewhale review`,使用你自己的模型金鑰和可選的 App 身分 |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md),用於執行緒、事件、核准與每個回合檔案變更的本機 HTTP API |
| `codewhale serve --acp` | 透過 stdio 提供的 Agent Client Protocol,供 Zed 等編輯器使用 |
| `codewhale exec "…"` | 不啟動介面執行一個任務,用於腳本和 CI([無介面執行](../INSTALL.md#headless-scripts-ci)) |
| `codewhale web` | 在 `127.0.0.1` 上執行的本機網頁用戶端([指南](../WEB.md)) |
| `codewhale review --pr N` | 對 GitHub 提取要求進行建議性審查;[GitHub 機器人設定](../GITHUB_ACTION.md#set-up-your-own-bot)以你自己的模型金鑰執行它 |
| `codewhale app-server --http` | [Runtime API](../RUNTIME_API.md),一個本機 HTTP API,提供執行緒、事件、核准以及每個回合的檔案變更 |
| `codewhale serve --acp` | 透過 stdio 提供 Agent Client Protocol,供 Zed 等編輯器使用 |
終端機應用程式、`exec`、`web` 與 Runtime API 共用同一個引擎([架構](../ARCHITECTURE.md))。
由社群維護的
[VS Code 擴充功能](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)
可從側邊欄連接到它([原始碼](https://github.com/HengQuWorld/CodeWhale-VSCode))。
以 Runtime API 打造的原生桌面應用程式正在開發中,目前尚未提供公開下載。
終端機應用程式、`exec`、`web` 和 Runtime API 共用同一個引擎([架構](../ARCHITECTURE.md))。社群維護的 [VS Code 擴充功能](https://marketplace.visualstudio.com/items?itemName=HengQuWorld.brotherwhale-vscode)可以從側邊欄連接到它([原始碼](https://github.com/HengQuWorld/CodeWhale-VSCode))。
## 費用與帳號
## 如何保持安全
Codewhale 免費,並採用 MIT 授權。使用你自己的 API 金鑰時,費用直接付給供應商;本機模型
不需要金鑰。價格已知時,底部狀態列與 `/cost` 會顯示工作階段目前的花費;價格未知時會顯示為
未知,絕不會顯示為免費。
兩個開關決定 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)有詳細說明。
你不需要帳號。透過 `/provider` 加入的金鑰會留在你的機器上。
即將在 0.10.3 推出:`Shift+Tab` 將成為依序經過 Ask、Accept Edits、Plan、Auto-Review 和 Full Access 的轉盤,`Tab` 不再切換模式,Operate 也將取消。Ask 將在每次檔案修改前也詢問,而新的預設選項 Accept Edits 會套用 git 儲存庫內的修改,並仍在指令前詢問。[目前的指南](../MODES.md)有說明。
## 安全與隱私
在 Ask 和 Auto-Review 中,指令會在系統提供的作業系統沙箱中執行:macOS 上是 Seatbelt,Linux 上安裝了 bubblewrap 時是 bubblewrap。Windows 目前還沒有作業系統沙箱,Full Access 會關閉沙箱。在沙箱內,shell 指令和終端機工作階段無法讀取 `~/.ssh`、`~/.aws` 和 `.env` 檔案等憑證儲存。`/preview-request` 會顯示下一個請求的遮蔽後預覽,而不會實際送出。
在「詢問」與「自動審核」權限下,只要系統提供作業系統沙箱,指令就會在其中執行:macOS 上為
Seatbelt,Linux 上則在已安裝 bubblewrap 時使用它。Windows 目前還沒有作業系統沙箱,而
「完整存取」會關閉沙箱。在沙箱內,shell 指令無法讀取 `~/.ssh`、`~/.aws` 與 `.env` 檔案等
憑證存放位置;從 0.10.2 起,同樣的規則也涵蓋終端機工作階段與更多檔案工具。
`/preview-request` 會顯示下一個請求經過遮蔽的預覽,但不會送出。
你不需要帳號,用 `/provider` 加入的金鑰只保存在你的電腦上。使用你自己的 API 金鑰時,你直接向提供者付費;本機模型不需要金鑰。價格已知時,頁尾和 `/cost` 會顯示一次工作階段的花費;價格未知時顯示為未知,絕不顯示為免費。
遙測預設為開啟。它會傳送彙總計數(版本與平台、工作階段長度與結果、你使用了哪些內建供應商、
功能與錯誤次數),並附上每 90 天輪替一次的隨機安裝 ID;絕不會傳送對話、程式碼、提示詞、
模型名稱、檔案或儲存庫名稱,或憑證。
執行 `codewhale config set telemetry false` 即可關閉。Codewhale 啟動時也會向 GitHub 檢查
是否有新版本;設定 `CODEWHALE_NO_UPDATE_CHECK=1` 即可略過。更多資訊請參閱
[授權順序](../AUTHORIZATION_ORDER.md)、[沙箱](../SANDBOX.md)與[遙測](../TELEMETRY.md)。
遙測預設開啟。它會傳送彙總計數(版本和平台、工作階段時長和結果、你用過的內建提供者、功能和錯誤計數),附帶一個每 90 天輪替的隨機安裝 ID,絕不傳送對話、程式碼、提示詞、模型名稱、檔案或儲存庫名稱以及憑證。用這個指令關閉它:
```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` 接受包含技能、指令、代理設定檔和 MCP 伺服器的 Claude Code 外掛,並拒絕需要掛鉤或 LSP 伺服器的外掛([詳情](../CLAUDE_PLUGIN_COMPAT.md))。
## 文件
| 從這裡開始 | 參考資料 |
這些指南跟隨主分支,可能會描述尚未包含在最新版本中的變更。
| 從這裡開始 | 參考 |
| --- | --- |
| [安裝](../INSTALL.md) | [設定](../CONFIGURATION.md) |
| [供應商與本機模型](../PROVIDERS.md) | [架構](../ARCHITECTURE.md) |
| [模式與權限](../MODES.md) | [Runtime API](../RUNTIME_API.md) |
| [鍵盤快速鍵](../KEYBINDINGS.md) | [外掛開發](../PLUGIN_AUTHORING.md) |
| [GitHub PR 審查](../GITHUB_ACTION.md) | [所有文件](../README.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) |
| [GitHub 提取要求審查](../GITHUB_ACTION.md) | [所有文件](../README.md) |
## 社群
## 參與貢獻
Codewhale 能有今天,靠的是社群。所有回饋我們都歡迎:一個 bug、一個想法,或者只是某處看起來、用起來不對勁。
這些都可以[提交 issue](https://github.com/codewhale-hq/CodeWhale/issues/new/choose);新功能也最適合從 issue 開始。
修正、翻譯、供應商以及已規劃的工作,歡迎直接提交 PR。
[貢獻指南](../../CONTRIBUTING.md)說明了每種協助該去哪裡,[路線圖](../ROADMAP.md)說明了專案的方向。
被合併的工作會保留貢獻者的署名;[儲存庫結構](../../CONTRIBUTING.md#project-structure)說明了各部分程式碼所在的位置。
Codewhale 由使用它的人公開打造,使用許多種語言。
歡迎到 [Discord](https://discord.gg/37gfS3ksug) 交流,或在微信上加維護者 Hunter
(`hunterbown`)為好友,申請加入 Whale Brothers 群組。歡迎每一個人。
<a href="../CONTRIBUTORS.md#everyone"><img src="../assets/contributors.png" width="760" alt="Codewhale 貢獻者牆:每一位在 Codewhale 中留下程式碼、共同署名提交、被延續的提取要求或獲得致謝的回報的人各有一個頭像,頂端是總人數。"></a>
[貢獻者牆](../CONTRIBUTORS.md)統計了每一位在 Codewhale 中留下程式碼、共同署名提交、被延續的提取要求或獲得致謝的回報的人,包括 GitHub 自己的貢獻者清單漏掉的人。`scripts/contributor-wall.py` 會根據 git 歷史和 GitHub 重新產生這張圖和名單。
歡迎任何回饋:一個 bug、一個想法,或某處看起來、用起來不對勁的地方。這些都可以[開一個 issue](https://github.com/codewhale-hq/Codewhale/issues/new/choose);新功能也最好從 issue 開始。歡迎為修正、翻譯、提供者和計畫中的工作提交提取要求。問題可以發到 [Discussions](https://github.com/codewhale-hq/Codewhale/discussions)。[貢獻指南](../../CONTRIBUTING.md)說明了每種協助該去哪裡、你的工作如何以你的名字合入,以及[各部分程式碼在哪裡](../../CONTRIBUTING.md#project-structure)。
可以在 [Discord](https://discord.gg/37gfS3ksug) 上聊天,或在微信上加維護者 Hunter(`hunterbown`),申請加入 Whale Brothers 群。歡迎所有人。
## 歷史與授權
Codewhale 最初名為 `deepseek-tui`,至今仍會讀取該專案的設定與工作階段。它是獨立維護的專案,
與 DeepSeek 或任何其他模型供應商均無隸屬關係。感謝[每一位貢獻者](../CONTRIBUTORS.md)。
Codewhale 最初名為 `deepseek-tui`,至今仍能讀取該專案的設定和工作階段。它由獨立維護,與 DeepSeek 或任何其他模型提供者均無關聯。
[![Codewhale contributors](../assets/contributors.png)](../CONTRIBUTORS.md#everyone)
[MIT](../../LICENSE)。改編自其他開源專案的程式碼列於[第三方聲明](../THIRD_PARTY_NOTICES.md)中。
[MIT](../../LICENSE)。改編自其他開源專案的程式碼列在第三方聲明中:[內含的原始碼](../../THIRD_PARTY_NOTICES.md)和[借鑑的設計](../THIRD_PARTY_NOTICES.md)。
+2 -2
View File
@@ -387,8 +387,8 @@
},
{
"path": "docs/CONTRIBUTORS.md",
"sha256": "c49c47a737cff6f934f4c92af392b3c85e11baf9f7cdf870d284c8db9e6a86e1",
"content": "# Contributors\n\nCodewhale is built in the open with a growing community of contributors. Every\nissue report and pull request is real project work — welcome at any experience\nlevel. This is the full per-PR contributor record, grouped into release/time\nbands with the newest band first so it stays scannable. Expand any band to see\neveryone.\n\nFor the live list, see the\n[GitHub contributors page](https://github.com/codewhale-hq/CodeWhale/graphs/contributors),\n[`AUTHOR_MAP`](https://github.com/codewhale-hq/CodeWhale/blob/main/.github/AUTHOR_MAP),\nand [CHANGELOG.md](../CHANGELOG.md).\n\n<!-- contributor-wall:start -->\n## Everyone\n\n[![421 people built Codewhale](assets/contributors.png)](#everyone)\n\n421 people have code, co-authored commits, carried-forward pull requests or credited reports in Codewhale. GitHub's contributor list shows only commit authors whose email is linked to their account, so it counts 203 of them. If your commits are missing there, add your commit email to your GitHub account and they will link.\n\n[0gl20shk0sbt36](https://github.com/0gl20shk0sbt36) · [1Git2Clone](https://github.com/1Git2Clone) · [20bytes](https://github.com/20bytes) · [47Cid](https://github.com/47Cid) · [7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX) · [8sero](https://github.com/8sero) · [A-Corner](https://github.com/A-Corner) · [aboimpinto](https://github.com/aboimpinto) · [adity982](https://github.com/adity982) · [AdityaVG13](https://github.com/AdityaVG13) · [AGSaturn](https://github.com/AGSaturn) · [ai-dengwsh](https://github.com/ai-dengwsh) · [aiapienthusiast](https://github.com/aiapienthusiast) · [Aitensa](https://github.com/Aitensa) · [AiurArtanis](https://github.com/AiurArtanis) · [alitvak69](https://github.com/alitvak69) · [all-lopezg](https://github.com/all-lopezg) · [alvin1](https://github.com/alvin1) · [amuthantamil](https://github.com/amuthantamil) · [AnaheimEX](https://github.com/AnaheimEX) · [Andrea-Bruno](https://github.com/Andrea-Bruno) · [Angel-Hair](https://github.com/Angel-Hair) · [angus-guo](https://github.com/angus-guo) · [angziii](https://github.com/angziii) · [AnonymousUser443](https://github.com/AnonymousUser443) · [antarikshraya](https://github.com/antarikshraya) · [Anyexyz](https://github.com/Anyexyz) · [Apeiron0w0](https://github.com/Apeiron0w0) · [aqilaziz](https://github.com/aqilaziz) · [AresNing](https://github.com/AresNing) · [ArronAI007](https://github.com/ArronAI007) · [Artenx](https://github.com/Artenx) · [asdfg314284230](https://github.com/asdfg314284230) · [Asteria1028](https://github.com/Asteria1028) · [asto18089](https://github.com/asto18089) · [atmosuwiryo](https://github.com/atmosuwiryo) · [axobase001](https://github.com/axobase001) · [aznikline](https://github.com/aznikline) · [baendlorel](https://github.com/baendlorel) · [banqii](https://github.com/banqii) · [Beltran12138](https://github.com/Beltran12138) · [bevis-wong](https://github.com/bevis-wong) · [BH8GCJ](https://github.com/BH8GCJ) · [BigBenLabs](https://github.com/BigBenLabs) · [Biilow](https://github.com/Biilow) · [bistack](https://github.com/bistack) · [BrathonBai](https://github.com/BrathonBai) · [bruce6135](https://github.com/bruce6135) · [BryonGo](https://github.com/BryonGo) · [buiducnhat](https://github.com/buiducnhat) · [buko](https://github.com/buko) · [BX166](https://github.com/BX166) · [c020627](https://github.com/c020627) · [cacdcaecawae](https://github.com/cacdcaecawae) · [caeserchen](https://github.com/caeserchen) · [caiyilian](https://github.com/caiyilian) · [CCChisato](https://github.com/CCChisato) · [ccomma](https://github.com/ccomma) · [cenab](https://github.com/cenab) · [ChaceLyee2101](https://github.com/ChaceLyee2101) · [chatman-media](https://github.com/chatman-media) · [chennest](https://github.com/chennest) · [chinaqy110](https://github.com/chinaqy110) · [chnjames](https://github.com/chnjames) · [chuntseevolving](https://github.com/chuntseevolving) · [ci4ic4](https://github.com/ci4ic4) · [cian-lien](https://github.com/cian-lien) · [cmdcorp6534](https://github.com/cmdcorp6534) · [cmyyy](https://github.com/cmyyy) · [codepgq](https://github.com/codepgq) · [Colorful-glassblock](https://github.com/Colorful-glassblock) · [ComeFromTheMars](https://github.com/ComeFromTheMars) · [CrepuscularIRIS](https://github.com/CrepuscularIRIS) · [ct-jaryn](https://github.com/ct-jaryn) · [ctxyao](https://github.com/ctxyao) · [cy2311](https://github.com/cy2311) · [cyq1017](https://github.com/cyq1017) · [czf0718](https://github.com/czf0718) · [dajiaohuang](https://github.com/dajiaohuang) · [DarrellThomas](https://github.com/DarrellThomas) · [demian-welt](https://github.com/demian-welt) · [Dev-next-gen](https://github.com/Dev-next-gen) · [dfwqdyl-ui](https://github.com/dfwqdyl-ui) · [DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI) · [DieMoe233](https://github.com/DieMoe233) · [DingYong4223Line truncated
"sha256": "bedd1cc62969108856f75d823d13bde9f7217a936d4b0e7af3d2e6232cad5770",
"content": "# Contributors\n\nCodewhale is built in the open with a growing community of contributors. Every\nissue report and pull request is real project work — welcome at any experience\nlevel. This is the full per-PR contributor record, grouped into release/time\nbands with the newest band first so it stays scannable. Expand any band to see\neveryone.\n\nFor the live list, see the\n[GitHub contributors page](https://github.com/codewhale-hq/CodeWhale/graphs/contributors),\n[`AUTHOR_MAP`](https://github.com/codewhale-hq/CodeWhale/blob/main/.github/AUTHOR_MAP),\nand [CHANGELOG.md](../CHANGELOG.md).\n\n<!-- contributor-wall:start -->\n## Everyone\n\n[![433 people built Codewhale](assets/contributors.png)](#everyone)\n\n433 people have code, co-authored commits, carried-forward pull requests or credited reports in Codewhale. GitHub's contributor list shows only commit authors whose email is linked to their account, so it counts 212 of them. If your commits are missing there, add your commit email to your GitHub account and they will link.\n\n[0gl20shk0sbt36](https://github.com/0gl20shk0sbt36) · [1Git2Clone](https://github.com/1Git2Clone) · [20bytes](https://github.com/20bytes) · [47Cid](https://github.com/47Cid) · [7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX) · [8sero](https://github.com/8sero) · [A-Corner](https://github.com/A-Corner) · [aboimpinto](https://github.com/aboimpinto) · [Aboysky](https://github.com/Aboysky) · [adity982](https://github.com/adity982) · [AdityaVG13](https://github.com/AdityaVG13) · [AGSaturn](https://github.com/AGSaturn) · [ai-dengwsh](https://github.com/ai-dengwsh) · [aiapienthusiast](https://github.com/aiapienthusiast) · [Aitensa](https://github.com/Aitensa) · [AiurArtanis](https://github.com/AiurArtanis) · [alitvak69](https://github.com/alitvak69) · [all-lopezg](https://github.com/all-lopezg) · [alvin1](https://github.com/alvin1) · [amuthantamil](https://github.com/amuthantamil) · [AnaheimEX](https://github.com/AnaheimEX) · [Andrea-Bruno](https://github.com/Andrea-Bruno) · [Angel-Hair](https://github.com/Angel-Hair) · [angziii](https://github.com/angziii) · [AnonymousUser443](https://github.com/AnonymousUser443) · [antarikshraya](https://github.com/antarikshraya) · [Anyexyz](https://github.com/Anyexyz) · [Apeiron0w0](https://github.com/Apeiron0w0) · [aqilaziz](https://github.com/aqilaziz) · [AresNing](https://github.com/AresNing) · [ArronAI007](https://github.com/ArronAI007) · [Artenx](https://github.com/Artenx) · [asdfg314284230](https://github.com/asdfg314284230) · [Asteria1028](https://github.com/Asteria1028) · [asto18089](https://github.com/asto18089) · [atmosuwiryo](https://github.com/atmosuwiryo) · [axobase001](https://github.com/axobase001) · [aznikline](https://github.com/aznikline) · [baendlorel](https://github.com/baendlorel) · [banqii](https://github.com/banqii) · [Beltran12138](https://github.com/Beltran12138) · [bevis-wong](https://github.com/bevis-wong) · [BH8GCJ](https://github.com/BH8GCJ) · [BigBenLabs](https://github.com/BigBenLabs) · [Biilow](https://github.com/Biilow) · [bistack](https://github.com/bistack) · [BrathonBai](https://github.com/BrathonBai) · [bruce6135](https://github.com/bruce6135) · [BryonGo](https://github.com/BryonGo) · [buiducnhat](https://github.com/buiducnhat) · [buko](https://github.com/buko) · [BX166](https://github.com/BX166) · [c020627](https://github.com/c020627) · [cacdcaecawae](https://github.com/cacdcaecawae) · [caeserchen](https://github.com/caeserchen) · [caiyilian](https://github.com/caiyilian) · [CCChisato](https://github.com/CCChisato) · [ccomma](https://github.com/ccomma) · [cenab](https://github.com/cenab) · [ChaceLyee2101](https://github.com/ChaceLyee2101) · [chatman-media](https://github.com/chatman-media) · [chennest](https://github.com/chennest) · [chinaqy110](https://github.com/chinaqy110) · [chnjames](https://github.com/chnjames) · [chuntseevolving](https://github.com/chuntseevolving) · [ci4ic4](https://github.com/ci4ic4) · [cian-lien](https://github.com/cian-lien) · [cmdcorp6534](https://github.com/cmdcorp6534) · [cmyyy](https://github.com/cmyyy) · [codepgq](https://github.com/codepgq) · [Colorful-glassblock](https://github.com/Colorful-glassblock) · [ComeFromTheMars](https://github.com/ComeFromTheMars) · [CrepuscularIRIS](https://github.com/CrepuscularIRIS) · [ct-jaryn](https://github.com/ct-jaryn) · [ctxyao](https://github.com/ctxyao) · [cy2311](https://github.com/cy2311) · [cyq1017](https://github.com/cyq1017) · [czf0718](https://github.com/czf0718) · [dajiaohuang](https://github.com/dajiaohuang) · [DarrellThomas](https://github.com/DarrellThomas) · [ddlw](https://github.com/ddlw) · [demian-welt](https://github.com/demian-welt) · [Dev-next-gen](https://github.com/Dev-next-gen) · [dfwqdyl-ui](https://github.com/dfwqdyl-ui) · [DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI) · [DieMoe233](https://github.Line truncated
},
{
"path": "docs/RELEASE_CHECKLIST.md",
+2 -2
View File
@@ -42,7 +42,7 @@ export interface RepoFacts {
}
export const FACTS: RepoFacts = {
"generatedAt": "2026-11-11T04:36:18.685Z",
"generatedAt": "2026-11-12T08:41:42.963Z",
"sourceRevision": null,
"sourceCommittedAt": null,
"version": "0.10.3",
@@ -1155,7 +1155,7 @@ export const FACTS: RepoFacts = {
"defaultModel": "deepseek-flash",
"nodeEngines": ">=18",
"toolCount": 82,
"contributorCount": 393,
"contributorCount": 433,
"license": "MIT",
"latestPublishedRelease": {
"tag": "v0.10.2",
+5 -2
View File
@@ -102,12 +102,15 @@ export function deriveToolCount() {
export function deriveContributorCount() {
const contributors = JSON.parse(read("docs/contributors.json") ?? "null");
const people = contributors?.people;
const unlinked = contributors?.unlinked_commit_names ?? [];
if (!Array.isArray(people) || people.length === 0 || people.some((person) =>
!person || typeof person.login !== "string" || person.login.trim().length === 0)
|| new Set(people.map((person) => person.login.toLowerCase())).size !== people.length) {
|| new Set(people.map((person) => person.login.toLowerCase())).size !== people.length
|| !Array.isArray(unlinked) || unlinked.some((name) => typeof name !== "string" || name.trim().length === 0)) {
throw new Error("missing or malformed contributor roster");
}
return people.length;
const logins = new Set(people.map((person) => person.login.toLowerCase()));
return people.length + unlinked.filter((name) => !logins.has(name.toLowerCase())).length;
}
export function deriveLicense() {