Skills & Integrations
Edward's modular skill system — enable what you need, disable what you don't.
Overview
Skills are managed from the Settings page in the web UI. Each skill can be toggled on or off independently. When a skill is enabled, its tools become available to Edward in conversation. When disabled, those tools are completely hidden from the LLM.
All Skills
| Skill | Category | Description | Env Vars Required |
|---|---|---|---|
| iMessage AppleScript | Messaging | Send and read iMessages via AppleScript (macOS only) | None |
| Twilio SMS | Messaging | Send and receive SMS via Twilio | TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE_NUMBER |
| Twilio WhatsApp | Messaging | Send and receive WhatsApp messages via Twilio | Same as Twilio SMS |
| WhatsApp MCP | Messaging | Read/send WhatsApp as user via whatsapp-mcp Go bridge | MCP_WHATSAPP_ENABLED, MCP_WHATSAPP_SERVER_DIR |
| Brave Search | Search | Web search and page content extraction via Brave Search API | BRAVE_SEARCH_API_KEY |
| Code Interpreter | Execution | Execute Python code in a sandboxed subprocess | None |
| JavaScript Interpreter | Execution | Execute JavaScript via Node.js subprocess | None |
| SQL Database | Execution | Per-conversation SQLite database for queries | None |
| Shell / Bash | Execution | Execute shell commands with blocklist safety | None |
| Apple Services | Apple | Calendar, Reminders, Notes, Mail, Contacts, Maps (macOS only) | MCP_APPLE_ENABLED=true |
| HTML Hosting | System | Create, update, and delete hosted HTML pages | HTML_HOSTING_API_KEY |
Always-Available Tools
Some tools are always available regardless of skill state. These are core to Edward's functionality:
- Memory tools — remember, update, forget, search
- Document tools — save, read, edit, search, list, delete
- Scheduled event tools — schedule, list, cancel
- File storage tools — save, list, read, download, tag, delete
- Persistent database tools — create, query, list, delete
- Widget tools — update widget state and code
- Push notification tools — send web push to subscribed devices
- Contact tools — lookup by name or phone number
- Custom MCP tools — search, add, list, remove MCP servers
Custom MCP Servers
Beyond the built-in skills, Edward can discover, install, and use MCP servers at runtime. This is fully self-service — Edward can search GitHub for MCP server packages, install them via npx or uvx, and start using their tools immediately.
Key details:
- Servers run as subprocesses — no git clone needed
- Each server's tools are prefixed with the server name to avoid collisions
- New tools are available immediately via hot-reload
- Manage custom servers from the "Edward's Servers" panel in Settings
Set the GITHUB_TOKEN environment variable to enable GitHub search for MCP server discovery.
Enabling a Skill
- Navigate to Settings in the web UI
- Find the skill in the skills list
- Toggle it on
- If the skill requires environment variables, make sure they're set in
backend/.envand restart the backend
Skills that require MCP clients (WhatsApp MCP, Apple Services) will initialize their subprocess when enabled. The skill status indicator shows whether the connection is healthy.
Curious about how it all fits together? See the Architecture overview.