Top
Best
New

Posted by whimblepop 3 hours ago

Codex CLI installs a persistent, self-updating background daemon by default(github.com)
368 points | 205 comments
whimblepop 2 hours ago|
There aren't any documented settings to disable this, but there is a feature flag it currently sits behind. You can flip it in your ~/.codex/config.toml[1]:

  [features]
  daemon_auto_start = false

There are also some files that it writes to in ~/.codex at startup: pid files, lock files, things like that. You can delete them and replace them with symlinks to /dev/null, then mark those unwritable with `chattr +i` or similar. Presumably then the background daemon will crash on startup, if the feature flag ever goes away.

--

1: https://github.com/openai/codex/blob/0c329ad2c9d5a2592128a1d...

pilooch 2 hours ago||
Yes this should be turned off by default. The daemon is useful when building apps on top of the daemon server, e.g. pi or pi-durable custom harnesses.
whimblepop 2 hours ago||
What makes ACP deficient for headless uses of LLM agents? Maybe fixing that or standardizing on another protocol designed for pluggable LLM agents (I guess ACP is more oriented towards pair programming in an IDE, at least originally) is a better idea imo.
Twirrim 2 hours ago|||
For whatever reason, the daemon has been refusing to start and Codex has been grumbling to me. I was wondering where the daemon had come from, and thought maybe I missed something previously and that it had just broken.
vunderba 2 hours ago||
Yep, the real issue is that it was something they didn’t have before, and then with Codex 0.157.0 enabled, they installed this persistent nonsense [1] that survives after the last instance of Codex has exited on your machine, which is just gross.

  codex features disable daemon_auto_start
  codex app-server daemon stop
  pkill -f 'app-server daemon pid-update-loop'

[1] - https://github.com/openai/codex/issues/48195
icantevenhold 3 hours ago||
It also fills up my HD with old versions. I investigated and it took up something like 12 gigabytes in total on my system; which seems insane to me, it’s just a harness?

People moan about how badly made Claude code is but Codex seems much worse on every metric

InsideOutSanta 3 hours ago||
All of the harnesses I've used are terrible at cleaning up after themselves. They leave all kind of clutter behind, to the point where on my dev VM, I now have an LLM run once a day to just look through the disk and delete everything that looks like it's leftover garbage.

It's like fighting fire by employing an arsonist.

TeMPOraL 2 hours ago|||
Is that cruft or past conversation history / subagent history and observability logs?
InsideOutSanta 2 hours ago||
Just garbage. Temp files, worktrees that weren't removed after subagents finished, build files... all kinds of things.
thdr 2 hours ago||
But that's agent behavior, and not harness responsibility...?
sroussey 2 hours ago||||
I just erased 20GB of Cursor’s cruft.
agentdev001 2 hours ago||||
Harness problem, or model problem?
corndoge 2 hours ago||
Let's be real, what do you think wrote the harness?
NooneAtAll3 2 hours ago|||
> I now have an LLM run once a day to just look through the disk and delete everything that looks like it's leftover garbage

...are you sure it wouldn't consider your personal files garbage?

InsideOutSanta 2 hours ago||
"In my dev VM". Everything of value in there is in a git repo.
umvi 3 hours ago|||
Can't wait until we get really well designed harnesses written in a compiled language that doesn't bloat my computer. Will probably have to be written by a company other than OpenAI because codex is like the exact opposite of everything I just listed
smartmic 2 hours ago|||
Found this one: https://usehax.dev/

Anyone experiences with it?

serf 2 hours ago||
it's okay.

it's minimal and somewhat opinionated, not integrated well with memory subsystems (although that's kind of the point)

my only real criticism is that last I played with it it deals with slow provider responses very poorly , so lots of locally hosted llms require a lot of tuning to get it to handle streaming/non-streaming/timers well.

way less minimal (but still pretty minimal) I prefer Pi; but different markets I think.

hax fit my openbsd laptop well, espescially since Pi and related derivatives are kind of un-spokenly incompatible with the BSDs.

OleksandrC 2 hours ago||
(author passing by) Could you please report the issues you've experienced on the repo? I did quite a bit of testing myself on local models (Qwen, Ornith, Gemma, Muse Glimmer) with llama.cpp, and they all worked fine. Details would be helpful.

Also one brief note for Codex users specifically. hax can work out-of-the-box as codex-cli drop-in replacement (since it can use the already authenticated codex token), so it's super easy to try it - basically it will be a zero-config experience.

dummydummy1234 3 hours ago||||
Codex is written in rust, fyi... Not that I disagree.
umvi 3 hours ago|||
Oh, I haven't been keeping up. I assumed it was still TS since it prompts me to run npm all the time.
Twirrim 2 hours ago||
They just use npm as a binary delivery mechanism, for whatever reason (I guess they expect all their users to have npm?)
lynx97 2 hours ago|||
Which generates unnecessarily huge binaries.
rfgplk 2 hours ago||
It's because they statically linked it, and probably rely on a trillion pointless crates (as is standard in Rust development). A good statically linked harness can easily be ~5MB MAX
rfgplk 3 hours ago||||
Just write your own harness. Ironically Codex/Claude are both abysmal.
theowaway213456 2 hours ago|||
How do you even write a harness that can use a Claude subscription? I thought it was not allowed by Anthropic's ToS and can get you banned?
colinmarc 33 minutes ago|||
It's trivial to bypass this by tweaking the system prompt in other harnesses. They use string matching and a blacklist.

https://x.com/FlorianKluge/status/2041855675295318039

(Whether that's against the ToS is not clear.)

sroussey 2 hours ago||||
That’s a different discussion.
fasterik 2 hours ago||
I suspect a lot of people wouldn't use AI if they had to pay per token at current rates. Yes, it's technically a different discussion, but "just write your own harness" isn't really an answer for the vast majority of us riding on the investor-subsidized subscription plans.
rfgplk 2 hours ago||||
If you're using the sub, only OpenAI (via the OAuth token) is viable. Claude is API_KEY only
agentdev001 2 hours ago|||
It's allowed, but you get bumped to per token pricing.
bhelkey 2 hours ago||
That defeats the purpose of using the Claude subscription.
sroussey 2 hours ago|||
I did, and the weird things you have to do to make work at least decent. I’ve been doing evals and I got some things better than opencode but not as good as pi. Though my goal is to optimize for a browser and browser based llm so it can create stuff in a web container or at least generate ui by requesting json schema (a2ui style).
koe123 2 hours ago|||
Omp
whimblepop 2 hours ago|||
My preferred Nix package for this patches at least that behavior out, afaict: https://github.com/numtide/llm-agents.nix/blob/dc285bfd94ec7...

https://github.com/numtide/llm-agents.nix/

nicce 3 hours ago|||
> People moan about how badly made Claude code is but Codex seems much worse on every metric

Also, it feels that chatgpt.com and aistudio.google.com are the buggiest websites I have seen for long time. Why it is always something related to LLMs?

sdcfgy 2 hours ago|||
All the LLM turds we've curled out at work are the same.
demibabs 2 hours ago||||
It’s actually insane how buggy the Gemini web version is (or at least was a few months ago, since I stopped using it).
bakugo 2 hours ago||||
Because they're the most likely to be 100% vibe coded. And as much as some people still deny it, AI code = buggy code.
platevoltage 2 hours ago||||
ChatGPT.com is dreadful. The whole thing chokes when the conversation gets moderately long. It's amazing that it's been allowed to stay this way.
slopinthebag 1 hour ago|||
[dead]
jonplackett 3 hours ago|||
It’s extremely ironic that the software that’s meant to end software is itself pretty terrible software.
AgharaShyam 2 hours ago|||
for some reason I had 11 separate codex and codex-code-mode-host binaries in my ~/.bun/install/cache/@openai . each weighing about ~300 MB. might be worth a look to anyone running low on disk space.
charliermarsh 2 hours ago|||
I haven't worked with the update subsystem before but that seems like an oversight to me. I'm gonna fix it.
rfgplk 3 hours ago|||
Yep, .codex/packages/standalone/releases keeps all the old versions. Also each codex bin is somehow ~300MB.
JodieBenitez 2 hours ago|||
thanks, I just removed all the old stuff.
orliesaurus 2 hours ago|||
what's the lazy way to check? can you share where/how you cleaned up?
bayindirh 3 hours ago|||
Remember: VSCode runs a complete headless Eclipse instance as its Java LSP, so I don't expect quality code from any of the big companies anymore.
dwattttt 2 hours ago|||
Are you referring to something built into VS Code, or an extension? It looks you're talking about https://github.com/redhat-developer/vscode-java, which is RedHat's doing.
accrual 2 hours ago|||
Yes, my DEV VM tended to fill up with VSCode backups as well. I finally expanded the disk so it's less of an issue today, but for a while ENOSPC was resolved by cleaning up ~/.vscode-server/cli/servers.
Onavo 3 hours ago||
Even if you installed codex with brew?
dllu 2 hours ago||
The daemon has many bugs. For example, when auto-updating, it would randomly ruin the permissions and block the goal as .git became read-only. Generally, it is extremely annoying how many bugs Codex has. I basically can't trust it to execute on any goal since it would often get blocked every few hours due to random bugs.

https://github.com/openai/codex/issues/52251#issuecomment-60...

selfmodruntime 1 hour ago||
Also, in Codex, one randomly can't click "New Chat" or "Scheduled Tasks". You know, the absolute two basic functions.
kristjansson 1 hour ago||
The CLI has been pretty good on this score, way better than the App. Has been…
dllu 1 hour ago||
My complaint applies specifically to the CLI. I have never used the gui app. Here are the various goal-breaking bugs I've run into:

- Goals get blocked due to .git and other stuff becoming randomly read-only when daemon auto-updates in the background (the linked issue in my comment above)

- Goals get blocked due to transient "Selected model is at capacity"

- Goals get blocked due to "Codex ran out of room in the model's context window". Somehow, both auto-compaction and manually running /compact don't work. https://github.com/openai/codex/issues/52567#issuecomment-61...

- Goals get blocked due to bwrap randomly failing with `bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted`. I traced this one to `apparmor` on Ubuntu 24.04 interfering with bwrap and found a local workaround.

reacharavindh 2 hours ago||
I’ve been using GPT models via hax[1], a bare bones harness with minimal tools on my system and have the models rely on bash for the most part the last few months. It’s been a breath of fresh air amidst all these overengineered harnesses.

If I need special actions, I just make them CLI tools on my Mac and tell the AI model that such a tool exists(via a single line in its system prompt) and that’s it. It’s been very nice.

[1] - https://usehax.dev/

No affiliation whatsoever. Just a happy user.

agentdev001 2 hours ago|
You seem to care, so I wanna point out a semantic nit; "such a tool exists" could be interpreted as a harness provided tool, rather than a command line tool. (Edit, on a re-read its pretty obvious you mean cli tool, but keeping this statment here as im sure it'll open someone's eyes to the difference)

I've gotta give hax a go, as a pi user who came on-board due to the no frills direction pi takes. I say takes rather than took, because regardless of the (heated) discussion surrounding mcp and code mode support, I cannot fight the numbers- augmenting the harness provided tools is a notable boost to execution round trip performance.

reacharavindh 1 hour ago||
I may need to take a second look at Pi again if it has any niceties like that notable boost in round trip performance compared to hax.

I mostly stuck around with Hax because of a few design choices. The sessions are merely plain text files indexed by a dirpath slug. This means I can just start a hax session in that directory and expect sessions history to be available in any model.. (I occasionally dabble in GLM for security checks, Gemini for writing stuff, Deepseek for tightly scoped tests etc).

Sha1rholder 2 hours ago||
Off-topic: I think the front-end quality of ChatGPT/Codex Desktop and Android app is simply dreadful—hard to imagine how such a large number of frequent failures made it into production. Do they not use human testing at all?
ncr100 28 minutes ago||
Is there evidence to suggest that open ai business leadership values money over inspiring general public customer delight?
slopinthebag 1 hour ago||
probably not much, they're all using workflows where the agents pull issues and automatically merge code when the tests pass. so lots of stuff slips through and the overall experience is kinda shite.
dingaling911 3 hours ago||
This stuff is moving fast, should update automatically. This is kind of standard now. Browsers do it. No reason for harnesses not to do it as well.
isityettime 2 hours ago||
Ordinary package managers are totally capable of updating thousands of programs without manual effort, including automatically and in the background if that's a thing you want. But they do it without violating users' sovereignty over their own computers or turning every app into a special snowflake that gets to install software (namely itself) in its own bespoke way.
icantevenhold 3 hours ago|||
My browser doesnt update automatically, i have to approve it.

Maybe this kind of stuff is standard for some people but I absolutely loathe auto updating software for many reasons

dv35z 2 hours ago|||
One practical reason - system stability for important events.

I travel for work, and often have a tech demo, solution, tool, or something to show - or am running a workshop.

I usually do NOT update things right before my trip, as I want to minimize the potential for disruption.

vorticalbox 2 hours ago||
Isn’t this what docker is for?

Jokes aside I do the same I tend not to upgrade my Mac, my phone unless I really have to.

The “update” button on the top of my brave install has now turned from green to orange and I’ll likely wait until it goes red

TeMPOraL 2 hours ago||
> Isn’t this what docker is for?

What? Pinning a browser?

First thing it'll want to do after starting is update itself to newest version anyway.

nicce 3 hours ago||||
For example, Firefox updates by default and forces you to restart it, disabling using websites or seeing any site content before doing so.
Zambyte 2 hours ago|||
On your setup.

Firefox does not only not prompt me for updates (it only updates if I manually run an update), even if I do update with Firefox running, it does not stop me from continuing to use Firefox without restarting it. All I did was install Firefox from flathub (packaged by Mozilla (a default configuration provided by Mozilla)).

nicce 2 hours ago||
I am running Firefox Developer Edition on macOS, where it is the default option. Have to set "Check for updates, but choose when to install" to get the similar behavior.
RobotToaster 2 hours ago||||
I've never seen that behaviour, it downloads updates in the background and then gives me a little notification that I should restart it to update, but it's dismiss-able.
nicce 2 hours ago||
I think this is the old default option. What options you see in the update options?
djsavvy 2 hours ago||||
I've been using Firefox for years and don't think I've ever seen this. Are you running some custom configuration?
TeMPOraL 2 hours ago|||
Standard on Linux, I believe. One of many reasons I got back to Windows as my main OS (with Linux needs fulfilled by WSL).
farlight 34 minutes ago||
Not true since summer 2025.

https://www.firefox.com/en-US/firefox/141.0/releasenotes/#:~...

nicce 2 hours ago|||
Firefox Developer Edition on macOS.
4chandaily 2 hours ago||||
Iirc, this is a pattern of the flatpack version of Firefox. I do not believe the .deb does this.
six_seven 2 hours ago|||
Are you sure this isn't your organization's update policy kicking in here?
jstummbillig 2 hours ago|||
Being able to turn auto-updates off is okay, but that being the default would certainly not be okay in Codex, giving the reach, what it can do and how immature it is.
bayindirh 3 hours ago|||
You can do this without a daemon, and without storing n previous versions as noted by another user.
jmbwell 2 hours ago|||
Yeah this seems like a decision yielded by a model. One of countless examples of the model’s outputs careening into individually defensible but holistically nonsensical results

A human seems less likely to embark upon a path that most humans know leads to something a human is unlikely to want

LLMs produce amazing things, but only one token at a time. Anything beyond that is retrospectively emergent at best

yoyohello13 1 hour ago||
I guarantee the prompt “add auto update feature” was the first and last human input applied to that feature.
wtallis 2 hours ago|||
Serious tools shouldn't do this. Sure, you can offer an opt-in rapid release beta update option, but if you can't go more than a month without forcing me into a "stable" update that changes the UI and behavior I'm getting used to, then I'm not going to consider your software stable and reliable enough to be worth developing expertise in using.
dingaling911 1 hour ago|||
The entire class of software (harnesses) you're talking about was literally invented like 2 years ago...
wren6991 3 hours ago|||
If software engineering is solved they should be able to get it right the first time
Yizahi 2 hours ago|||
Software Engineering clearly is solved, that's why Google has a tiny animated banner on the AI Studio sidebar (advertising subscription upgrade), which shows a simple animated border around it and utilizing exactly 100% of the GPU to render just that banner. And there is a browser extension removing that styling element (without banner GPU load is obviously under 0.1% as it should be) released way back in May. So the almighty AI didn't manage to fix a major UI blocker for a flagship AI product in half a year now. :)
wren6991 2 hours ago||
When I had a Claude account (cancelled ~May time) I vividly remember the web chat having broken editing for backtick-quoted monospace text. If you typed <space>`foobar`<space> the last space would move the cursor backward into the closing quote, and the space would be emitted inside the monospaced region. It was like this for several months (on Firefox). I always found this baffling for a product marketed to programmers.
whythismatters 1 hour ago||
Same with their desktop app by the way, absolutely infuriating.
phoghed 2 hours ago||||
Coding is solved, software engineering still TBD
dingaling911 3 hours ago|||
CODEX WRITES ITSELF! DONT YOU PEOPLE UNDERSTAND!!!!!
TeMPOraL 2 hours ago|||
Nah, you're confusing it with Autolith.
bayindirh 3 hours ago|||
So you imply that Codex has a hoarding issue?
Rapzid 2 hours ago|||
It loves hording issues. Over 15 THOUSAND on GH.
jonplackett 3 hours ago|||
It gets very attached to itself
swatcoder 3 hours ago|||
Products moving fast doesn't mean that they're moving in the direction I want, or that I want them to move underneath me while I'm in the middle of a project.

Auto-update systems have value but are not a suitable default for professional tools.

RobotToaster 2 hours ago|||
Then use the package manager, or windows store on windows.
johnnyApplePRNG 3 hours ago||
[flagged]
dingaling911 3 hours ago||
you run it on the bare metal?!! Balls. I run it in a container
timdorr 2 hours ago||
This is the same operational model as Claude Code.

  ls ~/.local/share/claude/versions/
  ps auxww | grep "claude bg"
I see a few prior versions of the Claude Code binary and several running background tasks, without any copy of Claude Code in the foreground. I regularly get a "Update available" message in my Claude Code UI too.
farlight 28 minutes ago||
If running systemd, wrap that crap into a cgroup and force kill the whole process tree on exit. I've been doing it for years with badly behaving applications. On phone, from memory, may not be exactly what is needed:

  systemd-run --user --pty --wait --collect -p TimeoutStopSec=5s -- "$@"
whimblepop 2 hours ago|||
This kind of stuff often breaks for applications packaged with Nix, so it's often removed from Nix packages for compatibility reasons. Both behaviors you mention are helpfully patched out of the Claude Code package I use: https://github.com/numtide/llm-agents.nix/blob/dc285bfd94ec7...

As a result, I never knew that Claude Code does a nasty thing like this, either. :-\

Fwiw, packages in that repo get version bumped each day, so if that's a fast enough pace for you it may be a good alternative.

javcasas 2 hours ago||
And here is the issue raised in github: https://github.com/anthropics/claude-code/issues/14980

TLDR: They don't care.

thebeardisred 2 hours ago||
It's right about now that having a operating system distro model is great - you get folks who will package the software & test it out, make generally sensible defaults, and generally keep shenanigans like this from going on
Cyph0n 2 hours ago||
Nix/NixOS takes it a step further and makes you have to go out of the way to enable self-updating behavior when packaging something :)
dv35z 2 hours ago||
What are the top ones you recommend? ( I am running Mint Debian Linux )
pkulak 1 hour ago||
Well, OpenAI at least is fine with you using whatever harness you like. Having a crappy first-party one is bad, but an escape hatch puts a floor on it.
silverbluep 1 hour ago|
Codex is very badly structured. I was an early user with codex. But it mixes state and configuration data; which is why I can't really declaratively manage it in my nix-darwin environment; so abandoned it a while ago. This issue being raised, and the way that the codex development responds back to it makes me not trust their harness ever again. I only use codex in opencode; which seems to be doing OK. At least openai doesn't gate their product to their harness like anthropic.

Not trying to sing praises; i think opencode is doing a bunch of weird stuff too but it's not codex level.

More comments...