
Security News
OpenCode User Hit with Hostile Backlash After Reporting Free AI Loophole
An OpenCode user faced harassment after reporting a free AI usage loophole, drawing a bitter backlash in a GitHub thread that has since been deleted.
@0xsharon/click-clack
Advanced tools
Satisfying, procedurally synthesized mechanical keyboard audio feedback for web apps. Zero audio files, under 2KB minified.
Satisfying, procedurally synthesized mechanical keyboard audio feedback for web apps.
Zero audio files, under 2KB minified, pure Web Audio API acoustics.
thock — Deep, lubed tactile/linear mechanical switches (Holy Panda / Topre feel).clicky — Crisp click-leaf with metallic spring resonance (Cherry MX Blue / Kailh Box White).typewriter — Heavy steel mechanical typewriter with hollow chamber resonance.bubble — Modern playful UI pop sound.useClickClack support included.npm install @0xsharon/click-clack
# or
pnpm add @0xsharon/click-clack
# or
yarn add @0xsharon/click-clack
Attach mechanical switch acoustics to any <textarea>, <input>, or the entire window:
import { attachMechanicalAudio } from '@0xsharon/click-clack';
// Attach to an editor or input
const unsubscribe = attachMechanicalAudio(document.querySelector('#editor'), {
profile: 'thock', // 'thock' | 'clicky' | 'typewriter' | 'bubble'
volume: 0.8, // 0.0 to 1.0
playRelease: true // Plays softer upstroke reset sound on keyup
});
// Later, teardown when needed:
unsubscribe();
Trigger clicks anywhere in your application (buttons, menus, shortcuts):
import { playSwitch } from 'click-clack';
// Play on button click
button.addEventListener('click', () => {
playSwitch({ profile: 'clicky', volume: 0.9 });
});
// Play spacebar stabilizer sound
playSwitch({ profile: 'thock', key: ' ' });
Import directly from click-clack/react:
import React, { useRef } from 'react';
import { useClickClack } from 'click-clack/react';
export function CodeEditor() {
const textareaRef = useRef<HTMLTextAreaElement>(null);
// Automatically binds keydown & keyup acoustics to this element
useClickClack(textareaRef, {
profile: 'thock',
volume: 0.8
});
return (
<textarea
ref={textareaRef}
placeholder="Type to feel the switches..."
/>
);
}
Or enable mechanical sound across the entire browser window:
import { useGlobalClickClack } from 'click-clack/react';
export function App() {
useGlobalClickClack({ profile: 'thock', volume: 0.7 });
return <div id="app">...</div>;
}
attachMechanicalAudio(target, options)Binds event listeners to target (HTMLElement | Window | Document). Returns an unsubscribe cleanup function.
| Option | Type | Default | Description |
|---|---|---|---|
profile | 'thock' | 'clicky' | 'typewriter' | 'bubble' | 'thock' | Switch acoustic profile |
volume | number | 0.8 | Master volume (0.0 - 1.0) |
playRelease | boolean | true | Synthesize release click on keyup |
filter | (e: KeyboardEvent) => boolean | undefined | Optional key filter function |
playSwitch(options)Plays a one-off synthesized mechanical switch sound.
| Option | Type | Default | Description |
|---|---|---|---|
profile | SwitchProfile | Active profile | Profile signature |
volume | number | 1.0 | Relative volume |
pitch | number | 1.0 | Base pitch multiplier |
isRelease | boolean | false | True for upstroke reset sound |
key | string | KeyRole | 'standard' | Key character (e.g., ' ' for Spacebar) |
createSwitchEngine(defaultOptions)Creates an isolated controller instance with .play(), .setProfile(), and .setVolume() methods.
To try the sound profiles locally in your browser, open demo.html in any browser or launch a local preview server!
MIT © 0xSHARON
FAQs
Satisfying, procedurally synthesized mechanical keyboard audio feedback for web apps. Zero audio files, under 2KB minified.
The npm package @0xsharon/click-clack receives a total of 23 weekly downloads. As such, @0xsharon/click-clack popularity was classified as not popular.
We found that @0xsharon/click-clack demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
An OpenCode user faced harassment after reporting a free AI usage loophole, drawing a bitter backlash in a GitHub thread that has since been deleted.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.