anomalyco / anomalyco/opencode

[FEATURE]: Desktop Pets - Custom AI Companion for OpenCode Desktop

Open
#39,853 3 comments 0 reactions 1 assignee View on GitHub

@Hona is already working on this.

Since Jul 31, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Feature hasn't been suggested before.
  • I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request

The idea

First of all... this feature is completely optional.

Some people love desktop companions.
Some people will disable it in 2 seconds.

Both are happy. 😄

I'd love to have a desktop pet that reacts to what OpenCode is doing, similar to an AI companion, but fully customizable and built for OpenCode.


Settings

A new section:

Settings
→ Pets

Options:

  • Enable Pets
  • Active Pet
  • Create Pet
  • Import Pet
  • Manage Pets

Built-in Pets

Ship OpenCode with a few pets.

Example:

  • Fox
  • Cat
  • Robot
  • Ghost
  • Bird

Users can switch between them anytime.


Create Pet (AI)

For users who already have an image generation model configured.

Flow:

  1. Enter pet name.
  2. Upload 2–5 reference images.
  3. (Optional) Describe personality/style.
  4. Click Generate.
  5. Preview.
  6. Save.

Example:

Name:
CyberFox

Reference Images:
📷 📷 📷

Prompt:
Cute cyber fox wearing an orange hoodie.
Pixel-art style.

The generator creates a complete sprite pack automatically.


Import Pet

Not everyone has image generation.

Some people use OpenCode Zen or other free text-only models.

For those users:

Click "Import Pet"

Import:

CyberFox.zip

Inside:

manifest.json

idle.png
thinking.png
coding.png
searching.png
terminal.png
testing.png
success.png
failure.png
sleeping.png
celebrating.png

OpenCode validates everything before importing.


Generate Externally

This is probably my favorite part.

If the user doesn't have an image model...

OpenCode can export:

  • pet_prompt.md
  • manifest.json
  • README.md

The prompt is the exact optimized prompt used internally.

The user can take it to:

  • ChatGPT
  • Gemini
  • Claude
  • Flux
  • ComfyUI
  • Midjourney
  • or any favorite image model

Generate the sprites.

Zip them.

Import.

Done.

This means nobody is forced to pay for image generation.


Reference Images

Reference images should always be the primary source.

The AI should preserve:

  • face
  • body
  • colors
  • outfit
  • accessories
  • proportions

Only expressions and poses should change.

Every sprite should clearly be the same character.


Pet Reactions

The pet reacts to OpenCode events.

Examples:

😴 Idle

🤔 Thinking

⌨️ Coding

🔍 Searching

🧪 Testing

🎉 Success

😖 Error

💤 Sleeping

No AI logic.

Just event-driven animations.


Interaction

Hover

Shows:

  • current model
  • current task
  • current tool
  • elapsed time
  • tokens used

Single click

Shows current task.

Double click

Opens the exact session this pet belongs to.

Right click

  • Open Session
  • Change Pet
  • Pause Animation
  • Hide
  • Close Pet

Closing OpenCode also closes the pet.


Slash Command

/pet fox

/pet cyberfox

/pet robot

Instantly switches the active pet.


Why I think this would be cool

  • Completely optional.
  • Doesn't affect CLI users.
  • Doesn't affect users who don't like desktop pets.
  • Highly customizable.
  • Community can share pet packs.
  • Works with any image model.
  • Works without image models.
  • Gives OpenCode a bit more personality while still being useful.

Not gonna lie...

Watching a tiny fox panic while my agent is debugging my terrible code would make waiting for builds a lot more entertaining. 😄

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.