# Polyflo > Polyflo is a lightweight desktop dictation app built with Tauri (Rust backend) and powered by Sarvam AI Saaras v3 speech-to-text. It runs in your system tray and works in any application that accepts typed text. - Documentation: https://pr-1-2b0a782aae90.thally.app - GitHub: https://github.com/Crisiswastaken/polyflo-docs - Full docs for LLMs: https://pr-1-2b0a782aae90.thally.app/llms-full.txt - Agent discovery (ai.txt): https://pr-1-2b0a782aae90.thally.app/ai.txt - Structured docs index (JSON): https://pr-1-2b0a782aae90.thally.app/api/docs-index - OpenAPI spec: https://pr-1-2b0a782aae90.thally.app/openapi.yaml ## For AI agents Every page supports content negotiation on its human URL: - JSON API: append `?format=json` or send `Accept: application/json` - JSON-LD: append `?format=ldjson` or send `Accept: application/ld+json` - Markdown: append `?format=md` or send `Accept: text/markdown` - Per-page API: https://pr-1-2b0a782aae90.thally.app/api/docs/{page-id} - Search API: https://pr-1-2b0a782aae90.thally.app/api/search?q={query} - Capability manifest (skill): https://pr-1-2b0a782aae90.thally.app/skill.md - Agent guidance (editing these docs): https://pr-1-2b0a782aae90.thally.app/AGENTS.md - MCP server (attach docs as native tools): https://pr-1-2b0a782aae90.thally.app/api/mcp - Agent readiness: https://pr-1-2b0a782aae90.thally.app/api/agent-readiness ### Recommended workflow 1. Use this index, the search API, or `search_docs` before choosing a page. 2. Read the smallest set of relevant pages and follow their prerequisite links. 3. Treat the published docs as the source of truth. Label inferences and say when evidence is missing. 4. Cite the canonical human page URLs, not only API endpoints. 5. Use `/AGENTS.md` before editing a repository. The public MCP server is read-only. ## Get started ### Start here - [Polyflo](https://pr-1-2b0a782aae90.thally.app/): Minimal push-to-talk dictation for Windows and macOS. Hold a hotkey, speak, and the text lands where your cursor is focused. - [Install](https://pr-1-2b0a782aae90.thally.app/quickstart): Download Polyflo for Windows or macOS, add a Sarvam API key, and complete your first dictation. - [Dictation](https://pr-1-2b0a782aae90.thally.app/dictation): Hold the hotkey to listen, speak, and paste a transcript into the focused field — or copy it if paste is blocked. ### Set up - [API key](https://pr-1-2b0a782aae90.thally.app/api-key): Create a Sarvam API key, save it in Polyflo Settings, and understand where it is stored. - [Settings](https://pr-1-2b0a782aae90.thally.app/settings): Change dictation mode, the hold-to-talk hotkey, your API key, and manage recent transcripts. - [Languages](https://pr-1-2b0a782aae90.thally.app/languages): Polyflo uses Sarvam Saaras v3 — 22 Indian languages plus English, with automatic detection and code-mixing. ## Guides ### Using Polyflo - [Troubleshooting](https://pr-1-2b0a782aae90.thally.app/troubleshooting): Fix missing paste, dead hotkeys, API key save failures, and macOS Accessibility prompts. - [vs Wispr Flow](https://pr-1-2b0a782aae90.thally.app/compare): When Polyflo is the better fit, and when a subscription dictation product such as Wispr Flow is. ### Developers - [Build from source](https://pr-1-2b0a782aae90.thally.app/build-from-source): Clone Polyflo, install Node and Rust, then run the Tauri app in development or produce installers. ## Contribute ### Get involved - [Contributing](https://pr-1-2b0a782aae90.thally.app/contributing): How to report bugs, propose changes, and open pull requests against the Polyflo desktop app. - [Local development](https://pr-1-2b0a782aae90.thally.app/development): Install the toolchain, run Polyflo from source, and debug dictation sessions on Windows or macOS. - [Repository layout](https://pr-1-2b0a782aae90.thally.app/repository-layout): Map of the Polyflo GitHub repo — frontend entries, Rust modules, Tauri config, and CI. ### Internals - [Architecture](https://pr-1-2b0a782aae90.thally.app/architecture): How Polyflo captures microphone audio, calls Sarvam, and pastes a transcript into the focused app. - [Session lifecycle](https://pr-1-2b0a782aae90.thally.app/session): Hold-to-talk state machine — idle, listening, processing, injecting — and what happens on press, release, and cancel. - [Audio pipeline](https://pr-1-2b0a782aae90.thally.app/audio): How Polyflo captures the default microphone, resamples to 16 kHz mono PCM, meters the overlay, and wraps WAV for Sarvam. - [STT and translation](https://pr-1-2b0a782aae90.thally.app/speech-to-text): How Polyflo calls Sarvam Saaras v3 over HTTP, Transcribe vs Translate, and the text-translate fallback. - [Text injection](https://pr-1-2b0a782aae90.thally.app/injection): How a transcript reaches the focused app — clipboard first, then simulated paste, with Windows focus restore and macOS Accessibility. - [Frontend](https://pr-1-2b0a782aae90.thally.app/frontend): Settings and overlay webviews — Vite entries, Tauri invoke, hotkey capture, and overlay animation. - [IPC](https://pr-1-2b0a782aae90.thally.app/ipc): Every Tauri command Settings can invoke, every event the backend emits, and the capability allow-list that must stay in sync. - [Data and secrets](https://pr-1-2b0a782aae90.thally.app/data-and-secrets): Where Polyflo stores settings, clipboard history, and the Sarvam API key — and what never goes to disk. ### Ship your own - [Fork and rebrand](https://pr-1-2b0a782aae90.thally.app/forking): Ship your own dictation app from Polyflo — bundle id, icons, names, and a different speech-to-text API. - [Add a feature](https://pr-1-2b0a782aae90.thally.app/adding-features): Checklist for landing a new setting, Tauri command, event, or dictation behavior without breaking production IPC. - [Testing](https://pr-1-2b0a782aae90.thally.app/testing): Run frontend typechecks, Rust unit tests, and a manual dictation pass before you open a pull request. - [Releases](https://pr-1-2b0a782aae90.thally.app/releases): How Polyflo installers are built on GitHub Actions when you push a version tag.