Field notes from one 48-hour window

Open source AI projects released May 20-21, 2026: the weekend a Mac agent grew a third model backend

Every roundup for that weekend lists open-weight model checkpoints. Those are real and they matter, but a checkpoint is a file, not software that does anything on your machine. The most concrete dated open-source code that shipped to running Macs on May 20-21, 2026 was a client: fazm cut six tagged builds and, in the middle of them, grew a third model backend. Google Gemini joined Claude Code and Codex, all spoken to over one protocol, all behind the same control surface. This is a chronological account of what landed, the commits that prove it, and why a new backend beats another set of weights for anyone who wants the model to actually touch their Mac.

M
Matthew Diakonov
8 min read

Direct answer, verified 2026-05-29

The headline open-source AI story for May 20-21, 2026 is the open-weight model cycle. The single most concrete, dated open-source code release on exactly those days was fazm v2.9.30 through v2.9.34, which added Google Gemini (via @google/gemini-cli in ACP mode) as a third swappable backend next to Claude Code and Codex. A free Gemini fallback followed in v2.9.36. Verify it in the public repo: github.com/m13v/fazm.

The commit that did it

0
lines in gemini-provider.ts
0
ACP backends after the 21st
0
tagged builds, May 20-21

Commit e67b4160, dated 2026-05-21 17:22 PT, added acp-bridge/src/gemini-provider.ts: a GeminiProvider that runs @google/gemini-cli ^0.42.0 in ACP mode. That is the whole release in one file. Everything the app already did stayed identical; one more agent learned to answer on the other end of the socket.

Two different floors of the same building

When people search for what open-source AI released on a given weekend, they get the model floor: new checkpoints, new fine-tunes, new leaderboard rows. That floor is genuine and I am not waving it off. But there is a floor below it, where a model meets your actual machine, and almost nothing written about release weekends covers it. The fazm releases on May 20-21 live entirely on that lower floor. Here is the honest comparison, not to declare a winner but to show they answer different questions.

FeatureThe open-weight cyclefazm releases (May 20-21)
What actually releasedNew open-weight model checkpoints (files + benchmark tables)v2.9.30-2.9.34: a third model backend wired into a shipping Mac app
Where it runs that dayYour own GPU once you stand up serving and a clientOn a Mac, behind one accessibility-API control surface
Switching modelsSwap weights, restart the serving stackPick Gemini, Claude, or Codex per chat in the AI picker
Reach beyond the terminalModel only; the integration is your problemSame agent drives the browser and native Mac apps
Verifiable on those exact datesAnnouncement posts and leaderboardsDated commits in a public repo (e67b4160, 2026-05-21 17:22)

This is one open-source project on one weekend, not a census of everything that shipped. The point is the layer, not the leaderboard.

Tuesday, May 20

The day the plumbing got fixed

The 20th was not glamorous, and that is usually the tell that real work happened. v2.9.31 taught the account chooser to reuse an existing logged-in Claude or ChatGPT session instead of forcing a fresh login. v2.9.32 re-enabled the tool watchdog with per-tool ceilings (Task subagent 30 min, Bash 15 min, MCP 5 min) and fixed pop-out chat windows getting stuck on tool calls when another session was busy, by tracking tool activity per session rather than globally. The same batch shipped an opt-in Assrt QA-testing MCP under Settings, Browser Automation. None of this is a model. All of it is the kind of thing that decides whether the model you pick tomorrow does anything useful.

If you want one mental model for the 20th, it is this: the app spent the day making sure that when a third agent showed up, the sockets, sessions, and tool timeouts would not buckle under it.

Wednesday, May 21

Gemini arrives as a peer, not a special case

Starting around 17:00 PT on the 21st, the Gemini commits land in a tight cluster. First the dependency (@google/gemini-cli), then the provider wrapper, then auto-probing so the bridge can tell whether a Gemini backend is actually reachable before offering it, then the AI-picker entries for Gemini Flash (latest) and Gemini Pro (latest). The labels were even aligned to the existing tier-first naming convention so Gemini did not read as a bolted-on afterthought next to Claude and ChatGPT.

The reason this is more than a checkbox: every one of those models speaks ACP, the same protocol fazm already used for Claude Code and Codex. So Gemini did not get its own bespoke integration. It got the existing one. The MCP tool catalog, the accessibility-tree control surface that lets the agent click around your browser and native Mac apps, the persistent sessions, the voice input: all of it applied to Gemini the moment the provider could speak the protocol. The next day, v2.9.35 closed the last gap by fixing Gemini Flash and Pro being unable to call MCP tools like capture_screenshot and browser control, which is the line between Gemini talking and Gemini doing.

reproduce it yourself

Run that against a clone of github.com/m13v/fazm and the cluster is right there. No announcement thread required; the repo is the announcement.

Why a new backend beats another set of weights, for this use case

I am not arguing that a client release matters more than a frontier model in general. It plainly does not. But for the specific question a lot of people are actually asking, which is some version of can I use the new open AI thing on my Mac today, the client is the binding constraint, not the weights. The open-weight cycle gives you better answers. A client like fazm decides whether those answers can read your screen, drive your browser, edit a doc in a native app, or just sit in a text box.

That is also why the two floors are not in competition. fazm's Custom API Endpoint accepts any Anthropic-compatible base URL, so if you want to run one of the open-weight checkpoints behind a local serving layer, you point ANTHROPIC_BASE_URL at it and the same control surface rides along. The May 20-21 releases did not pick a model to win. They added one more way for the model you already trust to reach the rest of your machine, and they made it free to start.

The whole story is in the repo: github.com/m13v/fazm. The files that carry it are acp-bridge/src/gemini-provider.ts, acp-bridge/package.json, and the top of CHANGELOG.json.

Want to run Gemini, Claude, or Codex against your actual Mac?

If you want to see one agent loop drive the browser and native apps, swappable per chat, book 20 minutes and I will show you the end-to-end.

Frequently asked questions

What open source AI actually released on May 20-21, 2026?

The headline cycle for that window was open-weight model checkpoints (the coding-focused open models that landed across May 2026). Those are model weights, not running software. The most concrete dated open-source code release on exactly May 20-21, 2026 was fazm, the public macOS agent at github.com/m13v/fazm, shipping six tagged builds (v2.9.30 and v2.9.31 on the 20th, v2.9.32 through v2.9.34 on the 21st). The load-bearing change in that batch: Google Gemini was added as a third swappable model backend next to Claude Code and Codex, all spoken to over the Agent Client Protocol (ACP).

Which commit added Gemini, and how do I verify it?

Commit e67b4160, dated 2026-05-21 17:22 PT, added acp-bridge/src/gemini-provider.ts, a 404-line GeminiProvider wrapper that runs @google/gemini-cli in ACP mode. The dependency line @google/gemini-cli ^0.42.0 sits in acp-bridge/package.json. To verify: git clone https://github.com/m13v/fazm, then run git log --since=2026-05-20 --until=2026-05-22 --pretty=format:'%h %ad %s' --date=short. You will see the Gemini provider, probe, and AI-picker commits clustered on the 21st.

Why is adding a model backend a bigger deal than another open-weight release?

An open-weight checkpoint is a file. You still need serving infrastructure and a client before it does anything on your machine. fazm is the client. When Gemini became a backend, the entire control surface that already wrapped Claude Code and Codex (driving the browser and native Mac apps through accessibility APIs, voice input, persistent sessions) instantly applied to Gemini too. The model changed; the way it reaches into your Mac did not. That is the part no model release gives you.

Is Gemini in fazm free?

Yes, with a caveat. v2.9.36 (2026-05-22) added Google Gemini as a free option when your built-in AI credits run out, listed alongside Connect Claude and Connect ChatGPT in the account chooser. The selectable Gemini Flash (latest) and Gemini Pro (latest) entries landed in the AI picker on May 21 (commit 2a1533cd), and v2.9.35 fixed Gemini models being unable to call MCP tools like capture_screenshot, browser control, and WhatsApp. So the free path was wired across May 21-22, not in a single commit.

What else shipped in fazm on May 20-21 besides Gemini?

May 20 carried the Assrt QA-testing MCP (opt-in browser automation in Settings, v2.9.32), an account chooser that reuses an existing logged-in Claude or ChatGPT session instead of forcing a fresh login (v2.9.31), and a fix for pop-out chat windows getting stuck on tool calls when another session was busy (tool activity is now tracked per session). May 21 added the detached pop-out text and crash fixes (v2.9.33, v2.9.34) and the Gemini work. The cadence was roughly one tagged build every few hours.

What is ACP and why does fazm wrap three agents through it?

ACP is the Agent Client Protocol, the same interface fazm already used to talk to Claude Code (via the claude-agent-acp adapter) and Codex (codex-acp). Speaking one protocol to every backend is what makes a backend swappable per chat: the UI, the tool catalog, the accessibility-tree control surface, and the session storage all stay identical, and only the agent on the other end of the socket changes. Adding Gemini meant writing one more provider that speaks ACP (gemini-provider.ts), not rebuilding the app.

Does the Gemini backend get the same Mac-wide reach as Claude Code?

It gets the same tool surface, which is the point of routing everything through ACP. The same MCP tools (capture_screenshot, browser automation, WhatsApp, Google Workspace) that Claude Code and Codex call are exposed to Gemini. v2.9.35 specifically fixed Gemini Flash and Gemini Pro not being able to call those MCP tools, which is the difference between Gemini answering in text and Gemini actually clicking around your browser and native apps.

Where does this leave someone choosing between the open-weight models that released that month?

If you want to run one of those open-weight checkpoints locally, fazm's Custom API Endpoint accepts any Anthropic-compatible base URL: point ANTHROPIC_BASE_URL at a local serving layer and the same control surface rides along. So the May 20-21 fazm releases are not a competitor to the open-weight wave, they are the layer that lets it touch your Mac. Pick the model on capability and cost; pick the client on what it can reach once the model answers.

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.