unpod

unpod

Wordpress for Voice AI.

Stars: 53

Visit
 screenshot

Unpod is a lightweight and easy-to-use tool for extracting audio from video files. It allows users to quickly and efficiently separate audio tracks from video content without the need for complex software or technical knowledge. With Unpod, users can easily extract audio for various purposes such as creating podcasts, remixing music, or enhancing video content with custom soundtracks. The tool supports a wide range of video formats and provides a simple interface for selecting and extracting audio tracks with just a few clicks. Unpod is a versatile solution for anyone looking to work with audio extracted from video files in a hassle-free manner.

README:

Unpod

Open-source AI Native Communication Platform

License: MIT Docs Website

Documentation | Website | Contributing


Unpod is an open-source communication platform for creating AI agents with dedicated phone numbers. Build agents that handle incoming calls and messages, filter communications intelligently, and deliver actionable insights — all while integrating with your existing business tools.

Features

  • AI Voice Agents — Build conversational voice agents powered by LLMs with customizable personality, knowledge, and tools
  • Multi-Channel — Voice calls, WhatsApp, and email through a unified agent interface
  • Real-Time Voice Pipeline — Sub-second latency using LiveKit, Pipecat, and streaming TTS/STT
  • Agent Studio — Visual no-code builder for configuring agent behavior, prompts, and workflows
  • Knowledge Base — Upload documents and data sources for RAG-powered agent responses
  • Multi-Tenant Workspaces — Organizations, teams, RBAC, and shared spaces
  • Telephony Integration — Dedicated phone numbers with SIP trunking and call routing
  • Call Analytics — Real-time dashboards, conversation logs, and performance metrics
  • Workflow Automation — Trigger actions (scheduling, CRM updates, notifications) from conversations
  • Desktop App — Native cross-platform desktop client built with Tauri

Quick Start

Prerequisites

  • Node.js 20+ / npm 10+
  • Python 3.11+ (3.10+ for apps/super)
  • Docker & Docker Compose
  • uv (only for apps/super)

One-Command Setup

make quick-start    # Install deps, start Docker, run migrations
make dev            # Start frontend (port 3000) + backend (port 8000)

Docker-Only (No Local Dependencies)

docker compose -f docker-compose.simple.yml up -d --build

Starts everything in containers with working defaults. Default admin: [email protected] / admin123.

Manual Setup

# Install Node.js dependencies
npm install

# Create Python venv for backend
python3 -m venv apps/backend-core/.venv
source apps/backend-core/.venv/bin/activate
pip install -r apps/backend-core/requirements/local.txt

# Start infrastructure (PostgreSQL, MongoDB, Redis, Centrifugo)
docker compose -f docker-compose.simple.yml up -d postgres mongodb redis centrifugo

# Run migrations and start dev servers
cd apps/backend-core && python manage.py migrate --no-input && cd ../..
npm run dev

Access Points

Service URL
Frontend http://localhost:3000
Backend API http://localhost:8000/api/v1/
Admin Panel http://localhost:8000/unpod-admin/
API Services http://localhost:9116/docs
Centrifugo http://localhost:8100

Architecture

Unpod is an NX monorepo with four main applications and a shared library layer:

unpod/
├── apps/
│   ├── web/              # Next.js 16 frontend (React 19)
│   ├── backend-core/     # Django 5 REST API
│   ├── api-services/     # FastAPI microservices
│   ├── super/            # Voice AI engine (LiveKit + Pipecat)
│   └── unpod-tauri/      # Desktop app (Tauri 2)
├── libs/
│   └── nextjs/           # Shared React libraries (@unpod/*)
├── infrastructure/
│   └── docker/           # Dockerfiles & service configs
└── scripts/              # Setup, migration, and utility scripts

Tech Stack

Layer Technology
Frontend Next.js 16 / React 19 / styled-components / Ant Design
Monorepo NX 22
Desktop Tauri 2
Backend Django 5 + DRF / FastAPI
Voice AI LiveKit + Pipecat + LangChain
Databases PostgreSQL 16, MongoDB 7, Redis 7
Messaging Kafka (KRaft), Centrifugo v5

Apps

Web — apps/web/

Next.js 16 frontend with App Router, group-based layouts, styled-components, and Ant Design.

npx nx dev web              # Dev server at port 3000
npx nx build web            # Production build
npx nx e2e web              # Playwright E2E tests

Environment: copy apps/web/.env.local.example to apps/web/.env.local.

Key routes
Area Routes
Auth /auth/signin, /auth/signup, /auth/forgot-password, /auth/reset-password
Onboarding /create-org, /join-org, /verify-invite, /ai-identity, /business-identity
Dashboard /dashboard
AI Studio /ai-studio, /ai-studio/new, /ai-studio/[pilotSlug]
Agent Studio /agent-studio/[spaceSlug], /configure-agent/[spaceSlug]
Spaces /spaces, /spaces/[spaceSlug]/chat, /spaces/[spaceSlug]/call, /spaces/[spaceSlug]/doc
Knowledge /knowledge-bases, /knowledge-bases/[kbSlug]
Settings /profile, /settings, /org/settings, /api-keys

Desktop app (Tauri): npm run desktop:dev / npm run desktop:build

Backend Core — apps/backend-core/

Django 5 REST API with JWT auth, multi-tenant organizations, RBAC, and background tasks.

cd apps/backend-core
source .venv/bin/activate
python manage.py runserver        # API at port 8000
pytest                            # Run tests
Management commands
python manage.py migrate                # Run migrations
python manage.py createsuperuser        # Create admin user
python manage.py create_default_user    # Create default test user
python manage.py seed_reference_data    # Seed initial data
python manage.py setup_schedules        # Setup scheduled tasks
python manage.py update_pilot           # Update AI pilot configs
python manage.py update_voice_profile   # Update voice profiles
python manage.py update_models          # Update AI model configs
python manage.py process_calls          # Process call logs
API endpoints (all under /api/v1/)
Prefix Description
auth/ JWT authentication & registration
password/ Password reset flow
organization/ Organization management
spaces/ Workspace management
threads/ Conversation threads
roles/ RBAC roles & permissions
knowledge_base/ Knowledge base & documents
documents/ File management
metrics/ Analytics & call logs
core/pilots/ AI voice agent profiles
core/providers/ LLM/voice provider listing
core/voice/ LiveKit room tokens
core/voice-profiles/ Voice profile management
media/upload/ File upload

API Services — apps/api-services/

FastAPI microservices for messaging, document store, AI search, and task management. MongoDB primary storage.

cd apps/api-services
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 9116 --reload

Interactive docs at http://localhost:9116/docs.

Route Service Description
/api/v1/store store_service Document store & indexing
/api/v1/connector store_service Data connectors
/api/v1/voice store_service LiveKit voice/video
/api/v1/search search_service AI-powered search
/api/v1/conversation messaging_service Chat conversations
/api/v1/agent messaging_service Agent management
/api/v1/task task_service Task management

WebSocket: ws://localhost:9116/ws/v1/conversation/{thread_id}/

Voice AI — apps/super/

Voice AI engine built on LiveKit and Pipecat. Orchestrates real-time voice agents with LLM providers, TTS/STT engines, and workflow automation via Prefect.

cd apps/super

# Install (uv recommended)
uv pip install -r requirements/super.txt -r requirements/super_services.txt

# Run voice executor
uv run super_services/orchestration/executors/voice_executor_v3.py start

# Run Prefect worker
uv run -m prefect worker start --pool call-work-pool
# Testing
pytest                      # All tests
pytest -m unit              # Unit tests only
pytest -m integration       # Integration tests

Required env vars: LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET, OPENAI_API_KEY, ANTHROPIC_API_KEY, DEEPGRAM_API_KEY, CARTESIA_API_KEY, PREFECT_API_URL


Docker

Development Setup (Recommended)

Uses docker-compose.simple.yml — single PostgreSQL instance, all services pre-configured:

docker compose -f docker-compose.simple.yml up -d        # Start
docker compose -f docker-compose.simple.yml logs -f       # Logs
docker compose -f docker-compose.simple.yml down          # Stop
docker compose -f docker-compose.simple.yml down -v       # Stop + remove data
Container Port Service
unpod-postgres 5432 PostgreSQL 16
unpod-mongodb 27017 MongoDB 7
unpod-redis 6379 Redis 7
unpod-centrifugo 8100 Centrifugo v5
unpod-backend-core 8000 Django API
unpod-api-services 9116 FastAPI
unpod-web 3000 Next.js

Full Infrastructure

Uses docker-compose.yml — separate PostgreSQL per service + Kafka (KRaft). For microservices development:

docker compose up -d
Full infrastructure containers
Container Port Purpose
unpod-postgres-auth 5432 Auth service DB
unpod-postgres-orders 5433 Orders service DB
unpod-postgres-notifications 5434 Notifications service DB
unpod-postgres-analytics 5435 Analytics service DB
unpod-postgres-store 5436 Store service DB
unpod-postgres-main 5437 Backend-core DB
unpod-mongodb 27017 Shared MongoDB
unpod-redis 6379 Shared Redis
unpod-kafka 9092 Kafka broker (KRaft)
unpod-kafka-ui 8080 Kafka management UI

Development Commands

Make (uses docker-compose.simple.yml)

Command Description
make quick-start Full setup: env + deps + docker + db + migrate
make dev Start frontend + backend dev servers
make docker Start Docker containers
make migrate Run Django migrations
make stop Stop Docker containers
make clean Stop containers and remove all data
make logs Tail Docker container logs
make superuser Create Django superuser

NPM

Command Description
npm run dev Start web + backend-core (via NX)
npm run dev:frontend Frontend only (port 3000)
npm run build Build frontend
npm run test Run tests
npm run e2e E2E tests (Playwright)
npm run lint:all Lint all projects
npm run graph View NX dependency graph

Environment Configuration

Copy .env.example to .env at the repo root. The Docker simple setup passes all variables to containers automatically.

For local development, each app reads config from:

App Config Source
backend-core .env in its own directory (DJANGO_READ_DOT_ENV_FILE=True)
api-services .env from monorepo root via python-dotenv
web apps/web/.env.local (copy from .env.local.example)
super .env from monorepo root via python-dotenv
Required variables
DJANGO_SECRET_KEY=<random-string>
POSTGRES_DB=unpod_db
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
MONGO_DSN=mongodb://admin:admin@localhost:27017/messaging_service?authSource=admin
REDIS_URL=redis://localhost:6379/1
Optional variables (AI, voice, payments, storage)
# AI / LLM
OPENAI_API_KEY=           # GPT models
ANTHROPIC_API_KEY=        # Claude models
DEEPGRAM_API_KEY=         # Speech-to-text
ELEVENLABS_API_KEY=       # Text-to-speech
CARTESIA_API_KEY=         # Text-to-speech
GROQ_API_KEY=             # Fast inference

# Voice & Video
LIVEKIT_URL=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=

# Real-time
CENTRIFUGO_API_KEY=
CENTRIFUGO_TOKEN_HMAC_SECRET_KEY=

# Storage (AWS S3)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_STORAGE_BUCKET_NAME=

# Payments
RAZORPAY_KEY=
RAZORPAY_SECRET=

# Email
SENDGRID_API_KEY=

See .env.example for the full list.


Contributing

  1. Create a feature branch from main
  2. Make your changes
  3. Run linting: npm run lint:all
  4. Create a pull request

See docs.unpod.dev for detailed contribution guidelines.

License

MIT License - see LICENSE

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for unpod

Similar Open Source Tools

For similar tasks

For similar jobs