What an abysmal series of top comments. These guys created a phenomenal product using novel technology, which will only continue to improve. Great work to the Zed team.
FWIW, the top comments at the time of my comment (one hour after yours, two hours after the article was posted) are all complimentary. You commented one hour after the article was posted; it's worth waiting a bit for the comment voting to shake out.
yeah, all forms of criticism, all feature suggestions, any comparisons to other products/solutions, etc. should be outright banned by HN. if you aren't praising the thing, get out!
(do you comment this same type of thing on github, microsoft, apple, etc. posts? all of these comments seem absolutely tame compared to the vitriol in those threads. most top comments here are supportive. most of the negative ones are constructive.)
Maybe this wasn't true an hour ago, but all the top 3 comments right now look supportive (if I am to count yours), and the next few are just mildly critical.
Congrats to the Zed team for building the best modern editor I have ever used. I subscribe to the monthly plan just to give you guys the funding you need, even if my funding is a tiny drop in the bucket. I always wanted a feature rich alternative to Sublime Text that can run anywhere and do basically anything I need from it. I've use JetBrains IDEs for years (been subscribed annually since 2017), but since Zed I havent really opened any of those IDEs in a long time, other than maybe Rider but that's due to C# nuances I needed to work with.
Zed really is delightful to use. I haven't had any need to open VSCode in over a year. Extending it has been relatively simple, even as someone who doesn't know Rust well.
The Zed team seem to have really learned their lesson on performance from the Atom days, because it's very performant. @nathansobo, @maxbrunsfeld, @as-cii and the team, congrats!
it's now my go-to for when I need to wrangle basically any text file manually - has handled everything I can throw at it (some of which has crashed other editors -looking at you Cursor/VSCode)
I've tried switching from JetBrains IDEs just a few days ago. The speed and memory footprint are very impressive. I ended up badly missing refactorings and some other features and configuring a debugging session looked like something that needs more time than I had on my hands. So went back for now. I hope they add more IDE features eventually. There's not much a pure text editor can offer over Emacs after all.
But this announcement sounds like they are prioritizing agents integration - the same thing that seemingly made JetBrains drop the ball on their core advantages.
My daily driver is Zed developing on SSH remote servers on exe.dev.
It's crazy to think of all the dev tools I've churned through over the last 18 months but these two feel sticky.
Zed has everything I need in a unified pane. File editor, terminal, agents, SSH remotes. And it's fast and intuitive
exe.dev is the first "dev container" I've ever *loved*. The remote sandbox means `dangerously-skip-permissions` is safe. Being on the internet with good private / shared / public access saves so much time.
I also use https://conductor.build/ and GitHub but this is starting to feel clunky compared hacking directly against online live reloading apps.
"online live reloading apps" => trying to get my head around this workflow. so the disk is shared across these? so do you still have the problem of say running a "main" version of an app, and it's weird experimental version of that same app? because they still have to live in different folders/worktrees? that's where I get stuck a little trying to enable things like this for others. right now, I've got people a system we can spin up N "vms". but it's not persistent storage if the vm goes away. it's whatever version exists in their GitHub branch. hopefully if they hack the vm app they commit and push back to the repo.
I'm glad to hear the SSH remote editing is working well.
A lot of the time I'm developing on a remote server using VSCode Remote-SSH. I mostly love it. But! It consumes a lot of memory. And not only that. At times it gets stuck in some infinite loop or such, and ends up consuming all memory on the machine, preventing all traffic. Takes a few minutes for the OS to finally kill it, so I can get back in. I'm pretty this is happening due to large collections of symlinks (the subprocess eating up the memory is rg). But also just JavaScript editing at times launches up a bunch of ts-servers consuming everything and more.
This is super scary, if I'm poking around on the prod server.
I'll have to check it out again. Last time I tried, the got integration didn't work when connecting to a remote SSH server, and ports couldn't be mapped at runtime.
Had to shut everything down, list the port, and then reconnect. A big pain when other tools just automatically figure out what needs to be forwarded, or just let you specify arbitrary ports at runtime.
Using Zed with ssh is an interesting idea. I spend a lot of time mosh/ssh to VPSs, then running 'emacs -nw' locally on the server. This is a great setup since I love Emacs, but I will give Zed/ssh a try. Thanks.
I really want to like Zed because they've clearly put so much work into it, but so far I've been sticking with Sublime. I have several large PHP projects that were started in the 2010-2020 era, and Zed will highlight and complain about all sorts of minor things that were standard PHP fare at the time: functions without return types, for example. My code (which works fine) looks like an ocean of red when I view it with Zed, and turning all those warnings off is not trivial.
For each kind of warning, I wish there was a button that said "don't warn me again about issues like this one in this project." Then I could keep the interesting warnings (like undeclared variable) and ditch the ridiculous ones.
Coming from Sublime, I'd never even heard of a Language Server when I first tried Zed. As I recall, disabling particular kinds of warnings required copy-pasting some pretty exotic incantations into my project config. All of it was poorly documented, and it felt like I was doing something nobody expected me to do. Instead, I should have been able to mouse over a particular warning and say "don't warn me again about things like this", at which point Zed should edit the project config for me.
that does sound like a pretty nice ui idea to add to code actions (command + .), it already lets you one-click add an ignore comment iirc so probably not too hard to wire a global per-project option
however, i think LSP or integrated linters/typecheckers have been standard fare in editors for a while now (zed does seem to have a lot more set up by default, but i like the sane defaults most of the time). The "correct" solution would be to configure whatever lsp zed is running for the project the way you want, and reap the benefits even outside of zed. for php the tools are listed here: https://zed.dev/docs/languages/php the main one seems to be Phpactor and you should be able to configure it globally or per project https://phpactor.readthedocs.io/en/master/usage/configuratio...
but i understand the frustration, sometimes i try to navigate an ancient python codebase and it really is a sea of red
Well, PHPStorm (and the other JetBrains IDEs) does it this way. You can disable a certain "inspection" globally, per project, per file, per method or just for one occurence - the last three work by inserting annotations into the code. Then again, PHPStorm costs money (not just if you want AI assistance), and is based on (drum roll) Java technology (although JetBrains don't advertise this fact a lot nowadays).
While this comment is overly general (some major editors ship without LSP support built in; many more do not have a sane configuration out-of-the-box), it is useful to learn about them and how your editor of choice integrates with them.
The landscape isn't generally intuitive, unfortunately, and while it's getting better, understanding the differences and interop places between LSP, Treesitter, DAP, your editor, and the underlying language-specific tooling can be a big, confusing time hog.
That said, and to be clear: LSP's been a huge boon for me. I used a minimal, kinda-broken configuration for a while with Python, then rebuilt the whole thing when I switched to Rust for work, and holy hell, this thing's awesome.
You are a craftsman, learn your tools. Could you imagine the equivalent from other professionals? A machinist saying, "Understanding the differences and interop places between the DRO, hand controls, and CNC controls for the lathe can be a big confusing time hog."
It takes a couple of hours, and it's a tool you use every single day. Learning how it works is the price of entry, not a mountain to overcome.
I love Sublime, but I don't want to pay to upgrade from 3 to whatever version it is now, Zed is everything I wanted Sublime to be. Honestly, I wanted VS Code but fully native, and I feel like that's what I'm getting from Zed.
I feel like some people will be put off by all the "AI" mentioned by Zed, but you're sleeping on a top tier editor where you can just ignore the AI stuff if you don't want it. It's very high quality, and probably the reason I wont be renewing next year for JetBrains, unless JetBrains does something impressive, I thought by now they'd have a more native feeling IDE that handles most / any language instead of so many separate ones.
VS Code has gotten so bloated over the years. The gold standard of ST has spoiled me with simpler editors. Zed is the first time I felt like someone finally built an editor that is modern and has a rich set of features.
> I love Sublime, but I don't want to pay to upgrade from 3 to whatever version it is now
I don't know what your financial situation is, but given that the upgrade is an $80 one off payment (a new license is $99), that it's a per-user license (not per-machine), and that there were 8 years between Sublime Text 3 (2013) and Sublime Text 4 (2021) (only major versions require a new license), I personally think it's very reasonably priced.
It is "one time" in the sense that it will never stop working, unlike a subscription model.
You are however limited to 3 years of updates, so if you want to keep up to date, it is $80 for 3 years. Which if fine for me, it is the one piece of software I used the most except for the browser and OS, I even use it to make money, $80 / 3 years is not much.
It is also the kind of software I like to support. It is... respectful in that it isn't a resource hog, runs fast, launches fast, and it doesn't try to be anything but a text editor. No ads, no subscription, no cloud, no AI, no slop, no dark patterns, no enshittification. Just an executable that does what it say it will do, and does it well. I wish it was open source, but it works well enough out of the box to not need it.
Agreed-- Sublime is asking $99 right now, which is quite reasonable for something that you're going to use for hours a day in your professional work. Somebody gave many years of their life to make that tool the best it could be, and as a well-paid professional, I feel it's more than fair. In other high-end professions (like the legal field), I've heard of law firms paying a lot more than $99 for certain software licenses.
That said, there are a lot of reasons why someone might be struggling with money. If I was the creator, I wouldn't object to someone using an unlicensed copy forever in that case.
I can't justify upgrading Sublime if I don't even find myself using ST3 I just don't see what 4 offers that would entice me, and compared to Zed, I get way more out of it.
There isn't any other than the occasional message when you save that tells you to buy the product. It's about as close to freeware as a paid product can get.
I do suggest people pay though, it's cheap for a one-time purchase. The only reason I've ever seen the message at all is because I spent months being too lazy to dig up the license key to send to my work email. (That should also say something about how little I was being bothered by the message too)
on paid 3, i get a popup every time i try to do anything telling me i must upgrade and pay again, so i've steadily just stopped using sublime. Didn't install it on the new computer
I don't like that it upgrades to ST4 without telling you, but there's a simple workaround if you want to continue using your ST3 license. Download the latest stable build of ST3 from their website:
I tried Zed last month but found that it uses high CPU usage even when idle (up to 50% of 1 core of my i7-7500U).
This is even higher CPU usage than my vscode causes.
Sublime does not do that; in fact it has 0% CPU usage when idle:
sudo strace -fyp "$(pidof sublime_text)"
shows that Sublime issues no syscalls when idle, as it should be.
(Note, you need to either unfocus it so that the caret stops flashing, or switch from fading caret to fixed / non-fading caret, otherwise it necessarily has to do syscalls to draw itself.)
Zed spams syscalls even when its screen is entirely still:
strace -fyp "$(pidof zed-editor)"
In fact Zed makes 800 syscalls per second when completely idle and unfocused.
Syscall spamming is one of the main reasons why computers get slow when many apps are running.
Good software does not do that; when idle, it should only consume RAM, not CPU.
Aside: Browsers, and Electron, seem to always syscall-spam no matter what, which is probably a key reason why people feel that all Electron apps bog down their computers. When your computer gets faster, the software just does more syscall loops per second, for unchanged misery.
Actually, I do like Kate, but Zed seems to give me the best of everything I want. It's like they know exactly what I want out of an editor, they provide way more than I need, but that is okay too.
I think I need to give Zed another look. A while back, it seemed like they’d shifted gears toward prioritizing AI, and I lost interest because I was looking for a more pure IDE with solid LSP support, good debugging tools, and so on.
Kate is REALLY underrated. The UI is a bit meh, but it makes up for it in terms of features. It is actually a fantastic document editor. Don't really use it for coding.
The AI stuff was a lot more prominent in an earlier version, but they tweaked it a bit. It's the same with Warp forcing a login at first.
Jetbrains is a heavyweight IDE, but I'm not sure if the weight is worth the features it offers anymore, at least for the things I work on.
VS Code is also an IDE, but it's a bit easier on resources depending on what plugins you use and what you allow them to do. I've had combinations of plugins that caused my whole system to freeze up with too much memory usage because it spawned several Node processes each taking up multiple GBs of memory :/.
I'm also sticking with Sublime for many years, and at this point it feels like it is some kind of old man stubbornness (like George R.R. Martin using WordStar 4.0 type thing). I don't know why its ergonomics for me have been just unbeatable. I gave others (VSCode and Zed) good weeks and months of configuring them to my liking and using them exlusively, and always returned to Sublime. All the AI stuff just runs on the side in the terminal (iTerm2 for me, but checking in on Ghostty sometimes too, waiting on them to figure out their minimal text brightness feature).
I love Zed, but I hear you. It's a very fast and capable editor with lots of IDE features, but it's lacking comfortable ways of tuning it for specific projects. (This is a problem with every general purpose, everything-to-everyone kind of IDE versus stack "native" IDEs that are geared toward the one true way of developing for particular target.) The configuration file structure is arcane, and it certainly not clear what the boundaries are between language feature configuration, LSPs, built-in and third-party code quality tools, etc.
I eat the cost of configuring it manually when I start up something new because it's just not that big of deal, even when you're like me, working across myriad languages and frameworks and organization with varying standards. It's not ideal, but it's not deal-breaker.
I do wish that there was a better way to definitively set it up a particular way and know that it is doing what you want it to do. I want something like presets/profiles. If I'm working with typescript, I want to be able to set it up to use a specific version of tsc, eslint, prettier; I also want to be able to create a different one with biome; I want it to work correctly whether I have my source in the project root or in a sub directory or in a monorepo tree.
Fairness to Zed: it is difficult to support all of these permutations, but I do think that they ought to be able to do something better to abstract these things and make the reusable.
The standard approach these days is to have all of those declared in a config file somewhere in your project. That way, other contributors (and the CI) can lint/format consistently.
Even if it's for solo projects, it's nice that you don't have to update them in lockstep. As in, you revisit an older repo, you don't get bombarded with squiggly lines from your latest user profile, instead you can upgrade it at your leisure.
1. I want to be able to readily duplicate that configuration for another similar project.
2. It's not always appropriate to co-locate those specific files within the project source itself, especially within a source repository. Notable cases are if we're working on different platforms with different binary paths, or if we're not standardized on a particular editor. I should be able to configure my editor without polluting the common source.
I was using JetBrains for more than a decade. Then I got into Python as well and so was juggling between WebStorm, PyCharm, CLion and Intellij Idea. Zed has replaced the first three completely. Put the appropriate config file in project root for whichever LSP/linter/tool is running, and most of these warnings disappear.
Writing C in Zed is a wonderful experience. The LSPs surface errors in an manner that is very easy to view and edit.
My main issues with Zed are:
- Word-wrap: I prefer on-demand, and I haven't been able to figure out which setting triggers that. Of if it is even possible.
- Support for Devanagari and other scripts: I use it as a markdown editor to proofread old texts and it is inadequate for that purpose. Kate/Featherpad offers a superior experience for this, including the ability to zoom to see those visually difficult to parse conjunct consonants.
The UI is a bit different for each and I got used to the differences I guess. I have a lot of projects and I pick one IDE for each and then do not deviate from it.
You should be able to just turn off the language server. Go to the lightning bolt icon in the bottom bar, "Stop all servers" or just the PHP one lighting up your source code.
Had the same experience with a rails project, it injected an LSP+linter we don't use in our project and it has really annoying to figure out how to disable it in a settings. Having to debug an editor's settings JSON the first time you use it is not a good UX, it should be optional to enable it instead of assuming we want aggressive on-save linting/autoformatting (that the repo doesn't even have configuration files).
We use intelphense with vscode and it's only mildly red (zf1 mutant project). It also understands stubs from phpstorm. Default lsp for Zed is phpactor and it was just an inferior experience compared to intelephense (free) in vs code last time I tried. Now there's even a guide for adding intelephense to zed, but I'm yet to try it out.
> I'm sure you can configure whatever language server PHP is using to disable specific warnings, etc
You may be able to do this by editing a language server-specific config file in whatever arcane syntax they decided to offer. But there isn't any editor support for configuring languages servers, so it's a bit of a lift for a newcomer who just wants to turn off some warnings
Last time I have updated (half a year ago) it deleted tabs. And since that time I haven’t been brave enough to update it again as I have too many tabs unsaved :)
I have not lost any Sublime tab in 15 years (I have tabs this old).
Sublime also saves a backup of its state files next to the state files in your home dir, so you can restore in case anything ever goes wrong (e.g. bugs in the new version).
The .sublime_session state files are JSON, easy to read for a human.
> spending an hour making up names for random junk files
That is completely unnecessary. You can just backup the '.sublime_session' file that contains all that before an upgrade if you are worried. Sublime already stores all its state in 1 file; manually spreading that across N files seems unfun busywork. A quick web search reveals that by the way.
(I perpetually have 40 Sublime windows open, each one with tens to hundreds of tabs. My 'Auto Save Session.sublime_session' is 70 MB.)
If you're using zed, couldn't you use AI to fix something like that? Those copy and paste type changes over a code base is something AI assistants are really good at.
I could! I'd probably have to take it piece by piece, rather than telling an AI to edit hundreds of files in one epic session and hoping for the best. Even just reviewing a commit that large feels like it would be a bad use of time. Also, giving every variable a type (or using "mixed" everywhere), and giving every function a return type (more "mixed" or "void") would just make the code more verbose without any justification that I can see.
With Zed, I feel like I'm being dragged into a modern style guide that I never agreed to. It would be nicer if I could make it my own by turning off those parts that I disagree with and keeping the rest. I know this is technically possible, but they've certainly not made it easy.
From what I can gather from a cursory glance at the docs, zed uses intelephense and its diagnostics can be disabled. The whole lsp can be disabled. At the risk of sounding like I'm saying "you're holding it wrong", I have to say that this is an OP problem and not a Zed problem. These are sensible defaults that work for almost everyone, in my opinion.
This. I tried Zed for an entire month, but this "search thing" drove me nuts. It is also slow. If you work in a large project search is absolutely essential. Too bad.. Back to Visual Studio Code.
Whereas I'm not a great fan of modals for anything where I'd like to refer back to what I'm working on. I guess I'd just prefer some tabs to open as a split by default and close with esc, maybe call them something like "ephemeral tabs"? Basically, steal some ideas from emacs.
I love the search in zed. If it was up to me it would open a new tab on every search rather than reusing the same tab, so that I didn't have to redo past searches.
The multibuffer result is so nice for "hands-on" search and replace.
> Sometimes I just want to have a quick glance at some code and close the search using escape.
How else are you going to have “a quick glance at code” *across* project files without using a new view for that? It sounds like you’re describing something impossible.
Zed’s across files search solves this in a similar way as other tools. Except that in zed you can also edit the code where your search results show up. Zed also has within file search.
Look at how Jetbrains IDEs do it. It's a solved UX problem, as far as I'm concerned.
Jetbrains opens up a lightweight floating panel which can also be docked. So you can choose how to view the results. Like Zed, the results view is live editable, even when searching across multiple files.
The floating panel mode is good because you can do a quick search, look at it, and just whisk it away with one key. Opening results as a tab isn't terrible, but mixes one UI (search, very ephemeral) with another (editing, less ephemeral). (Zed also has this thing where search results also show in the right-hand side panel, which I've always found confusing.)
Another thing Jetbrains does better here is to remember your search settings. Your last search is always the default, whereas Zed forgets it every time. Jetbrains also has really nice file scoping via a dropdown, so it's very quick to search all non-test files, for example.
Zed keeps stealing great features from Jetbrains, so I'm sure it's just a matter of time before this gets better.
yeah its quite silly they decided to mess around with this universally standard behaviour. The search is the reason why i always end up going back to other vs code based IDEs for real work. I open zed for perf reasons and something quick.
Also now they've introduced this "agent first" layout which i cannot undo. They're strength is in perf, idk why try to reinvent the wheel w.r.t DX.
I switched to Zed for the first time over the weekend on a somewhat complex mixed C/rust project. I was able to set the whole thing up in about an hour to my liking and it is a really nice IDE, coming from bloated VS Code. I think they have a really nice AI-assisted coding setup, I think that the "file review pane, in line with IDE" UX is correct for AI tools. I'm skeptical that terminal or "agent" based AI programming is viable long-term.
I'd love to see the Alacritty terminal backend swapped out with libghostty (or more likely libghostty-rs). The work Mitchell is doing with Ghostty and the approach Zed has taken seem super aligned.
And Mitchell definitely seems to want to make Alacritty an easy target for conversion, he was just talking about being open to help support Warp with it: https://x.com/mitchellh/status/2049159764261925005
Alacritty is already pretty performant (relative to a lot of the other terminal emulators), but my read is Ghostty has been going hard over performance/standards/protocols (like Kitty).
Ligatures are a renderer issue, so using alacritty as a lib wouldn't have this issue (it does demonstrate their hardline stance). Another example that would translate is how long it took them to support disambiguation of key combinations: https://github.com/alacritty/alacritty/issues/6378 (2019-2023). Of course, the maintainers are free to do whatever they want with the project - but such things do make alacritty-as-a-lib an exceptionally bad choice for situations where you want things to just work.
I quite like Zed, I've consistently driven it for months at a time. But there are two things that add enough friction that over that month or so I end up bailing back to one of my other editors (vscode/neovim). The search experience being a new tab with no sidebar option and the diff viewer being a multibuffer view with no option to see the entire contents of a file you are diffing.
That being said, I love the software and will continue to check back on it with the hopes that it sticks one day. Congrats on the 1.0!!
The only thing that bothers me about Zed is the theme. It's so bland it actually gives me reading difficulties. I'd be surprised if some of the color combinations don't pose an accessibility issue. Grey text on grey background is quite the choice.
I do agree that Zed's default themes aren't great. They look too 'plain' for my taste. Bit more contrast can't hurt either.
BUT: It's very easy to just choose a different theme and there are plenty to choose from by now. It's even possible to make your own theme and they even have a first-party theme editor (https://zed.dev/theme-builder) which works great. They should maybe include some descriptions for each color instead of just the name but that's the only negative thing I can say right now.
I'd even say that it's easier to theme Zed than VSCode because there are fewer variables.
As far as I can tell you can theme nearly everything in the app. I've got custom colors for diffs and some syntax, and my base theme is ripped from Monokai.
I found it funny when an American customer support person I was talking to over the phone had no idea what "zed" meant. I was reciting some code and they asked, "what is zed"? I said, "uh, the last letter of the alphabet".
Congrats to the Zed team. I love that there's such a powerful and blazingly fast editor out there for us.
While it's been hard to use zed when the pull of claude/chatgpt desktop and terminal apps feel more full featured and take up more of the share of daily work, I continue to use Zed any time I do need to explore a codebase or review a markdown plan from an agent.
I hope that there can be improvements to the markdown preview because at least in my case, I'm using that feature a LOT these days.
I've been using the editor since the early days and have always been a fan of its visual look and feel, so I was pretty happy to see its UI library open sourced.
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.
I took a look at gpui-component a while ago when assessing GPUI for a project I was working on. IANAL but was dissuaded because it's almost certainly not compliant with the Zed license--gpui-component "borrows" gpui code patterns lifted straight from the main zed repo, which therefore must be AGPL/GPL (unlike the gpui-only which is Apache IIRC). Caveat emptor (caveat user?).
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.
Over the years I’ve tried plenty of fast, "snappy" code editors, but always found myself returning to Sublime.
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.
- 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
Shortcuts still don't work on non-Latin keyboard layouts on Linux. For people who use languages with non-Latin writing systems, this is a show-stopper.
(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.)
Yes that was the primary issue I had when testing Zed in the past. Keyboard layout not working properly, shortcuts being unusable or un-remappable. Sad to see it's still the case for 1.0
Just tried it out and it works great and is really fast! It's a breath of fresh air compared to VS Code. Lots of other editors are fast, but this seems feature complete as well as fast.
Migrating from VS Code was also super simple and integrations with AI assistant seem to just work.
I can definitely appreciate the engineering work that went into it. Loving it so far! Thanks!
Congratz to the team. I really like zed and started using it quite early, loved the text threads and was using them a lot as I don't think llms fit in a box of only agents, they were a nice way to manage conversations, work through them, edit responses to lead the agent better, copy-paste full text, sad to see them go (text threads).
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?
Zed is a durable piece of software, rather than the current trend of cheap disposable software. Regardless of whether humans or agents use a tool like this, durability is a benefit for both.
Zed got me off of Emacs for the most part, which is about the highest praise I can offer. I've never used an editor that 1. closely mapped to how I think about code, and 2. is easily extensible enough that it's broadly supported with a gazillion third-party packets, and 3. is lightning fast. Emacs does 1 and 2. VSCode excels at 2. Sublime is good for 2 and 3, and Vim, and BBEdit 2 too. Zed's the only one I've ever tried that nailed all 3, plus excellent out of the box defaults.
I think it's fantastic. I still keep my Emacs chops up because it's 50 years old and I know it'll be here another 50 years from now, but Zed's open on my desktop more than any other app.
I am posting this because I want to like and use Zed because it's so fast and responsive (Especially on my tablet, which JB turns into a space heater), and has neat functionality like being able to switch to whatever set of hotkeys you use. And I greatly respect the small binary/download size and fast install. From experimenting in Python and rust:
- 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 suspect you may be operating in "Restricted mode," aka it doesn't know if it can trust the directory. In that mode, the main tools like Rust analyzer are quite restricted. All of your complaints should be resolved once Rust Analyzer/basedpyrite are up and running.
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.
Did you market the project as trusted? Récent update (à few month) requises the trust to reenable the analyses feature
It took me a while to understand lol
At Somme point I though that the parker were broken in my codebase xD
I thought Zed was using tree-sitter: https://zed.dev/blog/syntax-aware-editing? Shouldn't it address all of these issues? Does tree-sitter not understand Python (basically the most popular language out there) and Rust "beyond superficial syntax"? I thought its whole point was that it understands everything about a language's syntax because it builds a concrete syntax tree?
TreeSitter is an amazing tool but is (purposefully) quite limited compared to an IDE--it doesn't even cross file boundaries, so go to definition is a non-starter. Zed uses LSPs like Rust Analyzer to fill that role.
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?
It sounds like LSP isn’t working for you for some reason. Have you installed the extensions for those languages? These things are definitely supported via LSP
Congrats to the team! Fantastic editor, it really brought me joy after years of VSCode/Cursor. I love how it's crafted, you can feel the soul behind each decision.
What I love:
- the speed, of course
- the high consistency between features, tabs, and panes, while Cursor looks like a crumbly assemblage of plugins. At first I was worried about the lack of plugins, but Zed made me realize you don't need many
- the visual elegance: the padding, the proportions... It reminds me of the best of JetBrains (though I haven't used their products in years). It feels closer to the IDEs I used in the past (for Java or C#), in the sense that it seems to encompass everything you need, without the heaviness.
- the numerous keyboard shortcuts, often displayed visibly, which makes them easier to remember
- the transparency of their roadmap and their velocity: now that we finally have the vertical git diff as promised, my doubts are gone!
Truly one of my favorite pieces of dev software in 15 years.
Have they made a way to move those tiny icons in the lower left (aka "activity bar") to larger icons on the upper left like VsCode? As it stands, I can barely see them on my 4K screen and selecting them with a mouse cursor is like a pixel hunting contest. No go for me until they offer a way to change that. Beyond that it seems like a decent editor, but if I can't switch modes back and forth, that is a deal breaker.
UPDATE: Looks like they haven't yet, bummer, and doesn't seem to have much traction either. They redirect to discord, but AFAIK that doesn't have a way to make a feature request directly?
Just opened my current TS/TSX project and everything is working as expected.
Performance is fantastic. I used Sublime for a decade and always missed its native performance after switching to VSCode due to needing first class Svelte, Vue, or Astro support.
The only thing that bothered me is that it enabled the Tailwind LSP even though I'm not using TW and I couldn't stop it. Had to disable that LSP completely in the settings:
I use it for Elixir and ansible stuff. I may eventually be open to using it instead of PyCharm for python and/or Nova for C.
If there's one area I still feel that Zed lets me down is in pane management. Maybe I need to just learn more key shortcuts. But I spend a bit of time "managing" the secondary panes and having to switch back and forth between outline, files, search. I'm not sure what the solution is. Just wish the secondary panes weren't a scarce resource that had to be mux'ed betwixt.
I really like(d) the agent integration, but we're currently experimenting with Claude Code Desktop, and I really miss not having the tight integration. My guess is that I'm going to switch back to using the Pro subsidized version. I was getting by with ~$40-$50 a month. Now the company is paying $125 for Claude Team premium seat, and it's a lesser experience.
Yes - the Claude ACP is nice, as I like to have a view of the code while chatting. Using just the terminal for dense/long running work feels like a handicap imo. It would be great if it supported more commands though!
I feel like it doesn't support some of the commands that manage Claude itself so think `/mcp` `/plugins` etc. Most of the common ones are configured to work though from what I've seen but the ones that do more configuration of Claude seem to be blocked.
That is likely a drawback to their ACP wrapper scheme, it helps exposes IDE functionality but they have to keep up with Claude Code functionality in the other direction. VSCode's Claude code plugin is just like using the CLI.
It works 'well' with Claude Code, but you're going to be missing a lot of features. There's no display for sub-agents/teams, no ability to clear the context without starting a whole new thread window, no ability to view the current context or usage, etc. There's also no built-in ability to view or change the model's current effort level, which I think is a current limitation with the SDK.
I tried it for a bit and it was definitely usable and I got a few features built out, but I eventually moved back to using CC in the terminal. I'm sure they're working on it, though.
Does "local Ollama" or OpenRouter count? I fell into using Zed because there was zero sign-up friction when trying to set up a connection to a local Ollama LLM. Literally "drop-down, select the model you want"
Once I got that running on my machine it was also easy (literally a drop-down+ API key) to switch and explore using models on OpenRouter.
I used to run Claude code on terminal on zed. But the memory usage would balloon eating all my ram 128gb and have to kill the session every other day. I moved back to vscode. I don’t know if they addressed it
It lacks a lot of features, but IMO feels less "busy" than the terminal version, which I like.
Very recently Zed also gained support for parallel sessions, which is nice.
In general it's very obvious that a lot of effort goes into improving it, and it gets better with every release.
On MacOS I never really felt there was a noticeable performance difference to using Zed vs VSCode. I still like the idea of it being Rust/GPU based but just like those GPU optimized terminals (Kitty, Alacritty, etc) the difference is usually pretty marginal for day to day stuff.
The only time VSCode gets slow is if you use a bunch of poorly written plugins, which hasn't been an issue for me in years. It's just like Chrome, chrome is extremely fast as a base but you can mess it up by not being careful with what you add to it.
I still plan to revisit Zed in another year or so once it progresses further, as I find it's still behind Cursor in many ways.
I've personally found it uses significantly less memory on large projects than VSCode. VSCode has historically been nigh-unusable for me on Linux, it gets incredibly sluggish.
If the idea of hiding extra Markdown elements or making it more WYSIWYG appeals to you, maybe we can put more eyes on some kind of feature request. I've seeing several comments come at this from different angles: ?id=47950471 ?id=47950748
Thank you, Zed team, for creating Zed. It’s clearly a labor of love, and I really want Zed to work for me. It seems like a quality project, it’s fast, and the base editor is easy to use.
I gave it weeks though, and the surrounding UI just never clicked for me. The various AI panels are confusing, the global search is awkward, and something about the type rendering just didn’t ever look right (maybe I’m hallucinating this?). I use VS Code only grudgingly, but I do think its ergonomics are actually pretty reasonable. I came from Sublime before that. I’ll keep trying Zed, and I hope you succeed.
I like Zed but as a user of Scala it is not open-enough of a platform to be useful beyond small projects.
e.g. its "run" gutter icons rely on context free grammar queries, but of course Scala allows to define main methods via inheritance from a class. Zed's extension api should let the extension report entry points via whatever internal mechanism it needs.
This also goes for the various testing libraries in Scala that because only tree-sitter queries are supported therefore need a custom pattern match for each library as they have their own mechanisms, rather than letting the extension provide its own test harness (easily handled by build tools automatically) - Zed should provide something similar to VS Code's Test Explorer and Testing API interface.
Also extensions can't add new UI, so you are stuck fitting to the recipe Zed team provides for you to plug into, and often enough this is not satisfactory.
> Also extensions can't add new UI, so you are stuck fitting to the recipe Zed team provides for you to plug into, and often enough this is not satisfactory.
Congrats to the Zed team! I've been using a combination of Zed + Gram [1] (which I predict may lag behind this 1.0 release in features/fixes). They are both nice, fast editors. However, I switched to Sublime Text 4 again recently and... I'm surprised to see how much clunkier Zed feels than Sublime. I can't put my finger on it, but Sublime, although lacking in features, feels considerably more polished and performant.
It's all in the details, eg. in sublime if you use the goto panel and highlight a file it will immediately show a preview, in zed you have to click on it, so you lose the snappy feeling.
Does a native UI experience have no value these days? I mean--amazing achievement building an alternate GPU-accelerated UI framework from scratch, and I do love the responsiveness, but this leaves you with a non-native app that doesn't follow OS conventions and will not get appearance and behavior updates going forward without a lot of additional effort.
Electron has basically killed this practice sadly. Which Microsoft modern app follows Windows native UI these days? Teams? Settings? Office? All dramatically different.
Unfortunately the reality nowadays seems to be that besides the dated QT, there are no good or popular cross-platform UI libraries for these use cases. It's bold that they built their own.
Zed is a great editor. I think they have done an excellent job and hope they are successful. That said, I do not feel compelled to switch to it. For a pure text editing experience, I've always felt most comfortable with Geany. When I want to extend the editor, I reach for Emacs. AFAICT, extending Zed means using Rust, and that's never going to happen.
I was an early adopter of Zed (private alpha mid-2022) and it's crazy how far they have come in a relatively short space of time. Sadly I stopped using Zed when the push of AI features started to happen (same with Warp terminal) and have since used Gram more. I may have to give Zed another run as I believe you can turn all the AI features off now?
I have been following zed for quite some time and I use it daily alongside nvim (haven’t yet tried zed vim mode, planning to). I really like the performance and control zed provides, as well as the reduced UI clutter compared to alternatives. The collaborator functionality is not talked enough by the community but I believe it’s an ambitious idea worth pursuing. Wishing the team all the best.
Ever since agents came out I had been lost trying to figure out what I should replace my heavy IntelliJ with. I switched fully over to Zed once they shipped the git graph in stable [0] and couldn't be happier. Congrats on 1.0!
Massive congratulations to the team and the community. Thanks for the solid product. It's fast and native on Linux with Wayland. I don't use any of the AI stuff, though, so I'm glad there is a switch to disable it.
I would really love to see an iOS remote control app for zed. I am using it on throw away microvms via ssh. Would love to have the zed server running there, control agents via phone and occasionally use my Mac to connect to the server and use the desktop app as normal for review and hand coding
For better or worse, my current workflow is to do most things through WSL on Windows 11. VSCode supports running the editor natively on Windows, but then having an agent or something inside WSL that lets me remote control what's going on there. Does Zed do anything similar?
Currently I'm just access the workspace in Zed via Windows Explorer, but I wonder if that's going to kneecap some of the integrations.
EDIT: nm, Zed supports exactly the same kind of remote editor session, via hamburger -> File -> Open Remote
Congratulations to the Zed team! What a great project.
The newer layout that came along with the parallel agents feature is very nice; even without using parallel agents regularly, this is a breath of fresh air.
Good for them, but I wish they'd hurry up and catch up on some of the big missing features. Really hoping they'll accept my PR to add the missing call hierarchy feature before the GitHub issue turns 2 years old :)
I really like Zed but it's most recent big changes to Git integration and Parallel Agents has forced me to disable both of those features as the way they work just didn't suit me and my workflow
I’ve tried it multiple times, but the performance issues on different Macs are too significant to ignore. I appreciate responsive UI, but I also prioritize sufficient battery life.
Congrats to the Zed team! I really like your editor and it works surprisingly well, althought there are a few rough edges still with the python experience.
The debugger in Python FastAPI and mainly Django is not working as expected. Hopefully soon will be fixed.
Feature-wise, Zed is still far from VS Code, but for me, the change has been worth it for the performance increase alone. I'm really happy with Zed, and I think it has a bright future ahead. Congratulations on the 1.0 release!
I hate to dismiss Zed for such a stupid reason, but I have tried to use Zed seriously many times and every time I stop because I can't get over the theme. I've tried basically every single theme I can find that is reasonably popular and they are all equally poor. VSCode and Cursor have vastly better default themes.
Does anyone have any suggestions here? I would love to use Zed more.
What's your favorite theme, maybe we can point you to something close? If you have any special needs or usability issues (colorblindness is common), that's probably relevant too.
Sort of a recurring theme, I find. They have 600+ issues that have been open for over a year, was hoping they'd drive down the backlog a bit before declaring victory
Go look at any large project, they have 500+/1000+ issues and many are ancient. Chrome, Firefox, you name it. I wouldn't be surprised if many issues have even been solved or need new reproduction steps but there's a difficulty to triaging all the issues as well.
I tried zed sometime ago, and the limiting factor was devcontainer support. It looks like they’ve made some progress there https://zed.dev/docs/dev-containers
Congrats guys! I've been using zed since a few months ago, I would consider myself a "light" user but I do enjoy the experience. My only sour point would be the not so smooth integration with claude code. But I've learmt to live with it for now
How is their emacs keymap support? I tried VSCode for a while but switched back to emacs because it was so slow and the keymap was not very good. I've been intending to try Zed but emacs is working well enough so the motivation isn't really there yet..
I've got emacs keybinds in my muscle memory and Zed works well for me, although there's no kill ring and the macro system is nothing like emacs. The former will be added at some point (there's an open PR), but I do not expect the latter will ever be comparable.
Well done. I've been using Zed pretty much full-time for about 6 months now, and am happy with the experience.
There are still a few things PyCharm does better (debugging, for one), but overall Zed is very good and I haven't used PyCharm in months.
I still use CC in the terminal instead of inside Zed, and lazygit for reviewing git changes and other git actions (though Zed now does a decent job of the basics).
Here is a top-level comment for people who want to post the things they wish Zed had.
Request: please be sincere if you claim "the one thing that keeps me from using Zed is X" ... because let's face it, there is probably more than one thing. Editor ecosystems are complex beasts, and it is ok if people are slow to switch, but the "one thing" claims are rarely credible to me. Anyhow, such comments are rarely consistent with how human nature works. People find rationalizations, and that's fine. It would just be nice if people were a little more self-aware. Changing editors is harder for some people more than others.
My suggestion: if you want to make Zed better for your use case, please smart by explaining who you are as a developer, what you've used, what your expectations are. And be intellectually honest about the last time you've made a big change to your development workflow. End soapbox.
I use two text manipulation plugins in sublime text all the time. I did not manage to have the functionality in zed, which made be renounce to use it:
- Evaluate, a plugin that evaluates the selections as python expressions and replaces them by their respective results. I added "iota" as a variable in the evaluation context, that gives me the current selection index (like iota in go). With that, so many math or text manipulations can be done in bulk.
- Alignment, to align all my cursor into a vertical column by adding spaces.
what do i actually need from a text editor that i dont already have? Sublime's killer feature was column editing, and vscode's was kinda typescript and kinda language servers.
... and why do i want an actual text editor as the primary view, vs a side view to agent TUI? from what Ive experienced, the editor is now a secondary interface to the text, rather than the primary one
if i am picking up a new editor, i think i want it to be focused on how to better understand llm outputs, and how to give really structured feedback without having to write a ton of imprecise text.
how does zed make it easy to have agents build several proposals for a solution, and help me choose which one is actually the best?
I wish Zed had built-in APIs for extension developers to allow for more customizable text transformations. In particular, I want to write tools that have more control over what a buffer displays. Imagine a Markdown extension that gives Zed something close to the WYSIWG experience of Obsidian. To make this happen, I think something like a customizable presentation layer to transform the buffer's contents and adjust cursor movement would be a great start. Vim has a 'conceal' feature that could serve as an inspiration or reference point. [1]
I have no affiliation with Zed, though I have applied to work there, so I'm hardly neutral. I've been an enthusiastic user for probably two years. I don't expect perfect alignment with what I want, and sometimes the team doesn't respond how I would like with particular issues. But man, in a pretty suboptimal world right now, Zed is an amazing thing to have: open source, regular updates, extensions, nice settings. In the past I've used BBEdit, Eclipse, TextEdit, Sublime, Emacs, VS Code, Jetbrains, Helix. Zed is my favorite by far, probably because of the latency. It is an intangible feeling that just clicked immediately for me.
Personally, as a mostly independent developer/researcher, I go through bursts of re-evaluating my tools. To give some context about my newer tools over the last few years: Ghostty, Nushell, Podman, Nix, Mochi, Monodraw, Swish (window manager for macOS), Base (macOS SQLite editor by Menial), LM Studio, (probably obviously) Claude Code. So for a "seasoned" developer, I'm probably more open to new tools than most? Oh, totally off-topic but I think some of the lesser appreciated new open source tools / formats / conventions are: KDL (https://kdl.dev), Typst, and (evaluating) Djot, Cocogitto (Conventional Commits, took me long enough).
Zed is a very polished and nice product. I tried hard to use it, especially when I decided to migrate away from Emacs. But NeoVim gives me everything I was looking for in Zed: Speed, a polished UI, quick startup, not overloaded. So between Zed and NeoVim I decided for the latter. I use Neovide in GUI and neovim in terminal. I don’t use AI alongside nvim, but claude code helps me configure my config file in lua. So my neovim has a 10k lines config spread of several files. It is my simple text editor with super fast movements, and it can become a full blown programmable interface for my Obsidian, for my journal writing, for coding, writing documentation. It can be as complex as I need it to be. And it’s super fast.
Looking at Zed (and Brave in another thread) I'm really firming up this idea that the "big funded private company model" for essential tech software is just most often idea. They don't know how to add features without also adding bloat and BS.
This is why I say Docker is the only real "success" story here. And note, I mean a success story for the users; Docker tries real hard to enshittify and fails, and that's good.
The only unusual thing is that I use ruby as primary glue language to everything, so in a way that editor (no longer maintained, similar to Linus' editor) is just a wrapper over ruby as such, and functionality in these scripts.
I have also found that it is not the editor that slows me down, but the need to have to think. This is also one reason why I try to make the specification as useful as possible. For instance, in one project that I use to compile everything from source, I use a ton of simple, mostly smallish .yml files that describe everything - allowed keys, allowed values, settings that are mostly just a pointer to where to fetch the source, how, how to compile it then and so forth. The ruby code then is mostly just a glue over that data. And that approach, while very simple, works quite well. Users can also modify settings, by modifying the .yml file or via commandline flags. And if need be, I could also use and populate a SQL database with that data (but for the most part, yaml actually suffices; I don't understand why people are so upset about yaml, and then only point at use cases where folks use mega-nested yaml files. These guys don't understand why simplicity is a benefit; admittedly yaml is not a perfect format either, I notice this when I have a long .yml file and then some forgotten ":" or "," due to manual copy/paste error, then it takes me a few seconds to notice what's wrong).
> "These guys don't understand why simplicity is a benefit"
I'm not really criticizing, clearly your system works for you. Ironically, as I've been using AI more, I've been rolling more systems that work for me instead of relying on existing ones. It's very freeing.
I'd love to try Zed out but I'm locked out unless they deliver a build without any AI integration, or deliver the build tools so that I can build my own editor on their foundation.
Either is fine by me, but I have zero interest until one of those things happen.
They have a single switch that will remove all AI features from the interface. Why do you need more than that? This is not a rhetorical question. I genuinely don't understand it — if you can get all of those features completely out of sight, deactivated, with no trace of them left except that one switch, why is that not enough? Is it as though any kind of AI integration like contaminates the purity of the code or something?
I need more than that because I have no guarantee that its true. I need the source. Or I at least need them to provide a build that they promise doesn't have that stuff in it at all, so that if any analysis was done on a decompilation, there would be some level of certainty that they were telling the truth. Anything that leaves any of it in complicates that effort and makes the certainty that less certain.
You still haven't explained literally anything. Yeah, okay, if there's a switch, you can't be sure that every single AI related code path is fully disabled.
But if you flip the switch and there isn't any AI integration visible in the interface anymore to bother you, why does it matter whether the code is there or not, or technically active or not? Raw integration points and settings windows don't send data literally anywhere at all until you explicitly configure an API key and a URL or sign in to an AI provider or whatever. It'd have nowhere to go, and AI inference costs money. It's just local code providing a set of integrations. Where is the need for this insane level of paranoia?
I've only tried Zed like a year ago, and personally have no need for an editor I cannot run in the terminal, but couldn't you just like turn off those features and/or not use those features?
As mentioned, I don't know how much in the way they get, if you don't use them, do they get in the way or something of "normal" usage?
It's mostly a trust thing. You're asking why I don't trust that if I "turn it off" it will be off. So the answer to that is: every US company I've ever dealt with (eventually, in some cases). I don't want to trust you. I don't want you to trust me. I want to provide you with pure transparency, and I want you to provide me with that. And, if they did that, I would trust them more. Maybe even enough to install something that they swear turns off, if I tell it to (and won't ever, even accidentally, even across sessions/devices/locations/etc). But without that transparency, I don't trust them any more than I trust facebook or google, and I consider any prompting to "just trust them, bro" as simp shit. you trust them. I'm good.
(do you comment this same type of thing on github, microsoft, apple, etc. posts? all of these comments seem absolutely tame compared to the vitriol in those threads. most top comments here are supportive. most of the negative ones are constructive.)
The Zed team seem to have really learned their lesson on performance from the Atom days, because it's very performant. @nathansobo, @maxbrunsfeld, @as-cii and the team, congrats!
My daily driver is Zed developing on SSH remote servers on exe.dev.
It's crazy to think of all the dev tools I've churned through over the last 18 months but these two feel sticky.
Zed has everything I need in a unified pane. File editor, terminal, agents, SSH remotes. And it's fast and intuitive
exe.dev is the first "dev container" I've ever *loved*. The remote sandbox means `dangerously-skip-permissions` is safe. Being on the internet with good private / shared / public access saves so much time.
I also use https://conductor.build/ and GitHub but this is starting to feel clunky compared hacking directly against online live reloading apps.
A lot of the time I'm developing on a remote server using VSCode Remote-SSH. I mostly love it. But! It consumes a lot of memory. And not only that. At times it gets stuck in some infinite loop or such, and ends up consuming all memory on the machine, preventing all traffic. Takes a few minutes for the OS to finally kill it, so I can get back in. I'm pretty this is happening due to large collections of symlinks (the subprocess eating up the memory is rg). But also just JavaScript editing at times launches up a bunch of ts-servers consuming everything and more.
This is super scary, if I'm poking around on the prod server.
Looking for alternatives. Zed is on my list.
https://github.com/soates/Auto-Import/issues/127
Had to shut everything down, list the port, and then reconnect. A big pain when other tools just automatically figure out what needs to be forwarded, or just let you specify arbitrary ports at runtime.
For each kind of warning, I wish there was a button that said "don't warn me again about issues like this one in this project." Then I could keep the interesting warnings (like undeclared variable) and ditch the ridiculous ones.
Isn't it just the default configuration of whatever LSP zed defaults to for PHP?
So you should be able to either configure the LSP to avoid that or disable the LSP server entirely.
however, i think LSP or integrated linters/typecheckers have been standard fare in editors for a while now (zed does seem to have a lot more set up by default, but i like the sane defaults most of the time). The "correct" solution would be to configure whatever lsp zed is running for the project the way you want, and reap the benefits even outside of zed. for php the tools are listed here: https://zed.dev/docs/languages/php the main one seems to be Phpactor and you should be able to configure it globally or per project https://phpactor.readthedocs.io/en/master/usage/configuratio...
but i understand the frustration, sometimes i try to navigate an ancient python codebase and it really is a sea of red
The landscape isn't generally intuitive, unfortunately, and while it's getting better, understanding the differences and interop places between LSP, Treesitter, DAP, your editor, and the underlying language-specific tooling can be a big, confusing time hog.
That said, and to be clear: LSP's been a huge boon for me. I used a minimal, kinda-broken configuration for a while with Python, then rebuilt the whole thing when I switched to Rust for work, and holy hell, this thing's awesome.
You are a craftsman, learn your tools. Could you imagine the equivalent from other professionals? A machinist saying, "Understanding the differences and interop places between the DRO, hand controls, and CNC controls for the lathe can be a big confusing time hog."
It takes a couple of hours, and it's a tool you use every single day. Learning how it works is the price of entry, not a mountain to overcome.
[1]: https://code.claude.com/docs/en/plugins-reference#lsp-server...
Edit for clarity: I want to fully switch to Zed, I really like it and their vision for the editor. PHP issues are a hurdle, not a turnoff to me.
I feel like some people will be put off by all the "AI" mentioned by Zed, but you're sleeping on a top tier editor where you can just ignore the AI stuff if you don't want it. It's very high quality, and probably the reason I wont be renewing next year for JetBrains, unless JetBrains does something impressive, I thought by now they'd have a more native feeling IDE that handles most / any language instead of so many separate ones.
VS Code has gotten so bloated over the years. The gold standard of ST has spoiled me with simpler editors. Zed is the first time I felt like someone finally built an editor that is modern and has a rich set of features.
I don't know what your financial situation is, but given that the upgrade is an $80 one off payment (a new license is $99), that it's a per-user license (not per-machine), and that there were 8 years between Sublime Text 3 (2013) and Sublime Text 4 (2021) (only major versions require a new license), I personally think it's very reasonably priced.
You are however limited to 3 years of updates, so if you want to keep up to date, it is $80 for 3 years. Which if fine for me, it is the one piece of software I used the most except for the browser and OS, I even use it to make money, $80 / 3 years is not much.
It is also the kind of software I like to support. It is... respectful in that it isn't a resource hog, runs fast, launches fast, and it doesn't try to be anything but a text editor. No ads, no subscription, no cloud, no AI, no slop, no dark patterns, no enshittification. Just an executable that does what it say it will do, and does it well. I wish it was open source, but it works well enough out of the box to not need it.
That said, there are a lot of reasons why someone might be struggling with money. If I was the creator, I wouldn't object to someone using an unlicensed copy forever in that case.
I do suggest people pay though, it's cheap for a one-time purchase. The only reason I've ever seen the message at all is because I spent months being too lazy to dig up the license key to send to my work email. (That should also say something about how little I was being bothered by the message too)
https://www.sublimetext.com/3
And then add
to your user settings.This is even higher CPU usage than my vscode causes.
Sublime does not do that; in fact it has 0% CPU usage when idle:
shows that Sublime issues no syscalls when idle, as it should be.(Note, you need to either unfocus it so that the caret stops flashing, or switch from fading caret to fixed / non-fading caret, otherwise it necessarily has to do syscalls to draw itself.)
Zed spams syscalls even when its screen is entirely still:
In fact Zed makes 800 syscalls per second when completely idle and unfocused.Good software does not do that; when idle, it should only consume RAM, not CPU.
Aside: Browsers, and Electron, seem to always syscall-spam no matter what, which is probably a key reason why people feel that all Electron apps bog down their computers. When your computer gets faster, the software just does more syscall loops per second, for unchanged misery.
https://github.com/kde/kate
Jetbrains is a heavyweight IDE, but I'm not sure if the weight is worth the features it offers anymore, at least for the things I work on.
VS Code is also an IDE, but it's a bit easier on resources depending on what plugins you use and what you allow them to do. I've had combinations of plugins that caused my whole system to freeze up with too much memory usage because it spawned several Node processes each taking up multiple GBs of memory :/.
I was confused until here because I remember using Sublime until it went paid
I eat the cost of configuring it manually when I start up something new because it's just not that big of deal, even when you're like me, working across myriad languages and frameworks and organization with varying standards. It's not ideal, but it's not deal-breaker.
I do wish that there was a better way to definitively set it up a particular way and know that it is doing what you want it to do. I want something like presets/profiles. If I'm working with typescript, I want to be able to set it up to use a specific version of tsc, eslint, prettier; I also want to be able to create a different one with biome; I want it to work correctly whether I have my source in the project root or in a sub directory or in a monorepo tree.
Fairness to Zed: it is difficult to support all of these permutations, but I do think that they ought to be able to do something better to abstract these things and make the reusable.
Even if it's for solo projects, it's nice that you don't have to update them in lockstep. As in, you revisit an older repo, you don't get bombarded with squiggly lines from your latest user profile, instead you can upgrade it at your leisure.
1. I want to be able to readily duplicate that configuration for another similar project.
2. It's not always appropriate to co-locate those specific files within the project source itself, especially within a source repository. Notable cases are if we're working on different platforms with different binary paths, or if we're not standardized on a particular editor. I should be able to configure my editor without polluting the common source.
Writing C in Zed is a wonderful experience. The LSPs surface errors in an manner that is very easy to view and edit.
My main issues with Zed are:
- Word-wrap: I prefer on-demand, and I haven't been able to figure out which setting triggers that. Of if it is even possible.
- Support for Devanagari and other scripts: I use it as a markdown editor to proofread old texts and it is inadequate for that purpose. Kate/Featherpad offers a superior experience for this, including the ability to zoom to see those visually difficult to parse conjunct consonants.
I’m not sure why though. I do not have the issue you do, but Sublime feels better.
You may be able to do this by editing a language server-specific config file in whatever arcane syntax they decided to offer. But there isn't any editor support for configuring languages servers, so it's a bit of a lift for a newcomer who just wants to turn off some warnings
I've tried Zed several times like this and it continues to lose data.
Are you sure? I believe Sublime preserves all your unsaved tabs even on update.
burned once, twice shy; i wouldnt update without spending an hour making up names for random junk files
Sublime also saves a backup of its state files next to the state files in your home dir, so you can restore in case anything ever goes wrong (e.g. bugs in the new version).
The .sublime_session state files are JSON, easy to read for a human.
> spending an hour making up names for random junk files
That is completely unnecessary. You can just backup the '.sublime_session' file that contains all that before an upgrade if you are worried. Sublime already stores all its state in 1 file; manually spreading that across N files seems unfun busywork. A quick web search reveals that by the way.
(I perpetually have 40 Sublime windows open, each one with tens to hundreds of tabs. My 'Auto Save Session.sublime_session' is 70 MB.)
While there was a bug where the session was lost when updating, this was fixed years ago.
It really there is no realy good ide or tools for php
With Zed, I feel like I'm being dragged into a modern style guide that I never agreed to. It would be nicer if I could make it my own by turning off those parts that I disagree with and keeping the rest. I know this is technically possible, but they've certainly not made it easy.
When you search, Zed opens a new tab, which I hate. Sometimes I just want to have a quick glance at some code and close the search using escape.
Telescope style search in vim, helix or JetBrains tools is so much better.
https://github.com/zed-industries/zed/pull/46478
for file search, edit in the persistent buffer can rename files
for grep, edits in the persistent buffer edit across files
and so on
The multibuffer result is so nice for "hands-on" search and replace.
How else are you going to have “a quick glance at code” *across* project files without using a new view for that? It sounds like you’re describing something impossible.
Zed’s across files search solves this in a similar way as other tools. Except that in zed you can also edit the code where your search results show up. Zed also has within file search.
Jetbrains opens up a lightweight floating panel which can also be docked. So you can choose how to view the results. Like Zed, the results view is live editable, even when searching across multiple files.
The floating panel mode is good because you can do a quick search, look at it, and just whisk it away with one key. Opening results as a tab isn't terrible, but mixes one UI (search, very ephemeral) with another (editing, less ephemeral). (Zed also has this thing where search results also show in the right-hand side panel, which I've always found confusing.)
Another thing Jetbrains does better here is to remember your search settings. Your last search is always the default, whereas Zed forgets it every time. Jetbrains also has really nice file scoping via a dropdown, so it's very quick to search all non-test files, for example.
Zed keeps stealing great features from Jetbrains, so I'm sure it's just a matter of time before this gets better.
You also have to validate the search, it doesn't start off immediately on its own, which annoys me a lot more.
Also now they've introduced this "agent first" layout which i cannot undo. They're strength is in perf, idk why try to reinvent the wheel w.r.t DX.
And Mitchell definitely seems to want to make Alacritty an easy target for conversion, he was just talking about being open to help support Warp with it: https://x.com/mitchellh/status/2049159764261925005
Alacritty is already pretty performant (relative to a lot of the other terminal emulators), but my read is Ghostty has been going hard over performance/standards/protocols (like Kitty).
That being said, I love the software and will continue to check back on it with the hopes that it sticks one day. Congrats on the 1.0!!
There has been substantial improvement, but the search and symbol follow UX is really bad. Hoping the fix that.
BUT: It's very easy to just choose a different theme and there are plenty to choose from by now. It's even possible to make your own theme and they even have a first-party theme editor (https://zed.dev/theme-builder) which works great. They should maybe include some descriptions for each color instead of just the name but that's the only negative thing I can say right now.
I'd even say that it's easier to theme Zed than VSCode because there are fewer variables.
It also has a much better edit prediction model than Zed
But anyway, yes these bland names do annoy me. R, C, Go, etc. Have an opinionated name but especially, that's not hard to google
While it's been hard to use zed when the pull of claude/chatgpt desktop and terminal apps feel more full featured and take up more of the share of daily work, I continue to use Zed any time I do need to explore a codebase or review a markdown plan from an agent.
I hope that there can be improvements to the markdown preview because at least in my case, I'm using that feature a LOT these days.
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.
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.
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.
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
(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.)
Migrating from VS Code was also super simple and integrations with AI assistant seem to just work.
I can definitely appreciate the engineering work that went into it. Loving it so far! Thanks!
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?
Congrats to the team
I think it's fantastic. I still keep my Emacs chops up because it's 50 years old and I know it'll be here another 50 years from now, but Zed's open on my desktop more than any other app.
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
What I love:
- the speed, of course
- the high consistency between features, tabs, and panes, while Cursor looks like a crumbly assemblage of plugins. At first I was worried about the lack of plugins, but Zed made me realize you don't need many
- the visual elegance: the padding, the proportions... It reminds me of the best of JetBrains (though I haven't used their products in years). It feels closer to the IDEs I used in the past (for Java or C#), in the sense that it seems to encompass everything you need, without the heaviness.
- the numerous keyboard shortcuts, often displayed visibly, which makes them easier to remember
- the transparency of their roadmap and their velocity: now that we finally have the vertical git diff as promised, my doubts are gone!
Truly one of my favorite pieces of dev software in 15 years.
UPDATE: Looks like they haven't yet, bummer, and doesn't seem to have much traction either. They redirect to discord, but AFAIK that doesn't have a way to make a feature request directly?
https://github.com/zed-industries/zed/discussions/47593
https://github.com/zed-industries/zed/discussions/48098
https://github.com/zed-industries/zed/discussions/47626
Just opened my current TS/TSX project and everything is working as expected.
Performance is fantastic. I used Sublime for a decade and always missed its native performance after switching to VSCode due to needing first class Svelte, Vue, or Astro support.
The only thing that bothered me is that it enabled the Tailwind LSP even though I'm not using TW and I couldn't stop it. Had to disable that LSP completely in the settings:
I use it for Elixir and ansible stuff. I may eventually be open to using it instead of PyCharm for python and/or Nova for C.
If there's one area I still feel that Zed lets me down is in pane management. Maybe I need to just learn more key shortcuts. But I spend a bit of time "managing" the secondary panes and having to switch back and forth between outline, files, search. I'm not sure what the solution is. Just wish the secondary panes weren't a scarce resource that had to be mux'ed betwixt.
I really like(d) the agent integration, but we're currently experimenting with Claude Code Desktop, and I really miss not having the tight integration. My guess is that I'm going to switch back to using the Pro subsidized version. I was getting by with ~$40-$50 a month. Now the company is paying $125 for Claude Team premium seat, and it's a lesser experience.
What does it not support? I want to try and figure out if its shortcomings in the ACP/Claude SDK or if it's just features that Zed has yet to support?
I tried it for a bit and it was definitely usable and I got a few features built out, but I eventually moved back to using CC in the terminal. I'm sure they're working on it, though.
Once I got that running on my machine it was also easy (literally a drop-down+ API key) to switch and explore using models on OpenRouter.
It lacks a lot of features, but IMO feels less "busy" than the terminal version, which I like.
Very recently Zed also gained support for parallel sessions, which is nice. In general it's very obvious that a lot of effort goes into improving it, and it gets better with every release.
But it is not for me. Multiple issues on Linux and high memory usage makes it a worse alternative to vscode and jetbrains.
Maybe it's better on OSX, but I dont use that anymore and why use an editor that treats your platform as a second class citizen?
The only time VSCode gets slow is if you use a bunch of poorly written plugins, which hasn't been an issue for me in years. It's just like Chrome, chrome is extremely fast as a base but you can mess it up by not being careful with what you add to it.
I still plan to revisit Zed in another year or so once it progresses further, as I find it's still behind Cursor in many ways.
I’m hoping the roadmap contains support for even more things that extensions can do, such as rendering images or Markdown in-editor.
I gave it weeks though, and the surrounding UI just never clicked for me. The various AI panels are confusing, the global search is awkward, and something about the type rendering just didn’t ever look right (maybe I’m hallucinating this?). I use VS Code only grudgingly, but I do think its ergonomics are actually pretty reasonable. I came from Sublime before that. I’ll keep trying Zed, and I hope you succeed.
e.g. its "run" gutter icons rely on context free grammar queries, but of course Scala allows to define main methods via inheritance from a class. Zed's extension api should let the extension report entry points via whatever internal mechanism it needs.
This also goes for the various testing libraries in Scala that because only tree-sitter queries are supported therefore need a custom pattern match for each library as they have their own mechanisms, rather than letting the extension provide its own test harness (easily handled by build tools automatically) - Zed should provide something similar to VS Code's Test Explorer and Testing API interface.
Also extensions can't add new UI, so you are stuck fitting to the recipe Zed team provides for you to plug into, and often enough this is not satisfactory.
What did you have in mind for "new UI"? I'm hoping to see basic text transformation myself: https://news.ycombinator.com/item?id=47950471
[1] https://gram.liten.app/
Congrats to the team on 1.0!
[0] https://zed.dev/releases/stable/0.231.1
everything gets a warning until the app has some minimum count of installs
Unless the devs sign their app
https://0ver.org/
For better or worse, my current workflow is to do most things through WSL on Windows 11. VSCode supports running the editor natively on Windows, but then having an agent or something inside WSL that lets me remote control what's going on there. Does Zed do anything similar?
Currently I'm just access the workspace in Zed via Windows Explorer, but I wonder if that's going to kneecap some of the integrations.
EDIT: nm, Zed supports exactly the same kind of remote editor session, via hamburger -> File -> Open Remote
The newer layout that came along with the parallel agents feature is very nice; even without using parallel agents regularly, this is a breath of fresh air.
Simply love it!
Interesting times…
Though it's a pretty big bummer to see that extension improvements were removed from the roadmap.
Despite promising it for years and every comparable product having it.
The debugger in Python FastAPI and mainly Django is not working as expected. Hopefully soon will be fixed.
Does anyone have any suggestions here? I would love to use Zed more.
I use the default theme + the Catppuccin Icon Theme : https://github.com/catppuccin/zed-icons
Create issue in the Zed Github repository?
https://github.com/zed-industries/zed/issues/9057 https://github.com/zed-industries/zed/issues/12629
I don't like how it loses the session when I reopen it randomly (and not randomly every upgrade).
Whenever I think to myself “yikes that sounds too hard”, my next thought is “well, Zed team could probably do it”.
That seems risky.
There are still a few things PyCharm does better (debugging, for one), but overall Zed is very good and I haven't used PyCharm in months.
I still use CC in the terminal instead of inside Zed, and lazygit for reviewing git changes and other git actions (though Zed now does a decent job of the basics).
Request: please be sincere if you claim "the one thing that keeps me from using Zed is X" ... because let's face it, there is probably more than one thing. Editor ecosystems are complex beasts, and it is ok if people are slow to switch, but the "one thing" claims are rarely credible to me. Anyhow, such comments are rarely consistent with how human nature works. People find rationalizations, and that's fine. It would just be nice if people were a little more self-aware. Changing editors is harder for some people more than others.
My suggestion: if you want to make Zed better for your use case, please smart by explaining who you are as a developer, what you've used, what your expectations are. And be intellectually honest about the last time you've made a big change to your development workflow. End soapbox.
- Evaluate, a plugin that evaluates the selections as python expressions and replaces them by their respective results. I added "iota" as a variable in the evaluation context, that gives me the current selection index (like iota in go). With that, so many math or text manipulations can be done in bulk.
- Alignment, to align all my cursor into a vertical column by adding spaces.
what do i actually need from a text editor that i dont already have? Sublime's killer feature was column editing, and vscode's was kinda typescript and kinda language servers.
... and why do i want an actual text editor as the primary view, vs a side view to agent TUI? from what Ive experienced, the editor is now a secondary interface to the text, rather than the primary one
if i am picking up a new editor, i think i want it to be focused on how to better understand llm outputs, and how to give really structured feedback without having to write a ton of imprecise text.
how does zed make it easy to have agents build several proposals for a solution, and help me choose which one is actually the best?
I have no affiliation with Zed, though I have applied to work there, so I'm hardly neutral. I've been an enthusiastic user for probably two years. I don't expect perfect alignment with what I want, and sometimes the team doesn't respond how I would like with particular issues. But man, in a pretty suboptimal world right now, Zed is an amazing thing to have: open source, regular updates, extensions, nice settings. In the past I've used BBEdit, Eclipse, TextEdit, Sublime, Emacs, VS Code, Jetbrains, Helix. Zed is my favorite by far, probably because of the latency. It is an intangible feeling that just clicked immediately for me.
Personally, as a mostly independent developer/researcher, I go through bursts of re-evaluating my tools. To give some context about my newer tools over the last few years: Ghostty, Nushell, Podman, Nix, Mochi, Monodraw, Swish (window manager for macOS), Base (macOS SQLite editor by Menial), LM Studio, (probably obviously) Claude Code. So for a "seasoned" developer, I'm probably more open to new tools than most? Oh, totally off-topic but I think some of the lesser appreciated new open source tools / formats / conventions are: KDL (https://kdl.dev), Typst, and (evaluating) Djot, Cocogitto (Conventional Commits, took me long enough).
[1] https://alok.github.io/2018/04/26/using-vim-s-conceal-to-mak...
Sorry, can't help it, every time I see Zed i think of the ZFS Event Daemon
This is why I say Docker is the only real "success" story here. And note, I mean a success story for the users; Docker tries real hard to enshittify and fails, and that's good.
My editor is dumb. No AI anywhere.
The only unusual thing is that I use ruby as primary glue language to everything, so in a way that editor (no longer maintained, similar to Linus' editor) is just a wrapper over ruby as such, and functionality in these scripts.
I have also found that it is not the editor that slows me down, but the need to have to think. This is also one reason why I try to make the specification as useful as possible. For instance, in one project that I use to compile everything from source, I use a ton of simple, mostly smallish .yml files that describe everything - allowed keys, allowed values, settings that are mostly just a pointer to where to fetch the source, how, how to compile it then and so forth. The ruby code then is mostly just a glue over that data. And that approach, while very simple, works quite well. Users can also modify settings, by modifying the .yml file or via commandline flags. And if need be, I could also use and populate a SQL database with that data (but for the most part, yaml actually suffices; I don't understand why people are so upset about yaml, and then only point at use cases where folks use mega-nested yaml files. These guys don't understand why simplicity is a benefit; admittedly yaml is not a perfect format either, I notice this when I have a long .yml file and then some forgotten ":" or "," due to manual copy/paste error, then it takes me a few seconds to notice what's wrong).
> "These guys don't understand why simplicity is a benefit"
I'm not really criticizing, clearly your system works for you. Ironically, as I've been using AI more, I've been rolling more systems that work for me instead of relying on existing ones. It's very freeing.
This kind of nonsense really takes away from stuff that actually matters.
Either is fine by me, but I have zero interest until one of those things happen.
But if you flip the switch and there isn't any AI integration visible in the interface anymore to bother you, why does it matter whether the code is there or not, or technically active or not? Raw integration points and settings windows don't send data literally anywhere at all until you explicitly configure an API key and a URL or sign in to an AI provider or whatever. It'd have nowhere to go, and AI inference costs money. It's just local code providing a set of integrations. Where is the need for this insane level of paranoia?
As mentioned, I don't know how much in the way they get, if you don't use them, do they get in the way or something of "normal" usage?