I did install it in a VM with virtio-gpu, but it was absurdly slow, so I wasn't able to try it.
I wish GPUI could become the go-to Rust UI library and not just an editor backend.
For that, a couple of changes would be highly desirable: being able to switch the GPU backend from Metal to wgpu (so it could be mixed with vello, for instance), and the ability to integrate into an existing event loop like egui allows you to. If this were easy to do, I would switch from egui in a heartbeat.
One of the staff forked it into a community edition https://github.com/gpui-ce/gpui-ce
Does anyone have more details about the state of it?
In case you find it useful, I recently stumbled upon this project:
https://github.com/longbridge/gpui-component
"UI components for building fantastic desktop applications using GPUI."
https://zed.dev/blog/videogame#text-rendering
It looks like their approach could nicely solve a problem that's shared by almost every new GUI toolkit I've tried: text looks terrible, or at least out of place when surrounded by applications built with the desktop's native toolkit.
Tried switching multiple times from vscode but it's just not feature complete for my use cases. Off top:
- no expanding tabs to fill the window until another one is clicked
- file picker hides .gitignored files
- vertical terminal tabs would be nice
- restart doesn't automatically load the previous window (most recent project)
- while faster/more responsive than vscode on large codebases, still pretty heavy compared to its AI-averse fork, gram; thus I can't use it on the macbook neo
Until some/all of that is improved, it's just uncanny valley territory with no particular killer feature to migrate. Appreciate all the work they've put into it (especially remote ssh parity!) though and like what they're doing in broad strokes
2. Uncheck "Hide .gitignore" setting and it won't do this.
3. Agreed
4. This is configured in the "Restore on Startup" setting (I think you want "Last Session")
(there is, of course, a rich tradition of text editors with the same issue, including Vim and Emacs. They 1) have an excuse; 2) provide both workarounds and their own input method systems. Having this in a new program is nuts.)
- Doesn't highlight typos in variable, functions, class/struct names etc. Doesn't highlight rust borrow-check, invalid method etc errors.
- Doesn't seem to understand either language beyond superficial syntax
- "Go to definition" (Ctrl + B) Doesn't do anything
- Doesn't show which versions are valid in Cargo.toml and pyproject.toml
- No ability to move functions/classes/structs etc to different modules
- Doesn't seem to understand rust feature gates
- Doesn't seem to understand what fields a struct has, or params a function has, let a lone what types are valid in them.
- Rename seems naive
Overall: It is taking a superficial view of the code base, and treating it more as text than a cohesive structure.edit: Thank you very much for those who have pointed out I needed to disable restricted mode. This has added some introspection and in-line error handling. Some of my concerns are partially-mitigated. It seems when introspection and in-line editing/complete/data appears is inconsistent (But working in many cases), and I do not yet know what rules define this. Refactoring tools like moving are still absent. I will continue to use Zed on my tablet with the LSPs enabled, and observe.
I do think they should have a more obvious warning that the current directory is untrusted, right now the little green warning in the corner is way too unobtrusive and will result in many people having the same issue as you.
The latest x86_64 Linux build is 136MB. (https://zed.dev/docs/linux#downloading-manually)
As for your list of grievances, they all seem to boil down to the respective LSPs not doing their job? Does Ctrl-Alt-l (lowercase L, not Shift+i) include the language's server in the context menu, and are there any errors reported for it if it does?
That is the part that makes the space heater
Helix lovers who are dying waiting for helix plugins, please try this out
That said, the current UX is pretty confusing.
There’s a mismatch in visual hierarchy: selecting an agent in the sidebar appears to change the entire editor’s worktree/branch, but the worktree/branch selector lives in the window titlebar, which strongly implies it controls the whole window. So it’s unclear which is the source of truth—the agent or the window.
That ambiguity shows up in the workflow too. If I want to create a new branch/worktree and then start an agent on it, I can’t do that directly. I have to:
1. create an agent 2. start a conversation (to instantiate it) 3. then switch the branch/worktree
That ordering feels backwards—I’d expect to define the context first, then start the agent.
Even basic navigation is unclear. If I switch the branch in the titlebar, does that affect the current agent, or the whole window? If I want to return to a previous worktree, is that tied to the agent or not? I still don’t have a solid mental model.
It feels like there are two competing concepts:
* agents as independent workspaces * the window as the workspace
Right now they overlap in a way that’s hard to reason about.
The feature has a lot of promise, but the current UX makes it difficult to predict what’s going to happen, which makes it hard to rely on.
Zed is the first one that got me to actually migrate. It does a great job of staying out of your way. Search and replace works seamlessly across multiple files with regex, and the extremely fast editing experience feels immediately familiar if you’re coming from Sublime. Being open source also gives confidence in its long-term viability.
Kudos to the team building Zed.
I'm trying right now the ACP with my own agent and I'm of mixed opinions but that's maybe because I care how my agent works. I believe that for the agent view a plain buffer with small ui elements would be the best ui for an agent conversation but I may have been spoiled by their text threads. I may spin a personal fork but the thought of tens of mins of compile time isn't that attractive.
Edit: I realized I started moving to terminal based editors like helix due to agents: claude -> codex -> custom pi, with the open sourcing of warp I was considering making a native integration for warp + pi but now I'm thinking zed's text threads (~17k lines) + pi might be a better way, any thoughts or ideas?
Gotta say farewell to Sublime. Now Zed is my general purposed text editor. For doing most of my coding work, still use VSCode and nvim.