Four Models, and a Version String
Foxl v0.7.25 adds Claude Opus 5.5, GPT-6 Sol, GPT-6 Luna and Kimi K3, and removes GPT-5.4 Mini from the ChatGPT sign-in because it answered HTTP 400 to every request it had ever been sent. Opus 5.5 takes the default at $4 and $20 per million tokens, below the Opus 5 it replaces, and reaching it on a Claude Pro subscription needed a nineteen-version jump in the client version Foxl reports - without it every request for that model failed while the picker looked fine. GPT-6 Sol and Luna arrive at half their GPT-5.6 counterparts' prices, with reasoning that can be switched off and file input that was confirmed by asking the model to quote a codeword out of the file. Every number here is a real signed request.

On this page
Foxl v0.7.25 adds four models and removes one. The four are Claude Opus 5.5, GPT-6 Sol, GPT-6 Luna and Kimi K3. The removal is GPT-5.4 Mini, from the ChatGPT sign-in only, and it gets the most space here because it had been offered for weeks and could not answer a single request.
What connects them is that none of it is decided by our code. Which models a connection will serve, at what price, with what controls and inside what context window are all facts about somebody else's service, so every number below is a real signed request rather than a doc page.
Opus 5.5 is the new default, and it costs less than the model it replaces
$4 and $20 per million tokens, against Opus 5's $5 and $25, with cache reads at $0.20. It is the first Claude model here to take the default while being cheaper than the row it replaced, so it took every place Opus 5 held: chat, the Foxl Code coding agent, and the desktop's expert routing tier. Opus 5 is still selectable, and Foxl Notes keeps Sonnet 5.
Its reasoning cannot be switched off, so the model picker shows its five effort levels with no on/off control beside them. A request asking for no thinking is refused outright, so the switch that used to sit there could only be wrong. A picker offering a control the model refuses either fails the turn or sends the lowest effort while still displaying the level you chose.
Its default effort is Medium rather than High, which is the vendor's own default for this model, and it thinks more per turn than Opus 5 does at the same level. So a setting carried across from Opus 5 is not the same amount of thinking.
The same model on a Claude Pro sign-in, and the version string that was refusing it
Opus 5.5 also runs on a Claude Pro or Max subscription, with the full 1M context, and the opus shorthand now selects it. Getting there needed one change that is worth writing down, because it is a failure mode with no symptom except a model that never works.
Foxl reaches that connection over HTTP, and it reports a Claude Code version while doing so. Anthropic gates new models on that version. Measured on a real Pro token, with nothing varied but the model:
claude-cli/2.1.261 | claude-opus-5 8/8 subscription <- the control
claude-cli/2.1.261 | claude-opus-5-5 8/8 HTTP 400
"Claude Code 2.1.261 does not support this model;
version 2.1.280 or newer is required."
claude-cli/2.1.280 | claude-opus-5-5 9/9 subscriptionThe control on the first line is what makes the refusal attributable to the model rather than to the account or the transport: Opus 5 passed all eight cells in the same run, on the same token, through the same code. Without it, an identical failure reads as a sign-in problem.
The jump is nineteen versions, and the number we report has to be a version Anthropic really published, since a string they have never shipped is one they are entitled to reject for every model rather than just the new one. 2.1.280 was the newest on npm the day this was measured, and neither Claude Code installed on the machine doing the measuring had reached it, so "the version of the CLI sitting next to the code" has stopped being a safe way to choose that string.
The 1M context is native here and measured rather than assumed: 319,480 input tokens were accepted with no long-context flag set. The window size matters because the context meter and the point at which Foxl compacts a conversation are both computed from it, so treating a 1M model as a 200K one starts summarising a conversation at 140,000 tokens instead of 700,000 - with nothing on screen saying why the history went away.
GPT-6 Sol and GPT-6 Luna, at half their predecessors' prices
Sol is $2 and $10 per million tokens; Luna is $0.10 and $0.50. Both are half of their GPT-5.6 counterparts, with cached input at a tenth of input. 1,050,000 tokens of context and 128K of output.
You can reach them three ways: with your own AWS account, with an OpenAI API key, or on a ChatGPT Plus/Pro sign-in. Both accept file input and prompt caching, and unlike GPT-6 Astra their reasoning can be turned off - which is a measurement, not an inference from the family name. Two cells each decided one field of the model's row: a request asking for no reasoning answered 200, so the picker keeps the on/off control; and a file attachment came back with the file's own codeword quoted, which is what distinguishes reading the document from accepting it and ignoring it. Those two look identical from the status code.
They are not on Foxl credits, and that is a measured refusal rather than a decision. The service that backs our own credit path answers that neither model exists, in both regions it is reachable in. That answer can change over time: GPT-6 Astra answered the same way for a few hours after it became generally available and then started working, so we will re-measure rather than treat this as final.
Kimi K3 arrives in the same release, on Amazon Bedrock with your own AWS account, including image and PDF input, prompt caching and reasoning controls. GLM 5 moves under older models in Settings; conversations and scheduled tasks already using it keep their saved selection.
GPT-5.4 Mini was in the picker and could not answer
Adding two models to the ChatGPT sign-in meant re-measuring every model already on that list, and one of them answered this to every request:
400 {"detail":"The 'gpt-5.4-mini' model is not supported
when using Codex with a ChatGPT account."}On the default request and on an explicit effort alike. This is the second time a model on that list has done exactly this - its sibling GPT-5.4 was removed for the identical refusal in v0.7.5 - and the shape of the failure is why it can sit there for so long. The picker looks correct, the row has a name and a price, the model is listed in our own catalog, and the only surface that disagrees is the one nobody reads until a person reports that one particular model never replies.
It remains available with your own AWS account or an OpenAI API key. What changed is that it is no longer offered on the one connection that refuses it.
The same sweep found why nobody had noticed. Model discovery on that connection is gated on the client version we report, exactly like Anthropic's gate above. Asking with the old pin returns seven models, with GPT-6 Astra the only GPT-6 among them. Asking with a newer one returns nine, and the two new models are in the difference. A stale pin there removes models from the list without any sign that they were ever available.
One more number from that transport, because it decides what the context meter says: every model on it reports a 272,000-token window, the two new ones included. The catalog figure for GPT-6 Sol is 1,050,000, so measuring against the catalog would have put the meter at 3.9 times the real window - a conversation reading 26% full when it is about to be refused.
What this release is really about
Three of the five items above are the same finding: a model was present in our code, correct in our types, priced in our catalog, and unreachable or mis-measured on the wire. A version string gated one, a transport refused another, and a third would have had its context measured against a window four times larger than the one it actually has.
None of that is visible from inside a repository, which is why every row in this post carries a real request behind it rather than a citation - and why the new models arrive with a couple of measurements printed beside them instead of a feature list. The per-release detail is at foxl.ai/changelog.
References and further reading
- Foxl changelogRelease
- Download FoxlReference
- Foxl CodeReference