RELEASE_V0.1.0

Hide it. Replace it.Control the capture.

Shield sensitive UI from prying eyes, accidental screenshots, and shoulder surfing— or flip it and show your brand the moment someone takes a screenshot. One component. Zero latency.

$npm i camerashy
npmjs.com/package/camerashy ↗
Take a screenshot to see the demos react
⌘⇧3⌘⇧4⌘⇧5orPrtScn
mode: blur · sensitivity: balanced

Balance is blurred in place — layout stays intact.

Account Balance

$142,069.00

blurred in place on screenshot

sensitivity: balanced · blur: 14px

mode: replace

Content swaps with any element on screenshot.

default

swapped with replacement on screenshot

detection.log
$ awaiting detection events — take a screenshot above

3 Sensitivity Levels

Level 01RELAXED
API Keysk_live_••••••••
screenshot shortcut keys only
Level 02BALANCED
Balance$142,000.00
screenshot keys + window focus loss
Level 03PARANOID
SSN382-84-2910
any suspicious key combo or context switch

“One prop away from maximum aggression.”

Implementation.tsx — camerashy

import { CameraShy } from 'camerashy';

// Wrap any sensitive value

<CameraShy

mode="blur"

sensitivity="paranoid"

>

$142,069.00

</CameraShy>

// Or swap with a custom element

<CameraShy

mode="replace"

replacement={<RedactedBadge />}

>

{sensitiveContent}

</CameraShy>

code
CORE ARCHITECTURE
SSR-Safe (No-op on Server)
How it works
  • ▶︎useScreenshotDetection hook
  • ▶︎SSR-safe — no-op on server, activates on client
  • ▶︎Single global event bus — efficient with hundreds of elements
  • ▶︎Zero dependencies in core
  • ▶︎Under 1 KB gzipped (core)
  • ▶︎Framework-agnostic core — works with React, Vue, Svelte, Vanilla JS
Disclaimer

This feature is intended for visual deterrence only and should not be considered a replacement for true security or encryption. Determined attackers may still bypass it.

why did i make this?

i just wanted to hide stuff in my screenshots on a few projects i've worked on. claude + css ftw.

Disclaimer: This solution acts as a visual deterrence and local shielding layer. It is not a replacement for proper end-to-end encryption or server-side security protocols.

© 2026 CameraShy

BUILD: 0.1.0-STABLELICENSE: MIT
homelayersdescription