Neonduck

A personal AI assistant that does everything online for you and can even make calls.

Built by in Geneva.

The story

Neonduck is a personal AI assistant that can do everything online for me, and it can even make phone calls. I use it every day, and I built it so people who don't write code can have one too. You write or talk to it and it works on your own accounts: it reads and answers mail, manages the calendar, looks up trains, fills a shopping basket on Swiss shops, sends WhatsApp messages and writes a morning briefing.

Every customer gets their own container, database, browser profile and data volume, so one person's mail, logins and memory are kept apart from everyone else's. If you delete your account, your server is deleted too. A small central service only handles sign-in, provisioning and backups.

It works in a real browser that you can watch and take over at any time. Saved passwords are never shown to the model. A new instance asks before it sends, deletes, pays for or invites anything, and tasks that run while nobody is watching can only read. Voice runs on Gemini Live or OpenAI Realtime and passes questions on to Claude, and phone calls go out on the customer's own Twilio account only after they tap Allow.

It connects to Google and Microsoft accounts, any MCP server by address, smart-home devices and music services. The site is in English, German, French and Italian. Neonduck is in an invitation-only beta for now.

What was built

  • One isolated server per customer: container, database, browser profile and data volume
  • A Claude Agent SDK agent with permission gates and approval cards
  • A live agent browser the customer can watch and take over
  • Asks before sending, deleting, paying or inviting; unattended runs can only read
  • Voice through Gemini Live or OpenAI Realtime, passing questions to Claude
  • Connects to Google, Microsoft, any MCP server, smart home, music, WhatsApp and phone calls
  • Usage limits per customer
  • Site in English, German, French and Italian

Key facts

  • 4 site languages: English, German, French, Italian

Stack

  • Node.js (plain ESM)
  • Claude Agent SDK
  • SQLite
  • Playwright
  • Gemini Live
  • OpenAI Realtime
  • Twilio
  • Fly.io
  • Docker
  • Cloudflare DNS
  • Chrome extension

Themes

  • AI agents

    I wanted a personal AI assistant that can do everything online for me, and it can even make phone calls. I build them with whichever models and tools fit best: Claude, OpenAI, Gemini, open models and plenty of plain code.

  • Ask before acting

    For actions like sending, paying, deleting or taking a photo, my apps wait for a tap from the user. When the AI changes something, you see the change and the reason for it, and where I can, there's an Undo button.

  • Self-hosting and data sovereignty

    Personal data stays on hardware its owner controls. For me that's a NAS behind a tunnel. Each Neonduck customer gets their own isolated server, and if they delete the account, the server is deleted too.

  • MCP and tool use

    I use the Model Context Protocol to connect AI assistants to real things: a camera, a photo library, my own archive and Emineon OS, my recruiting tool. I keep each server small with only a few tools, and read-only where that matters.

  • Built for Switzerland

    Switzerland has four official languages, so my sites come in up to four of them. Some products connect to Swiss shops and trains, and hosting is in Switzerland or the EU by default.

  • Neonduck remembers through Dbrain.
  • LightboxAI photo sorting for a self-hosted library, with keep scores and duplicate stacks.
  • LodestarAn iPhone and iPad app that sets up a Sony camera from one sentence and takes the shot.
  • Emineon OSAn AI-native ATS and CRM for recruiters, with CV parsing, matching and a copilot.