summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2026-07-24 13:05:34 +0200
committerYuval Adam <_@yuv.al>2026-07-24 13:05:34 +0200
commita6fb0e9b24d43341e2a4148bef7496f785c23f6f (patch)
treecfd915216e6572fa7951c2cfa9201d2f37f1f48a /README.md
parent213b7d931056e09d3b0f39c049f0fce9ead05911 (diff)
Make the README concise and project-focused
Diffstat (limited to 'README.md')
-rw-r--r--README.md89
1 files changed, 36 insertions, 53 deletions
diff --git a/README.md b/README.md
index 6ec19eb..ec54e4c 100644
--- a/README.md
+++ b/README.md
@@ -1,34 +1,30 @@
# Parley
-Parley is local, push-to-dictate text input for GNOME on Wayland. Put the caret in a text field, press a shortcut, speak, and press it again. Parley records through PipeWire, transcribes locally with Parakeet, and inserts the result through IBus.
+Local, push-to-dictate text input for GNOME on Wayland.
-Audio and transcription stay on your machine. Every successful transcript is also saved and copied to the clipboard before insertion is attempted.
+Parley records your microphone, transcribes speech locally with Parakeet, and inserts the result at the active caret through IBus. Every successful transcript is saved and copied to the clipboard before insertion is attempted.
-## Platform
+> Parley targets up-to-date Arch Linux systems running GNOME on Wayland. Other platforms are currently unsupported.
-Parley deliberately targets one current desktop stack:
+## Features
-- fully updated Arch Linux
-- GNOME Shell 50 on Wayland
-- IBus 1.5.34
-- PipeWire and WirePlumber
-- Python 3.14 with PyGObject
-- FFmpeg
-- the Parakeet `transcribe-cli` runtime and Unified EN model
-
-Other distributions, desktop environments, X11 sessions, older GNOME releases, and older Python versions are currently unsupported.
+- local recording and transcription
+- semantic text insertion through IBus
+- clipboard fallback when insertion is unavailable
+- GNOME top-bar status and controls
+- global shortcut and command-line control
+- transcript persistence under `~/.local/share/parley/transcripts/`
+- password and PIN field protection when reported by the application
## Usage
-With Parley installed and the shortcut configured:
-
1. Put the caret in an editable field.
-2. Press `Super+Shift+D` to start recording.
+2. Press the Parley shortcut to start recording.
3. Speak.
-4. Press `Super+Shift+D` again.
-5. Wait for local transcription and insertion.
+4. Press the shortcut again.
+5. Wait for transcription and insertion.
-GNOME displays its microphone privacy indicator while recording. The Parley top-bar indicator shows idle, recording, transcribing, and error states and provides start/stop, cancel, copy-last, and open-folder actions. Desktop notifications are disabled by default.
+GNOME shows its microphone privacy indicator while recording. Parley's top-bar indicator shows recording, transcription, and error states. Desktop notifications are disabled by default.
Useful fallback commands:
@@ -40,63 +36,50 @@ parleyctl copy
parleyctl insert
```
-Transcripts are stored in:
-
-```text
-~/.local/share/parley/transcripts/
-```
-
-If insertion is unavailable, the transcript remains saved and on the clipboard, ready for `Ctrl+V`.
+If an application rejects IBus insertion, the transcript remains saved and ready to paste with `Ctrl+V`.
-## Runtime assets
+## Runtime
-Parley expects:
+Parley requires the Parakeet `transcribe-cli` runtime and Unified English model. By default it looks for the runtime on `PATH` and the model under:
```text
-~/.local/bin/transcribe-cli
-~/.local/share/parley/models/parakeet-unified-en-0.6b-Q8_0.gguf
+~/.local/share/parley/models/
```
-The current runtime binary requires host CUDA 13 and Intel MKL libraries. The approximately 700 MiB model is not stored in this repository.
+The model is not stored in this repository. The current runtime build also depends on host CUDA and MKL libraries.
## Status
-The working development build currently provides:
+The development build provides the daemon, CLI, systemd user service, GNOME Shell extension, clipboard fallback, and persistent passthrough IBus engine. End-to-end insertion is confirmed in Firefox and Ghostty; broader application and input-method testing is ongoing.
-- asynchronous recording and local transcription through the `parleyd` user service
-- collision-safe transcript persistence and clipboard fallback
-- D-Bus control through `parleyctl`
-- a GNOME Shell 50 top-bar extension
-- a persistent passthrough IBus engine hosted by `parleyd` for automatic semantic text insertion
-- local systemd user units and an Arch PKGBUILD
-
-End-to-end IBus insertion is confirmed in Firefox and Ghostty. Broader application, keyboard-layout, compose-key, shortcut, and sensitive-field testing is ongoing; results live in [docs/IBUS_BAKEOFF.md](docs/IBUS_BAKEOFF.md).
-
-This is not yet a polished end-user release. See [SPEC.md](SPEC.md) for architecture, security constraints, remaining work, and acceptance criteria.
+See the [IBus test matrix](docs/IBUS_BAKEOFF.md) and [project specification](SPEC.md) for details.
## Development
-Parley has no third-party Python package dependencies. It runs directly with Arch's system Python and system PyGObject bindings:
+Parley runs directly with Arch's system Python and PyGObject bindings. No virtual environment or PyPI dependencies are required.
```bash
./scripts/install-dev
+PYTHONPATH=src /usr/bin/python -m unittest discover -s tests
```
-Run tests and inspect the daemon:
+Restart and inspect the daemon with:
```bash
-PYTHONPATH=src /usr/bin/python -m unittest discover -s tests
systemctl --user restart parley.service
journalctl --user -u parley.service -f
```
-Development helpers for the Shell extension and IBus experiment are in [`scripts/`](scripts/). The local Arch package recipe is in [`packaging/arch/`](packaging/arch/).
+Development helpers live in [`scripts/`](scripts/), and the Arch package recipe lives in [`packaging/arch/`](packaging/arch/).
+
+## Design principles
+
+- audio and transcription stay local
+- recording is always visible
+- transcripts are saved before insertion
+- model and audio work never runs inside GNOME Shell
+- clipboard fallback survives insertion failures
-## Principles
+## License
-- local-only audio and transcription
-- visible recording state
-- save and copy before attempting insertion
-- never destabilize GNOME Shell with model or audio work
-- refuse known password and PIN fields
-- preserve a clipboard fallback when an application rejects IBus insertion
+Parley is licensed under GPL-3.0-or-later.