Claude Opus 5.5 shipped on September 22 at $4 / $20 per MTok. Opus 5 was $5 / $25. Anthropic's wording is "20% less than Opus 5" on the per-token rate, and separately that "at default settings it will cost 40% less than Opus 5 on typical workloads." The cache column moved further than that: reads are $0.20 per MTok, down from $0.50, a 0.05x multiplier where the rest of the Claude line charges 0.1x. The window is still 1M with 128K max output and a June 2026 cutoff. The default effort level is now medium, where Opus 5 shipped with high.
OpenAI shipped GPT-6 Sol and GPT-6 Luna the same day. gpt-6-sol is $2 / $10, where GPT-5.6 Sol was $4 / $20. gpt-6-luna is $0.10 / $0.50, down from $0.20 / $1.20. Both carry a second price above the long-context threshold: Sol at $4 / $15, Luna at $0.20 / $0.75, so input doubles and output rises by half. OpenAI gives a supply-side reason: "Improvements in caching and inference let us serve these models at lower cost, and we're passing those savings directly on to users and customers."
The two cuts land in different places. Anthropic took 60% off cached reads and 20% off the per-token rate. OpenAI halved its base rates and left caching at a tenth of input. An agent that re-reads a long cached prefix every turn will see those two discounts very differently, so it is worth pricing your own workload against both columns before switching anything.
Claude Opus 5.5 and GPT-6 Sol and Luna
- Opus 5.5 gains most on terminal and automation work. Against Opus 5: Terminal-Bench 4.0 66.4% against 52.3%, AutomationBench 40.0% against 26.9%, Terminal-Bench-Science 0.1 58.7% against 29.0%, CursorBench 4.0 57.8% against 46.6%, FrontierCode v1.1 54.4% against 48.0%, OSWorld 2.0 81.8% against 74.0%, Humanity's Last Exam with tools 67.7% against 63.6%. GDPval-AA v2.1 goes from 1708 to 1846 Elo. Anthropic puts output generation at "more than 30% faster than Opus 5." The API id is
claude-opus-5-5on the Claude API, Google Cloud, Microsoft Foundry and Claude Platform on AWS; Amazon Bedrock spells itanthropic.claude-opus-5-5. Retirement is no sooner than September 22, 2027 - Four API changes break code that runs today on Opus 5. Thinking cannot be switched off at any effort level:
thinking.type: disabledandenabledwithbudget_tokensboth return a 400. Forced tool use is gone, sotool_choiceofanyortoolreturns a 400. Thinking blocks are bound to the model that produced them and to an unedited conversation prefix, enforced by default for accounts created on or after August 31, 2026. On the Claude API and Google Cloud,computer_20251124is refused in favour ofcomputer_toolset_20260801, though Bedrock still takes the old one. A fifth change fails quietly instead of loudly: text between tool calls now arrives in thinking blocks that render empty at the default display setting, so a progress-update UI stops showing anything and throws no error - The effort default moved, so an old effort sweep does not carry over. A request that omits
effortgetsmediumon Opus 5.5 and gothighon Opus 5. At any given effort level Opus 5.5 thinks more per turn than Opus 5 did, most of all atxhighandmax. Fast mode is Claude API only and also moved, to $8 / $40 from $10 / $50 on Opus 5 and Opus 4.8. The minimum cacheable prompt is 512 tokens - Claude Code already defaults to it. v2.1.280, released the same day, makes
claude-opus-5-5the default Opus model. The same release fixes two auto-mode loops. One retried an action over and over when a safety check declined to review it; it is now denied once, with a note that retrying will not help. The other denied actions repeatedly without pausing. Writes through a symlinked path were also being judged by their in-tree spelling - Sol is the agentic tier and Luna is the volume tier. OpenAI describes Sol as built for "complex work that developers and knowledge workers perform repeatedly -- building features, reviewing code, debugging and analyzing data." Luna is "the high-volume option for more tightly defined jobs such as summarization, extraction and answering straightforward questions." Cached input is $0.20 on Sol and $0.01 on Luna. Batch halves everything again: Sol $1 / $5, Luna $0.05 / $0.25. Sol reaches Plus, Pro, Business and Enterprise through ChatGPT Work and Codex; Luna reaches Free and Go users in the desktop app
- OpenAI quotes cost alongside every benchmark score. Sol at max effort scores 68.8% on DeepSWE 1.1, which OpenAI puts at 80% below Fable 5's cost for a comparable result. Fable 5 at
xhighscores 69.9%. Sol atxhighscores 33.2% on AutomationBench 1.0.6 at $0.27 a task, 60.5% on OSWorld 2.0, and 56.4% on Agents' Last Exam at max. The AutomationBench and OSWorld comparisons run against Claude Opus 5, whose replacement shipped the same morning: Anthropic's figures for Opus 5.5 are 40.0% and 81.8% on those two. No head-to-head on the two new models has been published yet
Claude Code reads AGENTS.md
- AGENTS.md only loads when there is no CLAUDE.md. From v2.1.277 on September 18: "in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead." Claude looks for
CLAUDE.md,.claude/CLAUDE.mdandCLAUDE.local.mdin the working directory and every directory above it. If it finds any of them, it reads those and ignoresAGENTS.mdentirely. The two are never merged. ACLAUDE.mdthat already importsAGENTS.mdkeeps working, and the file is not read twice - The switch is "Project instructions" in
/config, and a repo cannot set it for you. It persists as the built-inagents-mdplugin's options underpluginConfigsand takes four values, defaulting to the fallback behaviour above. Claude Code ignores the key in project and local settings files on purpose. It has no name of its own in the settings reference, so searching for a top-level key will find nothing. It is not on Bedrock, Vertex or Foundry yet, and it does nothing in a session that cannot fetch feature flags, which includes sessions with telemetry disabled - The auto-mode safety classifier moved to the server. On the Claude API and Enterprise it runs server-side by default, so its tokens stop showing up on your bill.
CLAUDE_CODE_AUTO_MODE_SERVER=0opts out on Bedrock, Vertex, Foundry and gateways, and/statustells you which side is running it. The docs call the variable "a temporary setting and may be removed in a later release" - npm-sourced plugins no longer run install scripts. They come down through
npm pack --ignore-scriptsand are integrity-checked before extraction. The Bash permission checker also closed two holes where it could not see a command's real file targets: the file thatfmtandcolumnread after an unrecognised option, and the files a wildcard expands to when the wildcard sits inside a pattern or an option value, as ingrep -v dir/* - There is a send-now key.
ctrl+enter, orctrl+x ctrl+s, interrupts the current turn and sends everything you have queued at once. Sent and queued messages stay grey until the model receives them
Weekly limits moved on September 14
- The 25% and the 17% are both correct, counted from different points. A temporary 50% boost to Claude Code's weekly limits had run since May and expired on September 13. A permanent 25% increase over the pre-boost baseline took effect on September 14, across Pro, Max, Team and seat-based Enterprise. Measured against the old baseline it is a rise. Measured against the boosted level people had been working from all summer, it is a drop. Anthropic's own wording, quoted in BleepingComputer's report: "Compared to today, this works out to a 17% reduction in weekly limits on Claude Code." On a baseline of 100 units, 150 became 125
- Only the weekly meter changed. The doubled five-hour session limits from May stayed as they were. Claude Code now auto-continues a session once a usage limit resets, in the CLI and the desktop app both. Your weekly reset day and time are fixed to your account, and the full allowance arrives each cycle whatever you did the week before
- The Opus 5.5 announcement raises five-hour limits again on Pro, Max, Team and seat-based Enterprise, and gives subscription users a rate limit reset they can save and spend when they want. Anthropic attaches no percentage to it and says nothing about weekly limits, so the September 14 arithmetic still holds
Local LLMs
- A 27B model that fits in 5.9GB. Ternary Bonsai 2 27B stores weights as
{-1, 0, +1}with FP16 group-wise scaling, which works out to 1.76 effective bits per weight and a model nine times smaller than the full-precision original. It keeps 98.2% of Qwen3.8 27B's aggregate benchmark score, 83.9 overall. Coding is 81.58 against 82.17, agentic and tool calling 77.57 against 79.74, vision 78.59 against 81.64. Apache 2.0, 262K context, 143 tok/s on an RTX 5090 and 46.8 on an M5 Max, running under CUDA and on Apple silicon through MLX - ASUS put an 80-TOPS NPU in a 0.7-litre box. The Ascent QN10 went on sale in the US on September 17 with a Snapdragon X2 Elite: an 18-core third-generation Oryon CPU, Adreno X2-90 graphics, and a Hexagon NPU rated at up to 80 TOPS INT8. Two configurations, 16GB LPDDR5X-8533 with 512GB at $1,349 and 32GB LPDDR5X-9600 with 512GB at $1,699. It measures 130 x 130 x 40 mm and weighs 720 grams, with one PCIe Gen5 and one PCIe Gen4 M.2 slot, three 40Gbps USB4 Type-C ports, HDMI 2.1 and 2.5GbE. Memory tops out at 32GB, which bounds what you can load onto it
- On a Snapdragon X Elite, which engine runs fastest depends on how full the context is. Your laptop can run the model. Running the agent is a different question. runs a 4B model across the CPU, the Adreno GPU and the Hexagon NPU at increasing depth. The CPU starts at 22-30 tok/s and is down to 13.2 by depth 469. The Hexagon NPU holds 18.55 across the same range. The two trade places partway through a session, and the post carries the full per-engine curves along with the prefill and decode split
- typed's free tier runs on your own hardware, with no account and no key.
typed localprints one exactllama-servercommand for your machine against a single validated preset,unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q4_K_S. Only--ctx-size,--threadsand--threads-batchchange from machine to machine. The default window is 65,536 tokens and you can size it anywhere from 16,384 to 262,144. There is a hard 32 GB RAM floor, published in decimal GB and gated at 27.88 GiB, andtyped localprints the whole subtraction with your machine's own figure when it turns one away. Two flags in the printed command come from measurements:--no-repacktakes private memory from 21.06 GiB down to 2.19 GiB and load time from 436.5 s to 10.7 s, and--spec-type ngram-cachedrafts from n-grams already in the context, which takes agent-shaped output from 6.01 to 13.28 tok/s at 90% draft acceptance without changing the output. That second flag needs llama.cpp b10333 or newer; an olderllama-serverrejects the argument and will not start. On free-form prose the same flag gets 3-9% and nothing you would notice. typed v1.7.2
From us
- typed publishes three model ids now, and the default one is free.
typedruns against a model server on your own machine and never calls the service for those turns. There is no allowlist of models or engines behind it: any server that answersPOST /v1/messagesandGET /propswill do, whether that is allama-serveror a Genie Server running a model on the Snapdragon NPU through Qualcomm's runtime. Both are reached with the sameTYPED_LOCAL_ENDPOINT, with no shim, no OpenAI adapter and no flag.typed++is the hosted tier at roughly 950K, compacting near 560,000 history tokens, andtyped--is hosted at 262,144.typed++maxis retired: the API answers it with a 400 reading "RETIRED, not mistyped," and passing it to--modelorANTHROPIC_MODELstops the launch, so anything pinned to it needs changing. Both paid tiers take image input and prompt caching, and the local tier is text-only and names the tiers that accept images when it refuses one. Included token volume went up by half on every paid plan at unchanged prices: Starter $10/month, Pro $20, Max $100, Ultra $200, Team $25 a seat, Team Max $100, Team Ultra $200. typed.cloud - Adding an MCP server no longer means restarting your client. Yaw MCP re-reads
bundles.jsonwhile the session runs, so anadd, anenableor a credential fix takes hold on the nextmcp_connect_*call. It checks between meta-tool calls, never during one. The check itself is a stat on the paths the last load read, not a file watcher. A call already in flight keeps its connection and its old config until it finishes. Abundles.jsonthat will not parse, which is what a half-saved edit in an open editor looks like, leaves the running config alone and swaps in the new warnings instead of blanking the session.YAW_MCP_CONFIG_RELOAD=0puts the old restart-only behaviour back exactly. Profile config still needs a restart. Yaw MCP 1.0.11 - Remote MCP servers can carry credentials now. A remote HTTP or SSE entry takes a
headersobject, sent on the initial GET event stream, every POST and the DELETE. Values can hold${secret:NAME}refs that resolve through the same vaultenvuses. A locked vault, a missing name or a malformed ref refuses the connect before any transport is built, so the literal placeholder never travels as a credential. Two ceilings bound what reaches a model.YAW_MCP_MAX_RESULT_BYTES(default100000,0disables) caps one proxied tool result and marks the cut with the byte total and the two ways to fetch the rest.YAW_MCP_TOOL_TOKEN_CAPgates activation on the estimated token cost of the whole loaded tool surface. The vault passphrase is now typed into a masked field on a one-shot page the broker serves on127.0.0.1, behind a random port and a 256-bit token, instead of into a client dialog that shows it in cleartext - oam is our Node-compatible runtime, and this window made it honour the connection policy an application writes in JavaScript.
tls.checkServerIdentityruns Node's real name check instead of accepting every certificate. AsecureContextis used instead of being replaced by the default trust store. Alookuphook, anhttp.Agent's owncreateConnectionand an undici dispatcher'sconnectall get called before anything is dialled.http.requestreturns a 3xx as the response instead of following it, and it stops going through the environment proxy unlessNODE_USE_ENV_PROXY=1is set, which is what Node v22 does. Under--permission --allow-net, the grant is checked on every hop of a request, on the exact literal a bracketed IPv6 entry names, and on a UDP datagram's destination. Before this, a granted host answering302 Location:for a different host reached loopback or a metadata address with nothing checking it. oam v0.16.4 - oam's servers enforce what Node enforces.
httpandhttpsreport the client's realremoteAddress,remotePortand family, where every client used to read as127.0.0.1. That is the value per-IP allow lists and rate limits had been deciding on. Request heads Node refuses are refused:Content-LengthalongsideTransfer-Encoding, a repeatedContent-Length, bare LF line endings, malformed chunk extensions.maxHeaderSizeand Node's connection timeouts are enforced at Node's defaults, and the old 256-connection ceiling is gone.tls.createServer,https.createServerandhttp2.createSecureServerall honourrequestCert,rejectUnauthorizedandca, andhttp2.createSecureServeris a realHttp2SecureServeroffering h2 by ALPN, where it used to serve cleartext h2c. A server announces each connection through'connection'and'secureConnection'before it serves anything on it, so an allow list or a mutual-TLS check that destroys the socket stops that client being served, and a listener that throws no longer ends the accept loop. express request bodies parse on express 4 and express 5 - A macOS Keychain grant survives an update now. Yaw Terminal's macOS builds carry a stable pinned signing identity whose designated requirement is the same on every release, so paste history, licence and AI provider API keys stay authorised across an upgrade instead of prompting again. On the Linux deb and rpm packages, clicking the Yaw icon restores the previous session with its tabs, split panes and working directories, and
yaw://links reach the app whether or not it is already running. Update downloads resume after a CDN cutoff instead of failing, and an update that fails stays on screen with the reason and a Try Again button. The MCP panel reads server state in one side-effect-free status call, lists every configured server including ones that have never dispatched a call, shows when each was last used, and turns known problems into remediation cards. One hop on macOS has to come through Homebrew rather than the in-app button, because the fix ships in a helper inside the app and 2.1.5 and earlier carry the old one. A plainbrew upgradepicks it up. Yaw Terminal v2.1.6
From the Yaw blog
- Your context file drifts and nothing tells you. Lint your CLAUDE.md and AGENTS.md before your agent does argues that instruction files rot the way code comments rot, then builds
ctxlintto catch six kinds of it mechanically: paths that no longer exist, commands that are gone, files that contradict each other, secrets sitting in plain text, broken hooks, and token cost. One check reportssrc/auth/middleware.ts does not existand follows it withDid you mean src/middleware/auth.ts? (renamed 14 days ago) setRawModeis notcfmakeraw, and the difference staircases your output. Four raw-mode traps, checked against the libuv and kernel source Node actually runs. The first one:cfmakerawclearsOPOSTand Node'ssetRawModedoes not, so a TUI that only ever writes\n, because Node was quietly turning it into\r\n, draws every row one column further right on a runtime that follows the C library- A recursive delete cannot tell a junction from a directory. git worktree remove deleted our node_modules through a junction. Git for Windows 2.53.0 read a directory junction as an ordinary directory and recursed into it, deleting the contents of the link target. 2.54.0 fixes it. The Windows deletion tools disagree with each other on this, so a recursive delete aimed at a tree with a junction in it should be tested against a real fixture first
The broader last 2 weeks
- OpenAI put the Codex harness behind one API call. The Agents API entered public beta on September 10, behind an
OpenAI-Beta: agents=v1header onPOST /v1/agents/sessions. OpenAI runs the loop: sessions, orchestration, context compaction and recovery all happen server-side, so a turn continues without rebuilding the conversation. There are four primitives, Agent, Environment, Session, and events and items. It talks to MCP servers over HTTP transport, and you pick where the agent executes, from OpenAI-hosted sandboxes, your own infrastructure, or a partner: Blaxel, Cloudflare, Daytona, DigitalOcean, E2B, Modal, Oracle, Runloop or Vercel. There is no fee beyond tokens and tools. Check two limits before building on it: data residency is US-only, and there is no Zero Data Retention, which self-hosting the sandbox does not buy you either.max_concurrent_subagentsis 4 - Google shipped the layer underneath five days later, as open source. Agent Substrate on GKE is an agent execution runtime claiming 10x sandbox density over standard container runtimes and more than 1,000 dormant agents per host, with sub-500ms resume and 500-plus suspend/resume activations a second. Isolation is Cloud Hypervisor microVMs or gVisor, and an egress gateway injects credentials where the agent cannot reach them. It takes any harness and names Claude Code, Codex, OpenClaw, Hermes and Antigravity. Open source for non-production; production GA is allowlisted
- GitHub rewrote the Copilot agent runtime in Rust, using Copilot. 430,000 lines of TypeScript became more than 800,000 lines of production Rust over about 14.5 weeks, merged continuously across 128 pull requests instead of on one long-lived branch, for roughly $120,000 in tokens and around three weeks of a developer's time. A 10-client batch of agents went from 1,383 MB to 126 MB. GitHub also reports a few dozen regressions in the resulting code