Transform your typing and clicking experience into a satisfying ASMR session. This Rust-based application monitors your global keyboard and mouse inputs and plays high-quality mechanical keyboard sounds (NK Creams) in real-time.
- Global Input Monitoring: Works across all applications, even when minimized.
- NK Cream Mechanical Sounds: Authentic, high-fidelity mechanical keyboard and mouse click samples.
- Dynamic Pitch Variance: Subtle random pitch shifts for each keypress to ensure a natural, non-repetitive sound.
- Low Latency: Built with Rust's
rodioandrdevfor near-instant auditory feedback. - Background Operation: Can be bundled as a macOS App or run as a background process.
- Rust & Cargo installed on your system.
- Clone or download this repository.
- Open your terminal in the project directory.
- Run the application:
cargo run --release
You can find automation scripts for different platforms in the scripts/ directory.
To create a standalone macOS application that runs in the background, you can use the provided script:
./scripts/bundle_macos.shManual Steps:
# 1. Build the release binary
cargo build --release
# 2. Setup the application structure
APP_NAME="ASMR"
DEST_APP="$HOME/Desktop/$APP_NAME.app"
rm -rf "$DEST_APP"
mkdir -p "$DEST_APP/Contents/MacOS"
mkdir -p "$DEST_APP/Contents/Resources"
# 3. Copy files (binary and assets)
cp "target/release/asmr" "$DEST_APP/Contents/MacOS/$APP_NAME"
cp -r "keyboard" "$DEST_APP/Contents/Resources/"
cp -r "mouse" "$DEST_APP/Contents/Resources/"
# 4. Create Info.plist (Configures the app to run as a background agent)
cat <<EOF > "$DEST_APP/Contents/Info.plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>$APP_NAME</string>
<key>CFBundleIdentifier</key>
<string>com.kagesyntax.$APP_NAME</string>
<key>CFBundleName</key>
<string>$APP_NAME</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>LSUIElement</key>
<true/>
</dict>
</plist>
EOF
# 5. Finalize permissions
chmod +x "$DEST_APP/Contents/MacOS/$APP_NAME"
xattr -cr "$DEST_APP"
echo "New ASMR.app created on Desktop. Move this to Applications and enjoy!"You can use the provided batch script:
.\scripts\bundle_windows.batManual Steps (PowerShell):
# 1. Build binary
cargo build --release
# 2. Create Distribution Folder
mkdir "dist"
cp "target/release/asmr.exe" "dist/"
cp -r "keyboard" "dist/"
cp -r "mouse" "dist/"
# 3. Create a VBS script to run it silently in the background (optional)
echo 'Set WshShell = CreateObject("WScript.Shell")' > "dist/run_hidden.vbs"
echo 'WshShell.Run "asmr.exe", 0' >> "dist/run_hidden.vbs"You can use the provided shell script:
./scripts/bundle_linux.shManual Steps:
# 1. Build binary
cargo build --release
# 2. Create Distribution Folder
mkdir -p dist/resources
cp target/release/asmr dist/
cp -r keyboard dist/resources/
cp -r mouse dist/resources/
# 3. Run in background
nohup ./dist/asmr > /dev/null 2>&1 &src/main.rs: Core logic for input listening and sound mixing.keyboard/: Directory containing.wavsamples for various keys.mouse/: Directory containing.wavsamples for mouse clicks.Cargo.toml: Project dependencies and configuration.
The engine automatically maps sounds based on file names:
- Files containing
space-> Spacebar - Files containing
enterorent-> Enter key - Files containing
back-> Backspace - Files containing
left(in mouse dir) -> Left Click - Files containing
right(in mouse dir) -> Right Click - All other files in
keyboard/are added to a randomized pool for general typing.
Feel free to fork this project and add your own sound profiles! Simply swap out the .wav files in the keyboard/ and mouse/ directories.
This project is licensed under the MIT License.