numpy>=1.24
scipy>=1.10
PyYAML>=6.0

[agent]
mcp<2,>=1.26
uvicorn>=0.30
starlette>=0.40
qrcode>=7.4
keyring>=24

[agent:sys_platform == "win32"]
uiautomation>=2.0.20

[all]
mediapipe>=0.10.14
opencv-python>=4.8
onnxruntime>=1.17
faster-whisper>=1.1
sounddevice>=0.4.6
pynput>=1.7.6
pyperclip>=1.8
pystray>=0.19
Pillow>=10
diskcache>=5.6.1
jinja2>=3.1
typing_extensions>=4.5
mcp<2,>=1.26
uvicorn>=0.30
starlette>=0.40
qrcode>=7.4
keyring>=24

[all:sys_platform == "darwin"]
pyobjc-framework-UserNotifications>=10

[all:sys_platform == "darwin" and platform_machine == "arm64"]
mlx-whisper>=0.4.3

[all:sys_platform == "win32"]
pycaw>=20240210
comtypes>=1.2
uiautomation>=2.0.20
winrt-runtime>=2.0
winrt-Windows.Foundation>=2.0
winrt-Windows.Foundation.Collections>=2.0
winrt-Windows.Devices.Enumeration>=2.0
winrt-Windows.Media>=2.0
winrt-Windows.Media.Capture>=2.0
winrt-Windows.Media.Capture.Frames>=2.0
winrt-Windows.Media.MediaProperties>=2.0
winrt-Windows.Graphics.Imaging>=2.0
winrt-Windows.Storage.Streams>=2.0

[cleanup]
llama-cpp-python>=0.3.2

[control]
pynput>=1.7.6
pyperclip>=1.8

[dev]
pytest>=7.4
pytest-cov>=4.1
ruff>=0.4
mypy>=1.8
types-PyYAML
diskcache>=5.6.1
jinja2>=3.1
typing_extensions>=4.5

[dev:sys_platform == "linux"]
pystray>=0.19

[dev:sys_platform == "win32"]
comtypes>=1.2

[face]
mediapipe>=0.10.14
opencv-python>=4.8

[hands]
mediapipe>=0.10.14
opencv-python>=4.8
onnxruntime>=1.17

[mlx]

[mlx:sys_platform == "darwin" and platform_machine == "arm64"]
mlx-whisper>=0.4.3

[moonshine]
moonshine-voice<0.2,>=0.1.5

[parakeet]
nemo_toolkit[asr]>=2.0

[pocket]
pocket-tts<4,>=3.2

[pointer]

[pointer:sys_platform == "win32"]
comtypes>=1.2

[qwen]
qwen-tts>=0.1.1

[train]
torch>=2.1
onnx>=1.15
onnxruntime>=1.17

[tray]
pystray>=0.19
Pillow>=10

[tray:sys_platform == "darwin"]
pyobjc-framework-UserNotifications>=10

[voice]
faster-whisper>=1.1
sounddevice>=0.4.6

[voice:sys_platform == "win32"]
pycaw>=20240210

[wakeword]

[wakeword:python_version >= "3.11"]
livekit-wakeword<0.4,>=0.3.0

[winrt]

[winrt:sys_platform == "win32"]
winrt-runtime>=2.0
winrt-Windows.Foundation>=2.0
winrt-Windows.Foundation.Collections>=2.0
winrt-Windows.Devices.Enumeration>=2.0
winrt-Windows.Media>=2.0
winrt-Windows.Media.Capture>=2.0
winrt-Windows.Media.Capture.Frames>=2.0
winrt-Windows.Media.MediaProperties>=2.0
winrt-Windows.Graphics.Imaging>=2.0
winrt-Windows.Storage.Streams>=2.0
