Metadata-Version: 2.4
Name: plover-steno-dojo
Version: 0.1.0
Summary: WebSocket server plugin for Steno Dojo — broadcasts strokes to the Steno Dojo app
Home-page: https://github.com/VincentCosta6/plover-steno-dojo
Author: Vincent Costa
License: MIT
Keywords: plover_plugin
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# plover-steno-dojo

[![PyPI](https://img.shields.io/pypi/v/plover-steno-dojo)](https://pypi.org/project/plover-steno-dojo/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

A [Plover](https://www.openstenoproject.org/plover/) extension that runs a local WebSocket server and broadcasts real-time stroke and machine state events to the [Steno Dojo](https://github.com/VincentCosta6/steno-dojo) app.

**No external dependencies** — uses only the Python standard library.

## Install

Search for **plover-steno-dojo** in Plover's Plug-ins Manager (`Tools → Plug-ins Manager`), then click **Install** and restart Plover.

Or from a terminal using Plover's bundled Python:

```bash
# macOS
/Applications/Plover.app/Contents/Frameworks/Python.framework/Versions/3.13/bin/python3.13 \
  -m pip install plover-steno-dojo
```

## Usage

1. After installing, open Plover's **Plug-ins Manager**
2. Find `steno_dojo`, click **Enable**, then **Apply**
3. Restart Plover
4. The plugin starts automatically and listens on `ws://localhost:8086/`
5. Open Steno Dojo — it will connect automatically

## Message format

All messages are JSON objects sent to every connected client:

```json
{"type": "stroked", "stroke": "TEFT"}
{"type": "machine_state_changed", "machine_type": "Gemini PR", "state": "connected"}
```

## Development

```bash
git clone https://github.com/VincentCosta6/plover-steno-dojo
cd plover-steno-dojo
pip install -e .
```

## License

MIT
