[FEATURE] Recognize TERM_PROGRAM=herdr as hyperlink-capable (OSC 8)
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
herdr, a terminal multiplexer, renders OSC 8 hyperlinks, but Claude Code doesn't recognise it as hyperlink-capable, so links in its output aren't clickable inside herdr panes.
herdr replaces the outer terminal's identity in each pane with its own:
TERM_PROGRAM=herdr
TERM_PROGRAM_VERSION=0.9.3
HERDR_ENV=1
TERM=xterm-256color
COLORTERM=truecolor
Since hyperlink detection keys on TERM_PROGRAM, the outer terminal's support (iTerm2 in my case) is hidden, and Claude Code falls back to plain text even though herdr passes the links through.
Proposed Solution
Add herdr to the TERM_PROGRAM values Claude Code treats as supporting OSC 8 hyperlinks, the same way #96923 asks for Kaku.
Alternative Solutions
Setting FORCE_HYPERLINK=1 works: links become clickable in herdr. But setting it in Claude Code's env settings forces links in every terminal, including ones that can't render them. I currently scope it with a shell guard instead:
if set -q HERDR_ENV
set -gx FORCE_HYPERLINK 1
end
That works, but every herdr user needs to find and apply it themselves, and it only takes effect for sessions launched from a configured shell.
Priority
Low - Nice to have
Feature Category
Interactive mode (TUI)
Use Case Example
- Run Claude Code inside a herdr pane.
- Claude cites a file, a PR or a docs page.
- Today the link is plain text, so I copy it by hand. With herdr recognised, I'd click it, as in a bare iTerm2 window.
Additional Context
- Claude Code 2.1.287, herdr 0.9.3, macOS 27.0.1, iTerm2 as the outer terminal.
- Related herdr detection gaps: #98832 (unrecognized
TERM_PROGRAM=herdrslows startup) and #101306 (kitty graphics rejected under libghostty-based terminals like herdr). A shared fix for recognising herdr would likely cover all three. - Same pattern for another terminal: #96923 (Kaku).
- In contrast to #83508,
FORCE_HYPERLINK=1is honoured here, so the rendering path works; only detection is missing.