How to use the AI model built into macOS with fm serve and connect it to Open WebUI

A step-by-step guide to turn on the Apple Intelligence language model included in macOS 27, serve it with the fm serve command and use it from Open WebUI, without downloading models or paying anything.

PublishedSeptember 24, 2026
FreeDownload as PDF

Free resources

Create a free account to download

PDF guides and the other free resources are available with an account. It's free, and all you need is your email.

Since macOS 27, Macs with an Apple chip include a command called fm that gives direct access to the Apple Intelligence language model: the same one the system uses to summarise text or rewrite emails. With it you can turn that model into a small server and use it from other applications, such as Open WebUI.

It has clear advantages: there's nothing extra to download, it works offline, it's free, and your text never leaves the Mac. It also has important limits, which we explain before starting so you know what to expect.

What it is and what it's good for

Apple's model is small (about 3 billion parameters) and designed for specific tasks:

  • Summarising a text.
  • Extracting data from a document (names, dates, amounts).
  • Classifying or tagging content.
  • Rewriting a paragraph in a different tone.

It's not a good substitute for large models when programming, doing calculations or answering general-knowledge questions.

Requirements

This guide is for Mac only. Apple's model doesn't exist on Windows or Linux (you'll find alternatives at the end).

  • A Mac with an Apple chip (M1 or later).
  • macOS 27 or later. The fm serve command doesn't exist on macOS 26.
  • Apple Intelligence turned on and its model downloaded (about 7 GB).
  • Signed in with your Apple Account on the Mac.
  • For the second part, Open WebUI installed (there's a guide on this blog).

Step 1. Check your macOS version

  1. Click the Apple menu (the apple in the top-left corner) → About This Mac.
  2. Look at the macOS version. If it's older than 27, update in System Settings → General → Software Update.

Step 2. Turn on Apple Intelligence

  1. Open System Settings.
  2. Go to Apple Intelligence & Siri.
  3. Turn on Apple Intelligence.
  4. The Mac downloads the model in the background. It can take a while depending on your connection. Meanwhile, the same screen shows that it's getting ready.
Screenshot: System Settings with Apple Intelligence & Siri turned on

Step 3. Open Terminal and check the fm command

  1. Press ⌘ + Space, type "Terminal" and press Enter.
  2. Type this command and press Enter:
bash
which fm

It should answer /usr/bin/fm. If it prints nothing, your Mac doesn't have macOS 27: go back to step 1.

Step 4. Accept the licence (once)

Before using fm, Apple asks you to accept its licence. Since it applies to every user on the Mac, it must be done with administrator rights, by adding sudo in front:

bash
sudo fm license
  1. Terminal asks for your Mac's password. Type it (you won't see the characters as you type, that's normal) and press Enter.
  2. Read the licence text and type yes to accept it.

You only need to do this once. Until you accept it, every fm command fails.

Step 5. Check that the model is available

bash
fm available

If the model is ready, it says so. Bear in mind that this check isn't foolproof: sometimes it reports the model as available while the service is still getting ready. The definitive test is step 7.

Step 6. Start the server

Type:

bash
fm serve --port 1976

This makes Apple's model available at http://localhost:1976, in the same format OpenAI services use. We set port 1976 explicitly so you always know where it is.

Leave this window open while you use it. To stop the server, press Ctrl + C in it.

Screenshot: Terminal running fm serve --port 1976

Step 7. Test the server

Open a second Terminal window (with ⌘ + N inside Terminal) and paste this command:

bash
curl http://127.0.0.1:1976/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "system", "stream": false, "messages": [{"role": "user", "content": "Summarise in one sentence what photosynthesis is"}]}'

Within a few seconds you'll receive text with the model's answer. If so, the server works.

Two details about this server:

  • The model's name is system: it's the only one it offers.
  • By default it answers streaming (in pieces). That's why we add "stream": false in the test, to get the whole answer at once.

Step 8. Connect it to Open WebUI

With the server running and Open WebUI open in your browser:

  1. Click your name or avatar and open the Admin Panel.
  2. Go to Settings → Connections. In some versions the path is Settings → Admin → Connections.
  3. Under OpenAI API, click + to add a connection.
  4. Fill in:
  • URL: http://localhost:1976/v1 if you installed Open WebUI with uv, or http://host.docker.internal:1976/v1 if you installed it with Docker.
  • API Key: any text, for example apple. Apple's server doesn't check it, but Open WebUI requires the field.
  1. Click Save.
Screenshot: Open WebUI connection pointing to http://localhost:1976/v1

Open a New Chat: a model called system appears in the model selector. That's Apple's model. If you'd like a clearer name, in Admin Panel → Models you can edit it and call it, for example, "Apple (on this Mac)".

If the connection fails: route it through LiteLLM

Apple's server is new and still has some quirks: it rejects certain requests carrying browser-style headers (answering with a 403 error) and answers in pieces by default. If Open WebUI can't use it directly, the simplest fix is to connect it through LiteLLM, which acts as an intermediary and sends "clean" requests.

If you have LiteLLM (there's a guide on this blog), add this block to your config.yaml, inside model_list:

yaml
  - model_name: apple-local
    litellm_params:
      model: openai/system
      api_base: http://localhost:1976/v1
      api_key: apple

Restart LiteLLM. The model appears in Open WebUI as apple-local, alongside the rest of your models.

Good practices with this model

  • Short, specific requests: "Summarise this paragraph in three points", "Extract the dates from this text", "Rewrite this in a more formal tone".
  • Start new chats often: as the conversation grows, it exceeds the 4,096-token memory.
  • For heavy tasks, use another model: in Open WebUI you can switch to an Ollama, LM Studio or OpenRouter model in the same selector.

If you have macOS 26: the afm alternative

fm serve doesn't exist on macOS 26, but an open-source project called afm does something similar with Apple's model. It requires Homebrew (the package manager from brew.sh). With Homebrew installed:

bash
brew install scouzi1966/afm/afm
afm

The server runs at http://127.0.0.1:9999/v1 (if your version uses other options, check afm --help). To find the exact model name, open http://127.0.0.1:9999/v1/models in your browser. It connects to Open WebUI just like in step 8, changing the port.

What about Windows or Linux?

Apple's model only exists on Macs. On Windows and Linux, the equivalent alternative (a small, free, local model) is to install Ollama and download a light model such as llama3.2 or gemma3. The Ollama guide is on this same blog.

Common problems

  • which fm prints nothing. Your Mac doesn't have macOS 27 or an Apple chip.
  • Every fm command fails immediately. You haven't accepted the licence: run sudo fm license.
  • fm available says yes, but the server doesn't answer. Apple Intelligence is still getting ready or downloading. Check System Settings → Apple Intelligence & Siri and wait for it to finish.
  • Open WebUI shows a 403 error. The server rejects the request because of its headers. Connect it through LiteLLM, as explained in step 8.
  • Cut-off answers or errors with long texts. You've exceeded the 4,096-token context. Shorten the text or start a new chat.
  • It doesn't work from Open WebUI in Docker. Use host.docker.internal instead of localhost in the connection URL.

Next steps

Apple's model is now available alongside your other models. In the last guide of the series you'll install Hermes, an artificial intelligence agent able to carry out complete tasks, connect it to Ollama, LM Studio and LiteLLM, and see what role Apple's model can play.

Next guide: How to install Hermes Agent and connect it to Ollama, LM Studio, LiteLLM and Apple's model