Connect a model provider
Choose managed or personal models, connect an account safely, and recover a scheduled routine without changing its history.
Models are separate from Tools
Models generate a routine's response. Tools let that routine read or change another service. They are configured separately in the dashboard. A generic GitHub tool connection is not a GitHub Copilot model connection, and a Copilot connection does not give a routine GitHub tools.
Every saved model selection is the full tuple provider + nullable connection
ID + model ID. The connection ID is null only for LLMGateway. A vendor name
reported by a managed model is descriptive metadata; it does not turn that
model into a personal provider connection.
Choose how the model is provided
| Choice | How access works | Who bills or limits it |
|---|---|---|
| LLMGateway managed | No personal model connection. Select a model from the managed directory. | LLMGateway usage is billed to the Work on Repeat workspace. |
| ChatGPT via Codex | The connection owner completes the official ChatGPT device sign-in used by Codex. | The owner's ChatGPT subscription controls access; plan/workspace limits and model availability apply. This is subscription access, not OpenAI API-key billing. |
| GitHub Copilot | The owner authorizes the dedicated Copilot OAuth connection. It is separate from GitHub Tools OAuth. | Usage and limits remain under the owner's GitHub Copilot plan. |
| Anthropic API key | The owner submits an Anthropic Console API key to Work on Repeat. | Anthropic API usage is separately billed from Claude subscriptions and Work on Repeat. |
Work on Repeat is API-key-only for Anthropic today. Claude Free/Pro/Max subscription login is not supported here. That is this product's authentication boundary, not a universal statement about the Agent SDK. Anthropic's current Help Center says its planned June billing change is paused and third-party Agent SDK use can, for now, draw subscription limits; that does not authorize Work on Repeat to collect or store Claude subscription credentials.
Provider plans, account policy, catalogs, rates, quotas, and availability remain authoritative. Never assume connected usage is complimentary or unbounded, and there is no automatic fallback to LLMGateway, an API key, or another provider.
Connect and select
Open Dashboard → Connections → Models. The connect control is available only when an operator has enabled that provider for the current environment.
For ChatGPT via Codex, choose Connect, open the official verification page, enter the short-lived code, and finish with the account whose subscription you intend to use.
For GitHub Copilot, choose Connect and approve the dedicated Copilot OAuth application with an account that has Copilot access. Connecting a generic GitHub Tool does not satisfy this step.
For Anthropic API key, create a workspace-scoped key in Anthropic Console when possible, paste it into the request-body-only form, and save. The plaintext key is not returned after validation.
Wait for the connection to be ready, then choose an account-catalog model
in the routine editor. The option includes its safe account label and owner.
Run the routine manually and inspect its model and tool trace. A successful manual run remains separate from model eligibility: stale or unavailable models, unavailable tool policies, owner mismatch, disabled providers, and non-tool-capable models for a routine with enabled tools are blocked conservatively. Pause remains available.
Routine create and edit preserve the full model tuple and other editor drafts. Choose a fresh catalog option if the saved connection or model is no longer available; Work on Repeat does not silently switch provider, account, or model.
Ownership and connection status
Personal model connections have one owner even when other project members can see the safe account label and status. Only the owner can use, reauthorize, or revoke that personal connection. A member follows the named owner guidance; when current owner data is unavailable, a workspace administrator must review Models. API keys cannot impersonate a personal owner for connection actions.
| Status | Meaning and action |
|---|---|
pending | Authentication has started but has not produced usable encrypted credentials. Finish or restart it as the owner. |
ready | The owner and provider are enabled and the connection can supply its current account catalog. |
needs_reauth | The credential was rejected or expired. Active dependent routines are paused; the same owner reauthorizes in Models. |
revoked | The encrypted credential is gone and the connection cannot run. Create a new connection and explicitly edit the routine; no history is erased or rerouted. |
Reauthorization replaces credentials only after the new credential validates. Revocation is owner-only and irreversible for that connection record. Also revoke a compromised credential at its provider.
Scheduled runs and preserved history
Activated schedules execute on the server; the user's browser does not need to remain open. That product behavior still depends on an operator maintaining the private runtime and scheduler described in Deployment. If a provider credential becomes unusable, affected schedules pause with recovery guidance instead of moving to a managed model.
Each run keeps its original provider, connection identity, safe account label, model, usage, error category, and trace snapshot after a connection is renamed, revoked, or disabled. Current connection owner and status are consulted only to choose safe recovery guidance; they do not rewrite history.
Known validated cost is preserved exactly for display, including a true zero
and tiny decimal values. A connected-provider run with no known cost says
Billed/limited by provider, never $0. Missing or invalid cost from an
unknown provider is unavailable, although a valid historical cost can still be
shown. The stored field is text and older producers used String(number), so
the UI validates conservatively and never recomputes billing.
Ordinary model and tool content remains in the trace, while a failed step keeps only fixed failure detail. A missing or ambiguous tool result is not invented.
Fixed recovery guidance
Connected-provider failures use exactly these eight public categories and fixed recovery guidance. A raw provider error is never shown or copied into this guidance.
| Category | What to do |
|---|---|
model_auth_required | The owner reauthorizes in Models; a member asks that owner, and missing owner metadata goes to an administrator. |
model_access_denied | Check the provider plan and account access. |
model_unavailable | Edit the routine and select an available model from the intended connection. |
model_rate_limited | Retry after the provider window. |
model_runtime_unavailable | Retry later or ask an operator to check provider runtime status. |
model_timeout | Review the trace and edit the bounded routine timeout if appropriate. |
tool_error | Inspect the named tool call and result in the trace. |
model_provider_error | Retry safely or contact provider support without pasting credentials or raw provider payloads. |
See the Security model for credential, sandbox, and logging boundaries.
Official provider policy
- OpenAI: Codex authentication distinguishes ChatGPT subscription sign-in from usage-billed API-key sign-in.
- GitHub: Authenticate with the Copilot SDK describes OAuth on behalf of a user whose Copilot access remains required.
- Anthropic: Legal and compliance explains the boundary for third-party products, and the current Agent SDK subscription update records that the announced change remains paused.