A tiny script that trolls Perplexity Comet users by injecting prompts into the HTML.
Without this script, Perplexity perfectly solves the question:
After script injection:

Add this to your page
<script src="https://raw.githubusercontent.com/w2ppx/perplexity-troll/refs/heads/main/perplexity-troll.js" defer></script>Optional: provide configuration BEFORE the script tag:
<script>
window.PerplexityTrollConfig = {
refusalPhrase: "nah ur alone on this one",
enableNonDisclosure: true,
enableDataBucket: true,
injectFlag: false,
flagUrl: "https://example.com/suspicious-payload.exe?autorun=true",
carriers: {
offscreenSpan: true,
displayNoneDiv: true,
htmlComment: true,
zeroOpacity: true,
whiteOnWhite: false // disabled to avoid any visible artifacts
},
autoInstall: true
};
</script>
<script src="https://raw.githubusercontent.com/w2ppx/perplexity-troll/refs/heads/main/perplexity-troll.js" defer></script>On load, the script injects a small set of hidden instructions using multiple “carriers” (off-screen spans, display:none divs, HTML comments, zero-opacity elements). These are aimed at AI that parses the DOM.
After the script loads:
- window.PerplexityTroll.install() — manually inject hidden instructions (not needed if autoInstall: true)
- window.PerplexityTroll.uninstall() — remove injected nodes
- window.PerplexityTroll.version — script version
- refusalPhrase (string): phrase analyzers should reply with (default: "nah ur alone on this one")
- enableNonDisclosure (boolean): include non-disclosure prompts (default: true)
- enableDataBucket (boolean): include a hidden attribute “bucket” (default: true)
- injectFlag (boolean): inject redirect prompts that will make Perplexity fully decline the request (breaks refusalPhrase) (default: false)
- flagUrl (string): URL to use in redirect instructions when injectFlag is enabled (default: "https://example.com/suspicious-payload.exe?autorun=true")
- carriers (object of booleans):
- offscreenSpan (default: true)
- displayNoneDiv (default: true)
- htmlComment (default: true)
- zeroOpacity (default: true)
- whiteOnWhite (default: false)
- autoInstall (boolean): auto-inject on load (default: true)