Repository navigation
RFC: Moving Monocode to Rust + GPUI - direction, tradeoffs, and transition #1107
Replies: 10 comments 19 replies
|
I've been testing it locally and the performance is very noticeable |
|
Yeah, I've also been building an app with GPUI for a while now, and the difference in optimization is hard to ignore. |
|
Any way we can add continuing claude sessions from other applications? Like how orca dev does it? It shows old session history plus allows "/resume" and the full list of skills and plugins available to claude code. That and some of the plugins I have for claude code are the biggest things holding me to orca for development now. |
|
Thank you! The only downside is that moving to Rust/GPUI could make it harder for some people to contribute. |
|
Thanks for opening this up for discussion before making it the default. Here is my view as a daily user. The costs1. A very large amount of work has to be rebuilt.
Zed's own editor and markdown crates are GPL-3.0, so they cannot simply be reused either. Each of these is a project on its own, and each needs to reach the quality users already have before the switch feels like an upgrade rather than a regression. 2. We step away from a huge ecosystem. 3. Most of that work will land on you. 4. On Tauri vs Rust: no concern from me. The upside, if it worksIf the migration really delivers the performance gains you expect, Monocode would stand out clearly among the thousands of AI coding apps out there, most of which are web-based wrappers. A genuinely fast, native, lightweight app that stays responsive with many agents running in parallel would be a real difference, not just another feature. SummaryI am not against the direction, but I think the cost is very high and mostly carried by one person. I would feel much more confident if the preview came with side-by-side measurements against the current build on the same workload (total memory across processes, typing latency in a long chat, CPU per turn), so we can see the gain is worth the cost. |
|
I use MonoCode daily on macOS, mainly with Claude Code and Codex, across multiple projects, Monos, and worktrees. I’m interested in the Rust/GPUI direction. I haven’t tested the native build yet, but I can offer some concrete migration feedback from daily use and existing contributions. For switching my daily work over, the most important thing would be continuity between conversations, project context, files, and the surrounding UI. A few examples explain what I mean:
Phone access has also become relevant to how I work. It has reduced my need for a separate remote-control setup, so knowing whether the preview supports the mobile companion—and whether reconnecting returns to the correct session—would help me judge when to switch. These examples describe existing-version observations and proposed fixes. Their value here is as concrete acceptance cases for the migration. A limited opt-in preview could arrive earlier with its gaps clearly documented. For evidence, I’d find a comparison on the same machine with the same providers and workload particularly useful: a long conversation, several active sessions, substantial tool output, and repeated project/Mono switching. Typing responsiveness, scrolling, switching time, and memory/CPU use over a sustained session would tell me more than startup measurements alone. Reporting app and provider resource use separately would also help interpret the results. For data compatibility, I’d want to understand what happens to existing sessions, Mono memory and schedules, and settings. An isolated preview profile or testing against copied data, plus a documented recovery path, would make participation easier. Any data upgrade that prevents returning to the current version should be stated explicitly. From the contribution side, my existing PRs contain behavior and regression cases that may remain useful even if their implementation needs rewriting. Your proposed review of open PRs would help: identifying which should land in the current app, which have a native equivalent, and which need porting would let contributors focus their effort. A minimal runnable GPUI example and a short map of the new code structure would help me continue contributing. The maintenance concern I’d watch is the cost of supporting two implementations while behavior is still moving. A small shared set of workflow scenarios could reduce duplicated investigation and make parity easier to assess. I’d be happy to help turn the cases above into a focused macOS preview checklist, provide sanitized reproductions, and work on a small task aligned with whichever migration blocker you consider most useful. |
|
That's really cool to see. I use Zed daily and thus have confidence in GPUI. Off the top of my head, in no particular order:
As always, I'd be happy to contribute. |
|
I first came across Zeronsh https://github.com/zeronsh/zeron which is the idea of both these projects are headed on and later discovered Monocode there as well. I haven’t tested Monocode hands-on yet, but I’ve spent considerable time testing Zeron on both Linux and Windows, and it’s a working solution worth looking at for reference. I think GPUI is the right direction. One area worth exploring is how to keep the development iteration loop fast, and this recent discussion on experimental approaches to faster Rust compilation not yet ready but can potentially solve this : https://x.com/charliermarsh/status/2112711387285758250 |
|
Quick update: the Rust + GPUI preview branch is now public for anyone who wants to build and try it. Source branch · Build instructions This is an experimental, source-only preview. Tauri remains the official application, and the migration decision is still open. macOS is the primary tested platform. Linux and Windows GUI builds still need testing. Start with I’d appreciate feedback on everyday workflows, missing behavior, build setup, and responsiveness. Please include your OS, provider, and reproduction steps when reporting problems here. |
|
hey I just checked out the preview build and it seems really fast, but I noticed it doesn't support the original layout with the double sidepanels? I really like the original layout way more than the new one that just dropped (I tried so many different ADEs but Monocode's double sidepanel si by far my favorite. made it so easy to jump between different projects, keep track of them all, and manage my sessions). I just wanted to hop in and say whichever way development goes, I think it would be amazing to keep updating and improving the original 2 sidebar style rather than moving over to that new layout. |


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hey everyone,
I’ve been working on a Rust + GPUI version of Monocode, and I want to discuss the direction before making it the default.
This would be a substantial change from the current React/Tauri application. It affects both the experience of using Monocode and how people contribute to it, so I want to give everyone time to understand the proposal and raise concerns.
Why I’m exploring this
The goal is to give Monocode more direct control over rendering, input responsiveness, and resource use as conversations and workspaces grow.
GPUI looks promising for that. There are also real costs: porting existing behavior, learning a different UI framework, verifying platform support, and potentially making contributions harder for people who are comfortable with TypeScript and React.
Performance improvements need to be demonstrated with comparable measurements. Changing frameworks alone isn’t evidence that the app is better.
Where things stand
Implementation is already underway on a separate migration branch. A substantial amount of the interface and backend integration has been ported, but feature parity and verification are still incomplete.
Current native development and verification are focused on macOS. Linux and Windows still need native platform testing.
My current preference is to continue exploring GPUI. Early testing shows substantial improvement over resource and handling larger workloads. I’m looking for feedback on whether the benefits justify the costs, what I may be overlooking, and what a reasonable transition would require.
The transition I’m proposing
There is no proposed retirement date in this discussion. The preview would be something people deliberately choose to try.
For contributors
Moving UI development from React to Rust changes the contribution experience. I’d especially like to hear from people who have contributed already or have work in progress.
For open PRs, I propose reviewing them and explaining whether they can land in the current application, carry over to the native version, or need help being ported.
The existing implementation, tests, and contributions are the reference for the migration. Preserving behavior and attribution matters.
A transition would also need updated setup instructions, a guide to the new code structure, and approachable contribution tasks.
What I’d like feedback on
You don’t need to contribute code to have a say. Feedback from people who use Monocode every day is just as useful.
I’ll keep the initial feedback period open, then publish a summary of the concerns, what changes as a result, and the proposed next step.
All reactions