Decisions
Why lnk-codex runs Codex the way it does. Link's own decisions about
harnesses are on its
Agents Decisions
page.
How does Link talk to Codex?
Over ACP, the Agent Client Protocol,
as it talks to every harness. Codex speaks it through the ACP
organization's adapter, codex-acp, which keeps many sessions in one
process; lnk-codex serve is its endpoint, the harness hub relaying
Link's ACP to it over stdio.
Why does it never ask?
Because Link's sandbox guards the machine, and nobody is there to approve at a prompt. Codex runs with its approvals set to never and its own sandbox off, which can't nest inside Link's, inside Link's sandbox: its home and the files folder, and the network through Link's proxy.
Why a folder of its own?
Because ~/.codex is yours. Codex's settings, sessions and
AGENTS.md for the agent are in ~/.lnk/codex/codex, so nothing
Link writes reaches the Codex you run yourself, and removing the agent
removes only what's Link's.
Why an API key only?
Because an API key is a credential Link's secrets and proxy can hold for it. Signing in with a ChatGPT plan keeps a login in Codex's own files instead, which Link doesn't carry yet.
What does it leave to Codex?
Its coding work: worktrees, diffs and a repository carried from one
machine to another are Codex's own. Its conversations stay in its
folder, carried by lnk agent move but not over ASP.