Skip to main content

Listen to AI coding assistant responses via Kokoro TTS.

Project description

lystn CLI

Cross-platform command-line client for the Lystn TTS server. Replaces the Windows-only PowerShell hook with a Python package that works on Windows, Mac, and Linux.

Install

pipx install -e .          # from this folder, while developing
# or once published:
pipx install lystn

pipx puts lystn on your PATH in an isolated environment — no conflicts with your other Python packages.

Configure

lystn config set server https://api.lystn.space    # cloud server (default)
lystn config set voice af_heart                    # any voice from `lystn voices`
lystn config set speed 1.25                         # playback rate 0.5–3.0
lystn config show

The default server is https://api.lystn.space. For local dev, point it at your own box, e.g. lystn config set server http://127.0.0.1:7878. Sign in with lystn login (browser Google sign-in saves your key automatically) — you rarely set api_key by hand.

Config lives at:

  • Windows: %APPDATA%\lystn\config.json
  • Mac/Linux: ~/.config/lystn/config.json

Use

lystn test                          # speak "Lystn is connected and working."
lystn speak "Hello there."          # speak the argument
echo "Hello there." | lystn speak   # speak stdin
lystn voices                        # list voices
lystn doctor                        # check server reachable

Wire into assistants

lystn install

Wires Lystn's Stop hook into Claude Code and, when local Codex is present, into the shared Codex config used by the Codex app, Codex CLI, and Codex IDE extension. It also adds a branded animated statusLine to Claude Code — non-destructively, so your own custom status line is never replaced. Restart the assistant, or start a new session/thread, after installing. Every completed response will be spoken aloud. lystn uninstall removes only Lystn's entries (its hook and its status line).

To target only Codex local surfaces:

lystn install --codex

The hook is fire-and-forget: if the Lystn server is down or the text is empty, the hook exits silently and doesn't break Claude's UI.

Commands

Command What it does
lystn speak [TEXT] Speak text from argument or stdin
lystn hook Stop-hook entry (Claude Code / Codex) — reads JSON from stdin
lystn test Speak a short connection-test message
lystn login / lystn logout Browser Google sign-in / clear saved key
lystn voices List voices the server offers
lystn doctor Print config + server health
lystn devices [--pick] List audio outputs; --pick saves one
lystn mute / lystn unmute Silence Lystn / turn it back on
lystn speed [0.5-3.0] Set/show playback speed
lystn volume [0-100] Set/show volume
lystn statusline Print the branded animated status line
lystn config show Show current config
lystn config set KEY VALUE Update config (server, api_key, voice, device, speed)
lystn install / lystn uninstall Wire/unwire Claude Code + detected Codex

Requirements

  • Python 3.10+
  • A reachable Lystn server (defaults to the cloud https://api.lystn.space; point at a local Kokoro server for dev)
  • Audio output device (sounddevice handles it cross-platform)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lystn-0.2.0.tar.gz (32.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lystn-0.2.0-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

File details

Details for the file lystn-0.2.0.tar.gz.

File metadata

  • Download URL: lystn-0.2.0.tar.gz
  • Upload date:
  • Size: 32.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for lystn-0.2.0.tar.gz
Algorithm Hash digest
SHA256 013f44eeb553879d9d27a795e93f9a3a7fdfbe85f2b7db37322d697444d595b7
MD5 55c872c76d8da2d7520b492280432b61
BLAKE2b-256 2248ed54ab5c6f5c2f489292acc6cfccecb57c58aa8aff75fb2d69ec95b15242

See more details on using hashes here.

File details

Details for the file lystn-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lystn-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 30.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for lystn-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46e103170dbef579615815159c630e3f322d2a85060f53acaaa4715928791470
MD5 5756211b23e1579745789871997a11ab
BLAKE2b-256 57fba59501529aa7a9c35c66add5528cf0bb9d1a58bc0bb5ddfd39dbcced9c23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page