docs(brand): rename to codewhale across READMEs and docs

Sweep brand mentions of `DeepSeek TUI` / `deepseek-tui` / bare
`deepseek` (the dispatcher binary) across all user-facing docs to
the new `codewhale` brand. The DeepSeek **provider** integration is
left untouched throughout: env vars (`DEEPSEEK_*`), model IDs
(`deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-chat`,
`deepseek-reasoner`), the `api.deepseek.com` host, the
`~/.deepseek/` config dir, and the `--provider deepseek` argument
value all keep the legacy spelling.

Anti-scope items deliberately left as the legacy `deepseek-tui`:

- Homebrew tap and formula (`Hmbown/homebrew-deepseek-tui`,
  `brew install deepseek-tui`, `scoop install deepseek-tui`). The
  tap rename ships separately.
- Docker image (`ghcr.io/hmbown/deepseek-tui`). Image-tag rename
  ships separately.
- CNB mirror namespace (`cnb.cool/deepseek-tui.com/DeepSeek-TUI`).
  Third-party hosted path.
- Security contact email (`security@deepseek-tui.com`).
- GitHub repo URL (`Hmbown/DeepSeek-TUI`).

New artifact:

- `docs/REBRAND.md` documents what changed, what didn't, the
  deprecation window, and migration commands for npm / Cargo /
  Homebrew / manual installs.

CHANGELOG entries:

- Root `CHANGELOG.md` and `crates/tui/CHANGELOG.md` both gain a
  new `[Unreleased]` section describing the rename and the one-
  release deprecation window. Historical entries are untouched.

Issue templates:

- `.github/ISSUE_TEMPLATE/bug_report.md` and `feature_request.md`
  refer to "codewhale" / `codewhale --version` instead of the old
  brand name in their environment fields.

The rebrand sweep was driven by a perl script with bulk patterns
(`deepseek-tui` -> `codewhale-tui`, `DeepSeek TUI` -> `codewhale`,
bare `deepseek` -> `codewhale` with provider/model/host/env-var/
config-path negative lookbehind/lookahead) followed by targeted
reverts for the anti-scope items above. Output was visually
reviewed file-by-file before committing.

Verified:

- `cargo check --workspace --all-targets --locked` — pass.
- `cargo test --workspace --all-features --locked` — pass (no
  test source touched here; suite stayed green to confirm no
  doc-from-string assertions broke).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hunter Bown
2026-05-23 11:25:48 -05:00
parent 23daefbe24
commit a3acdbe70b
25 changed files with 760 additions and 571 deletions
+77 -77
View File
@@ -1,4 +1,4 @@
# Installing DeepSeek TUI
# Installing codewhale
This page covers every supported install path and the most common
"it didn't install" failures, including **Linux ARM64** and other less
@@ -12,16 +12,16 @@ If you just want the short version, see the
## 1. Supported platforms
`deepseek-tui` ships prebuilt binaries for these
`codewhale-tui` ships prebuilt binaries for these
platform/architecture combinations from v0.8.8 onward:
| Platform | Architecture | npm install | `cargo install` | GitHub release asset |
| ------------ | ------------ | :---------: | :-------------: | ----------------------------------------------------- |
| Linux | x64 (x86_64) | ✅ | ✅ | `deepseek-linux-x64`, `deepseek-tui-linux-x64` |
| Linux | arm64 | ✅ | ✅ | `deepseek-linux-arm64`, `deepseek-tui-linux-arm64` |
| macOS | x64 | ✅ | ✅ | `deepseek-macos-x64`, `deepseek-tui-macos-x64` |
| macOS | arm64 (M-series) | ✅ | ✅ | `deepseek-macos-arm64`, `deepseek-tui-macos-arm64` |
| Windows | x64 | ✅ | ✅ | `deepseek-windows-x64.exe`, `deepseek-tui-windows-x64.exe` |
| Linux | x64 (x86_64) | ✅ | ✅ | `codewhale-linux-x64`, `codewhale-tui-linux-x64` |
| Linux | arm64 | ✅ | ✅ | `codewhale-linux-arm64`, `codewhale-tui-linux-arm64` |
| macOS | x64 | ✅ | ✅ | `codewhale-macos-x64`, `codewhale-tui-macos-x64` |
| macOS | arm64 (M-series) | ✅ | ✅ | `codewhale-macos-arm64`, `codewhale-tui-macos-arm64` |
| Windows | x64 | ✅ | ✅ | `codewhale-windows-x64.exe`, `codewhale-tui-windows-x64.exe` |
| Other Linux (musl, riscv64, …) | — | ❌¹ | ✅² | build from source |
| FreeBSD / OpenBSD | — | ❌ | ✅² | build from source |
@@ -38,8 +38,8 @@ systems such as Alpine should use [Build from source](#7-build-from-source).
> **Linux ARM64 note (v0.8.7 and earlier).** v0.8.7 and earlier do **not**
> publish a Linux ARM64 prebuilt; users on HarmonyOS thin-and-light, Asahi
> Linux, Raspberry Pi, AWS Graviton, etc. saw `Unsupported architecture: arm64`
> from `npm i -g deepseek-tui`. v0.8.8 publishes both `deepseek-linux-arm64`
> and `deepseek-tui-linux-arm64`, so a plain `npm i -g deepseek-tui` works
> from `npm i -g codewhale`. v0.8.8 publishes both `codewhale-linux-arm64`
> and `codewhale-tui-linux-arm64`, so a plain `npm i -g codewhale` works
> on any glibc-based ARM64 Linux. If you're stuck on v0.8.7, jump to
> [Build from source](#7-build-from-source) — `cargo install` works fine.
@@ -49,19 +49,19 @@ systems such as Alpine should use [Build from source](#7-build-from-source).
Official release binaries are published only from
`https://github.com/Hmbown/DeepSeek-TUI/releases` and the npm package named
`deepseek-tui`. Do not install release assets from look-alike repositories,
`codewhale-tui`. Do not install release assets from look-alike repositories,
archives, or search-result mirrors unless you deliberately trust that mirror.
Every GitHub release includes `deepseek-artifacts-sha256.txt`. If you download
Every GitHub release includes `codewhale-artifacts-sha256.txt`. If you download
binaries manually, verify them before running:
```bash
# Run from the directory containing the downloaded binaries.
curl -L -O https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/deepseek-artifacts-sha256.txt
sha256sum -c deepseek-artifacts-sha256.txt --ignore-missing
curl -L -O https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-artifacts-sha256.txt
sha256sum -c codewhale-artifacts-sha256.txt --ignore-missing
```
On macOS, use `shasum -a 256 -c deepseek-artifacts-sha256.txt` instead of
On macOS, use `shasum -a 256 -c codewhale-artifacts-sha256.txt` instead of
`sha256sum`.
If antivirus software flags an official release binary, treat it as unresolved
@@ -70,7 +70,7 @@ the GitHub issue:
- the release tag, for example `v0.8.36`
- the exact download URL
- the filename, for example `deepseek-linux-x64`
- the filename, for example `codewhale-linux-x64`
- the file SHA-256 from your machine
- the antivirus product name and detection name
@@ -82,13 +82,13 @@ a download sourced from an impersonating repository or mirror.
## 3. Install via npm (recommended)
```bash
npm install -g deepseek-tui
deepseek
npm install -g codewhale
codewhale
```
`postinstall` downloads the right pair of binaries from the matching GitHub
release, verifies a SHA-256 manifest, and exposes both `deepseek` and
`deepseek-tui` on your `PATH`.
release, verifies a SHA-256 manifest, and exposes both `codewhale` and
`codewhale-tui` on your `PATH`.
Useful environment variables:
@@ -105,7 +105,7 @@ Useful environment variables:
> (not just the postinstall binary download), use an npm registry mirror:
> ```bash
> npm config set registry https://registry.npmmirror.com
> npm install -g deepseek-tui
> npm install -g codewhale
> ```
> See also [Section 4](#4-install-via-cargo-any-tier-1-rust-target) if you
> prefer Cargo over npm.
@@ -120,9 +120,9 @@ delegates to the TUI runtime at runtime.
```bash
# Requires Rust 1.88+ (https://rustup.rs)
cargo install deepseek-tui-cli --locked # provides `deepseek`
cargo install deepseek-tui --locked # provides `deepseek-tui`
deepseek --version
cargo install codewhale-cli --locked # provides `codewhale`
cargo install codewhale-tui --locked # provides `codewhale-tui`
codewhale --version
```
### China / mirror-friendly install
@@ -201,7 +201,7 @@ If you already have Nix with flake support, run:
nix run github:Hmbown/DeepSeek-TUI
```
Nix builds `deepseek-tui` and then starts the `deepseek` dispatcher. Pass
Nix builds `codewhale-tui` and then starts the `codewhale` dispatcher. Pass
arguments after `--`, for example:
```sh
@@ -217,8 +217,8 @@ Add inputs to `flake.nix`:
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
deepseek-tui.url = "github:Hmbown/DeepSeek-TUI";
deepseek-tui.inputs.nixpkgs.follows = "nixpkgs";
codewhale-tui.url = "github:Hmbown/DeepSeek-TUI";
codewhale-tui.inputs.nixpkgs.follows = "nixpkgs";
};
}
```
@@ -227,7 +227,7 @@ Install into a NixOS module:
```nix
{
outputs = { self, nixpkgs, deepseek-tui }:
outputs = { self, nixpkgs, codewhale-tui }:
let
# replace system "x86_64-linux" with your system
system = "x86_64-linux";
@@ -239,7 +239,7 @@ Install into a NixOS module:
modules = [
# ...
{
environment.systemPackages = [ deepseek-tui.packages.${system}.default ];
environment.systemPackages = [ codewhale-tui.packages.${system}.default ];
}
];
};
@@ -258,32 +258,32 @@ side by side into a directory on your `PATH` (e.g. `~/.local/bin`):
```bash
# Linux ARM64 example
mkdir -p ~/.local/bin
curl -L -o ~/.local/bin/deepseek \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/deepseek-linux-arm64
curl -L -o ~/.local/bin/deepseek-tui \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/deepseek-tui-linux-arm64
chmod +x ~/.local/bin/deepseek ~/.local/bin/deepseek-tui
deepseek --version
curl -L -o ~/.local/bin/codewhale \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-linux-arm64
curl -L -o ~/.local/bin/codewhale-tui \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-tui-linux-arm64
chmod +x ~/.local/bin/codewhale ~/.local/bin/codewhale-tui
codewhale --version
```
Verify integrity against the per-release SHA-256 manifest:
```bash
curl -L -o /tmp/deepseek-artifacts-sha256.txt \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/deepseek-artifacts-sha256.txt
( cd ~/.local/bin && sha256sum -c /tmp/deepseek-artifacts-sha256.txt --ignore-missing )
curl -L -o /tmp/codewhale-artifacts-sha256.txt \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-artifacts-sha256.txt
( cd ~/.local/bin && sha256sum -c /tmp/codewhale-artifacts-sha256.txt --ignore-missing )
```
(Use `shasum -a 256 -c` instead of `sha256sum` on macOS.)
### Windows Scoop
DeepSeek TUI is listed in Scoop's main bucket:
codewhale is listed in Scoop's main bucket:
```powershell
scoop update
scoop install deepseek-tui
deepseek --version
codewhale --version
```
Scoop manifests are maintained outside this repository's release workflow and
@@ -314,10 +314,10 @@ LoongArch, FreeBSD, and pre-2024 ARM64 distros.
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo install --path crates/cli --locked # provides `deepseek`
cargo install --path crates/tui --locked # provides `deepseek-tui`
cargo install --path crates/cli --locked # provides `codewhale`
cargo install --path crates/tui --locked # provides `codewhale-tui`
deepseek --version
codewhale --version
```
Both binaries land in `~/.cargo/bin/` by default; make sure that directory is
@@ -336,13 +336,13 @@ rustup target add aarch64-unknown-linux-gnu
cargo install cross --locked
# Per build
cross build --release --target aarch64-unknown-linux-gnu -p deepseek-tui-cli
cross build --release --target aarch64-unknown-linux-gnu -p deepseek-tui
cross build --release --target aarch64-unknown-linux-gnu -p codewhale-cli
cross build --release --target aarch64-unknown-linux-gnu -p codewhale-tui
```
The resulting binaries land in
`target/aarch64-unknown-linux-gnu/release/deepseek` and
`target/aarch64-unknown-linux-gnu/release/deepseek-tui`. Copy the matched pair
`target/aarch64-unknown-linux-gnu/release/codewhale` and
`target/aarch64-unknown-linux-gnu/release/codewhale-tui`. Copy the matched pair
to the ARM64 host (e.g. via `scp`) and `chmod +x` them.
If you don't have Docker available, install the cross-linker directly and let
@@ -357,8 +357,8 @@ cat >> ~/.cargo/config.toml <<'EOF'
linker = "aarch64-linux-gnu-gcc"
EOF
cargo build --release --target aarch64-unknown-linux-gnu -p deepseek-tui-cli
cargo build --release --target aarch64-unknown-linux-gnu -p deepseek-tui
cargo build --release --target aarch64-unknown-linux-gnu -p codewhale-cli
cargo build --release --target aarch64-unknown-linux-gnu -p codewhale-tui
```
The same recipe works for `aarch64-unknown-linux-musl` if your distro is
@@ -420,8 +420,8 @@ set CARGO_HTTP_CHECK_REVOKE=false # may be needed behind some Chinese ISPs
cargo build --release
```
Both binaries appear in `target\release\deepseek.exe` and
`target\release\deepseek-tui.exe`.
Both binaries appear in `target\release\codewhale.exe` and
`target\release\codewhale-tui.exe`.
> **Prefer `npm install -g` on Windows unless you need to modify source.**
> The npm package pulls prebuilt binaries and avoids the C toolchain
@@ -434,30 +434,30 @@ Both binaries appear in `target\release\deepseek.exe` and
### `Unsupported architecture: arm64 on platform linux`
You're on a release earlier than v0.8.8 that doesn't publish Linux ARM64
binaries. Either upgrade (`npm i -g deepseek-tui@latest`) or use
binaries. Either upgrade (`npm i -g codewhale@latest`) or use
`cargo install` per [Section 4](#4-install-via-cargo-any-tier-1-rust-target).
### `MISSING_COMPANION_BINARY` at runtime
The dispatcher (`deepseek`) requires the TUI runtime (`deepseek-tui`) to be on
The dispatcher (`codewhale`) requires the TUI runtime (`codewhale-tui`) to be on
the same `PATH`. If you installed only one crate via `cargo install`, install
both:
```bash
cargo install deepseek-tui-cli --locked
cargo install deepseek-tui --locked
cargo install codewhale-cli --locked
cargo install codewhale-tui --locked
```
### `deepseek update` reports `no asset found for platform deepseek-linux-aarch64`
### `codewhale update` reports `no asset found for platform codewhale-linux-aarch64`
This is [#503](https://github.com/Hmbown/DeepSeek-TUI/issues/503) in v0.8.7 —
the self-updater used Rust's `aarch64`/`x86_64` arch names instead of the
release artifact's `arm64`/`x64`. Workaround until v0.8.8:
```bash
npm i -g deepseek-tui@latest
npm i -g codewhale@latest
# or
cargo install deepseek-tui-cli --locked
cargo install codewhale-cli --locked
```
### npm download is slow or times out from mainland China
@@ -466,26 +466,26 @@ Set `DEEPSEEK_TUI_RELEASE_BASE_URL` to a mirrored release-asset directory
(rsproxy, TUNA, Tencent COS, Aliyun OSS), or skip npm entirely and use the
Cargo mirror setup in [Section 4](#4-install-via-cargo-any-tier-1-rust-target).
### `deepseek update` is blocked by GitHub from mainland China
### `codewhale update` is blocked by GitHub from mainland China
`deepseek update` normally contacts GitHub Releases for metadata and binary
`codewhale update` normally contacts GitHub Releases for metadata and binary
assets. On networks where GitHub is blocked or unreliable, use the CNB source
mirror instead and install both binaries from the release tag:
```bash
cargo install --git https://cnb.cool/deepseek-tui.com/DeepSeek-TUI --tag vX.Y.Z deepseek-tui-cli --locked --force
cargo install --git https://cnb.cool/deepseek-tui.com/DeepSeek-TUI --tag vX.Y.Z deepseek-tui --locked --force
cargo install --git https://cnb.cool/deepseek-tui.com/DeepSeek-TUI --tag vX.Y.Z codewhale-cli --locked --force
cargo install --git https://cnb.cool/deepseek-tui.com/DeepSeek-TUI --tag vX.Y.Z codewhale-tui --locked --force
```
If you operate a binary asset mirror, `deepseek update` can use it directly:
If you operate a binary asset mirror, `codewhale update` can use it directly:
```bash
DEEPSEEK_TUI_VERSION=X.Y.Z \
DEEPSEEK_TUI_RELEASE_BASE_URL=https://your-mirror.example.com/DeepSeek-TUI/vX.Y.Z/ \
deepseek update
codewhale update
```
The mirror directory must contain `deepseek-artifacts-sha256.txt` and the
The mirror directory must contain `codewhale-artifacts-sha256.txt` and the
platform binaries from the GitHub release.
### Debian/Ubuntu: `feature edition2024 is required` from `cargo install`
@@ -511,8 +511,8 @@ export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
rustup default stable
cargo install deepseek-tui-cli --locked
cargo install deepseek-tui --locked
cargo install codewhale-cli --locked
cargo install codewhale-tui --locked
```
Afterward, `which cargo` should point to `~/.cargo/bin/cargo`, not
@@ -526,7 +526,7 @@ Install the C toolchain:
sudo apt-get install -y build-essential pkg-config libdbus-1-dev
```
### Wrapper installs but `deepseek` isn't found
### Wrapper installs but `codewhale` isn't found
`npm i -g` installs into `$(npm prefix -g)/bin`; make sure that directory is on
your shell's `PATH`. With nvm: `nvm use --lts && hash -r`.
@@ -573,10 +573,10 @@ path-agnostic — moving `target-dir` does not help.
1. **Add the project's `target/` directory to your AV exclusions list.**
2. **Close the antivirus software temporarily** during `cargo build`.
3. **Use `npm install -g deepseek-tui` instead** — the npm package ships
3. **Use `npm install -g codewhale` instead** — the npm package ships
prebuilt binaries and skips the Cargo build entirely
([Section 3](#3-install-via-npm-recommended)).
4. **Use `cargo install deepseek-tui-cli --locked`** from crates.io — this
4. **Use `cargo install codewhale-cli --locked`** from crates.io — this
changes the binary path, which some AV tools treat differently.
To verify that the build-script binary itself is valid (not corrupted), locate
@@ -590,7 +590,7 @@ target/debug/build/libsqlite3-sys-*/build-script-build
### npm binary download times out
If `deepseek` waits several seconds and prints `connect ETIMEDOUT` or
If `codewhale` waits several seconds and prints `connect ETIMEDOUT` or
`EAI_AGAIN` while fetching from `github.com`, the npm wrapper installed
successfully but the prebuilt binary download from GitHub Releases is blocked
or unreliable on your network. This download is separate from the npm registry
@@ -602,23 +602,23 @@ Use one of these paths:
```bash
export HTTPS_PROXY=http://your-proxy:port
deepseek
codewhale
```
2. Mirror the release assets internally and set `DEEPSEEK_TUI_RELEASE_BASE_URL`:
```bash
export DEEPSEEK_TUI_RELEASE_BASE_URL=https://your-mirror.example.com/DeepSeek-TUI/
deepseek
codewhale
```
The directory must contain `deepseek-artifacts-sha256.txt` and the platform
The directory must contain `codewhale-artifacts-sha256.txt` and the platform
binaries from the GitHub release.
3. Install via Cargo, which builds locally and does not download GitHub release
assets. See [Section 4](#4-install-via-cargo-any-tier-1-rust-target).
4. Download both `deepseek` and `deepseek-tui` manually from the
4. Download both `codewhale` and `codewhale-tui` manually from the
[Releases page](https://github.com/Hmbown/DeepSeek-TUI/releases), place them
in a directory on `PATH`, and make them executable. See
[Section 6](#6-manual-download-from-github-releases).
@@ -628,9 +628,9 @@ Use one of these paths:
## 9. Verifying your install
```bash
deepseek --version
deepseek doctor # checks API key, provider, runtime, and PATH integrity
deepseek doctor --json
codewhale --version
codewhale doctor # checks API key, provider, runtime, and PATH integrity
codewhale doctor --json
```
`doctor` exits non-zero if it finds a problem and prints structured remediation