OpenAI release ledger, verified May 26, 2026

OpenAI's new model release in May 2026, and the 17-line filter that lets your agent pick it up

OpenAI shipped GPT-5.5 Instant on May 5 and a new family of realtime voice models in the API on May 7. Most roundups stop at the announcement. The honest next question for an agent user on a Mac is how the new model actually reaches the picker in the app you run all day. Here is the verified ledger plus the exact Swift function in Fazm that already accepts every plausible OpenAI release through 2026, no app update needed.

M
Matthew Diakonov
9 min read

Direct answer · verified May 26, 2026

OpenAI made two notable releases in May 2026. On May 5, GPT-5.5 Instant became the new default model for ChatGPT, with a claimed 52.5% reduction in hallucinated claims versus GPT-5.3 Instant on high-stakes prompts covering medicine, law, and finance. On May 7, OpenAI introduced a new family of realtime voice models in the API capable of reasoning, translating, and transcribing speech. The non-Instant tiers of GPT-5.5 (the ones consumed by developer tools and agent loops) shipped earlier, on April 23 to 24, 2026. GPT-5.6 has not officially shipped as of May 26, 2026; it has only surfaced in Codex internal log canary tags.

Primary sources: OpenAI: GPT-5.5 Instant, TechCrunch coverage (May 5, 2026), OpenAI model release notes.

The May 2026 ledger

Two announcements landed in May. The full GPT-5.5 family arrived a week earlier, in late April; it is included for completeness because it is what an agent loop actually consumes.

DateReleaseWhere it livesAgent reach
Apr 23 to 24GPT-5.5 (full family)ChatGPT Plus, Pro, Business, Enterprise; APICodex CLI surfaces gpt-5.5/low through gpt-5.5/xhigh
May 5GPT-5.5 InstantChatGPT default model, Plus and Pro first, then Free, Go, Business, EnterpriseChatGPT-tuned variant; not the model id codex-acp surfaces
May 7Realtime voice modelsOpenAI realtime APIDifferent surface from Codex CLI; not in the model picker
mid-MayGPT-5.6 (canary)Surfaced in Codex internal logs, no public releaseFilter already eligible; will appear the moment codex-acp exposes it

Ledger compiled from OpenAI model release notes and Fazm source on May 26, 2026.

What the headline numbers say

0%

fewer hallucinated claims, GPT-5.5 Instant vs GPT-5.3 Instant, high-stakes prompts (OpenAI internal eval)

0 / 7

May calendar days from GPT-5.5 Instant default to the realtime voice API

0

effort tiers Fazm exposes for GPT-5.5 today: low, medium, high, xhigh

The 52.5% number is an OpenAI-published internal evaluation against its own previous default. It is the claim, not an independent benchmark.

0

OpenAI ships a new model. Most apps that wrap it ship a new build. Fazm ships nothing, because the model string is filtered, not enumerated.

Fazm app updates required when OpenAI publishes a new GPT version that codex-acp surfaces.

Where the new model gets accepted: a 17-line Swift filter

Fazm wraps the Codex CLI through the Agent Client Protocol. When the ACP bridge probes the Codex adapter, it gets back a list of model ids that look like gpt-5.5/high, gpt-5.5/xhigh, gpt-5.4-mini/low, gpt-5.3-codex/high. That raw list is everything the upstream adapter knows about. Fazm does not hardcode a copy of it. The picker in the floating bar runs every id through a single static function that decides whether the model belongs to the current frontier generation.

Here is the function verbatim, copied from Desktop/Sources/CodexBackendManager.swift (lines 186 to 205 as of the May 26, 2026 build):

// Desktop/Sources/CodexBackendManager.swift
//
// Returns true when the modelId belongs to the current frontier
// generation the picker should expose (gpt-5.5 or newer).
// Inputs look like "gpt-5.5/high", "gpt-5.4-mini/low",
// "gpt-5.3-codex/high".
static func isPickerEligible(modelId: String) -> Bool {
    let family = modelId
        .split(separator: "/").first.map(String.init) ?? modelId
    // Strip variant suffixes ("-mini", "-codex") so we only
    // compare the base version.
    let base = family.split(separator: "-")
        .prefix(2).joined(separator: "-")
    guard base.hasPrefix("gpt-") else { return false }
    let version = String(base.dropFirst("gpt-".count))
    let parts = version.split(separator: ".")
    guard parts.count == 2,
          let major = Int(parts[0]),
          let minor = Int(parts[1]) else { return false }
    // Keep gpt-5.5 and newer (e.g. 5.5, 5.6, 6.0)
    if major > 5 { return true }
    if major == 5 && minor >= 5 { return true }
    return false
}

What the rule already accepts

  • gpt-5.5 (all effort tiers)
  • gpt-5.6 (canary, when surfaced)
  • gpt-5.7, gpt-5.8, etc.
  • gpt-6.0, gpt-6.1, gpt-7.0
  • variants like gpt-5.5-codex, gpt-5.6-mini

What the rule excludes (by default)

  • gpt-5.4 and earlier
  • gpt-5.3-codex (older Codex tier)
  • gpt-5.2, gpt-5.1, gpt-5.0
  • any non-gpt id (filtered upstream)
  • user can opt back in under Settings

Why a filter beats an allowlist when OpenAI ships weekly

The shape of the code matters more than the line count. Most desktop AI apps enumerate the models they support as an enum or a switch statement. That couples every release to an app version. Fazm inverts the relationship: the adapter is the source of truth for what exists, the app only judges whether a new id looks like it belongs to the frontier.

Two ways to handle a new GPT release

enum Model: String, CaseIterable {
    case gpt5_3_low      = "gpt-5.3/low"
    case gpt5_3_medium   = "gpt-5.3/medium"
    case gpt5_3_high     = "gpt-5.3/high"
    case gpt5_4_low      = "gpt-5.4/low"
    case gpt5_4_medium   = "gpt-5.4/medium"
    case gpt5_4_high     = "gpt-5.4/high"
    case gpt5_5_low      = "gpt-5.5/low"
    case gpt5_5_medium   = "gpt-5.5/medium"
    case gpt5_5_high     = "gpt-5.5/high"
    case gpt5_5_xhigh    = "gpt-5.5/xhigh"
}

// To support gpt-5.6: edit the file, add four cases, ship.
57% fewer lines, and unbounded over time

What happens the day codex-acp adds GPT-5.6

Four things, in order. None of them require a Fazm release.

  1. 1

    codex-acp surfaces the new id

    The adapter advertises the new model in its session response, e.g. gpt-5.6/high.

  2. 2

    ACP bridge forwards the probe

    The Node bridge passes the available-models array to Swift via the codex_probe_result message.

  3. 3

    CodexBackendManager ingests it

    consumeProbeResult parses each entry and applies isModelVisibleInPicker, which calls the filter.

  4. 4

    Floating-bar picker re-renders

    ShortcutSettings updates the published model list, the SwiftUI picker reacts, the new id appears.

About GPT-5.5 Instant specifically

GPT-5.5 Instant is the ChatGPT product default. It is tuned for the chat UI: smarter answers, more concise responses, personalization from past chats, files, and connected Gmail for Plus and Pro web users. It is not the same SKU as the developer-side gpt-5.5 tiers that an agent loop consumes through the Codex CLI.

Fazm reaches GPT-5.5 a different way. When you connect your ChatGPT subscription through the CodexAuthSheet in Settings, the bridge negotiates OAuth, writes the resulting credential to ~/.codex/auth.json, and the Codex adapter starts surfacing the reasoning-effort variants: gpt-5.5/low, gpt-5.5/medium, gpt-5.5/high, and gpt-5.5/xhigh. Those are the strings that flow through the filter and into the picker. The Instant variant lives inside the ChatGPT app where its product tuning makes sense; the effort tiers live inside the agent loop where reasoning depth and latency are parameters you actually want to control per turn.

About the May 7 realtime voice models

OpenAI's May 7 release was on a different surface: the realtime API, not the Codex CLI. The new voice models reason, translate, and transcribe in a streaming session aimed at building voice agents. That capability is real, but it is not what an agent loop on your Mac normally talks to. It would only land in Fazm if codex-acp added it to the model list, which it has not as of May 26, 2026.

The practical answer for a Fazm user who wants voice today: Fazm already has its own voice path. Hold the configured hotkey, talk, the audio is captured on-device and transcribed by WhisperKit before being handed to whichever agent backend the chat window is set to. The audio never leaves your machine until the transcribed prompt is sent. That works against any model in the picker, Claude or Codex, including GPT-5.5.

What this should change about how you read release notes

Release calendars do half the work. They tell you a new model exists. They do not tell you the path from the announcement to the tool you actually run. For a developer who lives inside an agent loop on a Mac, the second half is the one that matters. The whole point of a frontier-version filter (instead of a hand-maintained allowlist) is that the path from announcement to picker is zero steps on the app side.

When GPT-5.6 ships next, the Fazm binary you already have on disk will see it the next time codex-acp does. When GPT-6 ships later this year, the same is true. The model layer is where the velocity is; the harness layer (persistent sessions surviving a restart, one-click forking, no auto-compacting of context, real accessibility-API reach into your browser and Mac apps) is the part that should stay stable. That is the whole point of the split.

Want to run GPT-5.5 (or whatever ships next) as your daily agent?

Walk through how Fazm wires the Codex backend, how the floating-bar picker decides what to surface, and how to point a chat window at the newest tier the day it lands.

Frequently asked questions

What new model did OpenAI release in May 2026?

Two things shipped. On May 5, 2026, OpenAI made GPT-5.5 Instant the new default model for ChatGPT. The official post claims a 52.5% reduction in hallucinated claims versus GPT-5.3 Instant on high-stakes prompts covering medicine, law, and finance, plus enhanced personalization from past chats, files, and connected Gmail for Plus and Pro users on the web. On May 7, 2026, OpenAI introduced a new family of realtime voice models in the API capable of reasoning, translating, and transcribing speech for more natural voice agents. The full GPT-5.5 (the non-Instant tiers consumed by developers and agent loops) shipped earlier, on April 23 to 24, 2026.

Did GPT-5.6 or GPT-6 release in May 2026?

No. GPT-5.6 has appeared in internal Codex log canary tags in mid-May 2026, but OpenAI has not made an official announcement, no model card, no pricing sheet, no public availability. Community prediction markets sit on a base case of June 2026 for the GPT-5.6 release, with GPT-6 trading later in the year (Q3 to Q4 modal landing). Anything you read that says GPT-5.6 or GPT-6 shipped in May is wrong as of May 26, 2026.

Does GPT-5.5 Instant show up inside Fazm right now?

GPT-5.5 Instant is a ChatGPT product variant tuned for the chat UI on the Plus and Pro tiers. The Codex CLI surface, which is what Fazm wraps via codex-acp, exposes the reasoning-effort variants of GPT-5.5: gpt-5.5/low, gpt-5.5/medium, gpt-5.5/high, and gpt-5.5/xhigh. Those are the model strings that flow into Fazm's floating-bar picker when the Codex backend is enabled and authenticated. So Fazm already routes through GPT-5.5 the moment you sign in with your ChatGPT subscription; the specific Instant SKU stays inside the ChatGPT app where it is tuned to live.

What happens inside Fazm the day OpenAI ships GPT-5.6 or GPT-6?

Nothing in the Fazm binary changes. The version eligibility lives in a small Swift function called isPickerEligible(modelId:) inside Desktop/Sources/CodexBackendManager.swift. It parses model ids like gpt-5.5/high or gpt-5.4-mini/low and returns true whenever the major version exceeds 5 or the minor is at least 5. GPT-5.6, GPT-5.7, and GPT-6.0 are all already accepted. The moment codex-acp surfaces a new model string in its session response, Fazm's bridge forwards it to consumeProbeResult, the filter runs, and the new id shows up in the model picker on the next session. No App Store update, no rebuild, no waiting.

Where do I sign into my ChatGPT subscription inside Fazm?

Settings, then Advanced, then AI Chat. There is a Codex backend section with a Connect ChatGPT subscription button. It opens a small modal called CodexAuthSheet that surfaces the OAuth authorization URL, lets you copy it or open it in Chrome or your default browser, and reports back loginInProgress and loginError state while the bridge negotiates with ~/.codex/auth.json. The backend's auth mode (chatgpt, api_key, or none) is what Fazm reads to decide whether to populate the GPT picker or fall back to the stand-in list.

Will the May 7 OpenAI voice models work inside Fazm?

Fazm has its own voice path. Hold the configured hotkey, talk, the audio is captured on-device and transcribed by WhisperKit, and the resulting text is handed to whichever agent backend the chat window is set to (Claude or Codex). The May 7 OpenAI realtime voice API is a different surface from the Codex CLI that Fazm wraps; it would only land in Fazm if codex-acp added it to the model list, which it has not as of May 26, 2026. The practical answer: voice-to-text in Fazm already works on Mac, locally, regardless of the May 7 release.

Why does Fazm hide GPT-5.4 and older by default after GPT-5.5 ships?

The default rule keeps the picker focused on the current frontier. The in-app help text in Settings says it directly: Fazm shows GPT-5.5 by default, and you can opt back in to older generations (5.4, 5.3-codex) under Settings if you want to conserve your ChatGPT quota on routine tasks and only reach for the newest model when you need it. The override is stored under the codexUserVisibleModelIds key in UserDefaults, and any flip rebuilds the picker list immediately.

Does Fazm let me swap the model mid-conversation?

Yes. Every chat window has its own model setting, and you can change it between turns. Combined with one-click forking, the practical workflow looks like this: fork the conversation, point the fork at the newest model that just shipped, and run the same prompt on both windows side by side. You see both answers in real time, the original conversation is untouched, and persistent sessions mean both windows survive a Mac restart. That is how someone who actually uses an agent decides whether the new release earns its place in their daily loop.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.