Automated developer onboarding via podcast-style audio walkthroughs of Python codebases.
Project description
๐๏ธ Podifyr-AI
AI-powered CLI that transforms Python codebases into podcast-style audio walkthroughs using LangGraph agentic pipelines, AST analysis, dependency graph traversal, and neural text-to-speech synthesis
What is Podifyr-AI?
Podifyr-AI is a CLI tool that analyzes a Python repository's architecture and generates a conversational, podcast-style audio walkthrough. It's designed to accelerate developer onboarding by letting new team members listen to an AI-generated explanation of the system architecture โ like having a senior engineer give them a KT session on day one.
How It Works
Repository โ AST Parsing โ Dependency Graph โ AI Script โ TTS Audio โ ๐ง Walkthrough
- Parse: Traverses the repo and extracts structural metadata (classes, functions, imports) using Python's AST module
- Graph: Builds a directed dependency graph to understand module relationships and reading order
- Script: Uses a multi-agent LangGraph pipeline (Analyzer โ Scriptwriter) to generate conversational explanations
- Audio: Synthesizes speech via Edge TTS (free) or OpenAI TTS with concurrent chunk generation and FFmpeg stitching
Quick Start
Installation
pip install podifyr-ai
Generate a Walkthrough (Free โ No API key for TTS)
# Set your OpenAI API key (needed for script generation)
export OPENAI_API_KEY="sk-..."
# Generate a walkthrough โ uses free Edge TTS by default
podifyr-ai generate ./path/to/your/repo
Or pass everything via CLI (no env setup needed)
podifyr-ai generate ./my-project \
--api-key sk-your-key-here \
--tts-backend edge \
--output ./walkthrough
Azure OpenAI
podifyr-ai generate ./my-project \
--api-key your-azure-key \
--azure-endpoint https://your-resource.openai.azure.com \
--azure-deployment gpt-4o-mini \
--tts-backend edge
CLI Reference
podifyr-ai generate <REPO_PATH> Generate a podcast walkthrough
Options:
--output, -o PATH Output directory [default: ./podifyr_output]
--api-key TEXT OpenAI/Azure API key (or set OPENAI_API_KEY)
--tts-backend TEXT TTS: 'edge' (free), 'openai', 'elevenlabs'
--voice TEXT Voice: alloy, echo, fable, onyx, nova, shimmer
--azure-endpoint TEXT Azure OpenAI endpoint (enables Azure mode)
--azure-deployment TEXT Azure chat model deployment name
--skip-audio Generate script only, skip audio
--no-cache Disable caching for this run
--concurrency, -c INT Max concurrent TTS requests [1-20]
--graph-details Show dependency graph metrics
--verbose, -V Enable debug logging
podifyr-ai config init Create .env configuration file
podifyr-ai config show Display current resolved settings
podifyr-ai cache clear Clear cached data
podifyr-ai cache stats Show cache statistics
podifyr-ai --version Show version
TTS Backends
| Backend | Cost | API Key Required | Quality | Setup |
|---|---|---|---|---|
| Edge (default) | Free | No | Good (Microsoft Neural) | None |
| OpenAI | ~$0.015/1K chars | Yes (OPENAI_API_KEY) |
Good | API key |
| ElevenLabs | Varies | Yes (ELEVENLABS_API_KEY) |
Excellent | pip install podifyr-ai[elevenlabs] |
Configuration
Settings are resolved in priority order: CLI flags > Environment variables > .env file > Defaults
# Generate a template .env file
podifyr-ai config init
# View resolved configuration
podifyr-ai config show
Key Environment Variables
| Variable | Default | Description |
|---|---|---|
OPENAI_API_KEY |
โ | OpenAI API key (for LLM script generation) |
PODIFYR_TTS_BACKEND |
edge |
TTS backend: edge, openai, elevenlabs |
PODIFYR_TTS_VOICE |
alloy |
Voice identifier |
PODIFYR_AZURE_ENABLED |
false |
Use Azure OpenAI for LLM |
PODIFYR_AZURE_ENDPOINT |
โ | Azure OpenAI resource URL |
PODIFYR_AZURE_API_KEY |
โ | Azure API key |
PODIFYR_AZURE_CHAT_DEPLOYMENT |
โ | Azure model deployment name |
See docs/getting-started/configuration.md for the full reference.
Features
- ๐ง AST-based analysis โ Extracts architecture without executing code
- ๐ Dependency graphing โ Cycle-aware topological sorting with NetworkX
- ๐ค Multi-agent pipeline โ LangGraph orchestration with analyzer + scriptwriter nodes
- ๐ Free TTS included โ Edge TTS (Microsoft Neural voices) works out of the box
- ๐ Plugin backends โ Swappable TTS providers (Edge, OpenAI, ElevenLabs)
- โ๏ธ Azure OpenAI โ Full support for Azure OpenAI deployments
- ๐พ Smart caching โ Content-hash invalidation avoids redundant API calls
- ๐ Rich CLI โ Beautiful progress bars, graph metrics, and colored output
- ๐ณ Docker support โ Reproducible builds with multi-stage Dockerfile
- โ Production-grade โ Strict typing, structured logging, comprehensive test suite
Architecture
src/podifyr/
โโโ core/ # Exceptions, constants, protocols, types
โโโ config/ # Pydantic settings with layered resolution
โโโ logging/ # Structured logging with structlog
โโโ utils/ # Filesystem helpers, retry logic, async patterns
โโโ cache/ # Disk-based caching with content-hash invalidation
โโโ parsing/ # AST visitor, models, filtering engine
โโโ graph/ # NetworkX graph builder and analyzer
โโโ agents/ # LangGraph nodes, prompts, orchestrator
โโโ audio/ # TTS backends (Edge, OpenAI, ElevenLabs, Azure), stitcher
โโโ cli/ # Typer commands with rich display
Requirements
- Python 3.10+
- FFmpeg (for audio stitching)
- An LLM API key (OpenAI or Azure OpenAI) for script generation
- TTS: Edge TTS works free with no key; OpenAI/ElevenLabs require API keys
Install FFmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt-get install ffmpeg
# Windows
winget install ffmpeg
Development
# Clone and install in dev mode
git clone https://github.com/anunayandkumar/podifyr-ai.git
cd podifyr-ai
pip install -e ".[dev,docs,all]"
# Run tests
pytest
# Run linter and type checker
ruff check src/ tests/
mypy src/
License
MIT โ see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file podifyr_ai-2026.5.24.tar.gz.
File metadata
- Download URL: podifyr_ai-2026.5.24.tar.gz
- Upload date:
- Size: 48.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa32a5618efe737fcc4cced156fe1d219f1bf736786fb28586e698e0345e5767
|
|
| MD5 |
764b5769185345a3efa4f9950f75f36e
|
|
| BLAKE2b-256 |
d27abd33a98f3b67d174674d8ca4d3c0dfc42d898a194d9fbcb925ff56a014dc
|
File details
Details for the file podifyr_ai-2026.5.24-py3-none-any.whl.
File metadata
- Download URL: podifyr_ai-2026.5.24-py3-none-any.whl
- Upload date:
- Size: 58.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fe92621e3be9f41c6151410f40fbeb8110d9e6f1be3c2ff2635b0b1edf8f780
|
|
| MD5 |
6f8c3a6931561422ec6c4364c4f0aa80
|
|
| BLAKE2b-256 |
46002116c4b272048c396709c9c78ffc61f508af1eebf54b057f6a410e175ec2
|