News for hackers. Stuff that matters.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by EMM_386 on Tuesday January 20, 2026 @08:43PM (#46700179)
The problem is they are using the Ink library which clears and redraws for each update.

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

I locally patched the closed-source CLI npm package but it's not perfect. They would have to switch how their TUI is rendered on their side.

Apparently OpenAI Codex is rust+ratatui which does not have this issue.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by thomasahle on Tuesday January 20, 2026 @09:00PM (#46700290)
I'm always surprised that Python doesn't have as good TUI libraries as Javascript or Rust. With the amount of CLI tooling written in Python, you'd think it had better libraries than any other language.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by wonger_ on Tuesday January 20, 2026 @09:54PM (#46700592)
Blessed was a decent one iirc:

https://github.com/jquast/blessed

One reason for the lack of python might be the timing of the TUI renaissance, which I think happened (is happening?) alongside the rise of languages like Go and Rust.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by acdha on Tuesday January 20, 2026 @09:35PM (#46700493)
Textual looks really nice, but I usually make web apps so I haven’t tried it for anything serious:

https://textual.textualize.io/

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by sibeliuss on Tuesday January 20, 2026 @10:57PM (#46700910)
Textual is A++. Feels a bit less snappy than Ink, but it makes up in all things with its immense feature-set. Seriously fun building apps of all kinds with this lib.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by thomasahle on Wednesday January 21, 2026 @10:42PM (#46715024)
Textual is cook, but it's maintained by a single guy, and the roadmap hasn't been updated since 2023, https://textual.textualize.io/roadmap/
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by behnamoh on Tuesday January 20, 2026 @09:02PM (#46700302)
it has, but python being single threaded (until recently) didn't make it an attractive choice for CLI tools.

example: `ranger` is written in python and it's freaking slow. in comparison, `yazi` (Rust) has been a breeze.

Edit: Sorry, I meant GIL, not single thread.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by ashirviskas on Tuesday January 20, 2026 @09:15PM (#46700370)
> it has, but python being single threaded (until recently) didn't make it an attractive choice for CLI tools.

You probably mean GIL, as python has supported multi threading for like 20 years.

Idk if ranger is slow because it is written in python. Probably it is the specific implementation.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by behnamoh on Tuesday January 20, 2026 @10:48PM (#46700858)
Even my CC status line script enjoyed a 20x speed improvement when I rewrote it from python to rust.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by foltik on Wednesday January 21, 2026 @12:12AM (#46701389)
It’s surprising how quickly the bottleneck starts to become python itself in any nontrivial application, unless you’re very careful to write a thin layer that mostly shells out to C modules.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by embedding-shape on Wednesday January 21, 2026 @04:12AM (#46703036)
> You probably mean GIL

They also probably mean TUIs, as CLIs don't do the whole "Draw every X" thing (and usually aren't interactive), that's basically what sets them apart from CLIs.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by blks on Wednesday January 21, 2026 @05:55AM (#46703811)
I’m using Textual for my TUI needs, it’s very decent.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by jschlatter on Tuesday January 20, 2026 @09:15PM (#46700368)
They started with Ink but have since switched to their own renderer:

> We originally built Claude Code on Ink, a React renderer for the terminal. [...] Over the past few months, we've rewritten our rendering system from scratch (while still using React).

https://github.com/anthropics/claude-code/issues/769#issueco...

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by cududa on Tuesday January 20, 2026 @09:17PM (#46700383)
Thanks for sharing. Very … interesting. Just trying to understand why the heck would React be the best tool here?
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by zlumer on Tuesday January 20, 2026 @10:12PM (#46700680)
React is just an abstraction of a State -> View function.

While not universally applicable, it's very convenient during development to focus on State without thinking about View, or focus on View without thinking about State.

The concept itself has nothing to do with the actual renderer: HTML, TUI, or whatever. You can render your state to a text file if you want to.

So the flickering is caused either by a faulty renderer, or by using a render target (terminal) that is incompatible with the UI behavior (frequent partial re-renders, outputting a lot of text etc.)

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by anematode on Tuesday January 20, 2026 @09:28PM (#46700455)
I genuinely thought this was satire until I looked it up. I guess it's just to make us webdevs feel at home in the Terminal (ooh, spooky!)
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by Atotalnoob on Tuesday January 20, 2026 @10:58PM (#46700913)
React separates into layers.

Any web react project out there will install react AND react-dom, which is the son implementation of react.

It’s how react translates into mobile, web, etc so well.

It defines contracts and packages like react-dom handle th specific implementation.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by catlifeonmars on Wednesday January 21, 2026 @01:09AM (#46701747)
Building a react renderer has long been on my wish list of weekend (>1 weekend most likely) projects.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by rvz on Tuesday January 20, 2026 @09:32PM (#46700479)
Thats the problem. Some developers want to avoid learning another programming language and use one for everything (including their technologies.)

Using TS, React here doesn’t make sense for stability in the long term. As you can see, even when they replaced Ink and built their own, the problem still exists.

There are other alternatives that are better than whatever Anthropic did such as Bubbletea (Go) or Ratatui (Rust) which both are better suited for this.

Maybe they were thinking more about job security with TypeScript over technical correctness and a robust implementation architecture and this shows the lack of it.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by catlifeonmars on Wednesday January 21, 2026 @01:11AM (#46701761)
I’m a fan of Bubbletea, but it is significantly less ergonomic than React. Although I’d argue that if that starts to matter significantly, your TUI is probably too cluttered anyway and you should pare it down.
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by guluarte on Tuesday January 20, 2026 @10:41PM (#46700828)
gemini-cli, opencode are also react based
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by esafak on Wednesday January 21, 2026 @01:08AM (#46701740)
Opencode uses SolidJS:

    We moved from the go+bubbletea based TUI which had performance and capability issues to an in-house framework (OpenTUI) written in zig+solidjs
https://opencode.ai/docs/1-0/
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by lifetimerubyist on Tuesday January 20, 2026 @09:44PM (#46700541)
React?!

Good grief get me off this sloppy ride.

Re:Claude Chill: Fix Claude Code's Flickering in Terminal by behnamoh on Tuesday January 20, 2026 @08:44PM (#46700187)
then maybe they should've bought and fixed Ink instead of bun, just saying!
Re:Claude Chill: Fix Claude Code's Flickering in Terminal by reissbaker on Tuesday January 20, 2026 @09:11PM (#46700350)
FWIW, Ink is working on an incremental rendering system: they have a flag to enable it. It's currently pretty buggy though unfortunately. Definitely wish Anthropic would commit some resources back to the project they're built on to help fix it...