Decisions

Why lnk-claude runs Claude Code 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. Claude Code speaks it through the ACP organization's adapter, claude-agent-acp, which keeps many sessions in one process; lnk-claude 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. Claude Code runs in its mode that bypasses its permission prompts, which it otherwise refuses to run as root, inside Link's sandbox: its home and the files folder, and the network through Link's proxy.

Why a folder of its own?

Because ~/.claude is yours. Claude Code's settings, sessions and CLAUDE.md for the agent are in ~/.lnk/claude/claude, so nothing Link writes reaches the Claude Code 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 subscription keeps a login in Claude Code's own files instead, which Link doesn't carry yet.

What does it leave to Claude Code?

Its coding work: worktrees, diffs and a repository carried from one machine to another are Claude Code's own. Its conversations and memory stay in its folder, carried by lnk agent move but not over ASP.