Python and Dependencies
2.2. Python and Dependencies — What Runs Underneath
The core dependency set
Whether installed via script or Docker, Hermes needs: Python 3.11+ (managed via uv for fast, isolated installs), Node.js 22 (for JS components such as the WhatsApp bridge and some npx-based MCP servers), ripgrep (fast code search inside the file tools), and ffmpeg (audio processing for voice messages, TTS/STT).
Installing extra dependencies for the messaging gateway
If you only use the CLI, the default install set is enough. But to fully enable the Telegram/Discord/Slack gateway, you need to install a separate dependency group:
cd ~/.hermes/hermes-agent && uv pip install -e ".[messaging]"
Why this section stands on its own instead of being folded into 2.1
This is the most common source of “installed but not working correctly” errors — for example, a background service (launchd on macOS, systemd on Linux) starts with a minimal PATH that cannot see the Homebrew, nvm, or cargo you installed afterwards, leading to “node not found” errors when running the WhatsApp bridge, or “ffmpeg not found” when processing voice.
Notes
- If you install system tools (Homebrew, nvm…) after the gateway service is already installed, you must rerun
hermes gateway installto capture a fresh PATH snapshot — this is the most easily forgotten step. - When you hit a port conflict, check quickly with
lsof -i :8080before guessing at other causes. hermes config showis the fastest way to verify that the configuration is actually being loaded correctly, before going deeper into debugging.