cd /news/ai-agents/agent-ring-your-agent-can-call-you Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-159837] src=github.com β†— pub= topic=ai-agents verified=true sentiment=↑ positive

Agent Ring: Your agent can call you

An open-source, self-hosted project called Agent Ring lets AI coding agents place real voice calls to a user's Android phone, ringing even when the device is locked or in Doze, so the user can talk through a decision and hand the transcript back to the agent. Agent Ring routes calls over VoIP from the user's own server with no phone numbers, no Twilio and no per-minute fees, and connects to any MCP-speaking harness including Claude Code, Codex, opencode, OpenClaw and Hermes, with Gemini Live handling the real-time voice conversation. The project is pre-release, Android-only, and has been tested on one device, a Pixel 6 running Android 16.

read5 min views1 publishedOct 28, 2026
Agent Ring: Your agent can call you
Image: Michielbdejong (auto-discovered)

Your AI agent can call you. When it needs a decision, hits a wall or finishes a long job, your phone rings like a real call, even locked and in Doze. A voice AI tells you what's going on, you talk it through, and the agent gets the transcript and carries on. You can also call your agents back from the app and ask them things by voice.

Self-hosted and open source. No phone numbers, no Twilio, no per-minute fees: calls go over VoIP from your own server to your own phone.

agentring-demo.mp4 #

Sound on. A real run with Claude Code, a Pixel 6 and the voice AI: a migration fails, Claude Code calls the locked phone, you decide, it carries on. The phone is a screen recording with the call audio (the ringtone was added), the terminal is redrawn from Claude Code's output, and only the waits were cut. Silent version: demo.gif.

Pre-release. Messages, calls on a locked phone, the voice AI, calling your agent from the app and the MCP server all work. So far it has been tested on one phone (Pixel 6, Android 16). Android only for now.

  • Your agent reaches you. It can send you a message, wait for your reply or call you (send_message ,get_replies ,call ). On a call, a voice AI explains why the agent is calling, answers your questions and hands the transcript back.
  • You reach your agents. Tap "Call agent" in the app. The voice AI can ask your own agents for help mid-call. If one is slow, the call goes on and its answer arrives when it's ready, or as a message if you've already hung up.
  • Nothing gets lost. A missed call turns into a message you can answer from the notification.

Things people use it for: "run the migration and call me if anything fails", "ask me before you deploy", "what did CI say?" while driving, a daily call with your assistant about your inbox.

agentring doesn't care which harness you use: anything that speaks MCP can reach you, and anything you can run as a command can be consulted from a call.

Reaches you You consult it from a call
Claude Code MCP claude -p
Codex MCP codex exec
opencode MCP opencode run
OpenClaw MCP openclaw agent
Hermes MCP hermes -z
n8n, scripts, anything with HTTP REST API, CLI any command, or a small script for an HTTP agent

Copy-paste setup for each: docs/agents.md.

 your agent ──MCP/CLI──▢ daemon ──WSS (outbound only)──▢ relay ──FCM push──▢ Android app
     β–²                     β”‚                      (your server)                   β”‚
     └── agents.yaml ◀── voice AI (Gemini Live) ◀───── LiveKit (call audio) β”€β”€β”€β”€β”€β”€β”€β”˜
  • relay (TypeScript): pairing, messages, call state, push, LiveKit tokens. Runs on your server behind Caddy.
  • LiveKit : the call audio, self-hosted in the same compose file.
  • daemon (Python): theagentring CLI, the MCP server and the voice AI. Runs next to your agents, behind NAT is fine.
  • Android app (Kotlin): QR pairing, the native call screen, messages.

The voice AI is the voice, your agent is the brain: Gemini Live handles the conversation in real time and hands real work to your agents.

More: architecture Β· protocol Β· voice AI

You need:

  • somewhere to run the relay: a Linux server with Docker and a domain name, or your own computer with Docker (the phone on the same Wi-Fi, or anywhere over Tailscale),
  • a free Firebase project, which is what makes a locked phone ring (docs/firebase.md ),
  • a Gemini API key for the voice AI (free tier ),
  • an Android phone.
cd deploy && cp .env.example .env && $EDITOR .env && docker compose up -d --build
cd deploy && cp .env.local.example .env.local && $EDITOR .env.local \
  && docker compose -f docker-compose.local.yml --env-file .env.local up -d --build
docker compose logs relay | grep -A2 "API key"   # add the same -f/--env-file for the local one

uv tool install './daemon[voice]'
agentring init --relay https://relay.example.com --api-key ak_...
agentring pair                         # scan the QR code with the app
agentring msg "hello"                  # the phone gets a notification
echo GEMINI_API_KEY=... >> ~/.agentring/.env
agentring call "Testing agentring" --ai

claude mcp add agentring -- agentring mcp

Get the app from Releases. The full tutorial, step by step for both options and with a troubleshooting table: docs/setup.md. If the phone doesn't ring when locked, it's usually the vendor's battery saver: docs/troubleshooting-oem.md.

Everything runs on your own servers and accounts. Messages and call metadata are stored on your relay. Push notifications go through your own Firebase project; they are signed, not encrypted, so Google's FCM can read pushed text. Call audio goes through your LiveKit server and, with the voice AI, to Gemini; on Google's free tier, Google may use that data to improve its products.

Over the phone, the voice AI acts on what it hears, so give it only the tools and agents you'd trust someone holding your phone with. Details and the threat model: SECURITY.md.

  • Android only (no iOS yet).
  • One user per relay: no accounts.
  • The voice AI uses Gemini Live; other realtime backends plug in through RealtimeBackend .
cd relay && npm ci && npm test                         # relay
cd daemon && uv run --extra voice pytest               # daemon (+ e2e against the relay build)
cd app-android && ./gradlew :core:test :app:assembleDebug

CI builds the APK and runs an end-to-end test on an Android emulator against a real relay. See CONTRIBUTING.md and docs/release.md.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @agent ring 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/agent-ring-your-agen…] indexed:0 read:5min 2026-10-28 Β· β€”