Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

324 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BokeBox

BokeBox

Content in. Private podcasts out.
Turn multi-source content into private shows you can finish. Persona, voice, plugins, MCP — self-hosted.

English · 简体中文

GitHub Demo Docs LGPL-3.0 visitors

BokeBox - Multi-source private podcasts with MCP + plugins | Product Hunt

Demo · Docs · Product Hunt · Get started · UI · Features · Disclaimer

BokeBox — Content in. Private podcasts out.


Bottom line first

BokeBox turns “I’ll read/watch it later” into private episodes you can actually finish — and keep.

You put in You get back
Video / links / drafts / meetings & courses Spoken episode + cover + flashcards + progress
Global or per-episode persona / voice Feels like a show made for you
Plugins / MCP / schedules Extensible inputs, AI-native control

One line: a self-hosted private AI podcast studio — your data stays local, the pipeline is pluggable, listening quality beats feature bloat.

Try it now

git clone https://github.com/vastsa/BokeBox.git
cd bokebox
cp .env.example .env   # add API keys
./start.sh             # http://localhost:5173

Docker (recommended prebuilt image):

cp .env.example .env
docker pull ghcr.io/vastsa/bokebox:latest
./start.sh docker      # http://localhost:8787

30-second pitch

  What you put in                    What BokeBox gives back
  ─────────────────                  ──────────────────────
  Meetings / notes                   Rhythmic spoken episodes
  Long reads / talks / courses       Host persona + natural voice
  Any link (plugin-extensible)       Cover · flashcards · progress
  1. Drop it in — video, link, draft, or plugin sources
  2. Tune optionally — persona, voice, prompts
  3. Let it run — ASR → spoken script → TTS → cover / cards
  4. Listen — player + albums + star map + review

Why it matters

Pain What BokeBox does
Endless “read later” Moves content into ear time
Robot read-aloud Rewrites into spoken structure with persona
Heard and forgotten Auto flashcards for key points
Locked-in inputs Source / ASR / TTS / Schedule plugins
Cloud lock-in Single-user self-host; jobs & media stay local

Good fit: knowledge workers, commute listeners, private “shows for myself”, privacy-minded self-hosters.
Not a fit: public podcast platforms, multi-tenant SaaS, live collaborative editing.


UI

Create, listen, and manage assets in one private space.

Home Player
BokeBox home BokeBox player
Flashcards Star Map
BokeBox flashcards BokeBox star map

Settings

Persona Prompts
BokeBox persona settings BokeBox prompt template settings
Plugins MCP
BokeBox plugins settings BokeBox MCP settings
Schedules Site
BokeBox subscription schedules BokeBox site settings

Feature map

Expand full checklist (pipeline / listening / plugins / MCP / deploy)

Multi-source input

  • Local upload: video / audio / draft
  • URL import: article body, public media links
  • Pin a Source plugin or auto-match; assign album, persona, voice on create

AI production pipeline

  • Extract → ASR → spoken script → cover / notes / flashcards → TTS
  • Async jobs with home progress; re-run from a chosen step and skip finished stages
  • Publish to library, retry failures, delete jobs

Persona · voice · prompts

  • Global host persona + per-episode override
  • Preset voices + text-described voice design
  • Prompt hub: cover / spoken / rewrite / flashcards with {{placeholders}}
  • Content language: global default or per job

Assets & listening

  • Job detail: transcript, script, notes, flashcards, cover, audio
  • Player: progress memory, speed, sleep timer (incl. end of episode)
  • Albums for continuous play; Star Map by tags

Settings center

  • Voice / Persona / Prompts / AI service / Plugins / Schedules / MCP / Site / Account
  • Account: UI language (system / zh / en) + theme (system / light / dark)

Schedules

  • Schedule plugins discover candidates; Source plugins fetch/parse
  • Built-ins: RSS, URL list, GitHub Trending, Hacker News, …
  • Dedup, rate limits, run now / force, run history
  • Guide: docs/guide/schedule.md

Plugins

MCP (AI-native control)

  • Built-in POST /mcp with auto long-lived token
  • Copy Cursor / Claude / Codex install configs from Settings
  • Tools include create_podcast_from_url / create_podcast_from_text / list_jobs / get_job / schedule tools, …
  • Optional PUBLIC_BASE_URL for reverse-proxy install URLs

Cursor example:

{
  "mcpServers": {
    "bokebox": {
      "url": "http://localhost:8787/mcp",
      "headers": {
        "Authorization": "Bearer <token from Settings>"
      }
    }
  }
}

Deploy & privacy

  • ./start.sh dev · ./start.sh prod single port · Docker prebuilt / local / China mirrors
  • Single-user self-host: SQLite + local storage
  • License: LGPL-3.0 · repo: https://github.com/vastsa/BokeBox

Get started

Prefer clicking first? Demo · details in docs

git clone https://github.com/vastsa/BokeBox.git
cd bokebox
cp .env.example .env   # add your API keys
./start.sh             # http://localhost:5173

First launch walks through account setup and model config.

Mode Command Open
Local dev ./start.sh http://localhost:5173
Single-port prod ./start.sh prod see script output
Docker prebuilt docker pull ghcr.io/vastsa/bokebox:latest && ./start.sh docker http://localhost:8787
Docker local build ./start.sh docker.local http://localhost:8787
China mirrors build ./start.sh docker.cn http://localhost:8787

Docs & links

Entry URL
Online docs (EN/ZH) https://bkb-docs.aiuo.net
Demo https://bokebox.aiuo.net
In-repo docs docs/ (VitePress)
Plugins / developer guides docs/plugins/ · docs/development/
CI / images docs/ops/ci-cd.md
pnpm docs:dev
pnpm docs:build
pnpm docs:preview

Roadmap & contribute

  • Better multi-episode / continue-listening flows
  • Richer voices and providers
  • Subscription export (e.g. RSS) into apps you already use
  • Lighter one-click desktop packaging

If that resonates:

  1. Star the repo
  2. Open an Issue — what should be “podcast-ified”?
  3. PRs welcome — UX, copy, voices & model adapters especially

Shareable one-liner: BokeBox turns videos, links, articles, meetings, and courses into private podcasts. Customize persona and voice, with MCP and pluggable sources. Self-hosted — your data stays under your control.

Content in. Private podcasts out. Most tools help you produce content faster; BokeBox helps you digest it better.


Appendix: requirements · commands · config · stack

Requirements

  • Node.js ≥ 22.5 · pnpm 9.x
  • OpenAI-compatible API (Chat / ASR / TTS; image model optional)

Common commands

Command Description
./start.sh Local dev (web 5173 + API 8787)
./start.sh prod Build and run on a single port
./start.sh docker Pull ghcr.io/vastsa/bokebox:latest and start
./start.sh docker.local Build from local Dockerfile and start
./start.sh docker.cn Build with China mirrors and start
./start.sh docker:down Stop containers

Config highlights (.env)

OPENAI_API_KEY=sk-your-key
OPENAI_BASE_URL=https://api.example.com/v1
OPENAI_CHAT_MODEL=mimo-v2.5
OPENAI_TRANSCRIBE_MODEL=mimo-v2.5-asr
OPENAI_TTS_MODEL=mimo-v2.5-tts
OPENAI_TTS_DEFAULT_VOICE=冰糖

Full variables: .env.example.

Pipeline (sketch)

multi-source input (video / link / draft / plugins)
  → normalize → ASR/understanding → spoken script
  → parallel: cover / flashcards / TTS → library

Stack

React · Vite · Fastify · SQLite · ffmpeg · pnpm monorepo

License

LGPL-3.0 — open source; derivative works of the library must remain LGPL-compatible. Repo: https://github.com/vastsa/BokeBox



Disclaimer

This project is provided “AS IS”, for learning, research, and technical exchange only. The authors and contributors make no warranties, express or implied, including but not limited to merchantability, fitness for a particular purpose, non-infringement, accuracy, availability, or continued availability.

By using, deploying, modifying, or distributing this project (including derivatives and third-party plugins), you acknowledge and agree that:

  1. Compliance is your responsibility
    You must comply with all applicable laws and regulations in your jurisdiction(s), including copyright and related rights, personal data / privacy, cybersecurity, generative-AI rules, trade secrets, platform terms of service, and export controls.

  2. Content rights are on you
    You alone must ensure that materials you ingest, scrape, transcribe, rewrite, synthesize, store, or distribute are lawfully authorized or otherwise permitted. Do not use this project for infringement, circumvention of technical protection measures, unauthorized access, fraud, harassment, or other unlawful purposes.

  3. Risks stay with the operator
    To the maximum extent permitted by law, the authors and contributors are not liable for any direct, indirect, incidental, special, punitive, or consequential damages (including data loss, downtime, account bans, third-party claims, or administrative penalties) arising from use of this project. Enabling plugins, MCP, schedules, guest access, reverse proxies, or public exposure is at your own risk.

  4. Third-party services & dependencies
    Model APIs, TTS/ASR providers, fetch-style plugins, container images, and other third-party components have their own terms and billing. Their availability, cost, safety policies, and compliance duties are outside this project’s responsibility.

  5. Demo & docs
    The demo instance and documentation examples are for illustration only and are not a product commitment, professional advice, or implied license. Do not put real secrets, private data, or protected content into the demo environment.

  6. Open-source license
    Software licensing is governed by the root LICENSE (LGPL-3.0-only). This disclaimer supplements risk notice and liability boundaries and does not alter rights or obligations under LGPL. If any part conflicts with mandatory law, that part yields to the law and the remainder continues in effect.

If you do not agree, do not download, install, use, or distribute this project.

BokeBox
Private AI podcast box · Open Source · LGPL-3.0
github.com/vastsa/BokeBox

About

BokeBox: multi-source private AI podcast studio — videos/links/articles/notes → spoken episodes. Custom persona & voice, MCP + pluggable sources, self-hosted. BokeBox(播匣):内容进匣,AI 成播;多源输入、MCP、插件源、私有部署、订阅。

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages