Skip to content

rwcrosk-arch/hermes-visualizer-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฑ Hermes Visualizer Plugin

Catgirl mood animations that react to your Hermes Agent sessions in real time.

Hermes Agent chafa License: MIT

Display cute, looping catgirl animations in a terminal window that automatically respond to Hermes Agent tool calls โ€” searching, coding, generating images, or hitting errors. Every mood has its own animation cycle!


โœจ Features

Feature Description
๐ŸŽญ Auto Mood Tracking Fires on post_tool_call hook โ€” watches Hermes Agent tool calls and picks the mood automatically
๐Ÿฑ 8 Catgirl Moods happy curious working thinking sad excited sleeping surprised
๐ŸŽจ GIF + ASCII Fallback Each mood has 3 looping GIF animations + an ANSI ASCII fallback; chafa renders GIFs beautifully
๐Ÿ”„ Live Animation Cycling Daemon continuously loops the current mood animation until a new one arrives
โž• Grow the Library Use the add_animation tool to download new GIFs directly into mood folders
๐Ÿ”ง Zero Core Modifications Pure Hermes plugin โ€” no patches to the agent itself

Mood Mapping

Activity Mood Example
Search / browse / read ๐Ÿ” curious web_search, read_file
Terminal / patch / git ๐Ÿ›  working terminal, patch
Code / reason / analyze ๐Ÿ’ญ thinking execute_code, delegate_task
Write / save / send ๐ŸŒธ happy write_file, send_message
Image / audio generate โœจ excited image_generate, text_to_speech
Question / clarify ๐Ÿ˜ฎ surprised clarify
Errors / failures ๐Ÿ˜ฟ sad Auto-detected from result text
Session start ๐ŸŒธ happy on_session_start hook
Session end ๐Ÿ’ค sleeping on_session_end hook

๐Ÿ“‹ Requirements

  • Hermes Agent v0.7.0+ (plugin support)
  • chafa โ€” terminal image renderer
    # Ubuntu / Debian
    sudo apt install chafa
    
    # Fedora
    sudo dnf install chafa
    
    # macOS
    brew install chafa
    
    # Arch
    sudo pacman -S chafa
  • Python 3.10+ (stdlib only โ€” no pip dependencies!)

๐Ÿš€ Quick Start

1. Install the plugin

git clone https://github.com/rwcrosk-arch/hermes-visualizer-plugin   ~/.hermes/plugins/visualizer

2. Enable it in Hermes

hermes plugins enable visualizer

3. Restart Hermes Agent

Fully quit and restart Hermes so the plugin is discovered:

hermes

4. Start the visualizer daemon

In a separate terminal window/tab:

cd ~/.hermes/plugins/visualizer
python3 daemon.py

โš ๏ธ Important: The daemon needs its own terminal window because it uses sys.stdout directly for chafa display. Running it in a background process (nohup/&) may cause path issues.

5. Use Hermes normally!

Every tool call will now trigger a mood animation. Type a prompt and watch the catgirl react! ๐Ÿฑ


๐Ÿ— Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      Hermes Agent Process       โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Plugin: visualizer       โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚  โ”‚
โ”‚  โ”‚  โ”‚ post_tool_call hook โ”‚โ”€โ”€โ”ผโ”€โ”€โ”ผโ”€โ”€โ†’ mood determined from tool name
โ”‚  โ”‚  โ”‚ on_session_start    โ”‚โ”€โ”€โ”ผโ”€โ”€โ”ผโ”€โ”€โ†’ happy
โ”‚  โ”‚  โ”‚ on_session_end      โ”‚โ”€โ”€โ”ผโ”€โ”€โ”ผโ”€โ”€โ†’ sleeping
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚  โ”‚
โ”‚  โ”‚           โ”‚              โ”‚  โ”‚
โ”‚  โ”‚           โ†“              โ”‚  โ”‚
โ”‚  โ”‚   JSON to events.pipe   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚              โ”‚                   โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”‚
โ”‚   โ”‚  events.pipe (FIFO) โ”‚       โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Visualizer Daemon Terminal    โ”‚
โ”‚                                 โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚   โ”‚ daemon.py               โ”‚   โ”‚
โ”‚   โ”‚  โ”œโ”€ reads pipe (O_RDWR) โ”‚   โ”‚
โ”‚   โ”‚  โ”œโ”€ picks animation     โ”‚   โ”‚
โ”‚   โ”‚  โ”œโ”€ loops chafa GIF     โ”‚   โ”‚
โ”‚   โ”‚  โ””โ”€ clear + ANSI status โ”‚   โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฎ Manual Controls

You can also manually trigger or curate animations:

# Show a mood right now
show_mood(mood="excited", message="Image generated!")

# Add a new GIF to a mood library
add_animation(
    url="https://example.com/cat.gif",
    mood="happy",
    filename="happy_4.gif"
)

# List all available moods and their files
list_moods()

๐Ÿ›  Troubleshooting

Plugin not loading / no animations

  1. Check plugin.yaml is not empty
  2. Run hermes plugins list โ€” visualizer should appear as enabled
  3. If not: hermes plugins enable visualizer
  4. Restart Hermes after enabling

Daemon not showing anything

# Check daemon is running
cat ~/.hermes/plugins/visualizer/daemon.pid
# If missing/pid dead, start:
python3 ~/.hermes/plugins/visualizer/daemon.py

Chafa not found / chafa errors in logs

The daemon must be started in a shell with chafa in PATH. If you see [Errno 2] No such file or directory: 'chafa':

  • Make sure chafa is installed
  • Start the daemon in a live shell, not via nohup or systemd

Tiled/overlapping display

The daemon clears screen with \033[2J\033[H before each frame. If chafa doesn't support your terminal, it falls back to ASCII art.

Pipe permissions

rm -f ~/.hermes/plugins/visualizer/events.pipe
# The daemon recreates the FIFO on startup

Testing the pipe manually

# With daemon running:
echo '{"mood":"happy","message":"test"}' > ~/.hermes/plugins/visualizer/events.pipe

๐Ÿ“ File Reference

File Purpose
plugin.yaml Hermes plugin manifest (enables discovery)
__init__.py Plugin entry point โ€” registers tools + hooks
schemas.py Tool schemas for show_mood, add_animation, list_moods
tools.py Tool handlers (writes events to named pipe)
daemon.py Background display daemon (reads pipe, renders via chafa)
animations/ 8 mood directories โ€” each contains GIF + ASCII fallback
install.sh Optional local installer script
skill.md Bundled skill reference

๐ŸŽจ Animation Assets

Each mood folder contains:

  • mood_1.gif, mood_2.gif, mood_3.gif โ€” Chafa renders these in a 3-cycle loop
  • fallback_name.ansi โ€” ASCII art backup if chafa fails

Add your own GIFs with the add_animation tool or by placing files directly into mood directories.


๐Ÿ“ Contributing

Contributions welcome!

  1. Fork the repo on GitHub
  2. Clone to ~/.hermes/plugins/visualizer
  3. Make changes โ€” test with the daemon running
  4. Submit a PR

Ideas:

  • New mood additions (e.g. angry, love, confused)
  • Animated ANSI frames (no chafa dependency!)
  • Daemon size/theme customization via config
  • Auto-daemon-start helper

๐Ÿง‘โ€๐Ÿ’ป Maintainer

rwcrosk-arch โ€” GitHub

Inspired by the Hermes Agent community and built with love for terminal catgirls everywhere. (=^๏ฝฅฯ‰๏ฝฅ^=)


๐Ÿ“„ License

This project is licensed under the MIT License โ€” see LICENSE for details.

Catgirl not included โ€” but the plugins are! ๐Ÿพ

About

๐Ÿฑ Catgirl mood animations that react to Hermes Agent sessions in real time. Chafa-powered GIF display. Auto-hooks for every tool call.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors