[BUG] Markdown link labels never clickable in Orca/tmux — no OSC 8 emitted for unrecognized TERM_PROGRAM, FORCE_HYPERLINK=1 ignored
Bug Description
Markdown links ([label](url)) in assistant responses render as a styled label with no OSC 8 escape emitted, so the label is not clickable. Only bare URLs (linkified as plain text by the terminal itself) remain clickable. This happens whenever the terminal is not recognized — observed with TERM_PROGRAM=Orca (Orca embedded terminal) and TERM_PROGRAM=tmux (tmux inside Orca).
Setting FORCE_HYPERLINK=1 before launching has no effect (also noted in #72998, where the variable is ignored for the opposite purpose — disabling).
Steps to Reproduce
- Run Claude Code inside a terminal whose
TERM_PROGRAMis not on the capability allowlist — e.g. Orca (TERM_PROGRAM=Orca) or any tmux session (TERM_PROGRAM=tmux,TERM=tmux-256color). - Ask the assistant to print both forms:
- markdown:
[example](https://example.com/some/long/path) - bare URL:
https://example.com/some/long/path
- Observe: the markdown label renders styled but is not clickable (no OSC 8 region, nothing on hover); the bare URL is clickable only because the terminal itself linkifies plain-text URLs.
FORCE_HYPERLINK=1 claude— behavior unchanged.
Why the terminal is not the problem
| Layer | OSC 8 support | Evidence |
|---|---|---|
| Orca terminal | ✅ renders OSC 8 | stablyai/orca#6880 (test matrix in issue body: "rendered, clickable, URL hidden") |
| tmux 3.7b | ✅ supports the hyperlinks terminal-feature | binary contains the feature and Hls=\E]8;...; passthrough needs set -as terminal-features ",*:hyperlinks" |
| Claude Code renderer | ❌ no OSC 8 emitted for markdown labels | this report |
So in the direct-Orca case the chain is known-good end to end, yet no OSC 8 arrives; in the tmux case the user can open the tmux side with one config line, but that is moot while nothing is emitted upstream.
Expected
Either of:
- honor
FORCE_HYPERLINK=1as an explicit user override of terminal capability detection (matching thesupports-hyperlinksecosystem convention), and/or - treat
TERM_PROGRAM=tmux(tmux ≥ 3.4 supports thehyperlinksfeature) andTERM_PROGRAM=Orcaas hyperlink-capable.
The TERM_PROGRAM allowlist approach can never see through tmux nesting (the outer terminal's identity is not visible inside), so an env-var override is the only mechanism that works for every setup.
Related: #79839 (file-path OSC 8 regression in assistant responses), #72998 (FORCE_HYPERLINK ignored for disabling), #13008 / #77576 (file-path hyperlink requests), stablyai/orca#6880 (terminal-capability detectability for agent TUIs).
Environment Info
- Platform: macOS 26.5.2
- Terminal: Orca (embedded terminal,
TERM_PROGRAM=Orca) and tmux 3.7b inside Orca (TERM_PROGRAM=tmux,TERM=tmux-256color) - Version: 2.1.220
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗