# Set up a local AI phone agent on Apple Silicon

> Run ai-phone on an Apple Silicon Mac and try a local SIP call before adding a paid carrier.

Source: https://fullbytedeveloper.com/blog/local-ai-phone-apple-silicon
Keyword: LOCALCALL
Published: 2026-11-01

ai-phone runs speech recognition, a language model and speech synthesis on an Apple Silicon Mac, per its README [1]. Start with a local SIP call. Its README says live-carrier acceptance checks remain pending [1].

The repository requires macOS on Apple Silicon, Git, Homebrew and uv. It recommends 16 GB RAM for the default model, with a smaller option for 8 GB systems. Model downloads need several GB of disk space [1].

## Clone and install ai-phone

The installer sets up Python dependencies and the native SIP library, per the README [1]. SIP is the protocol used to connect the call.

```bash
git clone https://github.com/oxnw/ai-phone.git
cd ai-phone
./scripts/install.sh
```

## Choose a local model and SIP address

The setup wizard chooses call directions, model, line and voice [1]. For the local call, enable incoming calls, select "A SIP address" and keep the name `agent`, as the usage guide describes [2]. Choose the local model option to keep the conversation processing on the Mac [2].

```bash
uv run ai-phone setup
```

You should see prompts for those choices and model downloads [1]. The usage guide says setup saves configuration and secrets under `~/.ai-phone/` [2].

## Start the phone agent

The usage guide requires the daemon to stay running for incoming calls. Setup does not install a background service [2].

```bash
uv run ai-phone run
```

You should see the daemon state where the call's text will go when it starts, per the usage guide [2].

## Call it from another terminal

Keep the daemon running. In a second terminal, use the repository's local-call command [1][2].

```bash
pjsua --local-port 5070 sip:agent@127.0.0.1
```

The guide describes this as a local call without a carrier. If you chose a different SIP name, substitute that name for `agent` [2].

You can now evaluate a local call before connecting a number. Telephone calls require a SIP trunk or carrier account, with charges. Audio travels over SIP/RTP. Choosing a remote language model sends conversation text to that provider [2].

The published Phonon measurements cover local loopback calls with no carrier registration or external model [3]. Treat them as the repository's local results when deciding what to try next.

## Sources

1. [ai-phone README: requirements and installation](https://github.com/oxnw/ai-phone)
2. [ai-phone usage guide: setup, SIP and privacy](https://github.com/oxnw/ai-phone/blob/main/docs/usage.md)
3. [ai-phone Phonon integration: local measurement conditions](https://github.com/oxnw/ai-phone/blob/main/docs/phonon-2026-10-27.md)

## Original posts

- [TikTok photos](https://www.tiktok.com/@fullbytedeveloper/photo/7702884692881657140)
- [Instagram post](https://www.instagram.com/fullbytedeveloper/p/DfKsoaPmrsa/)
