Skip to main content

Model control

Model control lets admins curate the model catalog — which providers and models your members can use — and set defaults per surface (desktop, CLI, cloud, mobile). Policy resolves through organization → team → project → member layers; explicit denies and contract ceilings always win.

What you control

LayerControls
ProvidersWhich model providers are enabled for the org (within contract entitlements)
ModelsExplicit allow list or model groups (e.g. "standard", "reasoning", "fast")
Per-surface defaultsDefault model when a member does not pick one on desktop, CLI, cloud, or mobile
OverridesTeam-, project-, or member-level narrowing or targeted exceptions
Risk capsMax context, reasoning effort, and gates for high-risk model classes

Members never see models your catalog disables, even if they type a model id manually in the CLI — the runtime returns a policy denial recorded on the Usage page.

Policy resolution order

Effective policy is computed server-side on every run:

contract entitlements (Console)
  → organization catalog (allows / denies / groups)
    → team override (optional)
      → project override (optional)
        → member exception (optional)

Hard contract ceilings and explicit denies win unless a platform operator applies an audited override in the Console.

Setting org-wide policy

  1. Review contract entitlements

    Open Organization or model control's entitlement panel. You can only enable providers and model groups your contract includes — unavailable entries appear disabled with an explanation.

  2. Enable providers and models

    Turn on the providers you use in production. Prefer model groups over long explicit lists so new models in a group roll out without weekly admin toil.

    StrategyGood for
    Single "standard" groupPredictable cost, most engineering teams
    Split "fast" / "reasoning"Teams that want cheap triage + deep design reviews
    Explicit deny listBlocking one high-cost model while keeping a group enabled
  3. Set defaults per surface

    Choose a sensible default for each surface:

    SurfaceTypical default
    DesktopBalanced coding model your developers prefer
    CLISame as desktop or a slightly faster model for CI
    CloudModel suited to long autonomous runs
    MobileSmaller/faster model for quick questions

    Defaults improve onboarding — members get a good experience without configuring anything.

  4. Preview effective policy

    Use Policy preview (when available) to simulate effective models for a sample member, team, and project before publishing. Preview matches what 4rged policy models returns locally.

  5. Publish and audit

    Save changes. Model policy versions appear in the audit log with actor, diff summary, and timestamp.

Team and project overrides

Delegated managers with team.policy.manage or project agent manage capability can narrow org policy — never widen beyond contract:

ScopeExample override
TeamPlatform team allows "reasoning" group; product team standard only
ProjectProduction project denies experimental models; sandbox project allows them
MemberTemporary exception for a migration lead — time-bounded where supported
Note

Restricting the catalog is a cost lever — fewer, well-chosen models keep spend predictable. Pair model control with budget policies and review policy denials weekly.

Admin procedure: respond to a policy denial

When a developer reports "model not allowed" in CLI or desktop:

  1. Find the denial event

    Open Usage → Denials (or Analytics → Policy denials). Note model id, surface, project, and member.

  2. Trace effective policy

    In model control preview, select the same member/team/project. Identify whether deny is org, team, or project scoped.

  3. Fix intentionally

    Either add the model (or group) to the catalog, add a scoped exception, or tell the developer to use an allowed default — avoid one-off member exceptions when a group change is cleaner.

  4. Verify

    Ask them to rerun 4rged policy models --surface cli or start a short dry-run agent task.

Server-side resolution

Effective catalogs are computed in Postgres via get_effective_model_catalog_bundle, merging policy rules in scope order: organization (1), team (2), project (3), then member (4). Each layer merges into the previous snapshot; explicit denies and contract ceilings from the Console win over org allows. Providers are filtered by surface — a model enabled for desktop but not CLI will not appear in 4rged policy models --surface cli even if the member can see it in the IDE picker.

Example: CLI check after policy change

4rged policy models --surface cli --output json
# allowed: ["claude-sonnet", "gpt-4o-mini"]
# default: "claude-sonnet"
# denied_reason: null

Surfaces and enforcement

SurfaceWhere policy applies
Desktop appDefault model picker + runtime enforcement
CLI--model flag validated against catalog; default from CLI surface
Cloud agentsLong-run default; may differ for cost control
MobileLightweight default; often stricter caps
Change history

Before rollback, open model control Change history to restore a prior policy version instead of manually re-clicking dozens of models — faster and audited as a single revert action.