David is an AI assistant you can text over iMessage. Send a message to a phone number and get intelligent, conversational responses powered by Claude.
- Sendblue (iMessage API provider) receives your iMessage and sends a webhook to Convex
- Convex webhook handler stores the message, fires a typing indicator (... bubble), and starts a 1s debounce to batch rapid messages
handleInboundMessageresolves the user, fetches conversation history, checks Google OAuth tokens, then calls the LLM- LLM agent loop (Vercel AI SDK + Claude via Bedrock) generates a response, with access to tools:
send_sms,send_dm, Google Calendar/Gmail/Contacts, sandbox code execution (cmux), image generation, etc. - Reply goes back through Sendblue → iMessage to your phone
- iMessage native — talks to you in your normal texting app, no downloads needed
- Group chats — David can be added to iMessage groups, decides whether to respond or stay quiet
- Google integration — OAuth flow via SMS link, then David can read/create calendar events, search/send/draft emails, search contacts
- Code execution — sandboxed code execution via cmux for running code snippets
- Image generation — can generate images on request
- Conversation memory — maintains context across messages with debounced batching
- Frontend: Next.js (landing page at textdavid.com)
- Backend: Convex (real-time database + serverless functions)
- Messaging: Sendblue (iMessage API)
- AI: Claude via AWS Bedrock + Vercel AI SDK
- Integrations: Google Calendar, Gmail, Contacts (OAuth 2.0)
bun install
bun devDev server runs on port 7749.