feat: add interactive mode support for bash commands #8696
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1180
Summary
Adds support for interactive bash commands (like
opencode auth login,vim,ssh) by using the existing PTY infrastructure wheninteractive: trueis set.Changes
interactiveparameter to bash tool with allowlist of supported commandsBashInteractiveTUI component that connects to PTY via WebSocketHow it works
When
interactive: trueand command is in allowlist → creates PTY session → TUI component captures keyboard input and streams it to/from PTY. Everything else works exactly as before.Testing needed
opencode auth loginwith arrow keysvim test.txtworksls -lastill works (falls back to regular mode)Allowlisted commands
vim, vi, nano, emacs, ssh, telnet, opencode, less, more, htop, top, man, psql, mysql, sqlite3, python, python3, node, irb