{"id":50443818,"url":"https://github.com/ericrihm/claude-spinner","last_synced_at":"2026-05-31T20:02:36.147Z","repository":{"id":348911358,"uuid":"1200342244","full_name":"ericrihm/claude-spinner","owner":"ericrihm","description":"Terminal spinner animation library — 187 real CLI action verbs with smooth transitions","archived":false,"fork":false,"pushed_at":"2026-05-11T14:35:58.000Z","size":1363,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T16:35:40.543Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericrihm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-03T09:51:35.000Z","updated_at":"2026-05-11T14:45:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ericrihm/claude-spinner","commit_stats":null,"previous_names":["ericrihm/claude-spinner"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ericrihm/claude-spinner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericrihm%2Fclaude-spinner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericrihm%2Fclaude-spinner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericrihm%2Fclaude-spinner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericrihm%2Fclaude-spinner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericrihm","download_url":"https://codeload.github.com/ericrihm/claude-spinner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericrihm%2Fclaude-spinner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33746517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T20:02:36.033Z","updated_at":"2026-05-31T20:02:36.139Z","avatar_url":"https://github.com/ericrihm.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Spinner\n\n\u003e **[Live Demo →](https://ericrihm.github.io/claude-spinner/)**\n\nA fun, interactive web app that replicates the Claude Code CLI loading/spinner experience. Watch 187 real spinner verbs cycle through a terminal UI with ASCII buddies, interactive controls, stats tracking, and hidden easter eggs.\n\n## Features\n\n### Terminal Spinner\n- **187 Spinner Verbs** — the exact verb list from Claude Code v2.1.88, Fisher-Yates shuffled to guarantee all appear before repeats\n- **Organic Timing** — weighted timing buckets (fast/normal/hang/stutter) simulate real Claude Code's irregular rhythm\n- **ASCII Buddies** — 6 animated companions (Capybara, Cat, Duck, Robot, Chonk, Ghost) with typewriter intro and idle animation\n- **Braille Spinner** — animated Unicode braille characters cycle alongside the active verb\n- **Speed Modes** — Chill / Normal / Hyperspeed, each scaling the organic timing differently\n- **CRT Effect** — optional scanline overlay for retro terminal vibes\n- **Verb Tooltips** — click any verb for a humorous definition (~82% coverage, 153 definitions)\n- **Welcome Screen** — Ignignokt pixel sprite greets you before scrolling into the spinner\n\n### Stats Panel\n- Session timer, total verbs seen, unique verb count with progress ring\n- Verb category donut chart (hand-rolled SVG, no chart libraries)\n- Most/least seen verbs, no-repeat streak tracker\n- Confetti celebration at 100% completion\n\n### Verb Surf Mini-Game\n- Endless runner where you jump over incoming verbs — longer words need higher jumps\n- Charge-based jump + double jump physics\n- Difficulty phases with escalating speed and hazard rates\n- 5 lives per run (7 on reset), high score tracking\n- Parallax scrolling background with code snippets\n- Soundtrack from *Severance* (`spatial_audio.mp3`)\n\n### Easter Eggs\n- \"Clauding\" flashes text in Anthropic orange\n- \"Propagating\" shows a coral emoji\n- \"Gitifying\" shows a git branch icon\n- Konami code (↑↑↓↓←→←→BA) unlocks **Turbo Mode** with screen shake\n- Click the title bar 5× to toggle \"Cobalt Systems Terminal\" branding\n\n## Getting Started\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:5173/claude-spinner/](http://localhost:5173/claude-spinner/)\n\n## Build \u0026 Deploy\n\n```bash\nnpm run build     # Production build to dist/\nnpm run preview   # Preview production build locally\n```\n\nDeployed to GitHub Pages via Actions workflow on push to `main`.\n\n## Tech Stack\n\n- React 18 + Vite\n- Tailwind CSS v3 via PostCSS\n- Framer Motion for animations\n- canvas-confetti for celebration effect\n- JetBrains Mono font (Google Fonts CDN)\n\n## Project Structure\n\n```\nsrc/\n├── data/\n│   ├── spinnerVerbs.js     # 187 verbs\n│   ├── verbCategories.js   # 8 category groupings\n│   ├── verbDefinitions.js  # 153 humorous definitions\n│   ├── buddies.js          # 6 ASCII buddy sprites (3 frames each)\n│   ├── mooninite.js        # Ignignokt pixel sprite\n│   ├── phases.js           # Verb Surf difficulty phases\n│   └── commentary.js       # Game event commentary\n├── hooks/\n│   ├── useSpinner.js       # Verb cycling, shuffle, timing, buddy assignment\n│   ├── useVerbTracker.js   # Stats, streaks, seen tracking\n│   ├── useKonamiCode.js    # Keypress sequence detector\n│   ├── useJumpPhysics.js   # Charge jump + double jump\n│   └── useScoreTracker.js  # Game scoring, lives, high score\n├── components/\n│   ├── SpinnerTerminal.jsx # Main terminal display\n│   ├── SpinnerControls.jsx # Speed, pause, CRT controls\n│   ├── VerbTooltip.jsx     # Click-to-define tooltip\n│   ├── StatsPanel.jsx      # Stats + donut chart\n│   ├── EasterEggs.jsx      # useEasterEggs hook\n│   └── game/\n│       ├── GameCanvas.jsx       # Verb Surf game loop\n│       ├── GameOverScreen.jsx   # End-game stats\n│       ├── PlayerCharacter.jsx  # Buddy player sprite\n│       └── ParallaxBackground.jsx\n└── App.jsx\n```\n\n## Attribution\n\n- Inspired by the 187 spinner verbs in [Claude Code](https://docs.anthropic.com/en/docs/claude-code) v2.1.88\n- Source: Anthropic's accidental npm source map leak, March 31, 2026\n- Built by Eric Rihm — [rihm.io](https://rihm.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericrihm%2Fclaude-spinner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericrihm%2Fclaude-spinner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericrihm%2Fclaude-spinner/lists"}