Next-release requirement (2026-09-08): This issue must be completed before the next release. The existing scope, diagnosis and acceptance criteria below remain in force.
Summary
The product is called Tcode (capital T). The lowercase form tcode is the command / crate / bundle identifier, and should keep appearing only where an identifier is expected. Every user-facing surface currently shows the identifier as if it were the name.
Where the name is shown
- Sidebar wordmark (
crates/ui/src/sidebar.rs, the "tcode" + DEV badge) and the About / Settings captions.
- Window titles, macOS app name and menu bar,
Info.plist CFBundleDisplayName, Android app_name, iOS display name, launch screens.
- Browser client:
<title> in crates/web/static/index.html, the password setup/login page copy ("Open tcode on this machine…"), and tcode-headless startup lines.
- Locales: every
tcode in locales/en.yml and locales/zh-CN.yml that is prose rather than a command.
- Docs and README headings/prose (
docs/DESIGN.md, docs/remote.md, docs/computer-use.md), the PR/issue templates, release notes, repository description.
- Notifications, toasts, dialogs and export headers that mention the app by name.
Keep lowercase
- Binaries and commands:
tcode, tcode-headless, tcode-headless serve.
- Crate names, bundle ids (
com.…tcode), data directories (~/.tcode, TCODE_DATA_DIR), URLs, file names, MCP server names (tcode_orchestrate…).
- Any code identifier.
Approach
- Add one
PRODUCT_NAME constant (and a product.name locale key) and render every user-visible mention through it, so the wordmark cannot drift again.
- Sweep prose with a review of each hit; do not blanket-replace, since half of the hits are commands.
- Add a small test that the locale files contain no lowercase
tcode in prose keys (allowlist the command mentions).
Summary
The product is called Tcode (capital T). The lowercase form
tcodeis the command / crate / bundle identifier, and should keep appearing only where an identifier is expected. Every user-facing surface currently shows the identifier as if it were the name.Where the name is shown
crates/ui/src/sidebar.rs, the "tcode" + DEV badge) and the About / Settings captions.Info.plistCFBundleDisplayName, Androidapp_name, iOS display name, launch screens.<title>incrates/web/static/index.html, the password setup/login page copy ("Open tcode on this machine…"), andtcode-headlessstartup lines.tcodeinlocales/en.ymlandlocales/zh-CN.ymlthat is prose rather than a command.docs/DESIGN.md,docs/remote.md,docs/computer-use.md), the PR/issue templates, release notes, repository description.Keep lowercase
tcode,tcode-headless,tcode-headless serve.com.…tcode), data directories (~/.tcode,TCODE_DATA_DIR), URLs, file names, MCP server names (tcode_orchestrate…).Approach
PRODUCT_NAMEconstant (and aproduct.namelocale key) and render every user-visible mention through it, so the wordmark cannot drift again.tcodein prose keys (allowlist the command mentions).