{"slug": "ai-phone", "title": "AI Phone", "summary": "A project called AI Phone released an open-source (AGPL-3.0) phone agent that runs on a Mac and places or answers calls, with speech recognition and synthesis kept local via MLX and the language model selectable among a local MLX model, a Claude Code or Codex subscription, or an OpenAI-compatible endpoint. Setup recommends a 4B model on 16 GB of RAM and a 9B model on 32 GB, with a 2B option for 8 GB systems, and the software currently supports only macOS on Apple Silicon, English, and one call at a time. Every outgoing call begins with an AI disclosure, and an unanswered relay turn times out after 25 seconds by default.", "body_md": "An AI phone agent that runs on your computer.\n\n[Documentation](https://github.com/oxnw/ai-phone/blob/main/docs/usage.md) ·\n  [Architecture](https://github.com/oxnw/ai-phone/blob/main/architecture-essentials.md) ·\n  [AGPL-3.0](https://github.com/oxnw/ai-phone/blob/main/LICENSE)\n\n| Requirement | Details | \n|---|---|\n| Platform | macOS on Apple Silicon. Intel Macs, Linux and Windows are not currently supported. | \n| Memory | 16 GB recommended for the default 4B model; 32 GB for 9B. Setup also offers a smaller 2B model for 8 GB systems. | \n| Dependencies | Git, [Homebrew](https://brew.sh) and[uv](https://docs.astral.sh/uv/) . The installer handles Python packages and the native SIP library. | \n| Storage | Several GB for model downloads, depending on the models selected. Setup checks available disk space. | \n| Phone connection | A SIP address for direct calls, or your own SIP trunk, Telnyx or Twilio account for telephone numbers. Carrier charges apply. | \n\n```\ngit clone https://github.com/oxnw/ai-phone.git\ncd ai-phone\n./scripts/install.sh\nuv run ai-phone setup\n```\n\nSetup lets you choose incoming calls, outgoing calls, or both, then configures the model, line and voice.\nIt recommends a local model based on detected RAM and downloads the required weights.\nUse `uv run ai-phone setup --plain` for plain prompts.\n\nThe current speech backends use MLX on Apple Silicon, even when a cloud model handles the conversation. Supporting Linux or Windows would require different speech backends and changes to installation and platform integration. The platform requirement applies to the computer running ai-phone; callers can use any phone or SIP client.\n\nStart the daemon after setup:\n\n```\nuv run ai-phone run\n```\n\nKeep it running while you want to receive calls. For outgoing calls only, start it when needed and stop it with Ctrl-C afterward. Setup does not install a background service.\n\nFrom another terminal in the repo, give the phone agent instructions for a call:\n\n```\nuv run ai-phone call +15555550100 --json \\\n  --prompt \"Ask whether they have a table for two at eight tonight.\"\n```\n\nReplace the example number with the number you want to call. The command returns the transcript when the call ends. Every outgoing call starts with an AI disclosure. Incoming calls use the greeting and instructions you set during setup. English and one call at a time are currently supported.\n\nFor a free local test, enable incoming calls, select **A SIP address** in setup, and keep the name `agent`:\n\n```\npjsua --local-port 5070 sip:agent@127.0.0.1\n```\n\nRun setup again to change the voice, model, call directions or caller ID, then restart the daemon.\n\nAn agent with shell access can use relay mode to control each turn:\n\n```\nuv run ai-phone call +15555550100 --relay --json\nuv run ai-phone say \"Hi, I'd like to book a table for two.\" --json\nuv run ai-phone listen --json\nuv run ai-phone say \"Eight o'clock, please.\" --json\nuv run ai-phone hangup --say \"Thank you. Goodbye.\" --json\n```\n\nWith no active call, `listen --json` waits for an incoming call and handles it in relay mode.\nEach command with `--json` returns one JSON object on stdout; `call` also sends progress events to stderr.\nAn unanswered relay turn times out after 25 seconds by default. See the [command reference](https://github.com/oxnw/ai-phone/blob/main/docs/usage.md#agent-commands)\nfor call IDs, transcript retrieval, timeouts and exit codes.\n\n| Component | Options | \n|---|---|\n| Speech recognition | Parakeet, running locally through MLX. | \n| Language model | A local MLX model, your Claude Code or Codex subscription, or an OpenAI-compatible endpoint. | \n| Voice | Phonon with its bundled English voice, or Kokoro with American and British voices and adjustable speed. | \n\nSpeech recognition and synthesis stay local. A remote language model receives the call's text, instructions and conversation history. An external agent's cloud provider also sees any transcripts passed to it. Phone audio travels over SIP/RTP; carrier charges and subscription limits apply.\n\n- [Usage guide](https://github.com/oxnw/ai-phone/blob/main/docs/usage.md) : lines, forwarding, caller ID, models and CLI reference.\n- [Example configuration](https://github.com/oxnw/ai-phone/blob/main/config.example.yaml) : available settings.\n- [Architecture](https://github.com/oxnw/ai-phone/blob/main/architecture-essentials.md) : components and call flow.\n- [NAT checklist](https://github.com/oxnw/ai-phone/blob/main/docs/nat-checklist.md) : network configuration.\n- [Measurements](https://github.com/oxnw/ai-phone/blob/main/docs/phonon-2026-10-27.md) : latest local call and interruption results.\n\nInstall and setup have been checked from a fresh clone. Local call and interruption tests have run;\nlive carrier and end-to-end agent acceptance checks remain pending. The latest local run measured 1.50 s median\nfirst-audible response under heavy memory pressure; it missed the one-second target. Full conditions and\n[earlier results](https://github.com/oxnw/ai-phone/blob/main/docs/usage.md#latency-history) are documented.\n\n[AGPL-3.0-or-later](https://github.com/oxnw/ai-phone/blob/main/LICENSE). The bundled PJSIP interface files use\n[GPLv2-or-later](https://github.com/oxnw/ai-phone/blob/main/native/pjsua2/COPYING); see the [license notes](https://github.com/oxnw/ai-phone/blob/main/native/pjsua2/README.md).", "url": "https://wpnews.pro/news/ai-phone", "canonical_source": "https://github.com/oxnw/ai-phone", "published_at": "2026-10-28 00:51:40+00:00", "updated_at": "2026-10-28 01:11:42.437469+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "artificial-intelligence", "large-language-models", "ai-products"], "entities": ["AI Phone", "oxnw", "Apple Silicon", "MLX", "Parakeet", "Phonon", "Kokoro", "Telnyx"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ai-phone", "markdown": "https://wpnews.pro/news/ai-phone.md", "text": "https://wpnews.pro/news/ai-phone.txt", "jsonld": "https://wpnews.pro/news/ai-phone.jsonld"}}