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
+13 -13
View File
@@ -12,11 +12,11 @@ docker pull ghcr.io/hmbown/deepseek-tui:latest
Run the published image with a Docker-managed data volume:
```bash
docker volume create deepseek-tui-home
docker volume create codewhale-tui-home
docker run --rm -it \
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
-v deepseek-tui-home:/home/deepseek/.deepseek \
-v codewhale-tui-home:/home/deepseek/.deepseek \
-v "$PWD:/workspace" \
-w /workspace \
ghcr.io/hmbown/deepseek-tui:latest
@@ -27,7 +27,7 @@ Use a pinned release tag for reproducible installs:
```bash
docker run --rm -it \
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
-v deepseek-tui-home:/home/deepseek/.deepseek \
-v codewhale-tui-home:/home/deepseek/.deepseek \
-v "$PWD:/workspace" \
-w /workspace \
ghcr.io/hmbown/deepseek-tui:vX.Y.Z
@@ -41,7 +41,7 @@ Replace `vX.Y.Z` with a tag from
Build the image locally from a checkout:
```bash
docker build -t deepseek-tui .
docker build -t codewhale-tui .
```
Then run it with the same Docker-managed data volume:
@@ -49,10 +49,10 @@ Then run it with the same Docker-managed data volume:
```bash
docker run --rm -it \
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
-v deepseek-tui-home:/home/deepseek/.deepseek \
-v codewhale-tui-home:/home/deepseek/.deepseek \
-v "$PWD:/workspace" \
-w /workspace \
deepseek-tui
codewhale-tui
```
Docker Hub publishing is not configured; GHCR is the supported prebuilt image
@@ -74,13 +74,13 @@ is the safest default because Docker creates it with ownership the container can
write:
```bash
-v deepseek-tui-home:/home/deepseek/.deepseek
-v codewhale-tui-home:/home/deepseek/.deepseek
```
Without this mount the container starts fresh each time.
If you bind-mount an existing host directory instead, the image runs as the
non-root `deepseek` user with UID/GID `1000:1000`. The mounted directory must be
non-root `codewhale` user with UID/GID `1000:1000`. The mounted directory must be
writable by that user, or startup can fail while creating runtime directories
under `.deepseek/tasks`. On Linux hosts, either use the named volume above or
prepare the bind mount explicitly:
@@ -101,8 +101,8 @@ volume instead.
## Non-interactive / pipeline usage
When stdin is not a TTY, `deepseek` drops to the dispatcher's one-shot mode
(`deepseek -c "…"`). Pipe a prompt on stdin:
When stdin is not a TTY, `codewhale` drops to the dispatcher's one-shot mode
(`codewhale -c "…"`). Pipe a prompt on stdin:
```bash
echo "Explain the Cargo.toml in structured English." | \
@@ -113,18 +113,18 @@ echo "Explain the Cargo.toml in structured English." | \
```bash
# Single platform (your host architecture)
docker build -t deepseek-tui .
docker build -t codewhale-tui .
# Multi-platform (requires a builder with emulation)
docker buildx create --use
docker buildx build --platform linux/amd64,linux/arm64 -t deepseek-tui .
docker buildx build --platform linux/amd64,linux/arm64 -t codewhale-tui .
```
## Devcontainer
The repository includes a [`.devcontainer/devcontainer.json`](../.devcontainer/devcontainer.json)
configuration for VS Code / GitHub Codespaces. It pre-installs the Rust toolchain,
rust-analyzer, and the `deepseek` binary. Open the repo in a devcontainer to get a
rust-analyzer, and the `codewhale` binary. Open the repo in a devcontainer to get a
ready-to-use development environment.
## Release status