Skip to content

Support Interactive TTY Mode for ! Shell Command Execution #907

@MRayermannMSFT

Description

@MRayermannMSFT

Describe the feature or problem you'd like to solve

When using ! to directly execute bash commands in Copilot CLI, interactive commands (like git log, less, vim) dump all output at once instead of allowing user interaction. Users cannot scroll, navigate, or interact with pagers/editors as they would in a normal terminal.

Proposed solution

Enable TTY pass-through for commands executed via the ! prefix, allowing interactive programs to function normally. This would:

  • Allow pagers (less, more, git log) to be navigated with keyboard controls
  • Support interactive editors (vim, nano) when invoked
  • Preserve the same terminal experience users expect from their shell

Example prompts or workflows

  • !git log - Navigate commit history with j/k keys, search with /, quit with q
  • !less README.md - Scroll through file contents interactively
  • !git diff - Page through diffs instead of having them dumped to screen
  • !top or !htop - View live-updating system monitors
  • !man git - Read man pages with normal pager navigation

Additional context

Currently, running !git log outputs the entire log history at once, making it difficult to read and navigate. Users must exit the CLI to run interactive commands normally, breaking their workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions