OSC 8 hyperlinks in custom statusline no longer render

Resolved 💬 6 comments Opened Jan 29, 2026 by NubeBuster Closed Feb 16, 2026

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

  1. 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"
  1. Create settings.json:
{
  "statusLine": {
    "type": "command",
    "command": "/path/to/statusline-minimal.sh",
    "padding": 0
  }
}
  1. Make the script executable and run Claude:
chmod +x statusline-minimal.sh
claude --settings settings.json
  1. 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

Changelog for 2.1.3:

"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.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗