The library · Guides

Voice agent on Gemini

Let visitors talk through their needs, with call limits and the agent’s instructions fixed on your server.

14 files · 77 KB

Why I keep it

I chose Gemini for the voice agent on WithSeismic’s homepage after listening to the options. It asks visitors what they’re trying to do and suggests a next step, but I wanted the call length, prompt and usage limits controlled by the server. The browser gets a single-use token with those choices locked in.

I’ve included the server routes, call guard and browser audio transport, so you can build a conversation around your own business. GUIDE.md explains the timers, Turnstile checks and prompt structure. You write the console UI and fill in the business details; the transport uses a raw WebSocket to keep the browser code lighter.

Take the files

14 files · 77 KB

  • GUIDE.md12 KB
  • README.md2 KB
  • app/api/voice/lead/route.ts2 KB
  • app/api/voice/session/route.ts5 KB
  • components/voice/call.ts4 KB
  • components/voice/gemini-call.ts7 KB
  • components/voice/turnstile.ts4 KB
  • components/voice/voice-audio.ts7 KB
  • env.example849 B
  • lib/turnstile.ts3 KB
  • lib/voice-agent.ts15 KB
  • lib/voice-flag.ts1 KB
  • lib/voice-guard.ts12 KB
  • lib/voice-request.ts2 KB

Keep building your setup: Guides

Back to the shelves →
  • 011 file · 10 KB

    Search Console and search volume

    Connect Search Console and Keyword Planner to the terminal, so your agent can inspect your search data.

  • 021 file · 5 KB

    Claude Notch

    See your Claude accounts’ limits beside the Mac’s notch and switch accounts without signing out.

  • 034 files · 27 KB

    Mail on Cloudflare

    Give your agent a mailbox on your domain, with API access controlled through Cloudflare Access.

  • 041 file · 5 KB

    geo-kit

    Keep schema, crawl rules and search measurement together, with shared helpers and agent skills.