https://github.com/fspecii/openfelix
πΌ OpenFelix β Voice-first AI agent for macOS. Runs local LLMs on Apple Silicon via MLX. Supports all OpenClaw skills. Claude, GPT, or fully offline.
https://github.com/fspecii/openfelix
ai-assistant apple-silicon claude llm local-ai macos menu-bar-app mlx open-source openclaw speech-to-text swift tool-calling voice-assistant
Last synced: 3 days ago
JSON representation
πΌ OpenFelix β Voice-first AI agent for macOS. Runs local LLMs on Apple Silicon via MLX. Supports all OpenClaw skills. Claude, GPT, or fully offline.
- Host: GitHub
- URL: https://github.com/fspecii/openfelix
- Owner: fspecii
- Created: 2026-03-05T18:21:00.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-06T15:29:35.000Z (4 months ago)
- Last Synced: 2026-06-14T11:25:09.277Z (14 days ago)
- Topics: ai-assistant, apple-silicon, claude, llm, local-ai, macos, menu-bar-app, mlx, open-source, openclaw, speech-to-text, swift, tool-calling, voice-assistant
- Language: Swift
- Homepage: https://openfelix.com
- Size: 2.09 MB
- Stars: 27
- Watchers: 0
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# OpenFelix πΌ
**The voice-first AI agent for macOS that actually runs locally.**
> β οΈ **Early-stage functional prototype.** Core features work β voice, tools, skills, cloud backends. Rough edges exist. We need your help to make this the best it can be.
[](LICENSE)
[](https://github.com/fspecii/openfelix)
[](https://github.com/fspecii/openfelix)
[](https://x.com/openfelixai)
[**Download DMG**](https://github.com/fspecii/openfelix/releases/tag/v0.1.0) Β· [**Watch Demo**](https://www.youtube.com/watch?v=tUmCYdsq7Sw) Β· [**Website**](https://openfelix.com) Β· [**Follow @openfelixai**](https://x.com/openfelixai)
---
*Named after a real Persian cat. Silver. Amber eyes. Always watching.*
**Created by [@AmbsdOP](https://x.com/AmbsdOP)**
---
## π¬ Demo
[](https://www.youtube.com/watch?v=tUmCYdsq7Sw)
> **[Watch the demo on YouTube β](https://www.youtube.com/watch?v=tUmCYdsq7Sw)**
---
## What is OpenFelix?
OpenFelix is a free, open-source AI agent that lives in your Mac menu bar. Press **Option+Space** anywhere, speak or type your request, and Felix acts β reads your calendar, searches the web, sends messages, runs scheduled tasks, generates music, and talks back in a natural voice.
It's not a chatbot. It's an agent with tools, voice I/O, and a skill system that extends it to anything. It runs **fully on-device** with local MLX models, and seamlessly upgrades to Claude or any cloud model when you want the best quality.
> *"When OpenClaw meets Siri."* πΌ
---
## π We Need Your Help
I'm **not a Swift developer** β I built this to prove the concept works, and it does. But to make OpenFelix the **best open-source voice assistant for macOS**, we need people who know what they're doing.
If you're a Swift developer, macOS engineer, AI/ML enthusiast, or just someone who wants a great local voice assistant on your Mac β **this project is for you**.
**This could be the best voice AI project ever built for macOS.** The foundation is here. Help us finish it.
π **[Open an issue](https://github.com/fspecii/openfelix/issues)** Β· **[Submit a PR](https://github.com/fspecii/openfelix/pulls)** Β· **[Star the repo β](https://github.com/fspecii/openfelix)**
Areas where we especially need help:
- Swift / macOS native development
- Whisper integration for local STT
- UI/UX polish
- Skill development
- Testing across different Mac hardware
---
## Download
**Easiest way to get started:**
1. Download [`OpenFelix.dmg`](OpenFelix.dmg)
2. Open the DMG β double-click **Run Me First.command** (sets up Python + local AI engine)
3. Drag **OpenFelix.app** to your Applications folder and launch it
4. Grant **Accessibility** permission when prompted (required for global hotkey)
---
## Features
| Capability | Description |
|---|---|
| ποΈ **Voice & Text** | Option+Space to speak, Option+T to type |
| π§ **Local AI** | Runs Qwen / Mistral / any MLX model on Apple Silicon β 100% on-device |
| βοΈ **Cloud Models** | Claude, GPT-4o, or any OpenAI-compatible model |
| ποΈ **Screen Vision** | Sees and analyzes anything on your screen |
| β° **Cron Jobs** | Schedule tasks: `daily@09:00`, `every:30m`, `once:ISO8601` |
| π² **Proactive Alerts** | Sends updates to Telegram, Discord, Slack |
| π¬ **YouTube** | Search, play, and get spoken summaries |
| π **Wikipedia** | Instant spoken answers |
| π» **Code & Files** | Generates, reads, and runs code |
| π
**Calendar** | Reads and creates Apple Calendar events |
| π **Reminders** | Full Apple Reminders integration |
| πΊοΈ **Maps** | Location search and directions |
| π΅ **Music Generation** | Generates music via ACE-Step |
| π **Finance** | Stock prices and market data |
| π¦ **X / Twitter** | Read your feed and search topics |
| π§© **Skill System** | Extensible β skills auto-install on first run |
| π¦ **OpenClaw Native** | Inherits all your OpenClaw skills and API keys automatically |
---
## LLM Backends
### Local (no API key needed)
Runs fully on-device via [MLX](https://github.com/ml-explore/mlx). Switch model size from the menu bar:
| Model | RAM | Tool Calling |
|-------|-----|-------------|
| Qwen 3.5 0.8B | ~1 GB | Basic β may miss tools |
| Qwen 3.5 2B *(default)* | ~2 GB | Decent for simple tasks |
| **Qwen 3.5 4B** | ~3 GB | **Recommended minimum for tools** |
| **Qwen 3.5 9B** | ~6 GB | **Best local experience** |
> **Recommendation:** Use at least a **4Bβ9B model** for reliable tool calling. Smaller models (0.8Bβ2B) can handle basic Q&A but often fail on multi-step tool use. The local models are genuinely good β but if you want consistent, production-quality results across all features, use a cloud backend.
Override the default model:
```bash
MLX_MODEL_PATH=mlx-community/Qwen2.5-7B-Instruct-4bit bash scripts/run-app.sh
```
### Cloud (strongly recommended for best experience)
For the most reliable tool calling, fastest responses, and best reasoning quality, use a cloud backend. **We especially recommend Claude** β it has excellent instruction following, strong tool use, and handles OpenFelix's structured prompts exceptionally well.
```bash
# Anthropic Claude (recommended)
export ANTHROPIC_API_KEY=sk-ant-...
# OpenAI GPT
export OPENAI_API_KEY=sk-...
# OpenRouter (access any model)
export OPENROUTER_API_KEY=sk-or-...
```
Or use [**OpenClaw**](https://openclaw.ai) β Felix reads your entire OpenClaw config automatically (models, API keys, skills). Zero duplicate configuration.
---
## OpenClaw Integration π¦πΌ
OpenFelix and [OpenClaw](https://openclaw.ai) are designed to work together seamlessly β they share the same skill format, config files, and API keys. If you have OpenClaw installed, Felix picks up your entire setup with **zero additional configuration**:
- **All OpenClaw skills work in OpenFelix out of the box** β same `SKILL.md` format, same `scripts/` structure, write once run in both
- **LLM config** β same model and API keys, no re-entry
- **Notifications** β Telegram, Discord, Slack routing inherited automatically
- **API keys** β all provider keys shared between both apps
- **Two-way communication** β OpenFelix and OpenClaw can interact, share context, and hand off tasks to each other
**If you're an OpenClaw user, OpenFelix is a zero-friction addition.** You already have everything you need.
---
## Skill System
Felix ships with built-in skills that install automatically on first run:
| Skill | What it does |
|-------|-------------|
| **youtube-search** | Searches YouTube and opens the best result |
| **youtube-info** | Summarizes any YouTube video (paste a link) |
| **finance-lookup** | Stock prices and market data |
| **ace-music** | Generates music from a text prompt (requires `ACE_MUSIC_API_KEY`) |
| **bird** | Reads your X/Twitter feed (requires `npm install -g @steipete/bird` + `bird auth`) |
### Adding skills
Skills live in `~/.openfelix/skills/`. Each skill is a folder with a `SKILL.md` and a `scripts/` directory. They are fully compatible with OpenClaw skills.
### Scheduling skills
Add a `schedule:` line to any `SKILL.md` frontmatter:
```yaml
schedule: daily@09:00 # Every morning at 9
schedule: every:30m # Every 30 minutes
schedule: once:2026-03-07T10:00 # One-time
```
---
## Build from Source
### Requirements
- macOS 13+ (Ventura or later)
- Apple Silicon (M1/M2/M3/M4)
- Xcode 15+
- Python 3.12+
```bash
git clone https://github.com/fspecii/openfelix
cd openfelix
bash scripts/setup.sh # one-time: creates Python venv, installs mlx-lm
bash scripts/run-app.sh # build and launch
```
First launch downloads the default model (~2 GB). Subsequent launches are instant.
### Permissions
- **Accessibility** β System Settings β Privacy & Security β Accessibility β add OpenFelix (required for global hotkey suppression)
- **Microphone** β prompted automatically on first use
---
## Architecture
```
openfelix/
βββ swift-test/Sources/openfelix-app/
β βββ AppController.swift # Core state machine + menu bar
β βββ OpenClawBackend.swift # Claude via OpenClaw / Anthropic API
β βββ MLXBackend.swift # Local MLX models
β βββ OpenAIBackend.swift # GPT / any OpenAI-compatible
β βββ ToolKit.swift # Tool calling + system prompts
β βββ SkillLoader.swift # Skill discovery and execution
β βββ STTEngine.swift # Speech-to-text (AUHAL + Apple on-device)
β βββ TTSSpeaker.swift # Text-to-speech
β βββ ...panels, overlay, timers
βββ skills/ # Built-in skills (auto-installed on first run)
βββ scripts/
β βββ setup.sh # One-time setup
β βββ run-app.sh # Build and launch
β βββ channel-daemon/ # Telegram / Discord / Slack daemon
βββ assets/
```
---
## Status
This is a **functional prototype** β the core loop (voice β STT β LLM β tools β TTS) works well. The following are known rough edges we're actively working on:
- [ ] Whisper local STT (currently uses Apple's on-device recognizer)
- [ ] App Store release
- [ ] Skill marketplace
- [ ] Multi-language voice support
- [ ] iOS companion app
- [ ] Plugin API docs
---
## Contributing
PRs welcome. Open an issue first for major changes.
---
## License
Apache 2.0 β free to use, modify, and distribute.
---
**Built with β€οΈ and a Persian cat named Felix πΌ**
Created by **[@AmbsdOP](https://x.com/AmbsdOP)**
[openfelix.com](https://openfelix.com) Β· [@openfelixai](https://x.com/openfelixai)
*I'm not a Swift developer β I just wanted a great voice assistant on my Mac.*
*Help make this the best open-source voice AI for macOS. β*