Closes #12. Docs only, no code.
Merge after #52. The README now says texting claude or codex switches one thread, which is that PR. Everything else here is true of main today: Codex has been an engine since #7.
What was wrong
Someone who has only Codex could not install, sign in, or text Uplink using this file. It said Claude Code was the engine, the diagram showed claude -p as the only path, and claude setup-token was the only sign-in documented.
What changed
The opening is about a coding agent, with Claude Code named as the default, because that is what it is rather than a hedge. The issue's requirement was not to flatten the product into "your agent", and the hero sentence keeps a real name.
The diagram shows the choice where it actually happens:
claude -p ... or codex exec resume ... (in the named repo)
whichever this thread is set toBoth sign-in paths are documented, including the part that is easy to get wrong: Codex keeps its own credentials, so Uplink stores nothing for it and needs no API key either. The from-source instructions give both, and the Claude one still explains why it wants a long-lived token, which is that a background service cannot answer a browser prompt.
The Layout section names the files that exist, engines.ts and codex-engine.ts among them. I checked all thirteen paths it lists resolve.
What it does not claim
No parity that is not there. What is written is what the two engines do, taken from codex-engine.ts and doctor.ts rather than from the old copy.
No em-dashes or en-dashes, per AGENTS.md. Verified by grep.
🤖 Generated with Claude Code