CLI URL/text to WAV converter powered by Supertonic v3
Project description
Speekify
Speekify turns text into a local WAV file you can listen to — from inline CLI
text, stdin, local .txt/.md/.pdf files, YouTube transcripts, or the
readable content of a URL. Audio is generated locally with Supertonic v3.
Features
| Capability | What you get |
|---|---|
| Many input sources | Inline text, piped stdin, local .txt/.md/.pdf files, readable URLs, and YouTube transcripts — auto-detected. |
| Local TTS | WAV files synthesized on your machine with Supertonic v3 — no audio leaves your computer. |
| Multilingual | en, fr, de, es, it, pt, ja, ko, and more, plus na for language-agnostic synthesis. |
| Auto-translation | By default Speekify auto-detects the source language and synthesizes in it — no translation. English is detected and translated to French before TTS only when you pass --lang fr. |
| Voice control | 10 built-in voices (M1–M5, F1–F5), custom Voice Builder JSON styles, plus speed and synthesis-step tuning. |
| MCP server | Expose Speekify as a tool so AI assistants can generate audio during automations. |
Install
speekify setup (run once after installing) downloads and warms the Supertonic
model and, by default, the English→French translation model. If you skip it, the
models download automatically on first use.
macOS — no Python or uv required
Once a release is published, install the standalone binary via Homebrew:
brew tap otterlyspacelabs/speekify https://github.com/OtterlySpaceLabs/speekify
brew install speekify
speekify setup
Or download the archive directly:
curl -L -o speekify.tar.gz https://github.com/OtterlySpaceLabs/speekify/releases/latest/download/speekify-macos-arm64.tar.gz
tar -xzf speekify.tar.gz
mv speekify /usr/local/bin/speekify
speekify setup
With pip / pipx / uv
Once released on PyPI:
pip install speekify # or: pipx install speekify (recommended for CLIs)
speekify setup
uv tool install speekify # uv users
speekify setup
Run without installing:
uvx speekify "Hello world"
pipx run speekify "Hello world"
From source with uv
uv sync
uv run speekify setup
Quick start
Speekify is a CLI. Give it inline text, a URL, a local file path, or piped stdin:
speekify "Hello world" # inline text
speekify https://example.com/article # readable URL
speekify ~/Documents/article.pdf # local PDF
speekify --lang fr "https://www.youtube.com/watch?v=eSP7PLTXNy8" # YouTube
printf 'Hello from stdin' | speekify # stdin
speekify --voice F2 --output-dir ~/Desktop "Hello world" # pick voice + dir
Wrap URLs in quotes when they contain ? or & (common with YouTube), or the
shell may reject the command. From a source checkout, prefix any command with
uv run (e.g. uv run speekify "Hello world").
→ Full command list, every option, and the config file: docs/usage.md.
MCP automation server
Speekify ships a local Model Context Protocol (MCP) server so AI assistants can
call it as a tool. It exposes speekify_generate_wav (text/URL/file → WAV with
structured details), speekify_generation_defaults (supported voices, languages,
and ranges), and a news_recap_to_audio prompt template.
speekify mcp # stdio transport for desktop AI clients
speekify mcp --transport streamable-http # HTTP endpoint for local experiments
Per-client setup (Claude Code, GitHub Copilot, Codex, OpenAI remote MCP): docs/mcp-clients.md.
Documentation
| Doc | Contents |
|---|---|
| docs/usage.md | Full CLI reference — every command, option, the config file, and output naming. |
| docs/sources.md | Supported input sources, extraction rules and limits, translation, text handling, and logs. |
| docs/mcp-clients.md | MCP server setup for Claude Code, GitHub Copilot, Codex, and remote MCP. |
| docs/release-procedure.md | Maintainer release checklist. |
Usage and content
Speekify only fetches content you explicitly point it at, for your own personal use. You are responsible for respecting the terms of service and copyright of any source you extract from, including YouTube transcripts. The maintainers provide no rights over third-party content.
License
MIT — see LICENSE. Copyright © 2026 Otterly Space SARL.
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 speekify-0.1.2.tar.gz.
File metadata
- Download URL: speekify-0.1.2.tar.gz
- Upload date:
- Size: 31.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b618c75b8eef87c8e3a296a987fa29606c0273aaa4704ac4cefcd28607c66abc
|
|
| MD5 |
f0a1084422e66eb79e9cf4789fed6829
|
|
| BLAKE2b-256 |
bba6a043b62fbab2f8fcb723d061ce23fe9394f8441c6b7e9128420fd1830965
|
Provenance
The following attestation bundles were made for speekify-0.1.2.tar.gz:
Publisher:
publish.yml on OtterlySpaceLabs/speekify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speekify-0.1.2.tar.gz -
Subject digest:
b618c75b8eef87c8e3a296a987fa29606c0273aaa4704ac4cefcd28607c66abc - Sigstore transparency entry: 2024790795
- Sigstore integration time:
-
Permalink:
OtterlySpaceLabs/speekify@b159fccd83dc426a6847e435ecd2718b3685a00d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/OtterlySpaceLabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b159fccd83dc426a6847e435ecd2718b3685a00d -
Trigger Event:
release
-
Statement type:
File details
Details for the file speekify-0.1.2-py3-none-any.whl.
File metadata
- Download URL: speekify-0.1.2-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f15259a6b32ec2a2dbcf4fd5bf173d0ba6ace36abe8de5777bd33b9161ccb05
|
|
| MD5 |
a3dc0f8d33f272a75f7208a9276cba14
|
|
| BLAKE2b-256 |
1a407cdac7c4eb1b76584dbb5f3b81ba493dff3195262a9c348b34ba0a240c07
|
Provenance
The following attestation bundles were made for speekify-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on OtterlySpaceLabs/speekify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speekify-0.1.2-py3-none-any.whl -
Subject digest:
1f15259a6b32ec2a2dbcf4fd5bf173d0ba6ace36abe8de5777bd33b9161ccb05 - Sigstore transparency entry: 2024790870
- Sigstore integration time:
-
Permalink:
OtterlySpaceLabs/speekify@b159fccd83dc426a6847e435ecd2718b3685a00d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/OtterlySpaceLabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b159fccd83dc426a6847e435ecd2718b3685a00d -
Trigger Event:
release
-
Statement type: