Skip to content
Kadro
01docs / providers

Providers

Which AI CLIs Kadro ADE knows about, how it decides they're installed, and where authentication actually happens. Six providers in the registry today: three you can spawn panes from, three Kadro recognises on PATH but does not yet launch.

02Detection

Kadro checks PATH. It does not run your CLIs.

The Settings → Providers panel reads from one source — a Rust probe_provider Tauri command that does a plain stat() on the binary name. No --version fork. No reading of auth files. No network. Each card answers a single question: is this binary on PATH right now?

Probes are deduplicated in flight, and the refresh button on each card re-runs the probe for that one provider. The card’s hairline top border is the provider’s accent color (driven by --color-model-* tokens for Claude, Codex, and Gemini, or static hex values for the detection-only entries).

When a CLI is missing the card collapses into an install pill: the canonical install command (copyable) and a docs link. When the CLI is present the card shows nothing else — sign-in, model selection, and any API keys live inside the spawned terminal, not in Kadro’s settings surface.

03Creatable providers

These three providers can be selected from the creation flow and from the provider picker that opens whenever you create a new pane ( ⌘T) or split with picker ( ⌘⌥D). The picker remembers the last provider you used per workspace and preselects it on next open.

Claude

claude

Anthropic's Claude Code CLI. Spawned through your default login shell with a fallback that drops to a live prompt when the CLI exits.

Install
npm i -g @anthropic-ai/claude-code
Vendor docs

Codex

codex

OpenAI Codex CLI. Identical shell wrapping to Claude — when the agent exits, the pane lands on an interactive login shell instead of a dead PTY.

Install
npm i -g @openai/codex
Vendor docs

Gemini

gemini

Google's Gemini CLI. Same launch contract as the other agent providers; tui-replace rendering keeps full-screen TUI output usable.

Install
npm i -g @google/gemini-cli
Vendor docs
04Detection-only providers

The registry distinguishes creatable providers from detection-only ones via a creatable flag. The entries below are visible in Settings → Providers (so you can confirm install + grab the install command) but they do not appear in the creation flow or provider picker yet.

opencode

opencode

Detected on PATH and shown in Settings, but not yet available as a spawnable provider in the creation flow.

Install
curl -fsSL https://opencode.ai/install | bash
Vendor docs

Cursor Agent

cursor

Cursor's headless agent CLI (binary name: cursor-agent). Detection-only — the Rust probe remaps id → real binary.

Install
curl -fsSL https://cursor.com/install | bash
Vendor docs

GitHub Copilot

copilot

GitHub Copilot CLI. Detection-only at the moment; pane creation is not wired.

Install
npm i -g @github/copilot
Vendor docs
05Authentication

Each CLI handles its own sign-in. Kadro does not store API keys.

When you create a Claude pane, Kadro spawns claude through your default login shell. The CLI’s own auth flow runs inside the PTY — same way it would in iTerm or Terminal.app. Same for Codex and Gemini. Whatever credentials those tools store on disk, they store on their own.

Kadro’s own auth (Settings → Account) is a separate concern: a custom PKCE session against kadrotools.ai that verifies Pro subscription access. It is not used by any of the providers above.

One Claude-specific knob exists for manual testing: setting localStorage.kadro.claudeCodeNoFlicker to "0" or "1" before spawning a Claude pane forwards CLAUDE_CODE_NO_FLICKER into the child env. Kadro does not set this by default.

06Provider picker

The picker appears inline whenever a pane is being created or split with picker. It is a shadcn dialog wrapping the cmdk Command primitive — keyboard-first navigation, escape to cancel, click-outside to dismiss.

The picker lists listCreatableProviders() only. The internal shell provider exists for splits that inherit raw-terminal panes but is intentionally absent from the picker.

Last-used provider is recorded per workspace and used to preselect on next open, so a workspace you usually run Codex in stays Codex-first.

  • Driven by listCreatableProviders() in providerRegistry.ts
  • Cancel returns null; the create/split is a no-op
  • Same provider used by ⌘T (new pane) and ⌘⌥D (split with picker)
  • Provider color used for the pane header accent + palette icon

Install the agent CLIs you actually use.

Kadro detects them on PATH and gets out of the way. Sign-in stays inside each CLI.