-
Notifications
You must be signed in to change notification settings - Fork 609
Description
Bug
hermes setup wizard hangs indefinitely on non-interactive SSH sessions and headless environments (GPU nodes, Docker containers, CI/CD). The interactive provider selection menu renders but cannot receive input, blocking the entire setup flow.
Steps to Reproduce
- SSH into a headless GPU node (no interactive terminal)
- Install hermes-agent
- Run
hermes setuporhermes(auto-triggers wizard when no provider configured) - Wizard renders but hangs at provider selection — no way to proceed or skip
Select your inference provider:
↑/↓ Navigate Enter Select Esc Skip Ctrl+C Exit
○ Nous Portal API key (direct API key access)
○ Login with Nous Portal (Nous Research subscription — OAuth)
...
Environment
- Ubuntu 22.04 (Docker: pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel)
- Python 3.11.10
- Hermes Agent v1.0.0
- SSH non-interactive session to GPU node
Workaround
hermes config set works perfectly in non-interactive mode:
hermes config set model.provider custom
hermes config set model.base_url http://localhost:8080/v1
hermes config set model.default your-model-nameThis bypasses the wizard entirely. But users don't know this exists because the wizard blocks them before they can discover it.
Suggested Fix
Either:
- Detect non-interactive TTY (
if not sys.stdin.isatty()) and skip wizard with a message pointing tohermes config set - Add a
--non-interactiveor--headlessflag tohermes setup - Both
Context
This blocks anyone deploying Hermes Agent on remote GPU nodes via SSH, which is a common setup for local inference workflows. Found this while setting up Hermes Agent with Qwen 3.5 9B on an RTX 3060 via llama-server.
Related: #898 (duplicate subparser crash) was blocking users before they could even reach the wizard. Now that #898 is fixed, this will be the next blocker for headless deployments.