Platform Support
Edward is built for macOS, but most of the stack runs on any platform.
What Works Everywhere
The core assistant — and the majority of Edward's capabilities — is fully cross-platform. If you can run Python, Node.js, and PostgreSQL, you can run Edward.
| Feature | macOS | Linux | Windows (WSL) |
|---|---|---|---|
| Core chat + LangGraph agent | ✓ | ✓ | ✓ |
| Long-term memory (pgvector) | ✓ | ✓ | ✓ |
| Document store | ✓ | ✓ | ✓ |
| Scheduled events / scheduler | ✓ | ✓ | ✓ |
| Code execution (Python, JS, SQL, Shell) | ✓ | ✓ | ✓ |
| Twilio SMS & WhatsApp | ✓ | ✓ | ✓ |
| WhatsApp MCP | ✓ | ✓ | ✓ |
| Brave Search | ✓ | ✓ | ✓ |
| HTML Hosting | ✓ | ✓ | ✓ |
| File storage | ✓ | ✓ | ✓ |
| Persistent databases | ✓ | ✓ | ✓ |
| Push notifications | ✓ | ✓ | ✓ |
| Orchestrator (worker agents) | ✓ | ✓ | ✓ |
| Evolution (self-coding) | ✓ | ✓ | ✓ |
| Widget | ✓ | ✓ | ✓ |
| Custom MCP servers | ✓ | ✓ | ✓ |
What You Lose on Windows / Linux
These features depend on macOS-specific APIs (AppleScript, system databases, native apps) and have no cross-platform equivalent.
| Feature | Why macOS-only | Impact |
|---|---|---|
| iMessage | AppleScript + Messages.app chat.db | No iMessage send/receive |
| Apple Services | apple-mcp requires macOS apps | No Calendar, Reminders, Notes, Mail, Contacts, or Maps integration |
| Contacts lookup | AppleScript to Contacts.app | No local contact search |
| Heartbeat (iMessage) | Reads ~/Library/Messages/chat.db | No iMessage monitoring |
| Heartbeat (Email) | Reads Mail.app via MCP | No email monitoring |
| Heartbeat (Calendar) | Uses Apple Services MCP | No calendar monitoring |
Setup Differences
PostgreSQL
On macOS, setup.sh installs PostgreSQL via Homebrew. On other platforms:
- Linux (Debian/Ubuntu):
sudo apt install postgresql postgresql-contrib - Linux (Fedora/RHEL):
sudo dnf install postgresql-server postgresql-contrib - Windows: Install via postgresql.org or
winget install PostgreSQL.PostgreSQL
You'll also need the pgvector extension. On most Linux distros: sudo apt install postgresql-16-pgvector (adjust version as needed). On Windows, follow the pgvector install guide.
Python & Node.js
- Python 3.11+: Install via
apt,pyenv, or the Python installer - Node.js 18+: Install via
nvm,fnm, or the Node.js installer
Setup Scripts
The setup.sh and restart.sh scripts use Homebrew and assume macOS. On other platforms:
- Linux: The bash scripts run natively — you just need to install PostgreSQL, Python, and Node.js manually first, then run
./setup.sh(it will skip Homebrew steps gracefully) - Windows: Use WSL2 (recommended) to get a Linux environment, or run the setup steps manually in PowerShell
Alternative Messaging via MCP
Edward's Custom MCP system lets you add messaging integrations at runtime — no code changes needed. Edward can discover and install MCP servers himself via the search_mcp_servers tool, or you can add them from the Settings page.
Available messaging MCP servers include:
| Platform | Description |
|---|---|
| Discord | MCP servers for Discord bot integration |
| Telegram | MCP servers for the Telegram Bot API |
| Signal | MCP servers for Signal messaging |
| Slack | MCP servers for Slack workspaces |
Just ask Edward to "search for a Discord MCP server" in chat, or browse the Edward's Servers panel in Settings to add one manually.
Running in Docker
On Linux, the backend can run in Docker since you don't have Apple features to lose. The frontend runs fine in Docker on any platform. This is useful for server deployments or containerized environments.
Windows: WSL2 Recommended
For Windows users, WSL2 is the recommended approach. It gives you a full Linux environment where everything except Apple features works natively — PostgreSQL, Python, Node.js, and all bash scripts run without modification.
- Install WSL2:
wsl --install - Install Ubuntu (default) or your preferred distro
- Follow the Linux setup steps inside WSL
- Access Edward at
localhost:3000from your Windows browser
For full setup instructions, see the Getting Started guide. For integration details, see Skills & Integrations.