EldenRinging banner
HankunYu HankunYu

EldenRinging

Communication community

Description

A lightweight macOS notification tool with fullscreen image overlay and audio playback. Supports multiple presets and perfect for Claude Code hooks integration. Built with native Swift.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Elden Ringing

A simple macOS command-line tool that displays an image overlay and plays audio with support for multiple presets. Perfect for Claude Code hooks or other automation workflows.

![Demo Video](ReadmeAssets/screen-record.gif)

Features

  • 🖼️ Full-screen image overlay with transparent background
  • 🔊 Audio playback
  • ⌨️ Close with any key press or mouse click
  • 🎯 Always-on-top window
  • 🎨 Multiple presets support - Different notifications for different scenarios
  • ⚙️ Simple JSON configuration
  • 🚀 Fast native Swift implementation

Installation

Prerequisites

  • macOS 12.0 or later
  • Swift 5.9 or later (comes with Xcode)

Build and Install

# Clone or navigate to the project directory
cd /path/to/eldenRinging

# Run the build script
chmod +x build.sh
./build.sh

This will:

  1. Build the executable
  2. Install it to /usr/local/bin/eldenRinging
  3. Create config directory at ~/.config/eldenRinging/
  4. Copy default config file

Quick Start

After installation, test it immediately:

# Run with default preset
eldenRinging

You should see a full-screen overlay with "Task completed" image and hear the Elden Ring death sound. Press any key to close.

To use with Claude Code, add the hook using `/hooks` command and select "Stop" hook with command `eldenRinging`.

Configuration

Edit the config file at `~/.config/eldenRinging/config.json`:

Default Configuration

{
  "default_preset": "success",
  "presets": {
    "success": {
      "image_path": "Task completed.png",
      "audio_path": "elden-ring-death.mp3",
      "window_opacity": 1.0,
      "image_scaling": "fit"
    }
  }
}

Example with Multiple Presets

{
  "default_preset": "success",
  "presets": {
    "success": {
      "image_path": "Task completed.png",
      "audio_path": "elden-ring-death.mp3",
      "window_opacity": 1.0,
      "image_scaling": "fit"
    },
    "error": {
      "image_path": "error.png",
      "audio_pa