๐ fruit-chat
April 6, 2026 ยท View on GitHub
Apple Intelligence in your browser. A premium, private, on-device AI chat powered by apfel and Apple's Foundation Models framework.
No API keys. No cloud. No subscriptions. Runs entirely on your Apple Silicon Mac.
Install
curl -fsSL https://raw.githubusercontent.com/bhaskarvilles/fruit-chat/main/install.sh | bash
That's it. The script will:
- Install
apfelvia Homebrew (Apple Intelligence CLI) - Install Node.js if needed
- Download
fruit-chatto~/.fruit-chat - Register two LaunchAgents โ auto-start on every login
- Open
http://localhost:4321in your browser
Demo
macOS Demo
https://github.com/bhaskarvilles/fruit-chat/raw/main/public/product_video_demo/macos_video_demo.mov
Mobile / iPhone Demo
https://github.com/bhaskarvilles/fruit-chat/raw/main/public/product_video_demo/mobile_demo.MP4
Features
- ๐ 100% On-device โ Apple Intelligence processes everything locally via
FoundationModels - ๐ Any Apple Device โ Access from Mac, iPhone, or iPad on your local network
- โก Real-time Streaming โ Tokens stream live as the model generates
- ๐ Dark & Light Mode โ Toggle between dark, light, and auto (system) themes
- ๐พ Conversation History โ All chats stored locally in your browser
- โ๏ธ Configurable โ System prompt, temperature, max tokens
- ๐ Persistent Daemon โ Auto-starts on every login/reboot via macOS LaunchAgents
- ๐ฑ Responsive UI โ Glassmorphism design optimised for Mac, iPad, and iPhone
Requirements
- Apple Silicon Mac (M1 or newer)
- macOS 26 (Tahoe) or newer
- Apple Intelligence enabled in System Settings
- Homebrew
- Node.js 18+ (auto-installed if missing)
Access
After installation:
http://localhost:4321 # This Mac
http://<your-mac-ip>:4321 # Any device on your LAN (iPhone, iPad, etc.)
Update
Re-run the same install command โ it pulls the latest and restarts the daemons:
curl -fsSL https://raw.githubusercontent.com/bhaskarvilles/fruit-chat/main/install.sh | bash
Uninstall
bash ~/.fruit-chat/uninstall.sh
Manual / Developer Setup
git clone https://github.com/bhaskarvilles/fruit-chat.git
cd fruit-chat
./install.sh # same script, detects local mode automatically
Or run without daemons (development):
# Terminal 1 โ start Apple Intelligence server
apfel --serve
# Terminal 2 โ start the web UI
npm start
Then open http://localhost:4321.
Ports
| Service | Port |
|---|---|
| fruit-chat Web UI | 4321 |
| apfel OpenAI-compatible API | 11434 |
Logs
tail -f /tmp/fruitchat-apfel.log # Apple Intelligence server
tail -f /tmp/fruitchat-server.log # Web UI server
Architecture
Browser / Any Apple Device
โ HTTP :4321
fruit-chat (Node.js + Express)
โ SSE :11434 (OpenAI-compatible)
apfel --serve (Swift CLI)
โ Native Swift Framework
Apple FoundationModels (on-device LLM)
License
MIT