๐ŸŽ 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:

  1. Install apfel via Homebrew (Apple Intelligence CLI)
  2. Install Node.js if needed
  3. Download fruit-chat to ~/.fruit-chat
  4. Register two LaunchAgents โ†’ auto-start on every login
  5. Open http://localhost:4321 in 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

ServicePort
fruit-chat Web UI4321
apfel OpenAI-compatible API11434

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