Skip to content

Copilot CLI 1.0.86 reliably crashes Ghostty 1.3.1 on macOS; Terminal.app unaffected #4915

Description

@anthonyproctor

TL;DR: Running Copilot CLI inside Ghostty kills the terminal within seconds, five out of five attempts, taking every tab and every child process with it. The exact same command in Terminal.app on the same machine works fine. Copilot's own logs show no panic and no OOM, so the terminal is what dies, but Copilot is a reliable trigger and right now it is unusable in Ghostty.

Environment

  • GitHub Copilot CLI 1.0.86, npm install -g @github/copilot
  • Ghostty 1.3.1 (crashes) vs Terminal.app (fine)
  • macOS 26.6.1 (25G76), arm64
  • TERM=xterm-ghostty, zsh, Node v24.14.0 system / v24.20.0 bundled

Steps to reproduce

  1. Install and authenticate
  2. Open Ghostty
  3. Run any prompt, copilot -p "..." or interactive
  4. Ghostty terminates within a few seconds

Expected: the prompt runs, or fails cleanly.

Actual: the terminal emulator dies and takes the shell, the CLI, and every other tab with it. Work in unrelated tabs is lost.

Control: identical steps in Terminal.app, same machine, same version, same MCP servers, same shell. No crash. That is the part that makes this worth your time even though the fatal fault is on the terminal side.

What the logs show

Copilot looks healthy right up to the end. No panic, no OOM, no abort. The only error:

[ERROR] [shutdown] Failed dispose: PromptMode.stdout (3ms): Error: write EPIPE

Reader gone, so the terminal died first. Child processes exit 137.

Hypothesis I tested and ruled out

Ghostty has an open segfault on terminal reset after displaying an image (ghostty-org/ghostty#5649), and your built in MCP server is the only one of my four advertising base64 PNG icons:

server_info: Implementation { name: "github-mcp-server", ...
  icons: Some([Icon { src: "data:image/png;base64,...", mime_type: Some("image/png") }, ...]) }

My three other MCP servers all report icons: None. So I set Ghostty's image-storage-limit = 0, verified it was live in a freshly launched window, and it still crashed. The image path is not the cause. Recording it so nobody repeats the experiment.

Mechanism: unknown. Something in how the CLI drives the terminal takes Ghostty down and does not affect Terminal.app. I have not narrowed it further.

Why it is worth looking at on your side

  1. Five for five, from a clean install, with no third party configuration required
  2. Ghostty is widely used and the failure is total, not cosmetic. The process dies and unrelated work is lost
  3. There is already a known rough edge between these two (ghostty-org/ghostty discussion #9264, Enter key not registering in your interactive prompts), so the pairing has form
  4. Even if the fix belongs to Ghostty, a capability check or a quieter fallback on your side would unblock users now rather than after a Ghostty release

Happy to run an instrumented build, capture raw output to a file, or grab a spindump.

Activity

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions