[FEATURE] Fullscreen TUI: show hover feedback on links

Status Open
Reported on v2.1.246
Maintainer reply None cached
Activity 0 comments · opened Aug 27, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

In the fullscreen renderer, hovering a link gives no feedback — no underline, no highlight, no URL preview. Color is the only hint, and it doesn't reliably track clickability (#87438).

The terminal can't supply it either. Ghostty highlights links on hover only when mouse reporting is off, or when Shift is held to bypass the app's mouse capture (ghostty#3903). The fullscreen renderer holds the mouse, so the underline disappears as soon as Claude Code starts. On macOS ⌘ has no bit in the SGR mouse protocol, so it's stripped when the event is forwarded, and a Ghostty maintainer has confirmed Shift is the only bypass and won't change (ghostty#13073).

Whichever app owns the mouse owns the affordance. Today nobody draws it.

Proposed Solution

Underline a link while the pointer is over it, and clear it on leave:

before hover   See https://github.com/anthropics/claude-code/issues/1234
on hover       See https://github.com/anthropics/claude-code/issues/1234
                   ─────────────────────────────────────────────────────

The TUI already tracks pointer position (menu and suggestion rows highlight on hover), so this is about applying the same treatment to links. Two details worth getting right: underline the whole link, including when it wraps across lines, and skip this when mouse mode is off or scroll-only.

Alternative Solutions

| Workaround | Underline back | Cost |
|---|---|---|
| Hold ⌘+Shift while hovering (Ctrl+Shift on Linux) | yes | Undiscoverable; the gesture silently changes depending on whether an app captured the mouse |
| Ghostty toggle_mouse_reporting | yes | Claude Code loses wheel and clicks while it's off |
| CLAUDE_CODE_DISABLE_MOUSE=1 | yes | No wheel scrolling in fullscreen; PgUp/PgDn only |
| CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1 | no | Mouse is still captured, so hover stays dead; clicks are just dropped |
| /tui default | yes | Gives up the fullscreen renderer |

Priority

Low - Nice to have

Feature Category

Interactive mode (TUI)

Use Case Example

A turn ends with a PR URL and a few file paths. Hovering shows nothing, so I can't tell what's clickable or where a markdown label points, and I fall back to selecting and copying. With hover feedback I'd just click it.

Additional Context

Claude Code 2.1.246, "tui": "fullscreen", no CLAUDE_CODE_DISABLE_MOUSE* set; macOS 26.6.2; Ghostty 1.3.1 with default mouse config. Not Ghostty-specific — any terminal that gates link handling on mouse reporting behaves this way (Terminal.app does; iTerm2 is more forgiving because it keeps ⌘ terminal-side).

View original on GitHub ↗