Democracy dies in silence
See a demo of it in action here.
The first thing you need to know is that in the 90's, there was a board game called Dream Phone. This is a real thing that exists.
With that whimsy in mind, American Dream Phone is a Pipecat AI Voice Agent to help you call your political representatives. Some may call it 'revenge of the robo-calls', I call it civic engagement.
- Python 3.10+
- API keys. See services.
cp env.example .envAdd API keys as needed. All services (transport, LLM, STT, and TTS) are all changeable. See services.
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtpython bot_runner.pycurl -X POST "http://localhost:7860/start" \
-H "Content-Type: application/json" \
-d '{
"config": {"testInPrebuilt": true}
}'
==>
{"status":"Bot started","bot_type":"bot","room_url":"https://YOUR_DOMAIN.daily.co/ROOM"}This will return a daily prebuilt URL. Navigate there to talk to and test the bot.
curl -X POST "http://localhost:7860/start" \
-H "Content-Type: application/json" \
-d '{
"config": {
"dialout_settings": [{
"phoneNumber": "+15551234567"
}]
}
}'
==>
{"status":"Bot started","bot_type":"bot","dialing_to":"phone:+15551234567"}This actually calls the phone number. (Debug pro tip- stay in the daily room and listen in on the conversation.)
By using pipecat, all services (transport, LLM, STT, and TTS) are all changeable. These are just the ones I started with.
- "Orchestration"
Pipecat- ᓚᘏᗢ Python framework; the glue that makes it all possible.
- transport
- LLM
- STT
- TTS
PlayAI- I used this service to clone my voice.
- MCP server for fetch
- mcp.run -
"mcp.run" - Connect as many MCP servers as you like...
- mcp.run -
- use some API to auto get representative phone numbers like https://5calls.org/representatives-api/ (maybe an MCP around this?)
- huge shout out to this pipecat example
- E l e c t r o n i c Dream Phone


