OSC 8 hyperlinks in custom statusline no longer render
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Custom statusline commands that output OSC 8 hyperlinks no longer render as clickable/underlined text. The escape sequences appear to be filtered or not passed through to the terminal.
What Should Happen?
The statusline text containing OSC 8 hyperlink sequences should render as:
- Underlined (visual indicator of hyperlink)
- Clickable (Ctrl+click or Cmd+click triggers the URL)
Error Messages/Logs
No error messages. The text simply renders as plain text instead of a hyperlink.
Steps to Reproduce
- Create a minimal statusline script (
statusline-minimal.sh):
#!/bin/bash
# OSC 8 format: \e]8;;URL\e\\TEXT\e]8;;\e\\
UUID="test-uuid-1234-5678-abcd"
URL="toclipboard://${UUID}"
printf '\e]8;;%s\e\\%s\e]8;;\e\\' "$URL" "$UUID"
- Create
settings.json:
{
"statusLine": {
"type": "command",
"command": "/path/to/statusline-minimal.sh",
"padding": 0
}
}
- Make the script executable and run Claude:
chmod +x statusline-minimal.sh
claude --settings settings.json
- Observe the statusline - the UUID appears as plain text, not as a clickable hyperlink.
Claude Model
N/A
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.2
Claude Code Version
- 2.1.2 - works
- 2.1.3 - broken
- latest - broken
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux Version: 24.04 (noble)
Terminal/Shell
VS Code integrated terminal
Additional Information
Suspected Cause
"Improved terminal rendering stability by preventing uncontrolled writes from corrupting cursor state"
This change likely filters or escapes OSC 8 sequences from custom statusline command output.
Use Case
I use a custom statusline that includes a clickable session UUID. I want to be able to Ctrl+click to copy the session UUID to my clipboard, or trigger any other custom URI scheme handler for that matter. The toclipboard:// scheme is just one example - OSC 8 hyperlinks enable integration with any system-registered URI handler.
<img width="633" height="262" alt="Image" src="https://github.com/user-attachments/assets/1a54ac25-db65-426c-9712-4af9d2e7d253" />
Technical Context
The OSC 8 hyperlink format is a standard terminal escape sequence:
\e]8;;URL\e\\VISIBLE_TEXT\e]8;;\e\\
This is the same format Claude Code itself uses for file path links, so terminal support is already assumed for the target environments.
Recommended Terminal for Testing
For reliable OSC 8 hyperlink support, use VS Code integrated terminal or any fork thereof (Cursor, Windsurf, etc.). These terminals have robust OSC 8 implementation.
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗