Submit a variant¶
It looks like you've improved me. Let's make sure I stay improved.
Two kinds of contribution are welcome here:
- Improvements to the existing frames (better 292.5° look, more expressive
waiting, cleaner loop seams). - Variants: alternate palettes or costumes that keep the paperclip identity (a "dark theme" variant, a holiday hat, a monochrome terminal-friendly build).
Brand-new characters that aren't paperclips are wonderful and belong in their own repository; post them in Show and tell and we'll link to them.
Before you open the PR¶
- Open an issue first using the pet variant template. Attach a GIF or the contact sheet. This avoids two people redrawing the same eyebrow.
- Keep the geometry. 1536 × 2288, 8 × 11 cells, 192 × 208 each, alpha, unused cells transparent,
spriteVersionNumber: 2. - Run
make validate. If your frame counts differ from Clippy Pet's, say so; the validator'sexpected_usedwill need updating and the reviewer will want to know why. - Include before/after evidence: at minimum a side-by-side of the affected frames at 100 % and at ~64 px, and a GIF if motion changed.
- Regenerate
SHA256SUMS(make checksums) ifpet.jsonorspritesheet.webpchanged. - Update
CHANGELOG.mdunder Unreleased. - Licensing: you must have the right to contribute every pixel under MIT. No traced third-party art, no Microsoft assets, no AI-generated frames whose training provenance you can't vouch for.
How review works¶
The maintainer (see Governance) checks: contract compliance, small-size readability across light and dark backgrounds, loop cleanliness, look-direction sanity if touched, licence clarity, and whether the change fits the character. Feedback happens in the PR; visual work often takes a round or two, which is normal.
Variants that are accepted ship either as replacement frames (improvements) or as an additional pet id in a variants/ directory with its own pet.json, so users can install both.
Style guide for docs and copy¶
If you also touch documentation:
- Playful is good; manipulative is not. No fake urgency, no invented numbers, no "join thousands of…" unless the number is real and linked.
- Every page that touches the name or likeness carries the unofficial notice or links to it.
- Status words mean things: live, on each release, planned. Don't promote a row without the thing actually existing.
- Use current product names: "ChatGPT desktop app (Codex inside)", "Codex CLI", "ChatGPT on the web".
More in Contributing.