Cloud-backed transcription tool for Windows with support for multiple providers.
-
Install uv:
pip install uv
-
Install dependencies:
uv sync
-
Configure your API key:
# Set your provider API key (e.g., OpenAI or Gemini) set OPENAI_API_KEY=your_key_here # or set GEMINI_API_KEY=your_key_here
-
Run the GUI:
uv run python start_client_gui.py
Use these tools to diagnose slow startup without changing normal behavior.
-
Install optional profiling dependencies:
uv sync --group profiling
-
Profile startup with built-in
cProfile(works even without extra deps):uv run python start_client_gui.py --profile-startup --profile-tool cprofile --profile-duration-ms 8000
-
Try richer traces (if installed):
uv run python start_client_gui.py --profile-startup --profile-tool pyinstrument --profile-duration-ms 8000 uv run python start_client_gui.py --profile-startup --profile-tool viztracer --profile-duration-ms 8000 uv run python start_client_gui.py --profile-startup --profile-tool yappi --profile-duration-ms 8000
-
Output files are written to
profiles/startup/by default. You can override via:uv run python start_client_gui.py --profile-startup --profile-output profiles/startup/my_run --profile-tool cprofile
Environment variable mode is also supported:
set CW_PROFILE_STARTUP=1
set CW_PROFILE_TOOL=pyinstrument
set CW_PROFILE_DURATION_MS=8000
uv run python start_client_gui.pyqt_material theme application is disabled by default to reduce startup latency.
-
Enable theme explicitly:
set CW_ENABLE_QT_MATERIAL=1 uv run python start_client_gui.py -
Optional delayed apply (milliseconds, default
3000):set CW_THEME_DELAY_MS=5000 uv run python start_client_gui.py -
Tray menu warm-up is deferred by default (15s). Optional override:
set CW_TRAY_WARMUP_DELAY_MS=30000 uv run python start_client_gui.py
To build a silent start_client_gui.exe launcher (no console window), open a Developer Command Prompt for Visual Studio in the repository root and run:
build_gui.batThe generated start_client_gui.exe only starts:
uv run python start_client_gui.pyLauncher behavior: before starting, it terminates any existing running start_client_gui.py process, then starts a fresh one.
- Providers: Edit YAML files in
config/providers/ - Gemini: Fill
config/providers/gemini.yaml(or setGEMINI_API_KEY/GOOGLE_API_KEY) and enable the provider before use - Client settings: Edit
config.toml - Optional LLM polishing: set
LLM_POLISH_BASE_URLandLLM_POLISH_API_KEYin a.envor.env.localfile in the repo root, then editconfig/polish/polish.yamlfor feature settings such asenabled,model,timeout, andtextbox_context:This feature uses the OpenAI-compatible Chat Completions API in non-streaming mode and runs before regex replacement and whitespace reformatting in the live microphone pipeline. LLM polish also runs a conservative Chinese smart-quotes post-processor by default (LLM_POLISH_BASE_URL=https://api.openai.com LLM_POLISH_API_KEY=your_key_here
smart_quotes.enabled=true) to turn abused straight quotes into Chinese quotes while protecting Markdown code, inline code, URLs, paths, HTML, math, frontmatter, and structured text. Whentextbox_context.enabled=true, it tries Windows UI Automation in this order: focused element →TextPattern→ValuePattern→LegacyIAccessible; if those all fail, it finally falls back to a more intrusiveCtrl+A/Ctrl+Cclipboard probe before attaching a truncated snapshot as extra reference context. Controls that supportTextPattern2also attach<|caret|>at the current insertion point, with optional selection boundary markers when UIA exposes a text selection.textbox_context.max_tokenslimits the attached textbox context with a lightweight token estimate; the default is 600. Press the client hotkey configured bytoggle_textbox_context_shortcutinconfig.toml(default:f16) to quickly toggletextbox_context.enabled; set it to an empty string to disable the toggle hotkey. Settextbox_context.debug=trueinconfig/polish/polish.yamlto log why each UIA stage succeeded, returned empty text, or fell through to clipboard fallback. - Use
python provider_switch.py --listto see available providers
CLAUDE.md: Technical architecture and component detailsAGENTS.md: Development workflow and agent integration
- Python 3.11+
- Windows OS
- uv package manager