Skip to content

hush: bare TUI exits 1 with cryptic crossterm error when no TTY is present #57

Description

@AojdevStudio

Running bare hush (interactive TUI) from a non-interactive context (agent harness, script, pipe) fails with:

Error: failed to enable terminal input mode
Caused by: Device not configured (os error 6)

exit code 1. The message gives no hint about why or what to use instead. hush list, hush get, and hush exec all work fine in the same context, so this is only the TUI entry path.

Fix: gate tui::run() on TTY availability up front and return an actionable error pointing at the script-friendly subcommands.

Activity

  1. linear-code commented on Sep 14, 2026

    @linear-code
  2. AojdevStudio commented on Oct 5, 2026

    @AojdevStudio
    OwnerAuthor

    Fixed by merged PR #58 at main commit 0fd0ef1f23840b7278417bbe29adcbb5fca49a05. With a synthetic bws fixture, a fully headless invocation exits 1 with the no-TTY explanation and list/get/exec guidance, with empty stdout. A real PTY starts and exits cleanly with alternate-screen restoration. Fresh Rust tests (19), full repository checks, packaging, extension startup, independent exact-head review, and remote CI passed. CHANGELOG.md records the behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions