From a210803453d86c1a0b64897eb2e30b40dc221b48 Mon Sep 17 00:00:00 2001 From: rpriven Date: Fri, 31 Oct 2025 23:50:12 -0600 Subject: [PATCH] Fix gum multi-select TTY access issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed subprocess call to allow gum direct terminal access for interactive UI. Problem: - capture_output=True was preventing gum from accessing the TTY - Gum needs stdin/stderr connected to terminal for interactive display - Error: "could not open a new TTY: open /dev/tty" Solution: - Changed from capture_output=True to explicit stdout=PIPE - Set stdin=None and stderr=None to allow direct terminal access - Gum can now properly display interactive selection menu 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils.py b/utils.py index 4b0771f..b01d587 100644 --- a/utils.py +++ b/utils.py @@ -188,9 +188,12 @@ def gum_multi_select( return [] try: + # gum needs direct terminal access - don't redirect stdin/stderr result = subprocess.run( ['gum', 'choose', '--no-limit', '--header', header] + options, - capture_output=True, + stdout=subprocess.PIPE, + stderr=None, # Let stderr go to terminal + stdin=None, # Let gum access the terminal directly text=True, timeout=300 # 5 minute timeout )