Skip to content

hermes setup wizard hangs on non-interactive SSH / headless environments #905

@sudoingX

Description

@sudoingX

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

  1. SSH into a headless GPU node (no interactive terminal)
  2. Install hermes-agent
  3. Run hermes setup or hermes (auto-triggers wizard when no provider configured)
  4. 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-name

This bypasses the wizard entirely. But users don't know this exists because the wizard blocks them before they can discover it.

Suggested Fix

Either:

  1. Detect non-interactive TTY (if not sys.stdin.isatty()) and skip wizard with a message pointing to hermes config set
  2. Add a --non-interactive or --headless flag to hermes setup
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions