mpfaffenberger / mpfaffenberger/code_puppy

feat: Add variety to loading messages with shimmer animation and plugin hook

Open
#202 0 comments 0 reactions 1 assignee View on GitHub

@nhicks00 is already working on this.

Since Feb 25, 2026.

enhancement
Dominant language
Python
Stars
814
Forks
278
Avg merge
2d 5h
Merged PRs (30d)
76

Description

Summary

Add rotating loading messages with a shimmer animation to replace the static "thinking..." spinner text. Include a plugin hook (register_loading_messages callback) so forks/plugins can inject their own org-specific messages.

What this adds

Core (OSS)
  • loading_messages.py — 160+ fun/silly messages across 5 categories (puppy, dev, fun, action, standalone)
  • shimmer.py — Travelling highlight animation effect for Rich Text
  • Plugin registry (register_messages / unregister_messages) for custom message injection
  • register_loading_messages callback phase in callbacks.py
  • Spinner rotates through shuffled message deck per cycle (no repeats until deck exhausted)
  • Updated status_display.py to use shared message pool
Plugin hook (for forks)

Forks can register a callback to inject org-specific messages:

from code_puppy.callbacks import register_callback
from code_puppy.loading_messages import register_messages

def _add_my_messages():
    register_messages('my_org', ['doing org things...', 'synergizing...'])

register_callback('register_loading_messages', _add_my_messages)

Motivation

Inspired by Claude Code's ~300 creative loading verbs. Makes the spinner more fun and engaging while keeping core and org-specific content cleanly separated via the plugin system.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.