Appendix

E. Migrating from Grok Build

This product is **Matcha CLI**. Grok Build names are compatibility only. xAI is an optional third-party Provider, not a MatchaCode account, and not the product.

Related: Names, paths, and providers; Configure a Provider (BYOK).

What stays compatible

SurfaceMatcha nameCompatibility
CLImatchagrok shim: same binary, deprecation warning on stderr only. Historical agent argv0 still parses and does not warn
Home~/.matcha (MATCHA_HOME)If ~/.grok exists, first launch copy-migrates recoverable files (journaled, idempotent) and does not delete ~/.grok
Project dir.matcha/.grok/ is read and migrated; conflicting files are not silently merged
EnvironmentMATCHA_*Registered GROK_* names work when the Matcha name is unset. If both are set, Matcha wins and a diagnostic names the variables, not their values
ThemesMatchaNight / MatchaDaygroknight / grokday still load
Policy windowShim, registered GROK_*, and read-only ~/.grok discovery remain at least two Matcha CLI stable releases or 6 months, whichever is longer

Credentials

DoDo not
matcha login --provider xai (or openai, anthropic, openai_compatible, ollama)Treat an old xAI token as a MatchaCode account
Import an old xAI key only as xAI Provider credentialsRun matcha login --oauth / --device-auth
Prefer MATCHA_*; leave GROK_* as read-only fallbackRewrite grok / xai strings wholesale in config

Conflict and deprecation diagnostics never print secret values.

matcha login --provider xai

What not to expect after migrating

  • No grok.com / SuperGrok / device-code chrome on first launch.
  • No MatchaCode account, OAuth, billing, telemetry, plugin marketplace, or product cloud. See Appendix A.
  • Uninstalling Matcha CLI does not remove ~/.grok. That directory belongs to the previous product.
  • matcha doctor reports leftover Grok leader sockets, locks, and crash dumps as identify-only.

How the names work

  • Display name Matcha CLI, command matcha. New writes go to MATCHA_*, ~/.matcha, .matcha/.
  • Compatibility is new-name-first, old-name read-only. Migration is idempotent and recoverable; old data is never auto-deleted.
  • xAI / Grok are contacted only when you explicitly choose the xAI Provider.
  • Do not do an unclassified replace-all of grok, xai, GROK_*, XAI_*, or x.ai/*. Product brand, Provider ids, legal text, old fixtures, and protocol fields are different things.