Gitpodcast
Convert any git repository into an engaging podcast
Install / Use
/learn @BandarLabs/GitpodcastREADME
GitPodcast
Turn any GitHub repository into an engaging podcast in seconds.
You can also replace hub with podcast in any Github URL to access its podcast.
🚀 Features
- 👀 Instant Podcast: Convert any GitHub repository structure into a podcast
- 🎨 Customization: Choose Voices (WIP)
- ⚡ Fast Generation: Powered by OpenAI and Azure Speech SDK
- 🌐 API Access: Public API available for integration (WIP)
- 💰Cost Effective: Free (via Gemini Flash + Azure Speech SDK)
⚙️ Tech Stack
- Frontend: Next.js, TypeScript, Tailwind CSS, ShadCN
- Backend: FastAPI, Python, Server Actions
- Database: PostgreSQL (with Drizzle ORM)
- AI: OpenAI 4o / Azure Speech
- Deployment: Vercel (Frontend), EC2 (Backend)
- CI/CD: GitHub Actions
- Analytics: PostHog, Api-Analytics
🛠️ Self-hosting / Local Development
- Clone the repository
git clone https://github.com/BandarLabs/gitpodcast.git
cd gitpodcast
- Install dependencies
pnpm i
- Set up environment variables (create .env)
cp .env.example .env
Then edit the .env file with your OpenAI API key for SSML and Azure AI Speech Key for TTS (https://azure.microsoft.com/en-us/pricing/details/cognitive-services/speech-services/).
You can also use Gemini Flash for the SSML. You will need to change the code from OpenAIService to GeminiService.
- Run backend
docker-compose up --build -d
Logs available at docker-compose logs -f
The FastAPI server will be available at localhost:8000
- Start local database
chmod +x start-database.sh
./start-database.sh
When prompted to generate a random password, input yes.
The Postgres database will start in a container at localhost:5432
- Initialize the database schema
pnpm db:push
You can view and interact with the database using pnpm db:studio
- Run Frontend
pnpm dev
You can now access the website at localhost:3000 and edit the rate limits defined in backend/app/routers/generate.py in the generate function decorator.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgements
Shoutout to [Romain Courtois/Ahmed Khalil]'s Gitingest and Gitdiagram for inspiration and styling
📈 Rate Limits
I am currently hosting it for free with the following rate limits. If you would like to bypass these, self-hosting instructions are provided. I also plan on adding an input for your own OpenAI API key.
Podcast generation:
- 15 API calls/minute via Gemini Flash Exp. 2.0 for Github -> SSML
- 0.5 million characters for SSML -> Speech (via Azure Speech Service)
🤔 Future Steps
- Allow user to choose Voices
- Remove dependence on Anthopic of token count
- Allow user prompts
Related Skills
apple-reminders
339.5kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
339.5kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
imsg
339.5kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
oracle
339.5kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).

