Pi
How LinkCode runs Pi in-process across two dozen providers, supplies the approval prompts Pi itself has none of, and resumes its threads.
Pi runs in-process inside the host — no separate binary, no subprocess. The first time you pick it, LinkCode downloads Pi's runtime into its own store (with your confirmation); after that there's nothing to manage.
Sign in
LinkCode has no sign-in flow of its own for Pi. Pi resolves credentials for roughly two dozen providers itself, through its own auth file (~/.pi/agent/auth.json) or environment variables — whichever you've already set up for the provider you want, Pi picks up automatically.
You can also connect an account under Settings → Providers. LinkCode applies it as a runtime override for that thread only, taking precedence over Pi's own auth file and environment variables — it's never written to disk.
Approval policy
Pi's own runtime has no concept of asking before it acts, so LinkCode supplies the gate: it holds each tool call and asks you, according to the policy on the thread.
| Policy | What it does |
|---|---|
| Ask permissions | Asks before edits, commands, and unrecognized tools. |
| Accept edits | Applies edits without asking; asks for commands and other tools. |
| Bypass | Runs every tool without asking. |
Ask permissions is the default, and switching applies immediately. Answering "always allow" clears that tool for the rest of the thread.
There is still no sandbox
Pi's tools run with the permissions of the account running the host — that's upstream Pi's design, which states plainly that "real isolation needs to come from the operating system or a virtualization/container boundary." LinkCode's policies control whether you're asked, not what a tool can reach once you allow it. On the Bypass policy nothing stops a tool at all. For untrusted repositories, run inside a container or VM rather than against a real checkout.
Model and reasoning effort
Pi's model list comes from its own provider registry rather than a curated table, so it reflects the providers you've set up. Reasoning effort runs Low, Medium, High, and xHigh, on models that support it — a model without reasoning-effort support rejects the switch rather than silently ignoring it. If you don't pick a model, Pi uses the first one available to it.
Commands
Start a message with / to run one of Pi's own prompt templates or skills. There's no $ shell passthrough.
Thread history
Listing, reading, and resuming Pi threads all work — a stopped thread picks up where it left off. File edits render as plain text rather than as diff cards; see the agent comparison.