AI Agent & Coding ·
Codex's desktop pet is much better than Claude Code's.
English translation of the Chinese original. This version is generated for international readers and may be refined over time.
English translation of the Chinese original. This version is generated for international readers and may be refined over time.
Date: 2026-05-08
When I first saw Codex's desktop pet, my heart refused.
Not that it's not good-looking, but that I have a natural bias against this kind of thing.
What table pets, stickers, electronic pets, Q version mascot are basically the same category in my head:
It's not very useful.
Especially in front of Claude Code, who had a similar pet, I played, and felt more like an egg system. Take a pet, hang it there, give you some emotional value. You say it's useless, it's not completely useless; you say it's useful and it's hard to convince yourself it's really useful.
So Codex went online with this desktop pet and I didn't have the first time to play.
Until today a reader friend asked me:
Why didn't you play Codex's desktop pet?
I was confused.
What's so funny about this?
And then he sent me a video.
The first reaction I saw was, "Oh, isn't this just about a skill?" One minute.
One minute later.
I'm silent.
Because this isn't what I thought of as "smoke-up."
** This thing really works.**
It's a pet, it's basically a floating panel
Let's start with how.
Find skills in Codex, search Hatch Pet.

The default role is a blue Q version of a computer, which fits very well with the aesthetics of Agent: cute, harmless, like a little tool who just learned to work.

It's kind of like the little robot in the first episode of Love, Death and Robotics.

If that's all it is, I'll probably close it.
But what's really interesting about this pet, Codex, is that it's not just an ornament.
It's a working state portal floating on the desktop.
When Codex has a mission running, it can show the current status of the task; it can pop up a hint when there is a context you need to handle; you can even make a quick response through it.

This point is very important for multi-task users.
Now AI Agent is no longer the "you ask, it answer" toy form. It's more and more like a back-office worker: you give it a mission, it runs orders, changes files, checks information, waits for results, then comes back to you for confirmation.
Question: How do you know who's working, who's stuck and who needs you to answer when you're running a few threads, projects, Agent?
The traditional CLI experience is that you have to go back to that window.
Codex is the value of this table right here.
It refers the status of Agent to the " Desktop Surface " from the " Window Internals".
What it can do, what it can't do
Clear borders first.
Codex Pet is not another AI assistant.
It can't talk on its own, it can't write code for you, it can't call API on its own, and it can't add new capabilities to Codex like a plugin.
What it can really do is this:
- Stand-by: normally displays a small role on the desktop with anidle animation.
- Performance status: run, wait, fail, review, jump, wave. Different status can switch between actions.
- Mission Reminder: When Codex has activity or needs your attention, it can act as a window entrance.
- Quick reply: Some scenarios can process messages directly in the float window.
- Custom image: you can make it into a kitten, a little robot, a little fireball, a plant, a duck, or a character style that you specify.
- Local installation: Pack and put
~/.codex/pets/<pet-name>/And Codex can identify.
That's where it makes me feel better than Claude Code's pet set.
Claude Code's CLI pet is more like a game egg, rare, with a sense of cards. The average pet is a common, and it tastes like nothing.
Of course, I haven't done anything.
I even stomped a buddy, so I could smoke a gold quality pet:
https://github.com/crisxuan/buddy-reroll
But to be honest, that direction is essentially "a better-looking thing".
Codex is different here.
It's not just the skin, it's connected to the mission state of the desktop.
In other words, it smells a little bit like a product entry.
Don't underestimate that.
One thing changes from "decoration" to "entry," and the nature changes.
And then I started to give it a straight 2B
The default Blue Man is good, but it's all self-defined. How can I use only the default?
I liked the role in Neil: The Mechanical Era, so the first reaction was: the whole 2B.
The style generated by Hatch Pet is more Q-pretty.
For example:

Not bad.
But it's completely inconsistent with my understanding of 2B's character.
2B, what is it? A sense of cold, restraint, black dress, combat dolls, oppression and grace coexist.
You fix me up with a Q. It's not right.
I'm not allowed.
So I rephrase the character style, stress not to the Q version, to be closer to the original scale, to be more royal, to a black gothic dress and to a mechanical sense.
And then this version came out:

That's right.
The aesthetic is finally online.
Honestly, GPT-image-2 is really good at this role aesthetic.
But there is one more problem.
Table pets are not appropriate for background.
With a background board floating on the desktop, it looks like the pageshot was stuck on the desktop and the cheap feeling came up immediately.
So I made it a transparent background version.

Then the familiar thing happens. Style drifted out.
You take it off the background, it changes the taste of the character.
This is the most annoying place to create the picture: you think you're changing only A, and it changes everything B, C, D.
So I went on to the PUA, and I stressed that I'd keep the same style of character, that I'd only deal with a transparent background, not change the face, not change the ratio, not change the style.
Finally got the version I wanted:

I'm up here.
Isn't this more interesting than the little blue computer?
Directly as a desktop pet.

After loading, I found a very serious problem.
2B, what's most important? That has to be legs.
As a result, the desktop pet showed that the lower half had been cut off, which must not be tolerated.
At first I thought the problem was in the pet kit.
Hatch Pet's standard format is one8x9Spritesheet, each of which is192x208I don't know. Different lines correspond to different states, such as idle, running, waising, failed, review, etc.
The pet bag itself does control the size of the role in the box and determines the transparent background, frame organization, state animation.
But it can't control how much the desktop end shows this pet.
This is the first pit.
Hatch Pet controls "How pet assets are generated, how they are packed, how they are identified by Codex."
The desktop end shows the tube "how big the pet window is, how big the outer packaging is, how the main process is measured and positioned".
These two are not the same thing.
I've got two things mixed up before me.
So I started changing the codex desktop end.
This step, ordinary users really don't learn.
My idea was simple: since the CSS sayswidth: 7. 04remI'll triple it, for example.21. 1remIsn't that all?
It turns out it's not that simple.
And the better part is, I also turned Codex down.
Open it and fall.
Pass it out:
Codex played himself dead.
♪ Codex, why am I going down?
One brother hangs, only another brother.
CC, start.
I got Claude Code to help me analyze the cause of the crash.

It's been a long process, and I'm not going to torture you.
Directly:
I am.dangerFullAccessandapprovalPolicy: neverUnder the authority of which Codex changed it./Applications/Codex. app/Contents/Resources/app.asarCSS in.
Question is Electron App.app.asarNot a normal file.
You changed it.Info. plistThe ASAR integrity has to be updated simultaneously, otherwise Electron will find the Hash mismatch on startup and then directly FATAL.
In other words, the CSS itself is not the culprit.
The real thing about Codex is:
Changed ASAR but no simultaneous completeness verification.
It's like you secretly changed the files in the safe, but the seals still have the old numbers. As soon as the system opens, the number's wrong.
The method of repair was also clear:
- Backup Original
app.asar - Modify ASAR
- Recalculate Hash
- Write back
Info. plist - Restart codesign
- Ready rollback scripts
After that, I dared to continue.
Because the worst fear is not to change.
The fear is that there will be no turning back.
Change only21. 1remWhy not?
When it was fixed, I kept trying to zoom in the pets.
I'll do it first.codex-avatar-rootFrom7. 04remChange to21. 1rem.
Theoretically, it should be three times larger.
The results have not changed.
This is crazy.
I told Codex to keep checking, and finally catch the man behind it.
Here's the whole chain:
codex-avatar-rootThe CSS is actually changed in width.21. 1rem.- But there's another layer outside of it.
- The grapper's class is dead.
size-20. - In Tailwind,
size-20About.80px x 80px.
So what happened was:
The image inside is going to get bigger, and the box outside doesn't get bigger.
More crucially, the Codex desktop master process will set pets according to the actual size of this wrapper.
The evidence was already visible at the time:
{
"width": 712,
"height": 640,
"mascot": {
"width": 80,
"height": 87
}
}
That means the outer window is getting bigger, but the pet body measures it.80x87.
It's not really limited.codex-avatar-root.
It's...data-avatar-mascotThe wrapper.
And what really came into effect was the restoration of:
relative flex size-20...
Replace by the following:
relative h-96 w-80...
That's to get the pet home container out of line.80x80Zoom in.320x384.
After that, the table was really big.
So the most interesting part of this time is not, "I am magnifying the pet."
But it exposes a very typical front-end problem:
The style you see, not necessarily the style that ultimately limits you.
Most of the time, you've changed the sub-element, and the father's still strangled.
The people who write about this should know it.
But let's be clear here: I'm not a catch Pete standard game
Technically, these operations behind me are no longer the orthodox process of Hatch Pet.
The original logic of Hatch Pet is:
Starting with concept, reference images or a combination of both, create a base with Image Gen, and then generate every action picture with reference constraints, Mr. Running-right, then determine whether running-left can be a secure mirror, and then use Skill's own deterministic scripts to go to ingest, Validate, assemble spriteshet, and finally pack to
${CODEX_HOME:-$HOME/.codex}/pets/<pet-name>/.
That is to say, Hatch Pet formally produces an asset streaming line.
It is concerned with:
- Who's the character?
- How does every state move?
- Has every frame crossed the border?
- Spritesheet
8x9 pet.jsonCorrect?- Can you be identified by Codex?
And what I'm doing behind is another line:
- Resize Codex App React wrapper.
- Change overlay main process geometry ASAR Hash
- Resigned.
This is already a layering of desktop end displays.
So if you just want to be a normal pet, don't change App like I did.
You should be honest with Hatch Pet's standard process.
But if your claim is "I'm going to make the desktop pet bigger on the screen" then Hatch Pete can't solve it because it's only for pet assets, not for the Codex desktop.
That is the most important conclusion of this trip.
Why do I say Codex, this pet is better than CC
Because it's not just emotional value.
Of course there is.
The default blues are cute, self-defined as 2B and it's nice.
But it really makes me think it's valuable because it's connected to Codex's work.
It can tell you the mission is running.
It reminds you where you need to be dealt with.
It acts as a light portal floating on the desktop.
So it went from pet to visualised shell of Agent's working state.
Claude Code's pet is more like an egg.
Codex's pet is more like an UI layer.
Eggs get tired.
UI Layer won't.
Because as long as your flow of work remains, it's worth it.
That's why I couldn't see it at first, and then it smelled so good.
It's not because it's cute.
It happens to be in a very delicate position:
Agent is becoming backstage, and users need a front desk sensor layer.
Desktop pets are a form of this front-office sensory layer.
You can feel it childish.
But you can't deny it did solve some of the "I don't know what Agent is doing right now."
Finally
This trip down, my evaluation of Codex desktop pets has changed.
At first I thought it was a toy.
Then it was found to be a state entrance.
And then I put it down.
And finally, I realized that it actually exposed a very interesting direction in Codex's desktop end product design:
AI Agent can't hide in the terminal forever.
It needs a state.
A sense of presence is needed.
I need to tell you, when you're not staring at it, "I'm still working," "I'm stuck," "You should get back to me."
It's not a simple question of flattery.
It's the Agent product form problem.
Of course, self-defined pets are really expensive.
This time I'm in prison because I've got GPT to give me Pro 20x rights.

Ordinary users are careful.
Don't look at me. It's easy here.
Generates a map that floats repeatedly, a transparent background resonance, a spritesheet to match the format, and the desktop end may be broken by you.
But again.
Isn't this the most interesting place for AI tools now?
It's not perfect.
It's a thing that you can break up on the spot, reorganise, corrupt, fix, and play again.
That's really funny.