# Optional dependencies — install only if you use the corresponding feature. # The app handles their absence gracefully (clear error message on first use). # # Note: chromadb-client + fastembed moved to requirements.txt — RAG, semantic # memory, and tool selection are core paths, so they ship by default now. # Local speech-to-text (microphone -> text) via faster-whisper, for the # "local" STT provider. Runs on CPU out of the box (CTranslate2 backend, no # torch needed). Install if you want to dictate/transcribe with the mic # without sending audio to an external endpoint. # Optional extra: install `torch` too if you have a CUDA GPU and want # GPU-accelerated transcription — it's auto-detected, CPU is used otherwise. faster-whisper # Local text-to-speech via Kokoro-82M for the "local" TTS provider. # Kokoro 0.9.4 declares Python >=3.10,<3.13; Odysseus itself requires 3.11+, # so pip installs these extras on 3.11-3.12 and deliberately skips them on # Python 3.13+ (including the Python 3.14 container image). Kokoro declares # torch; the local provider still # requires a CUDA-enabled torch build and GPU at runtime. SoundFile is separate # in Kokoro's official install instructions and is not a transitive dependency. kokoro==0.9.4; python_version >= "3.11" and python_version < "3.13" soundfile; python_version >= "3.11" and python_version < "3.13" # DuckDuckGo as a search provider option. # Install if you want DDG in the search-provider dropdown. # Alternatives: SearXNG, Brave, Tavily, Serper, Google PSE. ddgs # PDF form-filling feature (fillable AcroForm detection, field extraction, # value/annotation/signature stamping, page rendering for the form overlay). # NOTE: PyMuPDF is AGPL-3.0. Installing it brings AGPL obligations for a # network-served app — see ACKNOWLEDGMENTS.md. The MIT core (PDF *text* # extraction via pypdf) works without it; this only unlocks form-filling. PyMuPDF # Office / EPUB document text extraction (chat attachments + the personal-docs # RAG index). markitdown (MIT, Microsoft) converts .docx/.xlsx/.pptx/.xls/.epub # to Markdown — more token-efficient and model-legible than a raw dump. Optional # and lazy-imported via src/markitdown_runtime.py; without it those formats fall # back to a friendly "install to extract" banner and the core stays pure-MIT. # Extras pull mammoth/lxml/python-pptx/pandas/openpyxl/xlrd; the base also pulls # magika (onnxruntime), already a core dep via fastembed. We avoid the # [all]/Azure/audio extras (cloud + heavy). Pinned to a release >30 days old per # the dependency-age discussion in issue #485. markitdown[docx,pptx,xlsx,xls]==0.1.6