LiveWire is a demo application showcasing SignalWire capabilities for voice, messaging, and AI integrations. The project is structured to be easy to understand and modify, following modern Python best practices.
- Fork this Replit: Click the "Fork" button to create your own copy
- Set up environment variables in the Replit Secrets panel:
SIGNALWIRE_SPACE: Your SignalWire space nameSIGNALWIRE_PROJECT: Your SignalWire project IDSIGNALWIRE_TOKEN: Your SignalWire API tokenNGROK_AUTHTOKEN: Your ngrok authtoken (optional, but recommended)
- Click Run: The application will automatically install dependencies and start
livewire/
│
├── src/livewire/ # Backend code
│ ├── app.py # Main application entry point
│ ├── routes/ # API and HTML endpoints
│ │ ├── api/ # Backend API endpoints
│ │ ├── html/ # Page routes
│ │ └── swaig_functions/ # SignalWire AI functions
│ ├── stores/ # In-memory data management
│ └── utils/ # Helper functions
│
├── static/ # Frontend assets
│ ├── css/ # Styles
│ └── js/ # Client-side code
│ └── modules/ # JavaScript modules by feature
│
├── templates/ # HTML templates (Jinja2)
│
├── .replit # Replit configuration
├── Makefile # Build and run commands
└── requirements.txt # Python dependencies
- Handles inbound/outbound calls via SignalWire
- Uses SWML (SignalWire Markup Language) for call flow control
- Provides call monitoring and status updates
- Demo user authentication system
- Subscriber status tracking
- Call routing based on subscriber availability
- Uses SignalWire SWAIG for AI-powered voice experiences
- Demonstrates AI agent capabilities
- Shows practical usage patterns for the SignalWire AI platform
- Clone the repository
- Create a virtual environment:
python -m venv venv - Activate the environment:
- Windows:
venv\Scripts\activate - Unix/MacOS:
source venv/bin/activate
- Windows:
- Install dependencies:
make install - Set up environment variables (see .env.example)
- Run the application:
make start
make install: Install dependenciesmake start: Run the applicationmake lint: Check code stylemake format: Format codemake clean: Clean up temporary files
This is a tech demo only and includes intentional simplifications:
- Uses in-memory storage instead of a database
- Limited error handling and security features
- Simplified authentication flow