A de facto convention for controlling OSC 8 terminal hyperlinks,
following the adoption model of NO_COLOR.
Two environment variables. One precedence rule.
| Variable | Effect |
|---|---|
NO_HYPERLINKS |
Disable OSC 8 hyperlinks globally |
FORCE_HYPERLINKS |
Enable OSC 8 hyperlinks when heuristics would suppress them |
If both are set, NO_HYPERLINKS wins.
- Explicit CLI flags or app config
NO_HYPERLINKSFORCE_HYPERLINKS- Automatic TTY / capability detection
When disabled, emitters should render destinations as plain-text URLs instead of hyperlink-only labels.
- CLI authors deciding when to emit OSC 8
- Library maintainers who want one reusable hyperlink decision function
- Terminal emulators, multiplexers, pagers that preserve, strip, or document hyperlink behavior
- Users who want global control over terminal hyperlinks
- Users telling their agents what to do.
- Specification — normative v1 language
- Adoption guide — implementation guidance
- FAQ — rationale and background
- License — MIT
Every page is not just html, it's markdown — and that is load-bearing.
curl -fsSL --header 'Accept: text/markdown' https://no-hyperlinks.org/specThe site supports llms.txt and llms-full.txt.
Does your project implement the specification? Open a pull request to add it here.