Getting Started
From zero to a running Edward instance in about five minutes.
Prerequisites
- macOS — required for iMessage, Apple Services, and the scheduler
- Homebrew — used by the setup script to install PostgreSQL
- Node.js 18+ — for the Next.js frontend
- Python 3.11+ — for the FastAPI backend
- Anthropic API key — get one at console.anthropic.com
Quick Start
# Clone the repository
git clone https://github.com/ben4mn/meet-edward.git
cd meet-edward
# Run the setup script
./setup.sh
# Add your Anthropic API key to backend/.env
# ANTHROPIC_API_KEY=sk-ant-...
# Start both services
./restart.shThat's it. Visit http://localhost:3000 and you're live.
What setup.sh Does
The setup script handles the full first-time installation:
- Installs PostgreSQL 16 and the pgvector extension via Homebrew
- Creates the
edwarddatabase and user (default:edward/edward/edward) - Creates a Python virtual environment in
backend/venv/and installs dependencies - Installs frontend npm packages
- Generates a
backend/.envtemplate with required variables
What restart.sh Does
The restart script manages both services with graceful stop/start:
./restart.sh # Restart both frontend + backend
./restart.sh frontend # Restart only frontend
./restart.sh backend # Stop and restart only backendLogs are written to backend/logs/ and the frontend console. The backend also supports ./start.sh for direct startup (auto-activates the venv and installs any new dependencies).
Setting Your Password
The first time you visit localhost:3000, you'll be prompted to set a password. This is stored as a bcrypt hash in the database — Edward uses single-user JWT auth with HttpOnly cookies.
After setup, you can change your password anytime from the Settings page.
Verifying It Works
- Open
http://localhost:3000in your browser - Set your password on first visit
- Send a message — Edward should respond with full context
- Check the debug panel (bottom of chat) for health status
Common Issues
PostgreSQL not running
brew services start postgresql@16Missing API key
Make sure ANTHROPIC_API_KEY is set in backend/.env. Edward won't start the LangGraph agent without it.
Port conflicts
The backend runs on :8000 and the frontend on :3000. If either port is in use, check for existing processes:
lsof -i :8000
lsof -i :3000Python version mismatch
Edward requires Python 3.11+. Check with python3 --version. If you have multiple Python versions, the setup script uses whichever python3 resolves to in your PATH.
Next up: configure your environment variables in the Configuration guide.