cd /news/ai-agents/move-your-vapi-assistants-to-a-self-… · home › topics › ai-agents › article
[ARTICLE · art-166643] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Move your Vapi assistants to a self-hosted server with no platform fee

A developer released OpenRing, an MIT-licensed open-source server that implements Vapi's API so voice-agent assistants can be moved off the hosted platform and run self-hosted without per-minute platform fees. The tool installs via `npx openring`, runs on Node.js 18 or later, and imports assistants, squads, tools and Twilio numbers in a single API request, with a dashboard for connecting speech-to-text and model providers and testing calls locally. Each test call records its transcript, per-turn latency and per-provider cost.

by read1 min views7 publishedNov 10, 2026

Hosted voice-agent platforms add a per-minute fee on top of what you pay your speech-to-text, model, voice and phone providers. OpenRing is an open-source (MIT) alternative that runs on your own machine and speaks Vapi's API, so you can move an account in a few minutes.

You need Node.js 18 or later. Everything else, Python included, installs itself:

npx openring

The dashboard opens at http://localhost:8000. Choose a password, then connect providers on the Providers page (a speech-to-text key and a model key; Groq's free tier and Deepgram's credit for new accounts are enough to start).

Copy every assistant, squad, tool and Twilio number in one request (the key is used once and never stored):

curl -X POST http://localhost:8000/import \
  -H "Authorization: Bearer $OPENRING_API_KEY" -H "Content-Type: application/json" \
  -d '{"baseUrl": "https://api.vapi.ai", "apiKey": "YOUR_PRIVATE_KEY"}'

The answer lists each assistant with anything that keeps it from taking calls yet, for example a provider OpenRing doesn't support. Importing again updates what came in before.

Open an assistant and press Test. Talk into your microphone, no phone number needed. Each call records its transcript, the latency of every turn and the cost per provider.

Change your client's base URL to your server and send the same JSON. For phone numbers, set each number's voice webhook to $PUBLIC_URL/twilio/voice (you need a public https address; a tunnel works for testing).

If you try it, tell me what breaks: https://github.com/elifalanrocha/openring/issues/16

── more in #ai-agents 4 stories · sorted by recency
── more on @openring 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/move-your-vapi-assis…] indexed:0 read:1min 2026-11-10 · —