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>
5.3 KiB
Rebrand: deepseek-tui → codewhale
Starting with v0.8.41, this project ships under a new name: codewhale.
This document explains what changed, what didn't, and how to migrate. None of the DeepSeek provider integration changed — only the local CLI / TUI brand.
TL;DR
# 1. Uninstall the old wrapper or binaries.
npm uninstall -g deepseek-tui # or cargo uninstall deepseek-tui-cli deepseek-tui
# or brew uninstall deepseek-tui
# 2. Install under the new name.
npm install -g codewhale # or cargo install codewhale-cli codewhale-tui --locked
# or brew install deepseek-tui (Homebrew tap still
# uses the legacy name during the transition;
# it installs the new binaries underneath.)
# 3. Run with the new command.
codewhale doctor
codewhale
Your ~/.deepseek/config.toml, ~/.deepseek/sessions/, ~/.deepseek/skills/,
~/.deepseek/tasks/, and ~/.deepseek/mcp.json are untouched. Existing
DEEPSEEK_* environment variables continue to work.
What got renamed
| Surface | Before | After |
|---|---|---|
| CLI dispatcher binary | deepseek |
codewhale |
| TUI runtime binary | deepseek-tui |
codewhale-tui |
| npm wrapper package | deepseek-tui |
codewhale |
| Crates.io crates | deepseek-tui-cli / deepseek-tui / deepseek-* |
codewhale-cli / codewhale-tui / codewhale-* |
| Release assets | deepseek-<platform> / deepseek-tui-<platform> |
codewhale-<platform> / codewhale-tui-<platform> |
| Checksum manifest | deepseek-artifacts-sha256.txt |
codewhale-artifacts-sha256.txt |
What did NOT change
Anything that targets the DeepSeek provider API stays exactly as it was:
- Environment variables:
DEEPSEEK_API_KEY,DEEPSEEK_BASE_URL,DEEPSEEK_MODEL,DEEPSEEK_PROVIDER,DEEPSEEK_PROFILE,DEEPSEEK_YOLO,DEEPSEEK_LOG_LEVEL, plus the existingDEEPSEEK_TUI_*runtime knobs (DEEPSEEK_TUI_BIN,DEEPSEEK_TUI_RELEASE_BASE_URL, etc.). They're kept for backward compatibility; renaming them would break every shell rc on the planet. - Model IDs:
deepseek-v4-pro,deepseek-v4-flash, and the legacy aliasesdeepseek-chatanddeepseek-reasoner. - Hosts:
api.deepseek.com(global) andapi.deepseeki.com(China fallback). - Config directory:
~/.deepseek/. Renaming this would invalidate every existing install's saved API key, sessions, skills, MCP config, and audit log. - GitHub repository URL: still
https://github.com/Hmbown/DeepSeek-TUI. A repo rename is a maintainer-side operation that ships separately. - Homebrew tap and formula (
Hmbown/homebrew-deepseek-tui): still installs by the legacy name during the transition. The tap's formula will be flipped to the new names in a follow-up. - Docker image (
ghcr.io/hmbown/deepseek-tui): unchanged.
Deprecation shims (one release cycle)
To keep existing shell aliases, scripts, and CI working through the rename, v0.8.41 ships deprecation shims for one cycle:
- A
deepseekbinary that prints a one-line warning to stderr and forwards argv tocodewhale. - A
deepseek-tuibinary that does the same forcodewhale-tui. - An
npmpackage atdeepseek-tui@0.8.41with nobinand a postinstall that prints a clear "rename" notice.
These shims will be removed in v0.9.0. Please migrate before then.
Migrating in practice
npm
npm uninstall -g deepseek-tui
npm install -g codewhale
Cargo
cargo uninstall deepseek-tui-cli deepseek-tui 2>/dev/null || true
cargo install codewhale-cli codewhale-tui --locked
Or in a checkout:
cargo install --path crates/cli --locked --force
cargo install --path crates/tui --locked --force
Homebrew
The tap formula still installs deepseek-tui during the transition.
Existing brew install deepseek-tui invocations continue to work and land
the new binaries underneath the legacy formula name. The formula and tap
repo will follow up with their own rename.
Manual / GitHub Releases
v0.8.41 Releases attach both the canonical codewhale-* /
codewhale-tui-* assets and the legacy deepseek-* / deepseek-tui-*
shim assets. Existing deepseek update invocations on v0.8.40 keep working;
they land you on the deprecation shim, which then prompts the install of
codewhale.
A second checksum manifest, deepseek-artifacts-sha256.txt, is attached as
an alias of codewhale-artifacts-sha256.txt so v0.8.40's hardcoded lookup
still verifies.
Why the name change
codewhale is a shorter, terminal-friendlier handle that doesn't suggest
the project is tied to a single provider. The dispatcher already supports
DeepSeek, NVIDIA NIM, OpenAI-compatible endpoints, AtlasCloud, Wanjie Ark,
OpenRouter, Novita, Fireworks, SGLang, vLLM, and Ollama, with more on the
roadmap. The new name reflects that.
Reporting issues with the rename
If your install broke during the migration, please open an issue at https://github.com/Hmbown/DeepSeek-TUI/issues and include:
- The output of
codewhale --version(ordeepseek --versionif you're still on the shim). - Which install path you used (npm, cargo, brew, manual).
- The exact command you ran and the full error output.
We'll prioritize migration regressions.