Skip to main content

eidos-podcast

NotebookLM-style two-host podcasts from any text — free and fixed-cost.

content ──► claude -p ──► 2-host dialogue ──► TTS engine ──► audio
           (subscription,    (ALEX + JORDAN)   edge → .mp3
            no API key)                         kokoro → .wav

No paid APIs anywhere. The script is written by claude -p (your Claude subscription — fixed cost, no token bill, no key). The voices are Microsoft Edge neural TTS via edge-tts (free, no key). That's the whole pitch vs. Podcastfy and the other podcast MCPs, which route the script and/or the audio through paid APIs.

Install

uv tool install .          # gives `eidos-podcast` + `eidos-podcast-mcp`

Requires claude CLI on PATH (Claude Code).

CLI

eidos-podcast "any text you want explained"      # text as arg
eidos-podcast --file notes.md -o show.mp3        # from a file
pbpaste | eidos-podcast                           # from stdin
eidos-podcast --file paper.md --turns 20          # longer show
eidos-podcast --file notes.md --engine kokoro    # more expressive, local

Engines

--engine Voices Output Speed When
edge (default) MS Edge neural .mp3 instant quick, networked, good enough
kokoro Kokoro-82M local .wav fast offline, more natural prosody
dia Dia 1.6B local (MLX) .wav ~2× real-time the keeper: two speakers + real laughs/overlap in one pass

All three are free, no API key. edge networks to Microsoft; kokoro and dia run fully local.

kokoro needs two model files in ~/.cache/eidos-podcast/ (kokoro-v1.0.onnx, voices-v1.0.bin) from the kokoro-onnx releases.

dia needs mlx-audio (Apple Silicon only): uv tool install mlx-audio --with misaki --prerelease=allow. It generates both speakers together — real nonverbals and overlap that edge/kokoro can't do — auto-chunking long scripts. Voices can drift slightly at chunk seams (upgrade path: a fixed audio-prompt seed to pin S1/S2).

MCP

Register the server with Claude Code:

claude mcp add eidos-podcast eidos-podcast-mcp

Then ask Claude to "make a podcast from this." Exposes one tool: create_podcast(content, out_path?, turns?) -> mp3 path.

Tuning

  • Voices: edit HOSTS in eidos_podcast.py (edge-tts --list-voices for options).
  • "Compelling": the entire quality lever is SCRIPT_PROMPT in eidos_podcast.py — cold opens, host disagreement, concrete examples, callbacks.

Files

File What
eidos_podcast.py Core: script generation + TTS render
cli.py eidos-podcast CLI
server.py eidos-podcast-mcp FastMCP server

Metadata

Release files for eidos-podcast 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eidos-podcast 0.3.0
File Size Uploaded Provenance
eidos_podcast-0.3.0.tar.gz 8.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for eidos-podcast 0.3.0
File Interpreter ABI Platform
eidos_podcast-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.1 kB

Release files / eidos_podcast-0.3.0.tar.gz

Download URL eidos_podcast-0.3.0.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
34ed0c79674f89309e842eae3691cb733ed19783a898932e315300a24b9bbd12
BLAKE2b-256 checksum
How to use checksums
9bb2dd048ff8358e463073f5ab8b32f891f52c9e1578b21c4f635ba5a3c56a9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release files / eidos_podcast-0.3.0-py3-none-any.whl

Download URL eidos_podcast-0.3.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad76f55224aa7e62cafe80f101187a81295040d18aeeac459c511beb15ea1272
BLAKE2b-256 checksum
How to use checksums
51f2f69b7ea90dbd171faf322d66bedde0d1184c0a35bae5558a15d8da4a3536
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Security for eidos-podcast 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page