CLAUDE LABJP
CORPS — Anthropic unveils Claude Corps (Jun 11), a $150M national fellowship placing 1,000 early-career workers inside US nonprofits; the first cohort starts in OctoberSUBAGENTS — Claude Code sub-agents can now spawn their own sub-agents, up to 5 levels deep — multi-stage delegation workflows out of the boxWORKFLOWS — Dynamic workflows arrive in research preview across CLI, Desktop, and VS Code for codebase-wide bug hunts and large migrations (Max/Team/Enterprise)BILLING — 2 days to the Jun 15 change: Agent SDK, headless runs, and GitHub Actions move to monthly credits ($20/$100/$200); Sonnet 4 and Opus 4 retire from the API the same dayFABLE5 — Fable 5 remains included free on Pro, Max, Team, and Enterprise through Jun 22CODE80 — IPO coverage reports Claude now writes over 80% of its own code, up from under 10% in February 2025CORPS — Anthropic unveils Claude Corps (Jun 11), a $150M national fellowship placing 1,000 early-career workers inside US nonprofits; the first cohort starts in OctoberSUBAGENTS — Claude Code sub-agents can now spawn their own sub-agents, up to 5 levels deep — multi-stage delegation workflows out of the boxWORKFLOWS — Dynamic workflows arrive in research preview across CLI, Desktop, and VS Code for codebase-wide bug hunts and large migrations (Max/Team/Enterprise)BILLING — 2 days to the Jun 15 change: Agent SDK, headless runs, and GitHub Actions move to monthly credits ($20/$100/$200); Sonnet 4 and Opus 4 retire from the API the same dayFABLE5 — Fable 5 remains included free on Pro, Max, Team, and Enterprise through Jun 22CODE80 — IPO coverage reports Claude now writes over 80% of its own code, up from under 10% in February 2025
Articles/Claude Code
Claude Code/2026-06-13Advanced

Pin Your Execution Model with enforceAvailableModels — Don't Let Auto-Upgrades Burn Through Your Credits

From June 15, monthly credits become non-rolling. This is a setup-layer approach to keep subagents and fallbacks from silently upgrading to pricier models, using enforceAvailableModels to pin the model set from the managed-settings layer, with a verification step you can run in CI.

Claude Code145Cost Optimization4SettingsAutomation22Model Selection2

Premium Article

From June 15, headless claude -p, the Agent SDK, GitHub Actions, and third-party agents move off subscription caps and onto API-rate monthly credits with no rollover. As an indie developer I run four technical blogs (Dolice Labs) through a nightly batch, and the first thing I worried about with this change wasn't quality dropping — it was credits running dry mid-month because of an unintended model upgrade.

The failure path is mundane. The parent agent is assigned Haiku, but a subagent definition still carries model: opus, or the fallbackModel for overload points at a heavier model, or — during a new model's launch window — I reach for "the smartest one" on a whim and leave it there. The per-run difference is small, but across a batch that runs every night, it adds up by the end of the month.

This article centers on a managed setting called enforceAvailableModels and a design that pins the very set of models a session can pick, keeping credit consumption inside a predictable range. It's not a prompt trick — it's a ceiling built at the settings layer.

Why pinning the model pays off after the billing change

In months with rollover, or back when we ran inside subscription caps, an accidental heavy run got absorbed the following month. With non-rolling monthly credits, that cushion is gone. Credits are a budget that simply stops when exhausted, which makes in-month allocation a real part of operations design.

This is where suppressing consumption at the entrance matters. Asking, in the prompt, to "please use a cheaper model" isn't reliably honored inside recursive subagents or automatic workflows. But if you narrow the set of selectable models in a managed setting, no path — wherever it originates — can launch a model outside that set. The whole point here is turning cost control from a request into a constraint.

One data point from my own pipeline: generating a single article (research + draft + JA/EN consistency check) on Haiku versus accidentally running the same steps on Opus turned the per-token price gap directly into a several-fold consumption gap. At a scale of six articles a night across four sites, a single night of that mistake pushes the daily budget up. That's exactly why I want a setting to stop it, not human vigilance.

Which layer enforceAvailableModels lives in

Claude Code resolves its final settings by stacking several layers. Roughly, from highest precedence down:

  1. Managed settings — placed by a device or org admin and not overridable by the user
  2. Project settings — the repo's .claude/settings.json
  3. User settings — ~/.claude/settings.json
  4. Runtime flags and in-session choices

If you want your cost ceiling to be a floor that can't be broken, put it in the non-overridable managed-settings layer. enforceAvailableModels declares, at this layer, "the set of models any session on this machine (or in this org) is allowed to use." Anything outside the set can't be selected — not by a runtime flag, not by a subagent definition.

Here's where the managed-settings file lives on macOS (on Linux it's /etc/claude-code/managed-settings.json).

# Managed settings on macOS (placed as root; not user-overridable)
/Library/Application Support/ClaudeCode/managed-settings.json

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A concrete managed-settings configuration that pins the model set a session may use, combining enforceAvailableModels with permissions.deny globs
A three-tier fallback that only ever steps down inside the allowed set, so an overloaded run never bounces up to a pricier model
A small inverted-assertion script to verify in CI that out-of-set models are actually rejected, plus how to roll the policy out across multiple repos
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-06-13
What the June 15 Claude Code Billing Change Means for Headless Runs
From June 15, 2026, the Agent SDK, headless claude -p, GitHub Actions, and third-party agents move to monthly credits. Here's how a solo developer running automation decided what to keep and what to cut.
Claude Code2026-05-23
Skill, Subagents, and Rules in Claude Code: A One-Hour Implementation Loop That Fits a Solo Operator
Misaki Ito at SonicGarden wrote about wiring Claude Code's Skill, Subagents, and Rules to close a week's worth of low-priority work in one meeting. Here is how I adapted that pattern as a solo developer running a 50M-download app business.
Claude Code2026-05-18
Why Your `cd` and `export` Vanish Between Claude Code Bash Calls
Claude Code's Bash tool runs each call in a fresh shell, so cd and export never persist. Here's the symptom, the cause, and five practical patterns I use across my Dolice Labs pipelines.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →