anthropics / anthropics/claude-code

Markdown links with a custom URL scheme (e.g. myapp://) are not clickable in Warp, while https:// links are

Open
#95,675 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:tui bug platform:macos
Dominant language
TypeScript
Stars
147k
Forks
24k
PR merge metrics
PR metrics pending

Description

Summary

In a Claude Code reply, a markdown link whose target uses a custom scheme renders as its label but is not a hyperlink: no hover state, no pointing-hand cursor, no click action. An https:// markdown link in the same reply is clickable. The terminal itself handles a custom scheme fine when the hyperlink is sent directly as OSC 8, so the difference seems to be on the Claude Code side.

This looks like the same behaviour as #42519, which was closed as stale and locked without a maintainer reply, so I'm filing a fresh report with a terminal-side control.

Environment

  • Claude Code: 2.1.278
  • Terminal: Warp 0.2026.09.16.08.27.02 on macOS
  • tui setting: default

Steps to reproduce

  1. In Claude Code, ask for a reply containing these two lines verbatim:

    [Example https](https://example.com/item/117)
    [Example custom](myapp://item?id=117)
    
  2. Hover each label in Warp with Cmd held.

Actual

  • https:// link: hand cursor, underline, click opens the URL.
  • myapp:// link: label only, nothing on hover, click does nothing.

Control: the terminal handles the scheme

In a separate Warp tab, the same custom scheme sent as a raw OSC 8 hyperlink is hoverable and Cmd+click hands off to the registered app:

printf '\033]8;;%s\033\\%s\033]8;;\033\\\n' 'myapp://item?id=117' 'Example custom'

Warp does not linkify a custom scheme in plain text (warpdotdev/warp#5659), so an OSC 8 hyperlink is the only way such a link can be clickable there, and Claude Code isn't emitting one for it.

Expected

Either of:

  • Markdown links are emitted as OSC 8 hyperlinks whatever the scheme, as they are for https://.
  • If a scheme filter is intentional, an opt-in setting for extra schemes, default empty and exact-match only, so nobody gets one-click launches of arbitrary schemes from model output without asking for it.

Why it matters

Custom schemes are how macOS apps expose deep links (vscode://, obsidian://, and app-specific ones). A short label that opens the target app is the only form that works in a terminal, since a long raw URL soft-wraps and, in Warp, isn't linkified at all.

Related

  • #42519: same report, closed as stale/locked, no maintainer response.
  • warpdotdev/warp#5659: the terminal-side gap for plain-text custom schemes.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating Claude Code's Markdown-link handling and the code that emits OSC 8 hyperlinks, then compare the paths for https:// and custom schemes. Reproduce the two links from the report and verify that the custom-scheme link gains hover and click behavior without enabling unsafe arbitrary launches; cover the chosen behavior with a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.