Providers
A step's provider is the agent CLI that runs it.
A step's provider is the agent CLI that runs it. claude-code, the user's configured Claude Code, is the default. cursor is optional. Each provider's capabilities say what a step can require.
Set a factory default with top-level provider. Set one step with steps.<id>.provider. Intake always runs on claude-code in this version, even if those keys say otherwise. Omitted keys mean claude-code. See kusaw.yaml.
The factory runs locally and starts no cloud agents or remote workers. A Cursor step sends the code it reads to Cursor's service, like any Cursor session. Enable Cursor only on machines and for code where that is allowed. Cursor is off until it's enabled on the machine, so a machine where nobody enables it never makes a Cursor call.
Setup: Claude Code, Cursor. What each can enforce: capabilities. Whether a third CLI can be a built-in: adding a provider.
Enabling Cursor
Cursor is off by default on every machine. The user-level default is allowed_providers: [claude-code]. A restricted setup is any machine where only Claude Code is approved for your code. Nothing needs to be done on a restricted setup: Cursor stays off.
To enable Cursor on a personal machine, or any machine where Cursor is allowed, add allowed_providers: [claude-code, cursor] to <user config dir>/kusaw/registry.yaml (or $KUSAW_HOME/registry.yaml):
allowed_providers: [claude-code, cursor]Then run kusaw validate and check that Cursor selections no longer show provider.not_enabled.
Only this user-level line enables Cursor. A kusaw.yaml can't, so a factory or repo copied onto another machine can't turn Cursor on there.
To turn Cursor off again, remove cursor from the line. The setting is checked again before every agent step.
Migration note
Existing factories need no change. They behave exactly as before and make no Cursor calls. pricing keeps meaning Claude Code.
Adding a provider
Use the checklist to judge a third agent CLI in about an hour. Fill in the template.