Two packaged agent skills (for Claude Code / the Claude Agent SDK) built around Clawd, a little pixel crab. Drop either one into your skills folder and your agent can bring Clawd to life:
| Skill | What it does |
|---|---|
clawd-emotes |
Design animated pixel-crab emotes as pure SVG + CSS keyframes, and export them to looping (transparent) GIFs. |
clawd-photo-compositor |
Drop Clawd into one of your own photos โ sitting on a desk, peeking over a monitor, hugging a cable โ via built-in image generation. |
Tiny pixel-crab emotes, built as pure SVG + CSS keyframe animations โ no sprite sheets, no GIF frames, no canvas. Just
<rect>s and@keyframes.
Give Clawd a prop, a hat, and one good motion, and it comes to life โ sipping coffee, strumming a guitar, celebrating a holiday. Every emote is a single inline <svg> animated entirely in CSS, so it's tiny, razor-sharp at any zoom, themeable, and editable as plain text.
All 24 below are original SVG+CSS animations, exported to transparent looping GIFs.
๐ Festivals
โ Daily life
๐จ Hobbies
- Tiny & sharp. A whole emote is a few hundred bytes of markup and stays crisp at any size (
image-renderingkeeps the pixels hard). - Themeable. Each card reads CSS variables (
--bg,--tagfg, โฆ), so recoloring a scene never touches the art. - Editable. It's plain text โ tweak a coordinate, not a 2000ร2000 sprite atlas.
- Exports anywhere. When you do need a GIF (or a transparent one), the scripts step the animation deterministically for a clean, seamless loop.
The trade-off: the crab is a fixed pixel grid, so placement is everything. Almost every "bug" is just an element at the wrong coordinate or in the wrong group โ which is exactly what the skill's rules prevent.
- Feet live inside the animated body group โ otherwise the body bobs away and the feet "detach."
- A hat's brim must sit on the torso top (yโ6), or it floats in the air.
- A prop held by a moving arm goes inside that arm's group โ or the hand moves and the prop stays behind.
- Long props need gentle rotation โ a far-from-pivot prop on a big swing flings off-screen.
- Every inline SVG needs a unique class/keyframe prefix โ shared cards collide in the global CSS namespace.
Full reasoning and ready-to-paste geometry live in clawd-emotes/references/anatomy.md and clawd-emotes/references/prop-recipes.md.
# open any catalog page in a browser to see the live animations
open clawd-emotes/examples/clawd-hobbies.html
# validate markup + render each card to /tmp/clawd-check for visual review
python3 clawd-emotes/scripts/check.py clawd-emotes/examples/clawd-hobbies.html
# export looping GIFs (needs Node + puppeteer-core + ffmpeg)
npm i puppeteer-core
node clawd-emotes/scripts/export_gif.js clawd-emotes/examples/clawd-festivals.html out/
node clawd-emotes/scripts/export_transparent.js clawd-emotes/examples/clawd-festivals.html out/ # transparent bgPut the canonical Clawd into a photo of your own โ and keep it looking like Clawd.
Hand the skill a photograph and say what you want ("ๅๅจๆพ็คบๅจไธ" / "hang it on the screen" / "ๆฑไฝ่ฟๆ น็บฟ"), and it picks one matching pose from 16 bundled character references, then composites Clawd into your photo through built-in image generation.
Real outputs โ Clawd stays a flat pixel block while the photo stays fully realistic:
Napping on a Mac mini (sleep-top) ยท hugging a power cable (hug) ยท peeking over a laptop screen (peek-edge).
The hard part isn't placement โ it's keeping Clawd Clawd. The skill locks two things on every generation:
- Identity lock โ Clawd stays a flat 2D block graphic (wide rectangular body, two block hands, four short legs, fixed proportions) even though the surrounding photo is fully realistic. No 3D-ifying, no rounding, no realistic materials, no stretching.
- Proxy exclusion โ each pose reference uses a gray placeholder object to show contact and occlusion only; that gray shape must never be copied into your photo. The real object in your photo replaces it.
Bundled references, chosen automatically by what your photo and request imply:
- A-series โ plain standing views (front / three-quarter / side / back) for when there's no physical interaction.
- B-series โ contact poses: sit on an edge, peek over/behind, hang, climb, hug, push, pull, stand on top, sleep on top, tiptoe-reach, lean.
Each pose entry in clawd-photo-compositor/references/pose-index.yaml carries its trigger keywords, the object types it fits, and a relation_hint for the occlusion/contact that sells the interaction.
Clone whichever skill you want into your skills directory so your agent picks it up:
# emotes
git clone --depth 1 https://github.com/xixicc186/clawd-emotes-skill.git /tmp/clawd-skills
cp -R /tmp/clawd-skills/clawd-emotes ~/.claude/skills/clawd-emotes
cp -R /tmp/clawd-skills/clawd-photo-compositor ~/.claude/skills/clawd-photo-compositorThen just ask:
- "add a Clawd emote for stargazing" โ or "the hat on the sleeping crab floats, fix it."
- "ๆ Clawd ๆพ่ฟ่ฟๅผ ๅพ้๏ผ่ฎฉๅฎๅๅจๆพ็คบๅจ่พนไธ" โ or "hang Clawd on the top of the screen in this photo."
Each skill knows the anatomy, the rules, and how to verify its own output.
clawd-emotes/ # SKILL 1 โ SVG+CSS emotes
SKILL.md # the agent skill (workflow + rules)
references/
anatomy.md # base crab geometry, transform-origins, idle animations
prop-recipes.md # catalog of props & hats by technique
scripts/
check.py # validate SVGs + headless-Chrome render for visual review
export_gif.js # one looping GIF per card (deterministic frame stepping)
export_transparent.js # same, with a transparent background
assets/card-template.html # the shared scaffold + one fully-built example card
examples/ # 24 emotes across festivals / daily / hobbies
gallery/ # all 24 emotes as transparent GIFs
clawd-photo-compositor/ # SKILL 2 โ drop Clawd into a photo
SKILL.md # the agent skill (workflow + selection rules)
references/pose-index.yaml # pose catalog + identity-lock / proxy-exclusion prompts
assets/poses/ # 16 bundled Clawd character-and-pose references (PNG)
gallery/ # example composited outputs
The pixel-crab character is affectionately inspired by the desk-pet project
clawd-on-desk. All artwork in
this repo is original โ none of the upstream assets are redistributed here.
MIT โ do whatever you like, attribution appreciated. ๐ฆ


























