GBrain

GBrain ships a voice-to-brain recipe that connects phone calls to your brain. It works — but it takes 10 steps, a Twilio account, ngrok, and a Node.js server.

AgentPhone replaces all of that. Same result, 3 steps.

Quick comparison

GBrain voice recipe (DIY)GBrain + AgentPhone
Steps10 (Twilio, ngrok, Node server, TwiML, watchdog)3 API calls
Accounts neededTwilio + OpenAI + ngrok ($8/mo)AgentPhone only
Server to hostNode.js voice server (port 8765)None
Tunnelngrok requiredNot needed
Time to first call30-60 minutesUnder 2 minutes
Monthly cost~$22/mo + serverUsage-based, no infra

Setup: MCP Server (fastest)

GBrain is MCP-native, so the easiest path is adding AgentPhone as an MCP server alongside your brain.

Add to your GBrain MCP configuration:

MCP config
1{
2 "mcpServers": {
3 "gbrain": {
4 "command": "npx",
5 "args": ["-y", "gbrain-mcp"],
6 "env": { "GBRAIN_DIR": "/path/to/your/brain" }
7 },
8 "agentphone": {
9 "command": "npx",
10 "args": ["-y", "agentphone-mcp"],
11 "env": {
12 "AGENTPHONE_API_KEY": "your_api_key_here"
13 }
14 }
15 }
16}

Now your AI client has both your brain AND phone capabilities. Try:

“Create a voice agent called Brain that greets callers warmly and has thoughtful conversations. Buy it a 415 number, then call me at +14155551234.”

The AI will create the agent, buy a number, and dial you — all in one shot.

Get your API key from agentphone.to/settings.

Setup: Python (3 calls)

If you prefer scripting over natural language:

gbrain_phone.py
1from agentphone import AgentPhone
2import os
3
4client = AgentPhone(api_key=os.environ["AGENTPHONE_API_KEY"])
5
6# 1. Create a voice agent with your brain's personality
7agent = client.agents.create(
8 name="Brain",
9 voice_mode="hosted",
10 system_prompt=(
11 "You are Brain, a personal AI assistant with deep knowledge "
12 "about the caller's life, work, and interests. "
13 "Greet callers warmly. Ask what's on their mind. "
14 "Have natural, helpful conversations. Be concise — you're on a phone call."
15 ),
16 begin_message="Hey, it's Brain. What's on your mind?",
17 voice="11labs-Brian",
18)
19
20# 2. Buy a phone number
21number = client.numbers.buy(country="US", area_code="415", agent_id=agent.id)
22print(f"Brain's number: {number.phone_number}")
23
24# 3. Test it — call yourself
25call = client.calls.make_conversation(
26 agent_id=agent.id,
27 to_number="+14155551234", # your phone number
28 topic="Have a natural conversation as Brain, the user's personal AI.",
29)
30print(f"Calling... {call.id}")

Feeding calls back into GBrain

After calls, you can write transcripts back to your brain using a webhook + GBrain’s write tools.

1. Set up a webhook handler

call_to_brain.py
1from flask import Flask, request
2import subprocess, json, datetime
3
4app = Flask(__name__)
5
6@app.route("/webhook/agentphone", methods=["POST"])
7def handle_call():
8 payload = request.json
9
10 if payload["event"] == "agent.call_ended":
11 call = payload["data"]
12 caller = call.get("from", "unknown")
13 transcript = call.get("transcript", "")
14 date = datetime.date.today().isoformat()
15
16 # Write to GBrain as a meeting page
17 page_content = f"""# Phone Call — {caller}
18Date: {date}
19Duration: {call.get('duration', 'unknown')}s
20
21## Transcript
22{transcript}
23"""
24 # Write to brain directory
25 filename = f"meetings/{date}-call-{caller.replace('+', '')}.md"
26 with open(f"/path/to/brain/{filename}", "w") as f:
27 f.write(page_content)
28
29 return {"ok": True}

2. Point AgentPhone at your handler

$curl -X POST https://api.agentphone.to/v1/webhooks \
> -H "Authorization: Bearer $AGENTPHONE_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{"url": "https://your-server.ngrok.app/webhook/agentphone"}'

Now every call automatically creates a brain page with the transcript — same as the DIY recipe, without the infrastructure.

Inbound calls

Once your agent has a number, anyone can call it. The hosted AI picks up automatically and follows the system prompt. No TwiML, no ngrok, no watchdog cron.

To have your personal phone answered by Brain, forward your phone to the agent’s number in your carrier settings.

What you skip

The GBrain voice recipe requires you to:

  1. Verify Node.js 18+ installed Not needed
  2. Get Twilio Account SID + Auth Token Not needed
  3. Get OpenAI API key for Realtime Not needed
  4. Get ngrok auth token ($8/mo for fixed domain) Not needed
  5. Launch ngrok tunnel on port 8765 Not needed
  6. Create Node.js voice server with WebSocket bridge Not needed
  7. Configure Twilio phone number webhook Not needed
  8. Verify health endpoint Not needed
  9. Set up caller routing and OTP Handled by AgentPhone
  10. Create watchdog cron job Not needed

With AgentPhone: get API key, create agent, buy number. Done.