Metadata-Version: 2.4
Name: sybl
Version: 0.1.2
Summary: Open-source BYOK voice dictation — speak anywhere, transcribe fast, type it in.
Project-URL: Homepage, https://github.com/Rikhil-Nell/sybl
Project-URL: Documentation, https://github.com/Rikhil-Nell/sybl/tree/main/docs
Project-URL: Repository, https://github.com/Rikhil-Nell/sybl
Project-URL: Issues, https://github.com/Rikhil-Nell/sybl/issues
Project-URL: Changelog, https://github.com/Rikhil-Nell/sybl/blob/main/CHANGELOG.md
Author-email: Rikhil Nellimarla <nrikhil@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: byok,dictation,speech-to-text,transcription,typer,voice
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: deepgram-sdk<8,>=7.4.0
Requires-Dist: groq<2,>=1.5.0
Requires-Dist: keyring<26,>=25.0.0
Requires-Dist: numpy<3,>=2.0.0
Requires-Dist: platformdirs<5,>=4.0.0
Requires-Dist: pydantic-settings<3,>=2.0.0
Requires-Dist: pydantic<3,>=2.0.0
Requires-Dist: pynput<2,>=1.7.0
Requires-Dist: pyside6<7,>=6.6
Requires-Dist: questionary<3,>=2.0.0
Requires-Dist: sounddevice<1,>=0.5.0
Requires-Dist: soundfile<1,>=0.12.0
Requires-Dist: soxr<1,>=0.5.0
Requires-Dist: tenacity<10,>=9.1.4
Requires-Dist: textual<9,>=0.85.0
Requires-Dist: tomli-w<2,>=1.0.0
Requires-Dist: typer<1,>=0.12.0
Provides-Extra: dev
Requires-Dist: keyrings-alt<6,>=5.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio<1,>=0.24.0; extra == 'dev'
Requires-Dist: pytest<9,>=8.0.0; extra == 'dev'
Requires-Dist: ruff<1,>=0.8.0; extra == 'dev'
Description-Content-Type: text/markdown

# sybl

**Open-source, bring-your-own-key voice dictation.** Put your cursor anywhere, hit a
global shortcut, speak, and sybl transcribes it fast — then types it in for you.

The open-source alternative to closed dictation tools like Wispr Flow. No subscription,
no sybl-hosted backend: your audio goes straight to the STT provider you choose.

[![CI](https://github.com/Rikhil-Nell/sybl/actions/workflows/ci.yml/badge.svg)](https://github.com/Rikhil-Nell/sybl/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![PyPI version](https://img.shields.io/pypi/v/sybl.svg)](https://pypi.org/project/sybl/)

## Features

- **Wispr-style hotkeys** — hold for push-to-talk *or* double-press for hands-free
  toggle on the same binding (default **`both`** mode)
- **BYOK STT** — Groq Whisper (batch) and Deepgram (streaming) today; pluggable providers
- **Background daemon** — `sybl start` returns immediately; `sybl tui` for logs and settings
- **Types where you were focused** — clipboard-paste injection on Windows
- **Listening indicator** — Qt dock pill at top-center (Windows; bundled with install)
- **Sound cues** — built-in chime or custom `start.wav` / `stop.wav` in your config folder
- **Custom vocabulary** — STT hints for names and jargon via `sybl config vocab`
- **Voice commands** — `new line`, `period`, `comma` in final transcripts
- **Local-first** — no telemetry; API keys in the OS keyring

## Install

```powershell
pipx install sybl
```

Or with [uv](https://docs.astral.sh/uv/):

```powershell
uv tool install sybl
```

Requires **Python 3.12+**. Windows is the primary supported platform for the full
core loop (hotkeys, injection, listening pill).

First install pulls ~45 Python packages (numpy, textual, STT SDKs, etc.) — expect
1–3 minutes on a cold `pipx install`; upgrades are faster.

## Quick start

```powershell
sybl setup                # interactive first-run wizard (TTY)
sybl doctor
sybl config init          # creates config.toml + sounds/ folder
sybl config set-key groq
sybl start                # background daemon
sybl tui                  # optional — logs, history, settings
```

Scriptable helpers: `sybl status --json`, `sybl providers`, `sybl config get/set`,
`sybl restart`, `sybl logs --follow`. See [CLI reference](docs/CLI.md).

**Hold** **Ctrl+Alt+Space** (~200ms) for push-to-talk, or **double-press** for toggle.
Press **Esc** while listening to cancel. Stop the daemon with `sybl stop`.

See [Getting started](docs/getting-started.md) for the full walkthrough.

## Documentation

| Doc | Description |
| --- | --- |
| [Getting started](docs/getting-started.md) | Install, first run, daemon + TUI |
| [CLI reference](docs/CLI.md) | Categorized commands, `--json`, wizards, exit codes |
| [Providers](docs/providers.md) | Groq & Deepgram BYOK setup |
| [Configuration](docs/configuration.md) | `config.toml` reference |
| [Overlay indicator](docs/OVERLAY.md) | Qt listening pill |
| [Permissions](docs/permissions.md) | Microphone and injection notes |
| [Development](docs/DEVELOPMENT.md) | Local dev, phases, integration tests |
| [Roadmap](docs/ROADMAP.md) | What's built and what's next |
| [Daemon architecture](docs/DAEMON.md) | IPC and process model |

## Contributing

Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) and [AGENTS.md](AGENTS.md)
for architecture and conventions.

## License

[MIT](LICENSE) © Rikhil Nellimarla
