Files
codewhale/docs/REBRAND.md
T
Hunter Bown a3acdbe70b 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>
2026-05-23 11:25:48 -05:00

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 existing DEEPSEEK_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 aliases deepseek-chat and deepseek-reasoner.
  • Hosts: api.deepseek.com (global) and api.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 deepseek binary that prints a one-line warning to stderr and forwards argv to codewhale.
  • A deepseek-tui binary that does the same for codewhale-tui.
  • An npm package at deepseek-tui@0.8.41 with no bin and 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 (or deepseek --version if 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.