Providers
ysa supports multiple AI providers. Claude is the default.
Built-in providers
Claude
bash
ysa run "add tests" # defaults to Claude
ysa run "add tests" --provider claudeAuth: Log in with the claude CLI before running ysa (claude login). The OAuth token is picked up automatically.
Default model: claude-sonnet-4-6
DeepSeek
bash
ysa run "add tests" --provider deepseekAuth: Store your API key with:
bash
ysa key set deepseekDeepSeek uses Claude Code's API protocol (api.deepseek.com/anthropic) so the same agent binary works without modification.
Default model: deepseek-v4-pro (sub-agent tasks use deepseek-v4-flash)
Mistral
bash
ysa run "add tests" --provider mistralAuth: Store your API key with:
bash
ysa key set mistralDefault model: devstral-small-latest
Managing API keys
bash
ysa key set <provider> # prompt for key and store it securely
ysa key check <provider> # verify a key is stored
ysa key delete <provider> # remove a stored keySwitching providers via API
ts
await runTask({
...
provider: "deepseek",
});Custom providers
See Providers API reference for how to implement and register a custom ProviderAdapter.
If your provider's API endpoint requires direct TCP access (bypassing the proxy), set bypassHosts on the adapter:
ts
export const myAdapter: ProviderAdapter = {
...
bypassHosts: ["api.myprovider.com"],
};Related
- Providers API —
ProviderAdapterinterface andregisterProvider - RunConfig.provider — per-task provider selection
ysa run --provider— CLI flag