Microsoft Agent Clippit/Clippy extracted into animated WebP and a Codex pet package.
Licensing note: these generated assets are derived from Microsoft Clippit artwork and animation data. Do not assume this repo grants redistribution rights for Microsoft assets.
| File | Preview |
|---|---|
| pet.json | |
| spritesheet.webp | |
| spritesheet.png | ![]() |
The local custom pet package generated by scripts/build-clippy-pet.ts is installed at:
${CODEX_HOME:-$HOME/.codex}/pets/clippy/
To install a prebuilt pet without running anything, download clippy-pet.zip from the latest GitHub release and unpack pet.json + spritesheet.webp into that folder.
Pick a different mix of the 43 animations below for any of the 9 /hatch rows by editing ROW_SPECS in scripts/build-clippy-pet.ts, then re-run it. See AGENTS.md for the row spec format, frame-sampling rules, and the cell geometry constants.
| # | Name | WebP | Sheet | Strip | Frames | Duration |
|---|---|---|---|---|---|---|
| 01 | GESTURELEFT | ![]() |
sheet | strip | 16 | 3050 ms |
| 02 | GESTUREDOWN | ![]() |
sheet | strip | 19 | 2250 ms |
| 03 | GESTURERIGHT | ![]() |
sheet | strip | 17 | 3250 ms |
| 04 | GESTUREUP | ![]() |
sheet | strip | 17 | 2800 ms |
| 05 | IDLEFINGERTAP | ![]() |
sheet | strip | 11 | 1150 ms |
| 06 | IDLESIDETOSIDE | ![]() |
sheet | strip | 37 | 5610 ms |
| 07 | IDLEEYEBROWRAISE | ![]() |
sheet | strip | 7 | 1500 ms |
| 08 | GETARTSY | ![]() |
sheet | strip | 23 | 4900 ms |
| 09 | LOOKDOWNRIGHT | ![]() |
sheet | strip | 7 | 1800 ms |
| 10 | LOOKDOWN | ![]() |
sheet | strip | 7 | 1800 ms |
| 11 | LOOKDOWNLEFT | ![]() |
sheet | strip | 7 | 1800 ms |
| 12 | LOOKRIGHT | ![]() |
sheet | strip | 7 | 1800 ms |
| 13 | LOOKLEFT | ![]() |
sheet | strip | 7 | 1800 ms |
| 14 | HEARING_1 | ![]() |
sheet | strip | 39 | 5400 ms |
| 15 | LOOKUPRIGHT | ![]() |
sheet | strip | 7 | 1800 ms |
| 16 | LOOKUP | ![]() |
sheet | strip | 7 | 1800 ms |
| 17 | LOOKUPLEFT | ![]() |
sheet | strip | 7 | 1800 ms |
| 18 | GETATTENTION | ![]() |
sheet | strip | 24 | 2650 ms |
| 19 | WAVE | ![]() |
sheet | strip | 27 | 4900 ms |
| 20 | SAVE | ![]() |
sheet | strip | 42 | 5530 ms |
| 21 | CONGRATULATE | ![]() |
sheet | strip | 22 | 3680 ms |
| 22 | PROCESSING | ![]() |
sheet | strip | 38 | 3800 ms |
| 23 | GOODBYE | ![]() |
sheet | strip | 38 | 4450 ms |
| 24 | ![]() |
sheet | strip | 59 | 8400 ms | |
| 25 | CHECKINGSOMETHING | ![]() |
sheet | strip | 55 | 6640 ms |
| 26 | EMPTYTRASH | ![]() |
sheet | strip | 42 | 5000 ms |
| 27 | IDLEROPEPILE | ![]() |
sheet | strip | 75 | 7500 ms |
| 28 | IDLESNOOZE | ![]() |
sheet | strip | 88 | 13600 ms |
| 29 | IDLEHEADSCRATCH | ![]() |
sheet | strip | 19 | 1900 ms |
| 30 | SENDMAIL | ![]() |
sheet | strip | 63 | 6800 ms |
| 31 | SEARCHING | ![]() |
sheet | strip | 61 | 8100 ms |
| 32 | THINKING | ![]() |
sheet | strip | 45 | 4500 ms |
| 33 | WRITING | ![]() |
sheet | strip | 61 | 8400 ms |
| 34 | EXPLAIN | ![]() |
sheet | strip | 7 | 1500 ms |
| 35 | RESTPOSE | ![]() |
sheet | strip | 1 | 100 ms |
| 36 | SHOW | ![]() |
sheet | strip | 5 | 50 ms |
| 37 | HIDE | ![]() |
sheet | strip | 5 | 50 ms |
| 38 | GETTECHY | ![]() |
sheet | strip | 45 | 4500 ms |
| 39 | GETWIZARDY | ![]() |
sheet | strip | 22 | 3680 ms |
| 40 | ALERT | ![]() |
sheet | strip | 20 | 2400 ms |
| 41 | IDLEATOM | ![]() |
sheet | strip | 45 | 4500 ms |
| 42 | GREETING | ![]() |
sheet | strip | 39 | 4450 ms |
| 43 | IDLE1_1 | ![]() |
sheet | strip | 43 | 7300 ms |
The source of truth is third-party/clippitMS/CLIPPIT.ACS. The animation names,
frame order, repeated frames, frame durations, palette, and image table entries
are read from that ACS file.
Regenerate with:
bun scripts/split-clippy-animations.ts
bun scripts/build-clippy-pet.ts
bun scripts/update-readme-gallery.ts(split-clippy-animations.ts invokes extract-acs-images.ts internally.)
third-party/decompress.wasm is the Microsoft Agent image decompressor from
computernewb/MSAgent-Chat, used by extract-acs-images.ts.











































