upvote
CC has >6000 open issues, despite their bot auto-culling them after 60 days of inactivity. It was ~5800 when I looked just a few days ago so they seem to be accelerating towards some kind of bug singularity.
reply
Just anecdotally, each release seems to be buggier than the last.

To me, their claim that they are vibe coding Claude code isn’t the flex they think it is.

I find it harder and harder to trust anthropic for business related use and not just hobby tinkering. Between buggy releases, opaque and often seemingly glitches rate limits and usage limits, and the model quality inconsistency, it’s just not something I’d want to bet a business on.

reply
I think I would be much more frightened if it were working well.
reply
Exactly, thank goodness it's still a bit rubbish in some aspects
reply
plot twist, it's all claude code instances submitting bug reports on behalf of end users.
reply
I literally hit a claude code bug today, tried to use claude desktop to debug it which didn't help and it offered to open a bug report for me. So yes 100%. Some of the titles also make it pretty clear they are auto submitted. This is my favorite which was around the top when I was creating my bug report 3 hours ago and is now 3 pages back lol.

> Unable to process - no bug report provided. Please share the issue details you'd like me to convert into a GitHub issue title

https://github.com/anthropics/claude-code/issues/23459

reply
It's Claude, all the way down.
reply
Insane to think that a relatively simple CLI tool has so many open issues...
reply
It's not really a simple CLI tool though it's really interactive.
reply
What’s so simple about it?
reply
I said relatively simple. It is mostly an API interface with Anthropic models, with tool calling on top of it, very simple input and output.
reply
With extensibility via plugins, MCP (stdio and http), UI to prompt the user for choices and redirection, tools to manage and view context, and on and on.

It is not at all a small app, at least as far as UX surface area. There are, what, 40ish slash commands? Each one is an opportunity for bugs and feature gaps.

reply
They wouldn't have 6000 issues if they hired one or two Rust engineers.
reply
I would still call that small, maybe medium. emacs is huge as far as CLI tools go, awk is large because it implements its own language (apparently capable of writing Doom in). `top` probably has a similar number of interaction points, something like `lftp` might have more between local and remote state.

The complex and magic parts are around finding contextual things to include, and I'd be curious how many are that vs "forgot to call clear() in the TUI framework before redirecting to another page".

reply
I’m pretty certain you haven’t used it yet(to its fullest extent) then. Claude Code is easily one of the most complex terminal UIs I have seen yet.
reply
Could you explain why? When I think about complex TUIs, I think about things we were building with Turbo Vision in the 90s.
reply
I’m going to buck the trend and say it’s really not that complex. AFAIK they are using Ink, which is React with a TUI renderer.

Cue I could build it in a weekend vibes, I built my own agent TUI using the OpenAI agent SDK and Ink. Of course it’s not as fleshed out as Claude, but it supports git work trees for multi agent, slash commands, human in the loop prompts and etc. If I point it at the Anthropic models it more or less produces results as m good as the real Claude TUI.

I actually “decompiled” the Claude tools and prompts and recreated them. As of 6 months ago Claude was 15 tools, mostly pretty basic (list for, read file, wrote file, bash, etc) with some very clever prompts, especially the task tool it uses to do the quasi planning mode task bullets (even when not in planning mode).

Honestly the idea of bringing this all together with an affordable monthly service and obviously some seriously creative “prompt engineers” is the magic/hard part (and making the model itself, obviously).

reply
sips coffee… ahh yes, let me find that classic Dropbox rsync comment
reply
Half of them were probably opened yesterday during the Claude outage.
reply
Nah, it was at like 5500 before.
reply
It explains how important dogfooding is if you want to make an extremely successful product.
reply
It’s extremely successful, not sure what it explains other than your biases
reply
Microsoft's products are also extremely successful

they're also total garbage

reply
but they have the advantage of already being a big company. Anthropic is new and there's no reason for people to use it
reply
The tool is absolutely fantastic coding assistant. That's why I use it.

The amount of non-critical bugs all over the place is at least a magnitude larger than of any software I was using daily ever.

Plenty of built in /commands don't work. Sometimes it accepts keystrokes with 1 second delays. It often scrolls hundreds of lines in console after each key stroke Every now and then it crashes completely and is unrecoverable (I once have up and installed a fresh wls) When you ask it question in plan mode it is somewhat of an art to find the answer because after answering the question it will dump the whole current plan (free screens of text)

And just in general the technical feeling of the TUI is that of a vibe coded project that got too big to control.

reply
I think this might be a harbinger of what we should expect for software quality in the next decade
reply
what about if management gives them a reason? You can think of which those can be.
reply
Claude is by far the most popular and best assistant currently available for a developer.
reply
Okay, and Windows is by far the most popular desktop operating system.

Discussions are pointless when the parties are talking past each other.

reply
Popular meaning lots of people like it or that it is relatively widespread? Polio used to be popular in the latter way.
reply
I like windows, it’s fine. I like MacOS better. I like Linux. None of them are garbage or unusable.
reply
have you used Windows 11?

file explorer takes 5 seconds to open

reply
Something being successful and something being a high quality product with good engineering are two completely different questions.
reply
Anthropic has perhaps the most embarrassing status page history I have ever seen. They are famous for downtime.

https://status.claude.com/

reply
As opposed to other companies which are smart enough not to report outages.
reply
So, there are only two types of companies: ones that have constant downtime, and ones that have constant downtime but hide it, right?
reply
Basically, yes.
reply
The competition doesn't currently have all 99's - https://status.openai.com/
reply
The best way to use Claude's models seems to be some other inference provider (either OpenRouter or directly)
reply
Shades of Fail Whale
reply
And yet people still use them.
reply
The sandboxing in CC is an absolute joke, it's no wonder there's an explosion of sandbox wrappers at the moment. There's going to be a security catastrophe at some point, no doubt about it.
reply
Also explains why Claude Code is a React app outputting to a Terminal. (Seriously.)
reply
I did some debugging on this today. The results are... sobering.

Memory comparison of AI coding CLIs (single session, idle):

  | Tool        | Footprint | Peak   | Language      |
  |-------------|-----------|--------|---------------|
  | Codex       | 15 MB     | 15 MB  | Rust          |
  | OpenCode    | 130 MB    | 130 MB | Go            |
  | Claude Code | 360 MB    | 746 MB | Node.js/React |
That's a 24x to 50x difference for tools that do the same thing: send text to an API.

vmmap shows Claude Code reserves 32.8 GB virtual memory just for the V8 heap, has 45% malloc fragmentation, and a peak footprint of 746 MB that never gets released, classic leak pattern.

On my 16 GB Mac, a "normal" workload (2 Claude sessions + browser + terminal) pushes me into 9.5 GB swap within hours. My laptop genuinely runs slower with Claude Code than when I'm running local LLMs.

I get that shipping fast matters, but building a CLI with React and a full Node.js runtime is an architectural choice with consequences. Codex proves this can be done in 15 MB. Every Claude Code session costs me 360+ MB, and with MCP servers spawning per session, it multiplies fast.

reply
Jarred Sumner (bun creator, bun was recently acquired by Anthropic) has been working exclusively on bringing down memory leaks and improving performance in CC the last couple weeks. He's been tweeting his progress.

This is just regular tech debt that happens from building something to $1bn in revenue as fast as you possibly can, optimize later.

They're optimizing now. I'm sure they'll have it under control in no time.

CC is an incredible product (so is codex but I use CC more). Yes, lately it's gotten bloated, but the value it provides makes it bearable until they fix it in short time.

reply
if I had a dollar for each time I heard “until they fix it in short time” I’d have Elon money
reply
OpenCode is not written in Go. It's TS on Bun, with OpenTUI underneath which is written in Zig.
reply
I believe they use https://bun.com/ Not Node.js
reply
why do you care about uncommitted virtual memory? that's practically infinite
reply
There’s nothing wrong with that, except it lets ai skeptics feel superior
reply
There are absolutely things wrong with that, because React was designed to solve problems that don't exist in a TUI.

React fixes issues with the DOM being too slow to fully re-render the entire webpage every time a piece of state changes. That doesn't apply in a TUI, you can re-render TUIs faster than the monitor can refresh. There's no need to selectively re-render parts of the UI, you can just re-render the entire thing every time something changes without even stressing out the CPU.

It brings in a bunch of complexity that doesn't solve any real issues beyond the devs being more familiar with React than a TUI library.

reply
I haven't looked at it directly, so I can speak on quality, but it's a pretty weird way to write a terminal app
reply
Oh come on. It's massively wrong. It is always wrong. It's not always wrong enough to be important, but it doesn't stop being wrong
reply
You should elaborate. What are your criteria and why do you think they should matter to actual users?
reply
I use AI and I can call AI slop shit if it smells like shit.
reply
Sounds like a web developer defined the solution a year before they knew what the problem was.
reply
deleted
reply
Same with opencode and gemini, it's disgusting

Codex (by openai ironically) seems to be the fastest/most-responsive, opens instantly and is written in rust but doesn't contain that many features

Claude opens in around 3-4 seconds

Opencode opens in 2 seconds

Gemini-cli is an abomination which opens in around 16 second for me right now, and in 8 seconds on a fresh install

Codex takes 50ms for reference...

--

If their models are so good, why are they not rewriting their own react in cli bs to c++ or rust for 100x performance improvement (not kidding, it really is that much)

reply
Great question, and my guess:

If you build React in C++ and Rust, even if the framework is there, you'll likely need to write your components in C++/Rust. That is a difficult problem. There are actually libraries out there that allow you to build web UI with Rust, although they are for web (+ HTML/CSS) and not specifically CLI stuff.

So someone needs to create such a library that is properly maintained and such. And you'll likely develop slower in Rust compared to JS.

These companies don't see a point in doing that. So they just use whatever already exists.

reply
Opencode wrote their own tui library in zig, and then build a solidjs library on top of that.

https://github.com/anomalyco/opentui

reply
This has nothing to do with React style UI building.
reply
reply
Where is React? These are TUI libraries, which are not the same thing
reply
iocraft and dioxus-tui implement the React model, or derivatives of it.
reply
and why do they need react...
reply
That's actually relatively understandable. The React model (not necessarily React itself) of compositional reactive one-way data binding has become dominant in UI development over the last decade because it's easy to work with and does not require you to keep track of the state of a retained UI.

Most modern UI systems are inspired by React or a variant of its model.

reply
Why does it matter if Claude Code opens in 3-4 seconds if everything you do with it can take many seconds to minutes? Seems irrelevant to me.
reply
I guess with ~50 years of CPU advancements, 3-4 seconds for a TUI to open makes it seem like we lost the plot somewhere along the way.
reply
Don’t forget they’ve also publicly stated (bragged?) about the monumental accomplishment of getting some text in a terminal to render at 60fps.
reply
This is exactly the type of thing that AI code writers don't do well - understand the prioritization of feature development.

Some developers say 3-4 seconds are important to them, others don't. Who decides what the truth is? A human? ClawdBot?

reply
Because when the agent is taking many seconds to minutes, I am starting new agents instead of waiting or switching to non-agent tasks
reply
codex cli is missing a bunch of ux features like resizing on terminal size change.

Opencode's core is actually written in zig, only ui orchestration is in solidjs. It's only slightly slower to load than neo-vim on my system.

https://github.com/anomalyco/opentui

reply
50ms to open and then 2hrs to solve a simple problem vs 4s to open and then 5m to solve a problem, eh?
reply
Codex team made the right call to rewrite its TypeScript to Rust early on
reply
React's core is agnostic when it comes to the actual rendering interface. It's just all the fancy algos for diffing and updating the underlying tree. Using it for rendering a TUI is a very reasonable application of the technology.
reply
The terminal UI is not a tree structure that you can diff. It’s a 2D cells of characters, where every manipulation is a stream of texts. Refreshing or diffing that makes no sense.
reply
IMO diffing might have made sense to do here, but that's not what they chose to do.

What's apparently happening is that React tells Ink to update (re-render) the UI "scene graph", and Ink then generates a new full-screen image of how the terminal should look, then passes this screen image to another library, log-update, to draw to the terminal. log-update draws these screen images by a flicker-inducing clear-then-redraw, which it has now fixed by using escape codes to have the terminal buffer and combine these clear-then-redraw commands, thereby hiding the clear.

An alternative solution, rather than using the flicker-inducing clear-then-redraw in the first place, would have been just to do terminal screen image diffs and draw the changes (which is something I did back in the day for fun, sending full-screen ASCII digital clock diffs over a slow 9600baud serial link to a real terminal).

reply
Any diff would require to have a Before and an After. Whatever was done for the After can be done to directly render the changes. No need for the additional compute of a diff.
reply
Sure, you could just draw the full new screen image (albeit a bit inefficient if only one character changed), and no need for the flicker-inducing clear before draw either.

I'm not sure what the history of log-output has been or why it does the clear-before-draw. Another simple alternative to pre-clear would have been just to clear to end of line (ESC[0K) after each partial line drawn.

reply
When doing advanced terminal UI, you might at some point have to layout content inside the terminal. At some point, you might need to update the content of those boxes because the state of the underlying app has changed. At that point, refreshing and diffing can make sense. For some, the way React organizes logic to render and update an UI is nice and can be used in other contexts.
reply
How big is the UI state that it makes sense to bring in React and the related accidental complexity? I’m ready to bet that no TUI have that big of a state.
reply
Only in the same way that the pixels displayed in a browser are not a tree structure that you can diff - the diffing happens at a higher level of abstraction than what's rendered.

Diffing and only updating the parts of the TUI which have changed does make sense if you consider the alternative is to rewrite the entire screen every "frame". There are other ways to abstract this, e.g. a library like tqmd for python may well have a significantly more simple abstraction than a tree for storing what it's going to update next for the progress bar widget than claude, but it also provides a much more simple interface.

To me it seems more fair game to attack it for being written in JS than for using a particular "rendering" technique to minimise updates sent to the terminal.

reply
Most UI library store states in tree of components. And if you’re creating a custom widget, they will give you a 2D context for the drawing operations. Using react makes sense in those cases because what you’re diffing is state, then the UI library will render as usual, which will usually be done via compositing.

The terminal does not have a render phase (or an update state phase). You either refresh the whole screen (flickering) or control where to update manually (custom engine, may flicker locally). But any updates are sequential (moving the cursor and then sending what to be displayed), not at once like 2D pixel rendering does.

So most TUI only updates when there’s an event to do so or at a frequency much lower than 60fps. This is why top and htop have a setting for that. And why other TUI software propose a keybind to refresh and reset their rendering engines.

reply
The "UI" is indeed represented in memory in tree-like structure for which positioning is calculated according to a flexbox-like layout algo. React then handles the diffing of this structure, and the terminal UI is updated according to only what has changed by manually overwriting sections of the buffer. The CLI library is called Ink and I forget the name of the flexbox layout algo implementation, but you can read about the internals if you look at the Ink repo.
reply
Is this a react feature or did they build something to translate react to text for display in the terminal?
reply
React, the framework, is separate from react-dom, the browser rendering library. Most people think of those two as one thing because they're the most popular combo.

But there are many different rendering libraries you can use with React, including Ink, which is designed for building CLI TUIs..

reply
Anyone that knows a bit about terminals would already know that using React is not a good solution for TUI. Terminal rendering is done as a stream of characters which includes both the text and how it displays, which can also alter previously rendered texts. Diffing that is nonsense.
reply
You’re not diffing that, though. The app keeps a virtual representation of the UI state in a tree structure that it diffs on, then serializes that into a formatted string to draw to the out put stream. It’s not about limiting the amount of characters redrawn (that would indeed be nonsense), but handling separate output regions effectively.
reply
They used Ink: https://github.com/vadimdemedes/ink

I've used it myself. It has some rough edges in terms of rendering performance but it's nice overall.

reply
Thats pretty interesting looking, thanks!
reply
Not a built-in React feature. The idea been around for quite some time, I came across it initially with https://github.com/vadimdemedes/ink back in 2022 sometime.
reply
i had claude make a snake clone and fix all the flickering in like 20 minutes with the library mentioned lol
reply
It’s really not that crazy.

React itself is a frontend-agnostic library. People primarily use it for writing websites but web support is actually a layer on top of base react and can be swapped out for whatever.

So they’re really just using react as a way to organize their terminal UI into components. For the same reason it’s handy to organize web ui into components.

reply
And some companies use it to write start menus.
reply
Also explains why Claude Code is a React app outputting to a Terminal. (Seriously.)

Who cares, and why?

All of the major providers' CLI harnesses use Ink: https://github.com/vadimdemedes/ink

reply
What does it explain, oh snark master supreme?
reply
Ah yes, explains why it takes 3 seconds for a new chat to load after I click new chat in the macOS app.
reply
Can Claude fix the flicker in Claude yet?
reply
[flagged]
reply
Oh, is that what the issue is? I've seen the "flicker" thing as a meme, but as someone who uses Claude Code I've never noticed. I use ghostty mostly, so maybe it's not an issue with ghostty? Or maybe I just haven't noticed it.
reply
Yes it's people using bad tools on underpowered machines as far as I have seen
reply
Happens with Konsole sometimes on an 8th gen i7. This cpu can run many instances of intellij just fine, but somehow this TUI manages to be slow sometimes. Codex is fine, so no good argument exists really.
reply
deleted
reply
Blaming the terminal seems a little backwards. Perhaps the application could take responsibility for being compatible with common terminals?
reply
I have no dog in the fight.
reply