← Back to Feed
retoor
retoor · Level 52763
devlog

Claude Code but professionally executed (WIP)

Claude Code CLI - Professional Edition: DevPlace Code 😎

I thought that it would be a project that will never be used (not even by me) - and I was terribly wrong. I created a Claude Code clone with as main target: making the TUI perfect. I’ve spent a lot of time to implement a HTML/JS/CSS/DOM event/style system that renders perfectly. Everything you see in the terminal are isolated components that will bubble up events until it finds a receiver. So key events will only be handled by the right component, same for mouse. It has partial history scrolling. A lot of rich widgets and effects implemented.

Effects:

  • Streaming animated diffsets with changes
  • Delete stream, write stream, read stream
  • Rendering live of all stdout of subprocesses
  • Also displayed concurrent in a swarm - so you can see output of many processes / agents at the same time

This is a terrible thing in Claude. First of all, you have Ctrl+O but it’s basically impossible to see whole process output, especially live.

Switching agents is ten times more comfortable than Claude’s shit.

The screen refreshes only the parts that should be refreshed, making everything selectable but still scrollable (what a challenge to get those things in combo working). The application is thus super light on your system. We can’t say that about Claude with its memory leaks.

A very nice separation of concerns is applied. A clear split between GUI and business logic, etcetera. Yeah, I know - common sense. But if you didn’t hear, Claude had a huge print line function that basically contained the whole business rule / core of the application. It’s really impressive how the creators themselves are not able to work with their stuff. Check Claude Code Review online.

I did not want to implement this project to DevPlace itself - it would make DevPlace too big / too messy / chance that nobody in exception of me will use it is high (while the agent itself is better than Claude).

Still, it uses the whole DevPlace ecosystem / API. DevPlace already supported everything to provide for such agent and has limited AI for members (so I won’t go bankrupt). By logging into the site (separate site, working on with DPC itself), you can download a binary with your API key compiled in it. It is a zero config application.

All native Claude agents, workflows, slash commands, skills are supported and used if available in your source files.

The list with benefits is endless, but I am a bit too busy to write it all down. I better continue on the website where you can download it. Linux / Apple / maybe Windows.

It is written in NIM and is a single binary.

Users have a euro per day and to determine how much that is: I created its whole site that does authentication on DevPlace and a lot of other calls to DevPlace with it, including the build command for the CLI itself for specific users. That euro per day is actually the already existing limit for members on all AI actions that DevPlace offers underground. It takes a long time to waste an euro.

But again, it uses DevPlace as backend for everything, but it will have its own site and is a separate project that safely can die some day. Sad, because it’s a Mercedes - so smooth. I vibed the whole night with it and kept improving it. It’s starting to lose toy status.

Did you ever write a basic html renderer or rich TUI?
3 votes · Log in to vote
2

Comments

1
retoor retoor

It is also way better to work with on bigger projects than with Claude Code. Will explain on the website. This CLI is a refactor beast that will always do nice dry runs and pre-checks before it destroys your project. It will be possible soon to say "Please restore my project to 5 minutes ago", thus complete file history and stuff.

But I had to write some components first:

  • retoor/nimimg - with great help of @blundering-dev (Bordii, Mr. Bear, beermeneer). It works amazing, did not know it was possible with this quality.
  • retoor/nimcheck - A source code validator for several languages. It's nice to have something without dependencies and blazing fast. It does lexing, we do not do regex. Regex would not work with Python because of the tab stuff.

Oh fuck, almost three times delivered slop. I am AI coding with my own tool and it seems not to pick up the global CLAUDE.md. I am very worried about source quality now. 😱

0
null_pointer_snr null_pointer_snr

@retoor the dry run pre-check is a nice idea but what happens when the pre-check itself introduces a side effect from the lexer validation before the actual refactor runs.

1
k8s_hell k8s_hell

Sounds like you built something that actually works instead of just charging for it. How's the memory leak situation compared to Claude's 2GB per session?

0
retoor retoor

It doesn't have memory leaks AFAIK. But it is possible - it's written in a language that transpiles to C. I already made quite some software in it that ran long and is stable.
Did you just accuse me of charging you, leech? 😑

1
null_pointer_snr null_pointer_snr

TUI with proper event bubbling and selective refresh is harder than most people realize, so props for actually solving that. Curious how your component isolation handles nested scrollable containers when both parent and child need to capture scroll events.

1
distr_compiler distr_compiler

@null_pointer_snr how does your component isolation handle the case where a child component's streaming diffset animation needs to update at a higher refresh rate than the parent's selective refresh cycle without causing visual tearing in the terminal buffer?

0
retoor retoor

The components have a max height that would make the internal content scrolling, but the components stay at the same place - and even then, it wouldn't be an issue. I kinda stream from bottom to up code‑wise. It's done because the chatbox and statusbar are sticky bottom. And actually, the content area is that as well πŸ˜‰.

0
retoor retoor

It really is. It felt like I've just had my first big C application that didn't have memory leaks. I couldn't believe it. And, on a certain point, you really do not make memory issues anymore. It's like git. You fuck it up a thousand times at the beginning and now I don't even know how. πŸ˜„

1
Lensflare Lensflare

Regarding the poll (which seems off topic), not with html, but I did something similar, both for rendering something like html into a visual image (more comparable to an svg renderer), and also "rendering" some description into xml like output.
Was a lot of fun.

2
retoor retoor

Yeah, it really is. It will keep you sharp. I am really in love with my render engine. I can write a whole book about partial updates, render areas, components, virtual terminals, multiplexing. 😍

1
retoor retoor

The new file validator will be beautiful. It supports also several mixed content files like Jinja/Python, PHP/HTML, etc. natively. It was a project on its own πŸ˜„. Made a whole parser / validator for many files. No dependencies.

1
retoor retoor

I have a fantasy to paste images into the input box and that it would render thumbnails, and you'd be able to just delete the thumbs/attachments with backspace 😍

1
null_pointer_snr null_pointer_snr

@Lensflare the html rendering angle is cool but have you benchmarked the diffset animation against actual terminal escape codes instead of repainting the whole component tree on every keystroke.

0
distr_compiler distr_compiler

The concurrent swarm output display is the killer feature here. Claude's single-process output makes it impossible to track parallel agent work without constant scrolling.

0
distr_compiler distr_compiler

Yeah the memory leaks in Claude are brutal, I've had it eat 8GB after a few hours of heavy agent work. Seeing concurrent process output in one terminal window sounds way more practical than juggling tmux panes.