Problem
External user @whereiszebra (#258) downloaded deepseek-macos-arm64 from the GitHub Release, ran it, hit the missing-companion error, spent 11 minutes figuring out they also needed deepseek-tui-macos-arm64 next to it. They left feedback: "Release page does not document that both deepseek-macos-arm64 and deepseek-tui-macos-arm64 must be downloaded together."
The v0.8.3 fix improved the error message (bb88ab91) so future users see a concrete checklist (npm / cargo / both-binaries-from-Releases). But the underlying ergonomic problem stays: cargo install deepseek-tui only installs deepseek-tui (because we removed the v0.8.1 deepseek shim from that crate when it broke Windows release builds — see v0.8.2 CHANGELOG).
Proposal
Publish a tiny meta-crate deepseek to crates.io whose only job is:
# crates/deepseek/Cargo.toml
[package]
name = "deepseek"
version = "0.8.4"
description = "Meta-crate that installs both deepseek (dispatcher) and deepseek-tui (TUI) binaries"
[dependencies]
deepseek-tui-cli = { version = "0.8.4", path = "../cli" }
deepseek-tui = { version = "0.8.4", path = "../tui" }
Then cargo install deepseek --locked pulls in both crates and installs both binaries (deepseek from cli, deepseek-tui from tui). No shim, no Windows collision (each binary still owns its own crate), and the canonical install command finally matches the canonical command name.
Acceptance criteria
Why now
This is the natural follow-up to #258. With the meta-crate, the fix message we ship in v0.8.3 (bb88ab91) gets a clean third option — and the simplest one wins:
Out of scope
- Renaming the existing crates.
deepseek-tui-cli and deepseek-tui keep their names; the meta-crate is additive.
- Touching the npm wrapper. It already installs both correctly via the GitHub Release artifacts.
Problem
External user @whereiszebra (#258) downloaded
deepseek-macos-arm64from the GitHub Release, ran it, hit the missing-companion error, spent 11 minutes figuring out they also neededdeepseek-tui-macos-arm64next to it. They left feedback: "Release page does not document that both deepseek-macos-arm64 and deepseek-tui-macos-arm64 must be downloaded together."The v0.8.3 fix improved the error message (
bb88ab91) so future users see a concrete checklist (npm / cargo / both-binaries-from-Releases). But the underlying ergonomic problem stays:cargo install deepseek-tuionly installsdeepseek-tui(because we removed the v0.8.1deepseekshim from that crate when it broke Windows release builds — see v0.8.2 CHANGELOG).Proposal
Publish a tiny meta-crate
deepseekto crates.io whose only job is:Then
cargo install deepseek --lockedpulls in both crates and installs both binaries (deepseekfrom cli,deepseek-tuifrom tui). No shim, no Windows collision (each binary still owns its own crate), and the canonical install command finally matches the canonical command name.Acceptance criteria
crates/deepseek/exists with the meta-crate manifestCargo.tomldefault-membersincludes itversion-driftgate stays passing (the meta-crate inheritsversion.workspace = true)cargo install --path crates/deepseek --lockedfrom a fresh clone produces bothdeepseekanddeepseek-tuiin~/.cargo/bin/cargo install deepseekas the single canonical cargo install pathcargo publishorder — last in topological order since it depends on the others)Why now
This is the natural follow-up to #258. With the meta-crate, the fix message we ship in v0.8.3 (
bb88ab91) gets a clean third option — and the simplest one wins:Out of scope
deepseek-tui-clianddeepseek-tuikeep their names; the meta-crate is additive.