Prepare v0.0.2 pre-release
CI / macos-latest (push) Has been cancelled
CI / ubuntu-latest (push) Has been cancelled
CI / windows-latest (push) Has been cancelled

This commit is contained in:
pleb
2026-07-21 10:27:02 -07:00
parent 456893415d
commit 266483f3cf
17 changed files with 578 additions and 58 deletions
+11 -45
View File
@@ -13,6 +13,10 @@ It follows an EverQuest log, gives NPC dialogue a Kokoro-FastAPI voice, and
remembers the chosen voice for each NPC. It is entirely local: your log,
speaker mappings, generated audio, and TTS endpoint stay on your computer.
<video controls preload="metadata" width="960" src="docs/mudmouth-demo-01.mp4">
Your browser does not support HTML5 video.
</video>
## What it does
- Watches an EverQuest log without replaying historical lines on startup.
@@ -34,8 +38,9 @@ speaker mappings, generated audio, and TTS endpoint stay on your computer.
- Rust stable (edition 2024)
- A terminal with ANSI support: Windows Terminal, iTerm2, Terminal.app, GNOME
Terminal, and similar terminals work well.
- A reachable [Kokoro-FastAPI](docs/kokoro-fastapi.json) instance. The default
is `http://127.0.0.1:8880`.
- A reachable [Kokoro-FastAPI](docs/kokoro-fastapi.json) instance. Install and
run it using the upstream [Kokoro-FastAPI instructions](https://github.com/remsky/Kokoro-FastAPI);
Mudmouth uses `http://127.0.0.1:8880` by default.
- An EverQuest log with `/log on`.
No `ffplay`, `mpv`, PipeWire command, or other external audio player is
@@ -43,36 +48,8 @@ required; Mudmouth plays returned WAV audio itself.
## Build and run
On NixOS, enter the included development shell. It provides the ALSA
development metadata required by the native Linux audio backend:
```bash
doas systemctl start podman-kokoro-fastapi.service
nix-shell --run 'cargo run --release -- --log "$HOME/Games/EverQuestLegends/Logs/eqlog_Pleb_oggok.txt"'
```
On other platforms, or when Rust and the native audio development packages are
already installed:
```bash
cargo run --release -- --log "$HOME/Games/EverQuestLegends/Logs/eqlog_Pleb_oggok.txt"
```
Or persist the paths through the app:
```bash
cargo run --release
```
Press `s`, select **EverQuest log**, and enter the file path. Change the
Kokoro endpoint from the same screen. Mudmouth validates the endpoint in the
background and the header reads `CONNECTED`, `CHECKING`, or `UNREACHABLE`.
Changing a log path starts watching the new file immediately. A command-line
endpoint override is also available:
```bash
cargo run --release -- --kokoro-url http://127.0.0.1:8880
```
See [development and build notes](docs/development.md) for local setup,
running Mudmouth, validation, and multi-platform release packaging.
## TUI controls
@@ -80,6 +57,8 @@ cargo run --release -- --kokoro-url http://127.0.0.1:8880
| --- | --- |
| `d` | Dashboard / live tavern scroll |
| `s` | Settings |
| `p` | Choose EverQuest game folder during first-time setup |
| `r` | Rescan for character logs during first-time setup |
| `v` | NPC voice manager |
| `?` | Help |
| `q` | Quit |
@@ -109,16 +88,3 @@ repeat_window_seconds = 15
repeat_second_speed = 1.5
repeat_third_plus_speed = 2.0
```
## Development
```bash
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo build --release
```
The parser tests cover the observed log formats, including NPC dialogue,
channel-chat exclusion, zone events, normalization, persistent/random speaker
voice policies, and log truncation.