How to use Google Gemini in #xcode26 beta – the key is URL rewriting, but it's super-simple to do using @proxyman. I'll show you how:
https://zottmann.org/2025/06/13/how-to-use-google-gemini.html
#macos26 #google #gemini #ai #llm
https://zottmann.org/2025/06/13/how-to-use-google-gemini.html
#macos26 #google #gemini #ai #llm
How to use Google Gemini in Xcode 26 beta
Someone asked on Mastodon1 whether it’s possible to use Google’s Gemini in the new Xcode 26β on macOS 26 beta. It is!
Well, with some creative proxy scripting, that is.
Google offers an OpenAI-compatible API for Gemini, and while working, it is not what Xcode expects in terms of URL layout. In Xcode’s LLM provider config, the custom “URL” parameter is the API’s base URL up to **but not including** the `v1/` path segment, e.g. `https://api.openai.com/` instead of the full `https://api.openai.com/v1/`. Xcode will suffix that URL internally with the endpoint paths, e.g. `v1/models` etc.
Now, the Gemini URL structure breaks with the `v1/` convention: its URL is `https://generativelanguage.googleapis.com/v1beta/openai/` instead of `https://generativelanguage.googleapis.com/v1/`. You can see why this might be a problem.
### Rewriting the requests using Proxyman
It’s possible to transform the requests into the right shape using a local rewriting proxy. Here, I’m using the excellent Proxyman.2 I won’t go into the details of the setup, as it’s both straightforward and well-enough documented on their website.
Once I set it up, I made it proxy all app-level Xcode requests, then configured Proxyman’s scripting capabilities to rewrite the requests on the fly.
### The Proxyman script config
URL: `https://generativelanguage.googleapis.com/v1/`. Process all HTTP methods, and include all subpaths of this URL. Script:
function onRequest(context, url, request) {
request.path = request.path.replace("/v1/", "/v1beta/openai/");
request.color = 'yellow';
return request;
}
This will rewrite any Gemini calls to `/v1/…` to the correct Google API path.
### Working with Gemini
I created a new Swift app, went into the `ContentView.swift`, and told Gemini 2.5 Flash to _“Make it German, add two buttons (“Much AI”, “So Gemini”)"_. And it did!
* * *
Oh hello! Did you know I make pretty useful Shortcuts-related macOS & iOS apps, like …
* a contextual Shortcuts launcher w/ Raycast and Alfred support
* one that brings Shortcuts support to Obsidian
* one that adds Shortcuts support to Chrome, Chromium etc.?
* * *
1. https://iosdev.space/@austinbond/114672153450134516 ↩︎
2. Proxyman is free for what we’re doing right here! But it’s a good app well worth the money. It’s also part of a Setapp subscription. ↩︎
zottmann.org
June 13, 2025 at 9:42 AM
This bug doesn't affect Swift files, unfortunately otherwise I doubt it would have gotten through to release build status. It would be surprising to me that a "flipped bit" is causing this issue.
This bug also impacts Xcode 26.0 Beta.
FB17615201
#xcode16 #objective-c #objc #xcode26
This bug also impacts Xcode 26.0 Beta.
FB17615201
#xcode16 #objective-c #objc #xcode26
June 10, 2025 at 3:36 AM
This bug doesn't affect Swift files, unfortunately otherwise I doubt it would have gotten through to release build status. It would be surprising to me that a "flipped bit" is causing this issue.
This bug also impacts Xcode 26.0 Beta.
FB17615201
#xcode16 #objective-c #objc #xcode26
This bug also impacts Xcode 26.0 Beta.
FB17615201
#xcode16 #objective-c #objc #xcode26
Xcode 26 beta 7 begins to incorporate GPT-5, Claude API tools for developers
www.powerpage.org/xcode-26-bet...
#Apple #Xcode #developer #Xcode26 #beta #beta7 #AI #GPT5 #Claude #API #tools #programming #Reasoning #AppleSilicon #Mac #Macs #M2 #M2 #M3 #M4
www.powerpage.org/xcode-26-bet...
#Apple #Xcode #developer #Xcode26 #beta #beta7 #AI #GPT5 #Claude #API #tools #programming #Reasoning #AppleSilicon #Mac #Macs #M2 #M2 #M3 #M4
Xcode 26 beta 7 begins to incorporate GPT-5, Claude API tools for developers
There shall be nifty GPT-5 and Claude tools in the next version of Apple’s Xcode developer tools. Apple on Thursday released beta 7 of its Xcode 26 developer kit, which now includes support for GPT-5…
www.powerpage.org
August 29, 2025 at 11:05 AM
Xcode 26 beta 7 begins to incorporate GPT-5, Claude API tools for developers
www.powerpage.org/xcode-26-bet...
#Apple #Xcode #developer #Xcode26 #beta #beta7 #AI #GPT5 #Claude #API #tools #programming #Reasoning #AppleSilicon #Mac #Macs #M2 #M2 #M3 #M4
www.powerpage.org/xcode-26-bet...
#Apple #Xcode #developer #Xcode26 #beta #beta7 #AI #GPT5 #Claude #API #tools #programming #Reasoning #AppleSilicon #Mac #Macs #M2 #M2 #M3 #M4
So I finally spent some time working w/ Icon Composer: it's great. What's even better is the seamless integration with Xcode as a drop-in file, eliminating the need for any unnecessary hassle with Assets etc. This is incredibly clean & well-executed Apple .
#WWDC25 #Xcode26 #iOS26 #iOSDev #MIRAapp
#WWDC25 #Xcode26 #iOS26 #iOSDev #MIRAapp
August 10, 2025 at 7:42 AM
September 19, 2025 at 4:42 AM
Use any OpenAI-compatible LLM provider in Xcode 26, even without Apple Intelligence: In which build upon @simonbs's work and look into adding #openai and #openrouter to #xcode26.
https://zottmann.org/2025/06/11/use-any-openaicompatible-llm-provider.html
https://zottmann.org/2025/06/11/use-any-openaicompatible-llm-provider.html
Use any OpenAI-compatible LLM provider in Xcode 26, even without Apple Intelligence
macOS 26β is out, and so is Xcode 26β with LLM support. Unfortunately, I couldn’t get any of it to run as the beta refuses to allow me to use Apple Intelligence – I’m in the EU, maybe that’s the problem? But not being able to set up Apple Intelligence also meant not being able to use the ChatGPT models in Xcode 26β.
Well, along comes Simon Støvring with a helpful blog post, showing that you can make the app use your Anthropic models! Thanks, mate 🤙🏼
Naturally, I tried to get both OpenAI and OpenRouter working with my own keys, and after inspecting the network traffic and fiddling with the parameters I managed to get it partially working.
### My findings, lest I forget
The “URL” parameter is the API’s base URL (must be OpenAI-compatible) up to (but not including) the `/v1`, e.g. `https://api.openai.com/` instead of `https://api.openai.com/v1`.
The “API Key” parameter is the API key your provider gave you, e.g. `sk-whatever`; the “API Key Header” parameter is `x-api-key`. But:
The “API Key Header” can be set to `Authorization` – in that case, Xcode will **automatically** prefix the API key with the string “Bearer”, e.g. `Bearer sk-whatever`.
So I got OpenAI support working even without Apple Intelligence configured. OpenRouter, not so much: my guess is that OpenRouter’s list of available models is just too damn big for Xcode at this point. TBF, it’s a humongous list.
Thanks again to Simon for the pointer!
* * *
Oh, you’re still here. Hmm. Did you know I make pretty good Shortcuts-related macOS & iOS apps?
zottmann.org
June 11, 2025 at 10:24 AM
Use any OpenAI-compatible LLM provider in Xcode 26, even without Apple Intelligence: In which build upon @simonbs's work and look into adding #openai and #openrouter to #xcode26.
https://zottmann.org/2025/06/11/use-any-openaicompatible-llm-provider.html
https://zottmann.org/2025/06/11/use-any-openaicompatible-llm-provider.html
Since everyone now has access to Xcode 26, a reminder that with the Assistant, you can use ANY model you desire via OpenRouter.
👉 Check this out: openrouter.ai/docs/community/...
#AI #xcode#AI##xcode26s#codeassistant
👉 Check this out: openrouter.ai/docs/community/...
#AI #xcode#AI##xcode26s#codeassistant
Xcode Integration - OpenRouter Apple Intelligence Support
Integrate OpenRouter with Apple Intelligence in Xcode 26. Complete setup guide for accessing hundreds of AI models directly in your Xcode development environment.
openrouter.ai
September 19, 2025 at 11:12 PM
Since everyone now has access to Xcode 26, a reminder that with the Assistant, you can use ANY model you desire via OpenRouter.
👉 Check this out: openrouter.ai/docs/community/...
#AI #xcode#AI##xcode26s#codeassistant
👉 Check this out: openrouter.ai/docs/community/...
#AI #xcode#AI##xcode26s#codeassistant
¡Apple se alía con Claude! 🤖 La beta de #Xcode26 revela una integración nativa de #ClaudeAI en Swift Assist. Parece que la compañía está apostando por socios externos para potenciar su IA y ayudar a los desarrolladores. ¡Se acabó el ir por libre! 🚀 #Apple #SwiftAssist #IA #Desarrollo
August 20, 2025 at 5:28 PM
¡Apple se alía con Claude! 🤖 La beta de #Xcode26 revela una integración nativa de #ClaudeAI en Swift Assist. Parece que la compañía está apostando por socios externos para potenciar su IA y ayudar a los desarrolladores. ¡Se acabó el ir por libre! 🚀 #Apple #SwiftAssist #IA #Desarrollo
June 10, 2025 at 6:34 AM
I love that Xcode26 can now generate symbols for manually added strings.
I tried for the first time creating a function that returns one of them and got confused why it wasn't compiling.
I didn't notice that it generates a LocalizedStringResource and I was trying to return a String.
I tried for the first time creating a function that returns one of them and got confused why it wasn't compiling.
I didn't notice that it generates a LocalizedStringResource and I was trying to return a String.
July 15, 2025 at 2:26 PM
I love that Xcode26 can now generate symbols for manually added strings.
I tried for the first time creating a function that returns one of them and got confused why it wasn't compiling.
I didn't notice that it generates a LocalizedStringResource and I was trying to return a String.
I tried for the first time creating a function that returns one of them and got confused why it wasn't compiling.
I didn't notice that it generates a LocalizedStringResource and I was trying to return a String.
日常ではGrok使うようにしてる。マジでいい。
Xcode26でリコンパイルしてるからLiquid Glass UIにも対応してる
Xcode26でリコンパイルしてるからLiquid Glass UIにも対応してる
July 13, 2025 at 7:35 AM
日常ではGrok使うようにしてる。マジでいい。
Xcode26でリコンパイルしてるからLiquid Glass UIにも対応してる
Xcode26でリコンパイルしてるからLiquid Glass UIにも対応してる
Writing code with intelligence in #Xcode | Apple Developer
#WWDC25 #Xcode26
developer.apple.com/documentatio...
#WWDC25 #Xcode26
developer.apple.com/documentatio...
Writing code with intelligence in Xcode | Apple Developer Documentation
Generate code, fix bugs fast, and learn as you go with intelligence built directly into Xcode.
developer.apple.com
June 17, 2025 at 7:43 PM
Writing code with intelligence in #Xcode | Apple Developer
#WWDC25 #Xcode26
developer.apple.com/documentatio...
#WWDC25 #Xcode26
developer.apple.com/documentatio...
Wer #apps für #Apple-Geräte entwickelt, setzt für gewöhnlich auf Apples eigenes #Entwickler-Tool #xcode. Nun hat man die mittlerweile siebte #betaversion für #xcode26 veröffentlicht, die allen Entwicklerteams ab sofort zum #download bereit steht. Apple […]
[Original post on techhub.social]
[Original post on techhub.social]
August 30, 2025 at 8:32 PM
Wer #apps für #Apple-Geräte entwickelt, setzt für gewöhnlich auf Apples eigenes #Entwickler-Tool #xcode. Nun hat man die mittlerweile siebte #betaversion für #xcode26 veröffentlicht, die allen Entwicklerteams ab sofort zum #download bereit steht. Apple […]
[Original post on techhub.social]
[Original post on techhub.social]
How to use Google Gemini in # Xcode26 beta – the key is URL rewriting, but it's super-simple to do using @ proxyman . I'll show you how: https:// zottmann.org/2025/06/13/how-to -use-google-gemini.html # macOS26 # Google # Gemini # AI # LLM
Interest | Match | Feed
Interest | Match | Feed
Origin
norden.social
June 13, 2025 at 9:39 AM
It's taking longer than I thought, but I want to implement strict concurrency responsibly. 🕒🧐
At some points, it works with a project that has default isolation set on #MainActor. This is a default setting for #Xcode26, so I have to follow this rule. 🚀
#BuildInPublic #Swift
At some points, it works with a project that has default isolation set on #MainActor. This is a default setting for #Xcode26, so I have to follow this rule. 🚀
#BuildInPublic #Swift
October 8, 2025 at 8:02 AM
It's taking longer than I thought, but I want to implement strict concurrency responsibly. 🕒🧐
At some points, it works with a project that has default isolation set on #MainActor. This is a default setting for #Xcode26, so I have to follow this rule. 🚀
#BuildInPublic #Swift
At some points, it works with a project that has default isolation set on #MainActor. This is a default setting for #Xcode26, so I have to follow this rule. 🚀
#BuildInPublic #Swift
Update to my recent blog post about using #gemini in #xcode26:
Apparently, #google changed something, and #apple changed something, and now you no longer need to use a proxy anymore to make Gemini work.
https://zottmann.org/2025/06/13/how-to-use-google-gemini.html
Apparently, #google changed something, and #apple changed something, and now you no longer need to use a proxy anymore to make Gemini work.
https://zottmann.org/2025/06/13/how-to-use-google-gemini.html
How to use Google Gemini in Xcode 26 beta
**Update 2025-09-16:** This morning, I received an email from Dave M. @ Google:
> […] you _should_ be able to get to our models without Proxyman now.
>
> Use `https://generativelanguage.googleapis.com/v1beta/openai` as the URL, and we should now handle the rest.
I gave it a spin, and yes – Proxyman’s no longer needed. So in Xcode 26, this is the form input now:
* **Type:** Internet Hosted
* **URL:** `https://generativelanguage.googleapis.com/v1beta/openai`
* **API Key:** `Bearer $apiKey` (the latter being the actual API key)
* **API Key Header:** `Authorization`
* **Description:** Whatever, I set it to “Gemini”
Good to know, thank you, Dave!
* * *
Over on Mastodon, someone1 asked whether it’s possible to use Google’s Gemini in the new Xcode 26β on macOS 26 beta. It is!
Well, with some creative proxy scripting, that is.
Google offers an OpenAI-compatible API for Gemini, and while working, it is not what Xcode expects in terms of URL layout. In Xcode’s LLM provider config, the custom “URL” parameter is the API’s base URL up to **but not including** the `v1/` path segment, e.g. `https://api.openai.com/` instead of the full `https://api.openai.com/v1/`. When making calls to the provider later on, Xcode will automatically append the endpoint path (e.g. `v1/models` etc.) to that URL.
Now, the Gemini URL structure breaks with the `v1/` convention: its URL is `https://generativelanguage.googleapis.com/v1beta/openai/` instead of `https://generativelanguage.googleapis.com/v1/`. You can see why this might be a problem.
So here’s how to set up both Xcode and a proxy app to use Google’s offerings.
## Step 1: Setting up Gemini in Xcode
Go to Settings → Intelligence → Add a Model Provider, then fill out the form as follows:
* **Type:** Internet Hosted
* **URL:** `https://generativelanguage.googleapis.com/`
* **API Key:** `Bearer $apiKey` (the latter being the actual API key)
* **API Key Header:** `Authorization`
* **Description:** Whatever, I set it to “Gemini”
Click “Save”, quit Xcode.
## Step 2: Setting up request rewriting using Proxyman
It’s possible to transform the requests into the right shape using a local rewriting proxy. Here, I’m using the excellent Proxyman.2 Download and install it. (I won’t go into the details of the setup, as it’s both straightforward and well-enough documented on their website.)
(You could also use Proxygen for that; I just picked Proxyman because I’m familiar with it.)
Once it’s running, I made it proxy all app-level Xcode requests, then enabled and configured Proxyman’s scripting capabilities to rewrite the requests on the fly.
### The Proxyman script config
URL: `https://generativelanguage.googleapis.com/v1/`. Process all HTTP methods, and include all subpaths of this URL. Script:
function onRequest(context, url, request) {
request.path = request.path.replace("/v1/", "/v1beta/openai/");
request.color = 'yellow';
return request;
}
This will rewrite any Gemini calls to `/v1/…` to the correct Google API path.
## Step 3: Checking the list of Gemini models
Open Xcode again, go into Settings → Intelligence → Gemini. It should now display the list of available models:
## Step 4: Using Gemini in Xcode
For this, I created a new Swift app, went into the `ContentView.swift`, and told Gemini 2.5 Flash to _“Make it German, add two buttons (“Much AI”, “So Gemini”)"_. And it did!
## Caveats
* Proxyman has to be active alongside Xcode for this procedure to work. This may or may not be desirable, depending on your machine and overall setup.
* It’s possible that in future Xcode betas, Apple will allow more customization when it comes to LLM providers. Fingers crossed!
* * *
1. https://iosdev.space/@austinbond/114672153450134516 ↩︎
2. Proxyman is free for what we’re doing right here! But it’s a good app well worth the money. It’s also part of a Setapp subscription. ↩︎
zottmann.org
September 16, 2025 at 9:33 AM
Update to my recent blog post about using #gemini in #xcode26:
Apparently, #google changed something, and #apple changed something, and now you no longer need to use a proxy anymore to make Gemini work.
https://zottmann.org/2025/06/13/how-to-use-google-gemini.html
Apparently, #google changed something, and #apple changed something, and now you no longer need to use a proxy anymore to make Gemini work.
https://zottmann.org/2025/06/13/how-to-use-google-gemini.html