Token导航 LogoToken导航TokenDH.com
开发只读github未标认证来源可访问许可证需确认审计通过

wigglewiggle 命令行

Agent Skill

wiggle 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

742

周安装

30

GitHub Stars

10

下载量

233
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:wiggle(wiggle 命令行)
来源仓库:https://github.com/talknerdytome-labs/wiggle-claude-skill
仓库路径:skills/wiggle
安装命令:
npx skills add https://github.com/talknerdytome-labs/wiggle-claude-skill --skill wiggle
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/talknerdytome-labs/wiggle-claude-skill --skill wiggle

简介

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定仓库安装,需结合原始 README 核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • wiggle 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Wiggle Logo Animator

Create professional logo animations using Lottie JSON format. Ingest existing logos (PNG/SVG/JPG) or generate simple text-based logos, then animate them with professionally-crafted motion patterns. Output includes Lottie JSON with automatic GIF preview rendering and optional MP4 export.

When to Use This Skill

Trigger this skill when users request:

  • "Animate my logo" / "Create a logo animation"
  • "Make my logo wiggle/bounce/rotate/pulse"
  • "Animated waveform effect for my logo"
  • "Motion graphics for my brand logo"
  • "Lottie animation for my brand"
  • Logo entrance, loop, or loading animations
  • Any animation effect applied to a provided logo image

Important: This skill outputs standalone animation files (Lottie JSON, GIF, MP4), NOT interactive React/HTML artifacts. If user wants an interactive tool or web component, defer to artifacts-builder skill.


Core Workflow

1. Define Motion Philosophy (30 seconds - MANDATORY!)

Before creating any animation, answer these three questions:

  1. What personality does this brand have? (playful, professional, bold, elegant, innovative, trustworthy)
  2. What emotion should the animation evoke? (excitement, trust, creativity, confidence, curiosity)
  3. What motion metaphor fits? (organic growth, mechanical precision, energetic burst, elegant reveal, rhythmic pulse)

Example: "Canva = Creative tool brand → Playful energy + organic growth → Simultaneous entrance with pulse"

See Animation Philosophy section below for detailed framework.


2. Analyze Logo Structure (30 seconds - MANDATORY!)

Before creating animation, understand what you're working with:

# For SVG logos - identify elements
python scripts/extract_svg_elements.py logo.svg --list

Quick decision tree:

Logo has text?
  ├─ YES → Read references/text_animation_guide.md FIRST
  └─ NO  → Continue with standard workflow

Multiple elements (icon + text)?
  ├─ YES → Extract separately, decide timing (simultaneous vs staggered)
  └─ NO  → Animate as single unit

SVG or PNG?
  ├─ SVG → Can extract elements cleanly
  └─ PNG → Limited to single-logo animations

3. Prepare Assets

# Single logo (simple animation)
python scripts/prepare_logo.py logo.png --max-size 500 --optimize
# Creates: logo_optimized.png (30-50KB) + logo_base64.txt

# Multi-element logo (extract FIRST, then convert)
python scripts/extract_svg_elements.py logo.svg --output-dir ./elements/
python scripts/prepare_logo.py elements/icon.svg --max-size 200
python scripts/prepare_logo.py elements/text.svg --max-size 250

Size guidelines:

  • Full logo (single): 500-600px
  • Icon elements: 100-200px
  • Text elements: 200-300px

4. Create Lottie JSON Animation

Use EXTERNAL references during development:

{
  "v": "5.7.4",
  "fr": 60,
  "ip": 0,
  "op": 180,
  "w": 800,
  "h": 800,
  "layers": [{
    "ind": 1,
    "ty": 2,
    "nm": "Logo",
    "refId": "logo_image",
    "ks": {
      "o": {
        "a": 1,
        "k": [
          {"t": 0, "s": [0], "e": [100], "i": {"x": [0.42], "y": [1]}, "o": {"x": [0.58], "y": [0]}},
          {"t": 60, "s": [100]}
        ]
      }
    }
  }],
  "assets": [{"id": "logo_image", "w": 512, "h": 512, "p": "logo_optimized.png", "e": 0}]
}

Critical: Use "e": 0 (external reference) during development to avoid Cairo memory errors.

See Animation Patterns below for common effects, or references/detailed_examples.md for full code examples.


5. Validate

# Check Lottie structure (warns about large embedded assets)
python scripts/validate_lottie.py logo_animation.json

# Check loop quality (if creating looping animation)
python scripts/validate_loop.py logo_animation.json

6. Render

# RECOMMENDED: Preview first (renders only first N frames) - saves time!
python scripts/render_lottie.py logo_animation.json preview.gif --preview-frames 60

# Alternative: Test render mode (200x200, 15fps with confirmation prompt)
python scripts/render_lottie.py logo_animation.json logo.gif --test-render

# If preview looks good → Render full animation
python scripts/render_lottie.py logo_animation.json logo.gif

# Optional: MP4 export (better compression than GIF)
python scripts/render_lottie.py logo_animation.json logo.mp4

# Optional: Batch export all formats
python scripts/batch_export.py logo_animation.json ./output gif,mp4,json

Important notes:

  • Assets are resolved relative to the Lottie JSON file location (not current working directory)
  • Asset validation runs automatically before rendering
  • Output verification detects blank/corrupted files
  • Use --preview-frames N to render only first N frames for quick validation

7. Optional: Embed for Distribution

After successful rendering, optionally convert to embedded base64 for standalone distribution:

// Replace external reference with base64 from logo_base64.txt
"assets": [{"id": "logo_image", "p": "data:image/png;base64,...", "e": 1}]

Note: Keep external version for future edits/rendering!


Animation Philosophy

The Two-Phase Approach

Phase 1: Define Philosophy (think before implementing)

  1. What personality does this brand have?
  2. What emotion should the animation evoke?
  3. What motion metaphor fits?

Phase 2: Express Through Technical Choices

  • Choose properties that express philosophy (position/scale/rotation/opacity)
  • Select easing that matches personality (ease-out=confident, bounce=playful)
  • Set timing that aligns with emotion (fast=energetic, slow=elegant)

Philosophy Examples

"Confident Professionalism"

"Playful Energy"

"Audio/Speech Brand"

  • Philosophy: Sound, rhythm, waveforms, dynamic
  • Expression: Vertical waveform with dense keyframes (30-45 keyframes, 60fps)
  • Timing: 3s loop, organic easing (0.25/0.75)
  • Critical: See "Organic/Continuous Motion" in Motion Types section below

More examples in references/preset_library.md and references/animation_theory.md.


Motion Type Quick Reference

Choose motion type based on brand personality:

Static/Corporate Motion

Professional brands (B2B, finance, legal)

Parameters:

  • Keyframes: 8-12 (sparse, deliberate)
  • Easing: 0.42/0.58 (standard ease-in-out)
  • FPS: 30
  • Duration: 1.5-2s

Use for: Corporate logos, B2B brands, professional presentations


Organic/Continuous Motion

Audio, music, speech AI, nature brands

Parameters:

  • Keyframes: 25-45 ← Critical for smoothness
  • Easing: 0.25/0.75 (softer, more organic)
  • FPS: 60 ← Essential for fluidity
  • Duration: 3s

Use for: Audio apps, music platforms, speech AI, organic products

Example: Vertical bar waveform pattern in references/detailed_examples.md


Bold/Attention-Grabbing

Startups, social media, marketing

Parameters:

  • Keyframes: 15-25
  • Easing: 0.34/1.56 (playful bounce) or 0.6/-0.28 (back overshoot)
  • FPS: 60
  • Duration: 0.8-1.5s

Use for: Startup logos, social media intros, marketing campaigns


Cinematic/Complex

Premium brands, film production

Parameters:

  • Keyframes: 50-120
  • Easing: Custom bezier curves, variable timing
  • FPS: 60-120
  • Duration: 3-5s

Use for: Luxury brands, film intros, high-end agency work


Animation Pattern Quick Reference

Single-Element Patterns

PatternDurationPropertiesUse Case
Fade + Gentle Scale1.5sOpacity: 0→100%, Scale: 95→100%Corporate entrances
Bounce Entrance1.2sPosition, Scale, OpacityEnergetic brands
Scale Pulse3s loopScale: 100→103→100%Idle states, CTAs
Smooth Rotation10s loopRotation: 0→360°Loading, tech logos
Wiggle/Jello0.8sRotation: ±5° oscillationPlayful notifications

Full code examples: references/detailed_examples.md


Multi-Element Coordination

Pattern 1: Simultaneous Entrance Both elements appear together (cohesive brand)

Icon: {"t": 0, "s": [0]}, {"t": 60, "s": [100]}
Text: {"t": 0, "s": [0]}, {"t": 60, "s": [100]}
// Both start at t:0 → Synchronized

Pattern 2: Staggered Entrance Icon establishes first, text reinforces (storytelling)

Icon: {"t": 0, "s": [0]}, {"t": 45, "s": [100]}
Text: {"t": 30, "s": [0]}, {"t": 75, "s": [100]}
// Text delayed 30 frames (0.5s at 60fps)

Timing guidelines:

  • 15 frames (0.25s): Subtle stagger
  • 30 frames (0.5s): Noticeable sequence ← Most common
  • 45 frames (0.75s): Dramatic two-act reveal

Full patterns: references/detailed_examples.md#multi-element-coordination


User Intent Classification

Always classify user intent to select appropriate animation style:

IntentKeyframesEasingFPSDurationMotion
Subtle/Professional8-120.42/0.58301.5-2sSlow, controlled, minimal rotation
Bold/Attention15-250.34/1.56600.8-1.5sMedium-fast, dynamic, ±10-20% scale
Playful/Creative12-200.34/1.5630-601-2sBouncy, exaggerated, wiggle effects
Organic/Continuous25-450.25/0.75603sWaveforms, pulses, flowing rhythms

Default: Provide animation rather than asking questions, unless user explicitly requests options.


Known Limitations

Asset Path Resolution

Current behavior:

  • External assets (PNGs/SVGs) are resolved relative to the Lottie JSON file location
  • The renderer changes the working directory to the JSON file's directory during rendering
  • Asset validation runs automatically before rendering begins

Example:

project/
├── animations/
│   └── logo_animation.json  (references "logo_optimized.png")
└── logo_optimized.png

# This will FAIL - asset not found

Solution: Place assets in the same directory as the JSON file:

project/animations/
├── logo_animation.json
└── logo_optimized.png  # ✅ Correct location

Embedded Base64 vs External References

Embedded base64 ("e": 1):

  • Pros: Standalone file, easy distribution
  • Cons: Cairo MemoryError for images >100KB, larger file sizes, not editable

External references ("e": 0):

  • Pros: No memory issues, smaller JSON files, easy to update assets
  • Cons: Requires keeping asset files alongside JSON

Recommended workflow:

  1. Use external references during development/rendering
  2. Optionally embed base64 AFTER successful rendering for distribution
  3. Keep external version for future edits

Critical Warnings

❌ Common Mistakes to Avoid

  1. Creating animation before defining philosophy → Random trial-and-error wastes 15-30 minutes
  2. Using PIL ImageDraw to recreate logo text → Creates DIFFERENT text, not your logo text
  3. Embedding base64 before rendering → Cairo MemoryError crash (images >100KB)
  4. Using 1000px for small elements → Huge files (400KB+), memory issues
  5. Skipping logo analysis → Wrong workflow, have to restart
  6. Forgetting loop validation → Visible jump when animation loops
  7. Skipping preview renders → Waste time on full renders before validating concept
  8. Rendering full SVG then cropping → Fuzzy edges, massive file sizes

Full list with code examples: references/anti_patterns.md


⚠️ Text in Logos - CRITICAL

If logo contains text, you MUST follow specialized workflow:

  1. Extract text from logo SVG (do NOT recreate with PIL ImageDraw)
  2. Choose appropriate text animation method (fade/stroke/transform)
  3. Implement proper synchronization with other elements

See: references/text_animation_guide.md for complete guide


⚠️ External References Required

Always use external file references during development/rendering:

// ✅ CORRECT: External reference
"assets": [{"id": "logo", "p": "logo_optimized.png", "e": 0}]

// ❌ WRONG: Embedded base64 (causes Cairo crash if >100KB)
"assets": [{"id": "logo", "p": "data:image/png;base64,...", "e": 1}]

Why: Cairo renderer crashes with embedded images >100KB. Use external during development, optionally embed AFTER successful rendering.


Helper Scripts Quick Reference

ScriptPurposeExample
prepare_logo.pyOptimize and convert logo imagespython scripts/prepare_logo.py logo.png --max-size 500
extract_svg_elements.pyExtract elements from SVGpython scripts/extract_svg_elements.py logo.svg --list
validate_lottie.pyCheck Lottie structurepython scripts/validate_lottie.py animation.json
validate_loop.pyVerify perfect looppython scripts/validate_loop.py animation.json
render_lottie.pyRender to GIF/MP4 (with asset validation)python scripts/render_lottie.py animation.json output.gif
render_lottie.py --preview-frames NQuick preview (first N frames)python scripts/render_lottie.py animation.json preview.gif --preview-frames 60
render_lottie.py --test-renderTest mode with size warningspython scripts/render_lottie.py animation.json test.gif --test-render
batch_export.pyExport multiple formatspython scripts/batch_export.py animation.json./output gif,mp4

New features in render_lottie.py:

  • ✅ Automatic asset validation (checks for missing external files)
  • ✅ Asset path resolution (relative to JSON file location)
  • ✅ Output verification (detects blank/corrupted files)
  • ✅ Preview mode (--preview-frames N) - renders only first N frames
  • ✅ Test mode (--test-render) - small test render with confirmation prompt

Detailed usage: references/script_usage.md


Lottie JSON Fundamentals

Basic Structure

{
  "v": "5.7.4",           // Lottie version
  "fr": 60,               // Frame rate
  "ip": 0,                // In point (start frame)
  "op": 180,              // Out point (end frame)
  "w": 800,               // Width
  "h": 800,               // Height
  "layers": [...],        // Animation layers
  "assets": [...]         // Image/asset references
}

Layer Types

  • Type 2 (Image Layer): Most common - animates PNG/SVG images
  • Type 4 (Shape Layer): Programmatic geometry (circles, rectangles, paths)

Animated Properties

  • o: Opacity (0-100)
  • p: Position [x, y]
  • s: Scale [x%, y%]
  • r: Rotation (degrees)
  • a: Anchor point [x, y]

Keyframe Structure

"o": {
  "a": 1,  // Animated (1) or static (0)
  "k": [
    {"t": 0, "s": [0], "e": [100], "i": {...}, "o": {...}},
    {"t": 60, "s": [100]}
  ]
}
  • t: Time (frame number)
  • s: Start value
  • e: End value
  • i: In tangent (ease in)
  • o: Out tangent (ease out)

Complete specification: references/lottie_spec.md


Easing Functions

Never use linear easing - always use curves for professional motion.

EasingValuesFeelUse Case
Ease-in-out (standard)0.42/0.58Balanced, professionalCorporate, general use
Organic0.25/0.75Soft, naturalAudio brands, waveforms, continuous motion
Bounce0.34/1.56Playful, energeticStartups, playful brands
Back0.6/-0.28 & 0.735/0.045Overshoot, dynamicBold marketing, attention-grabbing

Theory and examples: references/animation_theory.md


Dependencies

Required

pip install lottie[all]    # Lottie manipulation
pip install Pillow         # Image processing
pip install pycairo        # Cairo rendering (for GIF)

Cairo Installation

macOS:

brew install cairo pkg-config
pip install pycairo

Linux (Ubuntu/Debian):

sudo apt-get install libcairo2-dev pkg-config python3-dev
pip install pycairo

Verify:

python3 -c "import cairo; print('Cairo OK')"

Troubleshooting: references/troubleshooting.md#cairo-and-dependencies


Troubleshooting

Quick Fixes

Asset not found errors:

  • Cause: Assets not in same directory as Lottie JSON
  • Fix: Move assets to JSON file's directory, or use absolute paths
  • Validation: Run render_lottie.py - it validates assets before rendering

Blank/corrupted output:

  • Cause: Missing assets, wrong paths, or rendering errors
  • Fix: Check asset validation messages, verify file sizes (output <1KB indicates failure)
  • Detection: Output verification runs automatically after rendering

MemoryError during GIF rendering:

  • Cause: Embedded base64 images >100KB
  • Fix: Use external reference ("e": 0) instead

Loop has visible jump:

  • Cause: Last keyframe doesn't match first
  • Fix: Run validate_loop.py and ensure last frame = first frame

Text looks wrong:

  • Cause: Used PIL ImageDraw to recreate text
  • Fix: Extract text from logo SVG with extract_svg_elements.py

Animation too choppy:

  • Cause: Too few keyframes or wrong FPS
  • Fix: Add keyframes (25-45 for organic motion), use 60fps for continuous motion

Preview renders save time:

  • Tip: Use --preview-frames 60 to validate concept before full render
  • Tip: Use --test-render for interactive testing with size warnings

Comprehensive guide: references/troubleshooting.md


Advanced References

Detailed Documentation


File Size Guidelines

Target sizes for different use cases:

Use CaseLottie JSONGIFMP4Image Assets
Email signature20-50KB500KB-1MB200-500KB<30KB each
Website hero30-80KB1-3MB500KB-1.5MB<50KB each
Social media50-150KB3-8MB1-3MB<80KB each
Splash screen30-100KB2-5MB800KB-2MB<60KB each

Optimization: Use scripts/optimize_lottie.py to reduce file sizes by removing redundant keyframes and rounding values.


Curated Presets

Quick reference to common presets (full code in references/preset_library.md):

Branding Styles:

  • Corporate Subtle - Fade + gentle scale (1.5s)
  • Startup Energetic - Bounce + overshoot (1.2s)
  • Luxury Elegant - Slow fade + minimal scale (3s)
  • Tech Glitch - Digital disruption effect (1s)

Use Cases:

  • Website Hero - Quick professional entrance (0.8s)
  • Email Signature - Subtle loop (3s)
  • Social Media Intro - Bold entrance (2s)
  • Splash Screen - Brand moment with exit (2.5s)

Real-World Examples: Study hover animations from major brands in references/real-world-examples/:

  • Reddit - Playful elastic bounce
  • Slack - Professional restrained pinch
  • Medium - Gentle editorial fade
  • Flickr - Camera shutter effect
  • Discord - Character wink

Quick Decision Checklist

Before creating animation, verify:

  • Defined motion philosophy (personality + emotion + metaphor)
  • Analyzed logo structure (text? multi-element? SVG or PNG?)
  • Chose correct workflow based on analysis
  • If text present: Read references/text_animation_guide.md
  • Using external references ("e": 0) during development
  • Element sizes appropriate (500px full logo, 100-250px elements)
  • Selected motion type (Static/Organic/Bold/Cinematic)
  • Chosen timing strategy (simultaneous vs staggered)
  • Will validate with preview render before full render
  • Will run validate_loop.py if creating loop

If all checked → Proceed with confidence ✅


Tips for Success

  1. Philosophy first - 30 seconds planning saves 15-30 minutes iteration
  2. Analyze before animating - Understand logo structure upfront
  3. Preview early, preview often - Test 30-60 frame versions before full render
  4. External references during development - Embed base64 only after successful rendering
  5. Match motion to brand - Corporate ≠ startup ≠ audio brand
  6. Perfect loops matter - Use validate_loop.py to verify
  7. Size elements appropriately - 100-250px for elements, not 1000px
  8. Extract, don't recreate - Never use PIL to recreate logo text
  9. Validate before rendering - Run validate_lottie.py and validate_loop.py
  10. Read references when stuck - Detailed docs available for every topic

Remember: The goal is creating motion that enhances brand identity, not random animation. Philosophy-first workflow ensures alignment from the start.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.32%
按下载量换算85

Claude

25.96%
按下载量换算60

Cursor

19.4%
按下载量换算45

Gemini CLI

9.49%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills