Metadata-Version: 2.4
Name: lystn
Version: 0.1.6
Summary: Listen to AI coding assistant responses via Kokoro TTS.
Project-URL: Homepage, https://github.com/burakayener/Lystn
Project-URL: Repository, https://github.com/burakayener/Lystn
Project-URL: Issues, https://github.com/burakayener/Lystn/issues
Author: Burak Akın Yener
License: Apache-2.0
License-File: LICENSE
Keywords: adhd,claude,claude-code,codex,tts,voice
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: click>=8.1
Requires-Dist: numpy>=1.24
Requires-Dist: requests>=2.31
Requires-Dist: sounddevice>=0.4.6
Requires-Dist: tomlkit>=0.12
Requires-Dist: websocket-client>=1.7
Description-Content-Type: text/markdown

# 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

```bash
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

```bash
lystn config set server http://127.0.0.1:7878     # local server (default)
lystn config set voice af_heart                    # any voice from `lystn voices`
lystn config set api_key sk_...                    # only needed for cloud server later
lystn config show
```

Config lives at:
- Windows: `%APPDATA%\lystn\config.json`
- Mac/Linux: `~/.config/lystn/config.json`

## Use

```bash
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

```bash
lystn install
```

Wires Lystn 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. Restart the assistant, or start a new session/thread, after
installing. Every completed response will be spoken aloud.

To target only Codex local surfaces:

```bash
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` | Claude Code Stop-hook entry — reads JSON from stdin |
| `lystn test` | Speak a short connection-test message |
| `lystn voices` | List voices the server offers |
| `lystn doctor` | Print config + server health |
| `lystn config show` | Show current config |
| `lystn config set KEY VALUE` | Update config (`server`, `voice`, `api_key`) |
| `lystn install` | Wire Claude Code and detected Codex local surfaces |

## Requirements

- Python 3.10+
- A running Lystn server (local Kokoro for now; cloud server later)
- Audio output device (`sounddevice` handles it cross-platform)
