Skip to content

feelsodev/louder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Louder

louder

npm version License: MIT macOS only Node.js

Your AI learned to shout.

For Humans Β· For LLMs Β· Configuration


πŸ€” Why "Louder"?

Your AI assistant works hard in silence. But when it's done? It deserves to be LOUDER.

You: "Hey Claude, fix this bug"
Claude: *works silently for 10 minutes*
You: *watching YouTube, completely forgot*
Claude: *whispers* "...done"
You: *30 minutes later* "Oh, it finished ages ago!" πŸ˜…

With Louder:

You: "Hey Claude, fix this bug"
Claude: *works silently for 10 minutes*
Claude: πŸ”Š *DING!* πŸ“³ *bzzt*
You: "Nice, let's keep going!"

Your AI finally speaks up. Sound + haptic feedback when tasks complete.


πŸ‘€ For Humans

Installation

Claude Code

/plugin marketplace add feelsodev/louder
/plugin install louder@louder

OpenCode

Option 1: npm Package (Recommended)

Add to your opencode.json:

{
  "plugin": ["@feelso/louder"]
}

Option 2: Local Plugin

Download the plugin file:

mkdir -p ~/.config/opencode/plugins
curl -o ~/.config/opencode/plugins/louder.js \
  https://raw.githubusercontent.com/feelsodev/louder/main/opencode-plugin/louder.js

Then restart OpenCode.

Note: Local plugin only supports sound. For haptic feedback, use npm package.

Done!

Give your AI a task. When it finishes, you'll hear it. πŸ”Š

Updating

Claude Code

/plugin marketplace update louder
/plugin update louder@louder

Then restart Claude Code.

OpenCode (npm)

npm update @feelso/louder

Then restart OpenCode.

OpenCode (Local Plugin)

curl -o ~/.config/opencode/plugins/louder.js \
  https://raw.githubusercontent.com/feelsodev/louder/main/opencode-plugin/louder.js

Then restart OpenCode.

Troubleshooting

  • No sound? Check macOS System Settings > Sound
  • No haptic? Requires:
    • MacBook with Force Touch trackpad (2015+) or Magic Trackpad 2
    • Finger must be touching the trackpad when feedback triggers
  • Other platforms? macOS only (uses afplay for sound, Force Touch for haptic)

πŸ€– For LLMs

Claude Code, Cursor AI, and other AI assistants: Read this section to install Louder for your user.

Installation Protocol

Claude Code:

/plugin marketplace add feelsodev/louder
/plugin install louder@louder

OpenCode: Add to opencode.json:

{
  "plugin": ["@feelso/louder"]
}

Then restart OpenCode.

Ask User About Haptic Feedback

Ask the user: "Would you like haptic feedback (trackpad vibration) when tasks complete? Requires MacBook with Force Touch trackpad."

If user wants haptic, create ~/.louderrc.json:

{
  "haptic": true
}

Post-Installation Message

Tell your user: "Louder installed. You'll hear a sound (and feel a vibration if enabled) when tasks complete."

Changing Settings

When user asks to change Louder settings, edit ~/.louderrc.json:

User Request Config
"Turn off sound" { "sound": false }
"Turn on haptic" { "haptic": true }
"Turn off haptic" { "haptic": false }
"Only notify on errors" { "events": { "stop": false, "error": "error" } }
"Change sound to Ping" { "sound": "reminder" }
"Disable all notifications" { "sound": false, "haptic": false }

Available sound types: success, error, info, warning, progress, reminder, silent

Show current settings:

cat ~/.louderrc.json 2>/dev/null || echo "Using defaults (sound: on, haptic: off)"

πŸš€ Quick Start

Zero config needed. Default behavior:

Event What Happens
Task complete πŸ”Š Glass sound
Error πŸ”Š Basso sound
Needs input πŸ”Š Blow sound

Want haptic feedback? Add to .louderrc.json:

{ "haptic": true }

βš™οΈ Configuration

Create .louderrc.json in project root or ~/.louderrc.json for global config.

{
  "sound": "success",
  "haptic": true,
  "events": {
    "stop": "success",
    "error": "error"
  }
}

All Options

Option Type Default Description
sound boolean | string true Sound type or false to disable
soundPath string - Custom sound file path (.aiff)
haptic boolean | string false true, "success", or "error"
delay number 0 Delay in ms before feedback
events object - Per-event overrides

Sound Types

Type Sound Use For
success Glass Task complete
error Basso Errors
info Blow Information
warning Sosumi Warnings
progress Tink Progress
reminder Ping Reminders
default Glass Default (same as success)
silent - No sound

Haptic Types

Type Intensity Use For
success Strong Task complete
error Strong Errors

Config Location

  • Global: ~/.louderrc.json
  • Project: ./.louderrc.json (overrides global)

πŸ’‘ Recipes

Focus Mode - Only errors make sound:

{ "events": { "stop": false, "idle": false, "error": "error" } }

Silent Mode - No sound at all:

{ "sound": "silent" }

Full Feedback - Sound + Haptic:

{ "sound": "success", "haptic": true }

Custom Sound - Use your own sound file:

{ "soundPath": "/path/to/custom.aiff" }

πŸ“‘ Events Reference

Tool Event Default Sound
Claude Code Stop success
Claude Code Notification info
OpenCode session.idle reminder
OpenCode session.error error
OpenCode session.progress progress

macOS only Β· Issues Β· MIT License

Made by @feelso β€” because watching AI work in silence was too quiet.

About

AI coding assistant notification plugin for Claude Code and OpenCode (macOS)

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors