Decisions

Why lnk-codex runs Codex the way it does. Link's own decisions about harnesses are on its Agents Decisions page.

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.