Background

FAQ

Short answers for maintainers, terminal nerds, and suspicious users.

What is OSC 8?

OSC 8 is the escape-sequence convention commonly used by modern terminal software to represent clickable hyperlinks in terminal output.

Is this a formal standard?

No. This project is a de facto convention for ecosystem adoption. It borrows the clarity of RFC-style writing without claiming ECMA, ISO, or IETF authority.

Why not rely only on auto-detection?

Auto-detection helps, but it cannot express user preference, accessibility needs, screen-reader issues, auditability, or environments where support exists but is hard to detect reliably.

Why define both disable and force-enable?

The disable switch gives users a global kill switch. The force-enable switch helps in terminals or pass-through setups where OSC 8 support exists but tool heuristics are conservative.

Why does NO_HYPERLINKS win over FORCE_HYPERLINKS?

The convention favors predictable user protection and explicit suppression when both variables are present, similar to the general expectation that a negative safety-style override should be easier to reason about.

Does this apply to terminal emulators too?

Mostly the normative behavior is for emitters. Terminal-side software matters for compatibility, so the guidance asks emulators, multiplexers, and pagers to preserve, strip, or document behavior consistently.

What problems does this solve?

It gives users and maintainers a common vocabulary for security review, accessibility, plain-text output, debugging, and support conversations across tools.

How should projects announce support?

Add a short note to CLI help, docs, or changelogs stating that hyperlink behavior honors NO_HYPERLINKS and FORCE_HYPERLINKS, and specify any local override flags.