Skip to main content
Reopening "support" after a restart resumes the same conversation. send() resolves when the runtime accepts the turn, not when the reply finishes — watch thread.on("status") / thread.on("event") before treating the thread as idle. Call ade.dispose() when the host shuts down.

Check the machine

doctor() reports sdkVersion (this package) and the runtime binary version separately — they ship on different cadences. providers.status() returns a map of provider id to { installed, binaryPath, version, authenticated, installCommand, loginCommand, source, … }. Read source first. "probed" means the runtime resolved the binary and read the credential files, so those fields are measurements; "derived" means the runtime is older than the probe RPC and everything comes from the model catalog, so a UI should say “not detected” rather than “not installed”. providers.refresh() bypasses the runtime’s 60-second probe cache — that is the “I just installed it” button. Provider credentials live in the provider’s own config (~/.claude, ~/.codex, ~/.cursor, …), not under home.

Permissions

"always-allow" maps to each provider’s full-auto create args — bypassPermissions on Claude, danger-full-access on Codex. "default" leaves each provider’s own handling in place, and that is not one behavior: on Claude, ADE installs no gate at all and the Agent SDK decides non-interactively; on Codex, an approval request parks the turn until something answers it. For anything in between, pass a policy instead of a preset:
On Claude a deny fallback is stronger than “never asks”: every mutating built-in the policy does not name is removed from the model’s catalog, and MCP is scoped to the servers the policy names — including servers you supplied yourself in mcpServers. Name them in the policy to use them. Read Permissions and approvals before shipping a policy or either preset.

React UI

See Chat UI for labels, theming, and the standalone components.

Inject your tools

Read MCP servers before you tell users that only your tools are loaded. Strict isolation is enforced only on Claude.

Next

Threads

Steer, interrupt, switch models, export.

Runtime

Embedded profile, watchdog, pidfile reclaim.