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!
Apparently Zed was working on a better diff viewer, but that seems to have been shelved.
EDIT: Tho if sublime wasn't already "doing everything [you] need", maybe you aren't familiar with the plugin ecosystem!
With Zed all the high quality features are OOTB. For example, with Python they run some high quality linters out of the box, I don't even have to think about setting anything up, I don't even thing I have installed a single plugin for Zed outside of themes. It's a very batteries included text editor.
It doesn't even respect local project dependencies
Plus the whole "holy than thou" attitude of python devs in general just sucks tbh
Python isn't as great as you think it is.
Probably one reason why "rage bait marketing" actually works.
And I'm not luddite swearing by vi or something, I use VSCode and Idea, and have used Sublime for many years, Xcode on/off for some Obj-C/Swift dev, Eclipse for 5-6 years in the 2000s, and vim for everything cli/lightweight since forever.
Is the GUI tech what's supposed to be novel? I couldn't care less about that backend in my everyday editor use as long as the editor is fast enough. Which on modern hardware, even Idea is.
Don't get me wrong, it's a good editor still.
The perception of 'fast' is very subjective. To me having a smooth, jitter-free UI, low input latency, and instant startup, all matter a lot.
I'd like to BETTER use my RAM, and have faster programs to boot (as programs who overuse RAM also are slower than more optimized ones).
(I’m probably off on how much memory it takes to run a small LLM, but still.)
Actually it pulls latest versions (checking registry then installing that exact version, not sure why they sidestep normal resolution algorithms) no matter what .npmrc may say, so min-release-age breaks almost everywhere it integrates with JS/TS ecosystem (most visibly, Copilot). I probably should’ve filed an issue.
It also installs Go packages but I haven’t looked into that.
Any ToS for a company that you send data to process includes similar terms that just allow it to process the data as you are expecting them to in order to provide these services. Eg for the AI tab-completion, they process part of your source code on their servers and provide a tab-completion suggestion ("derivative data"). Some people are evidently either unfamiliar about how these things work or about the data-related legalese terms used (barring any bad intentions assumed). If anything, paragraph 4.2 [1] makes it clear that any data output is owned by the user (and not by zed). This whole discussion made me read the terms and (apart from the arbitration thing imo, though not uncommon), I couldn't see any kind of dark pattern or issue.
I like zed a lot, it works great, I am definitely cautious about the fact that they have received VC money which holds me from getting "all-in", but criticism that is based on misunderstandings or on obviously factually wrong arguments is not very useful.
[0] https://github.com/zed-industries/zed/issues/50568#issuecomm... (could be some better source than a github comment but it has been repeated many times)
(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.)
To the Zed developers: CONGRATULATIONS! I have been following your project with great interest since your speed demo years ago. And since it’s AI-first, I’m interested to see how we can integrate it with https://safebots.ai (Safebots, Safebox, and Safecloud).
I would love to see how we might be able to increase the safety of agents in Zed, use local models like Qwen/Deepseek and we also have Grokers which can turn any codebase into a graph with tree-sitter and help your agents far more than RAG and similarity search (https://grokers.ai/deck.pdf)
What’s the best way of getting in touch? (If you want, my profile has a way of emailing me).
Both use treesitter and create knowledge graphs for llm use. It results in way less tokens spent as well.
But also - see https://safebots.ai/grokers.html
I don't think overly-opinionated meta-comments are inherently bad, but I don't come to this site for them. I don't even think your comment is bad; I'm mad that this is what the people of HN have decided is the most important remark on the matter. It tells me something unfortunate.
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://fly.io/blog/vscode-ssh-wtf/
Any idea if zed does things differently?
EDIT: Scrap that. After a while it starts running at 100% CPU on my macbook. I'm editing a small, simple PHP remotely over SSH. I haven't yet tested if it only happens with remote editing. Too bad... Well, at least it didn't trash the server like VSCode.
EDIT: Logs showed it was trying to do some auto suggestions every few seconds, but failed due to missing credentials. Didn't seem like something that would eat up 100%, but after disabling all AI features (I'm glad there was an option for this), the problem disappeared, and I'm happy with Zed again.
For auth one can use Caddy and basic auth. Yes it takes a bit of work but it isn’t that bad. Plus zero subscription costs if your VPS is a Raspberry
The difference with exe.dev is multiple VMs. I have over 20 now with isolated apps, branches of the same app, etc.
Agreed, it takes a few hours to set up everything. But just did it with Claude the other day, and I was up and running in no time! :-)
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 many apps the weird experimental version is all there is. Call it vibe coding or experiments or non-critical tools. These may not even have a GitHub repo. I trust local git and the exe.dev disks.
Then for serious apps the above is the same shape for development branches. Spin up a VM in a few seconds with the code checked out and running online and editable over an SSH mount is the magic.
Then that turns into a PR on GitHub and a normal review then CI/CD to staging and prod takes over.
https://www.gnu.org/software/emacs/manual/html_node/emacs/Re...
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
Compare that to something like a JetBrains product.
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.
LSP is one of those things, or at least it has been, for a while.
LSP is also something that's not necessary to writing quality code; it's absolutely a major quality-of-life boost, but before rewriting my configs after switching to Rust, my LSP usage was limited to being a slightly faster autocomplete engine more than anything. I didn't have keybinds set up for going to definitions, implementations, or references of symbols. I still put out what I think was decent code. I'm also better off now that I've adopted a more useful config.
IMO it's an important part of this industry (among others) to let developers have whatever workflow they want, within reason. If someone decides they want to invest the time into setting up LSP with their editor, that's their prerogative. If not, that's fine too. I don't know who among my present or past coworkers use LSP outside of occasionally chatting about editor configs with one or two of them, because they've usually figured out a workflow that lets them produce respectable code, and I've never had to question their tooling before questioning their methodology.
If your tool is TextMate, you should learn how TextMate grammars work. If your tool is vi, you should learn how modal editing works. If your tool is Ed, you don't need to learn anything because "Ed is the standard text editor".[1]
I got into programming long before LSPs and MCPs.
The only craftsmen are the ones at the edge of the lingo tree?
To use your own analogy, as a machinist myself : I can master the concept of the lathe and bow drill without learning simulation-driven CAM, and I would be no less a machinist than the guy pressing buttons on a brand new Haas.
If you work via notepad.exe and assembly with a compiler and linker ready in the next window, fine! the work is what matters.
If you don't use language servers, you don't engage with development environments which rely on them, you need not learn them.
If you're making chips on a Monarch 60 you don't need to learn shit about CNC. If you're pushing buttons on a Haas you do.
If you're coming from a Monarch and want to try pushing buttons on the Haas on the kids are using, you need to learn how CNC works. That's your job. If you want to switch from notepad to Zed, you need to learn how language servers work.
Can you not use Zed without knowing how language servers work?
Every day we stray further from God.
I want to be a craftsman and know my tools and want to actually enjoy using them, but it's becoming less accepted to do so.
[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.
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.
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.
And tbh, Sublime Text is pretty stable and the kind of program you could probably get away without updating for some time if you wanted to. Things like LSP support are in 3rd party packages (that are open source, not subject to the license), so you'd get updates for those anyway.
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)
And then add
“update_check”: false
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:
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.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.
It's like how a video game renders, which is their stated goal from the beginning.
I always thought their stated design goals were a bit... wonky.
I'm running on a Zed with only 1 empty text file in it. So language servers should not be in use.
How do you measure "pretty lightweight"?
I use it every day. The #1 reason is because it never loses unsaved files (though I'm still working on breaking the habit of typing a few characters and pressing Ctrl-S). Column editing! Macros! Record/Playback! Configuration! Plugins! Responsiveness! Low resource utilization! Etc!
Why wouldn't I pay for it? I've bought all four versions. The author deserves to be paid.
I guess the question is: why don't you want to pay for it? Assuming here that you're a professional coder being paid a reasonable, US-equivalent salary. I understand not everyone fits that situation; plenty of us pirated software as starving college students / interns, folks in other countries don't get the same pay for the same work, etc.
We should all want to pay the authors of great software. We're on HN, which is a celebration of creating great code and awesome businesses.
"Pay him. Pay that man his money" - Teddy KGB
This is a big one indeed. I keep many unsaved tmp notes and pastes open all the time. Sublime Text also have it's super smooth pane and window management, so easy to select many tabs, drag and drop tabs to windows etc. Never mind what is unsaved and not. Everything always there on open anyway.
I think this is a highly requested feature in Zed as well, but not sure if they are actually working on this or not.
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’m not sure why though. I do not have the issue you do, but Sublime feels better.
I haven't used Zed, but can you choose the PHP version, or point to a PHP executable for warnings/errors? I know in VS Code, you point to the PHP executable for the version you are using, to catch errors. I haven't created a new PHP project in quite some time, but I did work on many older PHP projects, and never had this issue with VS Code. I suspect even if you don't go about it this way, there has to be configuration to specify what is and isn't an error vs. warning.
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.
I've tried Zed several times like this and it continues to lose data.
While there was a bug where the session was lost when updating, this was fixed years ago.
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.)
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
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.
Glad I'm not the only one that frequently makes this typo.
It really there is no realy good ide or tools for php
I'm sticking with Sublime Text, as its developers actually respect boundaries on my computer.
Yes. This is bad. Zed keeps installing and running all sorts of random background stuff. This should be an opt-in.
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.
"4.1. Zed's Use of Customer Data Customer hereby grants Zed a non-exclusive, worldwide, royalty-free, fully paid-up, non-sublicensable (except to service providers and Customer’s designees), non-transferable (except as set forth in Section 15.1) right to use, copy, store, disclose, transmit, transfer, display, modify, create derivative works from, collect, access, store, host, or otherwise process (“Process”) any materials that Customer inputs into or otherwise makes available to the Service (including prompts and other written content) (collectively, “Customer Data”) solely: (a) to perform its obligations set forth in the Terms, including its Support obligations as applicable; (b) to derive and generate Telemetry (see Section 4.4); and (c) as necessary to comply with applicable Laws. Except as required by applicable Laws, Zed will not provide Customer Data to any person or entity other than Customer’s designees (including pursuant to Section 7) or service providers."
Sorry, no I don't agree to make my source code and the product I am working to give you "non-exclusive, worldwide, royalty-free, fully paid-up, non-sublicensable (except to service providers and Customer’s designees), non-transferable (except as set forth in Section 15.1) right to use, copy, store, disclose, transmit, transfer, display, modify, create derivative works from, collect, access, store, host, or otherwise process (“Process”) any materials that Customer inputs into or otherwise makes available to the Service (including prompts and other written content)"
Seems like legalese to be able to take that data for support reasons, telemetry, and local laws that require that data be sent to them. I think ignoring this portion is a little uncharitable to them.
None of the above I like, and (a) is so vague as to be useless, including if you read the obligations.
>Except as required by applicable Laws, Zed will not provide Customer Data to any person or entity other than Customer’s designees (including pursuant to Section 7) or service providers."
Companies still do it all the time despite "applicable laws". And when the company is sold, all bets are off.
I'd rather they don't get, or keep, any to begin with.
"telemetry": {
"diagnostics": false,
"metrics": false
}> Customer may configure the Software to opt out of the collection of certain Telemetry Processed locally by the Software itself, but Zed may still collect, generate, and Process Telemetry on Zed’s servers.
Note that they have (or did have, I haven't used their editor in awhile) an AI tab completion feature... it's safe to assume that all of the code you edit is sent to them at least when that is enabled.
> AI tab completion feature... it's safe to assume that all of the code you edit is sent to them
Yes, this is quite obvious, how else could they provide AI tab completion? I hope anybody understands this before using sth like this. They do specify that "[...] telemetry expressly does not include Customer Data" though.
Hopefully it does restrict them being sent to them in the first place.
I also found there are a couple of "Chromium" style builds.
>Note that they have (or did have, I haven't used their editor in awhile) an AI tab completion feature... it's safe to assume that all of the code you edit is sent to them at least when that is enabled.
There's also an option to turn ai features off. At which point of course, nvim is just as good :)
No one needs all those rights to do what this block says it's going to do. Any one would require that block to be changed in any contract between equals. But this is a contract of adhesion, so it's uncharitable for you to demand charity where they withhold their charity
I don't use Zed, but I occasionally consider switching.
I honestly can't see any legitimate reason why they'd have the right to derivate work from yours, and you don't insert that kind of terms by mistake.
How do people continually fall for this. Refusing to look at the playbook that has been run time and time again and then getting offended when it is too late.
These are about processing the data, not owning it. They need to process the data eg to provide llm-based tab-completion. A completion is derivative work, and it is also owned by the customer, as it says below.
[0] https://zed.dev/terms#42-customers-ownership-of-output
> The Service may generate specifically for, and make available to, Customer text and written content based on or in response to Customer Data input into the Service (collectively, “Output”), including through the use of technologies that incorporate or rely upon artificial intelligence, machine learning techniques, and other similar technology and features. As between the Parties, to the greatest extent permitted by applicable Laws, Customer owns all Output and Zed hereby irrevocably assigns to Customer all right, title, and interest in and to the Output that Zed may possess. For the avoidance of doubt, Zed and its AI Providers will not retain or use Customer Data for the purpose of improving or training the Service or any AI Provider products, except to the extent Customer explicitly opts-in on Zed’s specific feature to allow training and/or such improvement (such as fine-tuning) and is solely for the benefit of Customer.
That said the definition of "telemetry" is so broad that I think it would include training a LLM and the like. Telemetry is defined in section 4.4 as
> Zed may collect, generate, and Process information, including technical logs, metrics, and data and learnings, related to the Software and Service (“Telemetry”) to improve and support the Services and for other lawful business purposes.
I guess that it's so opaque is also objectionable. Contracts don't have to be inscrutable.
1. Mandatory arbitration by default. You waive your right to a jury trial and cannot join class action lawsuits. You have only 30 days to opt out after agreeing to the terms.
2. 1-year statute of limitations. You must file any legal claim within one year, which is much shorter than the default period under most state laws.
3. Zed can terminate your account at any time, for any reason, with no liability. No notice is required, and they owe you nothing if they pull the plug.
4. Autocomplete sends your code to AI providers in the background unless you turn it off. Worth knowing if you're working on proprietary or sensitive code.
5. No guarantees about data retention. If your payment lapses, they reserve the right to delete your account and all associated data with no liability.
6. All fees are non-refundable except where required by law, with one narrow exception for disagreeing with modified terms.
7. Zed can modify the terms at any time. For existing users, material changes take effect after just 30 days, and continued use counts as acceptance.
8. Zed can use your name, logo, and brand in their marketing without asking. You'd have to send a written request to stop them.
9. No warranties whatsoever. The service is "as is", they disclaim all responsibility for errors, data loss, or AI-generated output being inaccurate or harmful.
10. Liability is capped very low, at most, whatever you paid in the last 12 months, or $100, whichever is higher.
It’s a local text editor. The only thing an account gives you is access to their specific flavour of coding agent and a collaboration server.
> If your payment lapses, they reserve the right to delete your account and all associated data with no liability.
Pretty much the only associated data is your payment info.
Zed devs reading this: just release it as GPL. It will be better for literally everyone.
I am literally shopping for a new editor. A once-a-decade thing for me. I want something that can effectively sandbox local models for code gen.
So I was looking at Zed yesterday. Cloned the repo. Then I noticed they were funded by our favorite VCs.
Between this and CVE-2026-31431 ("Copy Fail"), it seems like I dodged a bullet.
I've been wanting to look into better emacs integration for agents. Imagine an agent making direct elisp function calls, or using macros... One could limit which functions are allowed to run similar to how cli harnesses work, but plug straight into LSP and etc.
This is sensible, no?
Suggests there's a longer term storage, available for hackers.
There are hundreds of references to http requests in the source tree, though most seem associated with calling particular AI model providers.
This looks to be the telemetry struct: https://github.com/zed-industries/zed/blob/a7c9c24f40d7e9169...
It appears to crawl your worktrees collecting an inventory of the types of projects you have and is interested in certain named files specificaly: https://github.com/zed-industries/zed/blob/a7c9c24f40d7e9169...
2. Telemetry defaults to on. So turn off telemetry as explained at https://zed.dev/docs/telemetry#configuring-telemetry-setting...
"telemetry": {
"diagnostics": false,
"metrics": false,
},If it's open source it can't have a license agreement to use the software itself
Or is this an agreement to use some cloud service? Supposedly you can opt to not use it
Elsewhere people said that "even if you disable telemetry, Zed can still collect telemetry" but, it being open source means you're still in control
No open source license can force you to run misfeatures
https://github.com/zed-industries/zed/issues/50568#issuecomm...
So far they've been great and product is fantastic as you know.
They could be the next "don't do evil" people but practice shows that doesn't last for long. And then the messy license terms become very handy for what comes next.
If they went to the trouble to specify all of their rights over your data, their glossing over about what they can do with it is a solid reason to push for complete clarity or pull out completely.
If it is a matter of communication, they can fix and clarify it. If it's genuinely scummy, they can change their approach now that they know they were caught in the act
What’s local stays entirely and totally local, always and every time, otherwise what’s the point?
Customer hereby grants Zed
{{ broad list of rights }}
solely:
{{ for these purposes }}
IANAL, but the term "solely" seems essential to understanding this. Pivotal. As in "if you get it wrong, you'll be wearing a tinfoil hat" essential.Also see "4.4. Telemetry: .... For avoidance of doubt, Telemetry expressly does not include Customer Data."
My two cents: I'm not worried about Zed's contract here. Much more important to pay attention to when your data goes to third-party AI providers: read _their_ contract language.
Meta-comment: Don't let a well-meaning comment like the above trigger a panic. Better to get familiar with typical contracts and/or build your personal network for legal advice.
P.S. Look out for shameless legal slop on the Web, I "promise.legal" it is out there.
With AI being so good why isn't someone making fully open source alternatives to all this crap by now?
Oh Zed is open source, maybe Codex/Claude can make a VSCodium-like fork off it?
It baffles me that people ask this question all the time and it never occurs to them that perhaps the answer is "because it isn't".
I'm sure it can handle "remove all instances of telemetry"
1. SaaS Agreements: Key Contractual Provisions https://www.americanbar.org/groups/business_law/resources/bu...
2. Cornell Law School's Wex: https://www.law.cornell.edu/wex
3. Coursera : American Contract Law I (Yale prof): https://www.coursera.org/learn/contracts-1
4. Software as a Service (SaaS) Agreements: Thomson Reuters/Westlaw (paywalled; trial available) https://content.next.westlaw.com/practical-law/document/I61c...
If anyone has good detailed resources that are free, please add.
[1] IANAL but I wasn't that far from going down that path. I've worked for a legal-tech startup, did really well in an undergrad Constitutional Law class, incorporated several small companies, managed lots of contractor agreements. So, I know from experience: legal language is weird and specific in ways you may not realize. So be intellectually humble and defer judgment until you talk to a legal expert. Hopefully people more experienced than I can weigh in with more specifics.
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.
for file search, edit in the persistent buffer can rename files
for grep, edits in the persistent buffer edit across files
and so on
I think multibuffer can be good in edit/renaming use cases, but it's very annoying for fast lookups/navigation across different files (as mentioned elsewhere).
What I hate though is really unintuitive and "non-standard"[1] shortcuts in search tab.
For example "find in project": cmd+shift+f
Whereas for "find and replace in project" I'd expect: cmd+shift+r , but it's: first toggle find, then toggle find and replace. Ok, absolutely fine, but the keyboard shortcut to toggle is: cmd+shift+h - I never can remember it.
When already searching, for my "convenience", if I'd like to adjust my search or search for something new, I click cmd+shift+f and I am focused back to find input, but here's the kicker. Input have automatically changed to what word was under my cursor. So if I was looking for some long or weird string, I need to retype it again or find and copy/paste it again.
#first-world-problems though.
I got tired of babysitting vim/neovim and all it's plugins and use Zed for most of my editing. It has pretty good vim binding support and maybe I just need to remap some key bindings to have better search experience. Zed is much better at emulating vim than Cursor/VSCode.
[1] there's no standard obviously, but some things are the same/similar across most programs.
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.
By showing the text around match inline with the search result in the tree. Especially useful if you do not expect to edit every search result. If you do expect to edit every search result, then Zed's multibuffer is arguably better/ faster.
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.
You can just collapse the sidebar with the agentic stuff.
The problem is that Cursor Tab seems kinda psychic, and I didn't realise how conditioned I'd become to just expressing a few keystrokes in the right place and have Tab pick up my intentions. If you're refactoring, you can move between files and it'll remember what you just did in a tab you just closed, and work out how to make the same changes here.
It's also really good at picking up patterns and the right imports from the whole repo. It seems to be working with a much larger, more persistent context.
I tried Zed AI, Copilot, and Mercury. All three seemed forgetful after a year of Cursor Tab. I wish there was a fix because literally everything else about Zed was an improvement.
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.
https://github.com/zed-industries/zed/issues/26560#issuecomm...
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
Fun related anecdote, my wife works in a medical lab and occasionally has to call a doctor to report critical values. She frequently uses the NATO phonetic alphabet (her dad was Navy) for patients with names that are hard to pronounce or have an odd spelling (Who names their kid "Heathyr?"), and one time, the nurse taking the note actually filed a complaint against her for using "weird" words to spell out a name.
People are sooo picky when it comes to editors. Guaranteed they will not be satisfied. Too fast? Then it is not doing a lot. Too many features? Well now it is too heavy. Does it use sane key bindings? FU we want vim shortcuts.
Anyway, congrats on the launch folks. Hope you keep delivering excellent software despite the noisy feedback.
I did install it in a VM with virtio-gpu, but it was absurdly slow, so I wasn't able to try it.
I was searching the article you linked to see if it addresses the GH issue in any way, but it seems to not.
I wish GPUI could become the go-to Rust UI library and not just an editor backend.
For that, a couple of changes would be highly desirable: being able to switch the GPU backend from Metal to wgpu (so it could be mixed with vello, for instance), and the ability to integrate into an existing event loop like egui allows you to. If this were easy to do, I would switch from egui in a heartbeat.
One of the staff forked it into a community edition https://github.com/gpui-ce/gpui-ce
Does anyone have more details about the state of it?
In case you find it useful, I recently stumbled upon this project:
https://github.com/longbridge/gpui-component
"UI components for building fantastic desktop applications using GPUI."
https://zed.dev/blog/videogame#text-rendering
It looks like their approach could nicely solve a problem that's shared by almost every new GUI toolkit I've tried: text looks terrible, or at least out of place when surrounded by applications built with the desktop's native toolkit.
(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.)
Tried switching multiple times from vscode but it's just not feature complete for my use cases. Off top:
- no expanding tabs to fill the window until another one is clicked
- file picker hides .gitignored files
- vertical terminal tabs would be nice
- restart doesn't automatically load the previous window (most recent project)
- while faster/more responsive than vscode on large codebases, still pretty heavy compared to its AI-averse fork, gram; thus I can't use it on the macbook neo
Until some/all of that is improved, it's just uncanny valley territory with no particular killer feature to migrate. Appreciate all the work they've put into it (especially remote ssh parity!) though and like what they're doing in broad strokes
2. Uncheck "Hide .gitignore" setting and it won't do this.
3. Agreed
4. This is configured in the "Restore on Startup" setting (I think you want "Last Session")
- I tried to use the Cursor Agent via ACP, it worked but it seemed markedly stupider than when I would use Cursor directly (saying that i18n strings were being used when they weren't, editing code differently than what I asked for, also when it is running terminal commands it seems to just say "Run Command: Terminal" and has no information on what's going on). Maybe I just need to not use Cursor Agent, but my company pays for it already so that's what I tried.
- Providing context is also cludgier - In cursor I often highlight specific chunks of code and add it to the AI context via Cmd+L, but I couldn't figure out any specific way of doing that with a keyboard in Zed besides clicking a tiny + button to add "Selection" to context, which got old fast.
- Maybe I just need to get used to it but reviewing code with the git integration is just hard for me to follow; one giant editor with every change in it is just harder for me to grok than showing each file one by one; so it was tiring to review the big changes produced by LLMs. Also, when you stage changes the file just stays where it is with a barely noticeable check in the checkbox in the sidebar - I prefer the behavior of Cursor where it actually moves the staged files to a separate section, but some kind of more obvious visual indication besides that perhaps would help. I did like the tree view, though!
- The tsgo and oxlint LSP servers kept crashing, which was frustrating. GraphQL LSP server also couldn't understand graphql.config.mjs, which is strange as that's supported out of box by graphql-config and works fine in Cursor/VSCode.
- I tried using a few of the different Edit Suggestion LLM options, but unfortunately Cursor is just way too good compared to any of them (slow, and just not very helpful in comparison).
- Just in general figuring out how to configure them is confusing, there's like 3-4 different places to configure agents and LLMs for different purposes, I found it very fragmented and confusing and the docs didn't make it particularly easy to set things up.
That all said, the performance was muuuuch better than Cursor. But the UX issues and general bugginess of ACP and these LSP plugins were impeding my workflow too much for me to tolerate it so back to Cursor for me. If anyone has tips on how I might make some of these better that would be cool, but if it's just inherent limitations then maybe I'll try again in 6 months or something.
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.
- Doesn't highlight typos in variable, functions, class/struct names etc. Doesn't highlight rust borrow-check, invalid method etc errors.
- Doesn't seem to understand either language beyond superficial syntax
- "Go to definition" (Ctrl + B) Doesn't do anything
- Doesn't show which versions are valid in Cargo.toml and pyproject.toml
- No ability to move functions/classes/structs etc to different modules
- Doesn't seem to understand rust feature gates
- Doesn't seem to understand what fields a struct has, or params a function has, let a lone what types are valid in them.
- Rename seems naive
Overall: It is taking a superficial view of the code base, and treating it more as text than a cohesive structure.edit: Thank you very much for those who have pointed out I needed to disable restricted mode. This has added some introspection and in-line error handling. Some of my concerns are partially-mitigated. It seems when introspection and in-line editing/complete/data appears is inconsistent (But working in many cases), and I do not yet know what rules define this. Refactoring tools like moving are still absent. I will continue to use Zed on my tablet with the LSPs enabled, and observe.
I do think they should have a more obvious warning that the current directory is untrusted, right now the little green warning in the corner is way too unobtrusive and will result in many people having the same issue as you.
The latest x86_64 Linux build is 136MB. (https://zed.dev/docs/linux#downloading-manually)
As for your list of grievances, they all seem to boil down to the respective LSPs not doing their job? Does Ctrl-Alt-l (lowercase L, not Shift+i) include the language's server in the context menu, and are there any errors reported for it if it does?
That is the part that makes the space heater
Not sure if it is the plugin or something else, but unfortunately makes it very hard to try out for me.
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?
1. Zed insists on opening files in the active panel AND Terminal opens in a panel -> I constantly open files over my terminal. Arghh.
2. On macOS, when I open another workspace (e.g. by drag and dropping to the app in the dock but also from CLI), it opens in one of the existing windows in a sort of workspace-level tab (?). I want a window per workspace. No way to configure that (or it is so unclear that I could never find it).
Bonus: I want code in a light scheme and terminal in a dark scheme. It is stupid, but my eyes just start hurting otherwise. I created a custom color scheme for that and it sort of works, BUT Zed seem to do some additional post-processing to colors based on the scheme-wide light/dark setting, so I cannot get the colors quite right. If I set scheme to "light" – terminal colors are a bit off. If I set to "dark" – code editor is off, cannot get it fixed with scheme level overrides.
That said, the current UX is pretty confusing.
There’s a mismatch in visual hierarchy: selecting an agent in the sidebar appears to change the entire editor’s worktree/branch, but the worktree/branch selector lives in the window titlebar, which strongly implies it controls the whole window. So it’s unclear which is the source of truth—the agent or the window.
That ambiguity shows up in the workflow too. If I want to create a new branch/worktree and then start an agent on it, I can’t do that directly. I have to:
1. create an agent 2. start a conversation (to instantiate it) 3. then switch the branch/worktree
That ordering feels backwards—I’d expect to define the context first, then start the agent.
Even basic navigation is unclear. If I switch the branch in the titlebar, does that affect the current agent, or the whole window? If I want to return to a previous worktree, is that tied to the agent or not? I still don’t have a solid mental model.
It feels like there are two competing concepts:
* agents as independent workspaces * the window as the workspace
Right now they overlap in a way that’s hard to reason about.
The feature has a lot of promise, but the current UX makes it difficult to predict what’s going to happen, which makes it hard to rely on.
The two primary OS items that turn me off of zed are not being able to have a title bar and the fact that menus open on hover and not on click.
VSCode, and IntelliJ let me turn on OS level title bars so I can handle the window without needing to try and find the magic spot not filled by some other app based nonsense as well as making it easier to see what window is active.
Menus can be unrolled from the hamburger but now pop open if I just swing my cursor through. I've no idea what convention that was pulled from but I think they just took the hamburger menu event triggers and left them as they were instead of changing them to act like an OS menu is expected to function.
I'm sure there are others that I'd find using the app but just those two was enough of a personal issue for me to just not bother.
Having said that - Teams is a piece of #$%^&; and MS Office has dropped the ball with its UI switching to ribbons in 2007 and has languished in the land of bad UI ever since. Settings makes me want to just use Control Panel like a human being.
Or am I missing something?
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 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.
Congrats to the team
1-3 in stealth if I remember correctly
I tried Zed once, but unfortunately had to give up because of:
- constant CPU usage when idle,
- blurry fonts,
- low-contrast light themes.1. In Zed, all my Rust files are reformatted on save. (I also code in Go, and don't like this approach at all.)
2. It takes ages to find out where to configure the language servers, and find those little options several layers deep, that I need to switch. (E.g. turn of rustfmt, or turn off some PEP8 checks.)
3. Zed is still missing the killer feature of Rust in VS Code -- underlining the mutable vars. (TBH, VS Code custom themes also lack this, and it's unclear how to turn that feature on, but at least the default ones have it.)
For comparison, I have bought all 4 Sublime editions. I tried Pycharm, and still preferred Sublime. VS Code came when I needed interactive debugger for Rust.
I found the Extensions screen, searched "Java" and tried installing the most popular extension. Clicking "Install" makes the button gray out for a second but does nothing before the button becomes clickable again. Not sure how to proceed from here. (On a work-managed MacBook)
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.
Congrats to the team on 1.0!
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.
Cursor works just fine for me. I just don't have the incentive to learn a new tool even though I think Zed is cool.
Zed for me on my Linux machine opened to a massive C++ project (the Ladybird browser if you were curious) is (not including LSP or extension processes) using around 480MB of memory.
VSCode on the other hand with nothing open but a 20 line JSON file is (again not including any LSP or extension processes) using around 920MB of memory as reported by its own builtin task manager thing.
I suppose 480MB for a text editor might be a tad high but calling it worse than VSCode is a massive stretch.
The editor + its plugins + it's LSP server is what counts. I dont care if zed is written in rust and uses 400MB when it spawns a multi GB nodejs process when I work on my tiny golang project.
- Zed 36.8ms (26.3 avg) - Sublime 33.5ms (25.9 avg) - VSCode 31.7ms (20.6 avg) - Hackerman Text 15.3ms (12.5 avg)
All editors tested as stripped down as possible, minimal UI etc., empty file, no syntax highlighting. Mostly surprised by VSCode tbh.
Testing on sqlite3.c (with syntax highlighting): Zed 60.5ms, Sublime 37.1ms, VSCode 22.0ms, and Hackerman Text 18.4ms.
The demo video voice felt super AI generated. Which it many ways felt like it was going against the target audience, people that still code by using an editor and it's shortcuts.
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.
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:
"language_servers": [
"...",
"!tailwindcss-language-server"
]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.
I’m hoping the roadmap contains support for even more things that extensions can do, such as rendering images or Markdown in-editor.
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
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.
I just wanted a custom action when I right click on a file (or multiple files) in the file tree - uh-oh, sorry, you can't have that.
Basically all text editors should be extensible. Emacs and vim, Notepad++ or Sublime - this is one of their core features. Do I need to explain this to the HN crowd?
GPU acceleration is nice, and in general, the whole basic editing experience is quite nice. But lack of extensibility is just a punch below the belt.
Maybe Zed 2.0 will be worth another look.
There’s tons of extensions for Zed, but you’re asking for particular extension hooks that don’t exist yet.
I expect the reason they don’t is that Zed sandboxes extensions quite aggressively (they’re essentially WASM running under wasmtime), which is fantastic for both security and performance, and it means they don’t break when the app updates, but it also means that a bit more care needs to be put into designing extension points.
I’m sure it’ll come.
There can't be without those "particular" hooks. Editors with them have tons, Zed is limited to kilos
This will never be an IDE like Jetbrains Rider if you use a language like C# where those guys excel at: sheer volume of refactorings, static and dynamic analysis, cpu and memory analysis, what have you.
And for a scratchpad: is this really better than neovim?
As for scratchpad: I’ve actually been going back and forth between Zed and neovim. Imo Zed is a good graphical editor with sane defaults and preconfigured tools (and excellent vim emulation). It will never beat neovim's configurability but it’s a smooth experience ootb.
Nowadays I just use both but default to Zed because it can be used both for Windows (for work, don’t @ me) and WSL. Neovim for quick file edits outside my main workspace, editing change descriptions, etc. - $EDITOR stuff.
I could probably get away with plain vim as $EDITOR, but throwing away a perfectly valid neovim config seems silly.
for the everything else it was a win. will give it another chance in a month or three to see if it can do, excited to have a setup that easily navigates code diffs.
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.
Helix lovers who are dying waiting for helix plugins, please try this out
I have now one week experience, and I like it very much. Some settings take a bit time to get right for my taste, and themes doesn't look polished, but otherwise it is excellent choice (even when thinking Sublime, which I considered the best of all). AI-things can be disabled for now, so let's hope it stays that way.
I also tried VSCode, and omg, I can't understand who want to use that... It is almost Visual Studio grade bad. At least by default settings. It couldn't even open 900 kb text file without freezing (Zed/Sublime had no problem, like 2026 computers/software shouldn't have with 1 mb file).
PS: One thing I'm really missing is the ctrl+shift+f equivalent
The editor is so good it has been defining how I work - at first I would quickly copy relevant files into multiple AI chat apps using Text Threads (was quite annoyed when it was replaced by the Agent Panel which at the time made it very awkward to add relevant context and copy text), and now I really can't imagine living without the new Threads Sidebar.
It's not perfect, but whenever something is broken then I know it's just a matter of time before it gets fixed or improved.
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
Still, congrats to the team. Hopefully this launch means more money to fix issues so I can start using it again.
not sure how 1.0 ships with that massive pile of bugs. but ai agents are the first-class citizen in this editor, and developer experience is not a priority.
funny thing is i uninstalled zed right before the 1.0 release. kinda relieved i didn't miss anything.
I don't need much from an editor. Instant cold start, sane colors, sane folding in origami style , like "kent folding" allows to do on vim ( https://www.vim.org/scripts/script.php?script_id=416 ).
Not much, but it seems all modern editors fail to do good origami folding.
Does Zed do this?
Despite promising it for years and every comparable product having it.
Main problem: No menu. Where are the settings? The first thing I wanted to do was move the file treeview to the left side; I don't know what country the authors live in, but in Western countries we read from left to right. But nope, there's no View menu or anything of the sort.
Then I examined every other little button around the UI, to no avail. I want to get stuff done; not play with an Advent calendar, hunting for goodies.
Control + , > Window & Layout > Show Menus = true
This unhides the menu instead of hiding everything behind a burger. This should be the default. The defaults are awful in many ways and they've only gotten worse with the recent panel rearrangement.
I had the same problem and there's not even a burger anywhere.
But... thank you for posting that.
It's a nice departure from the visual overstimulation I get while in VS Code (for which I have to take some blame as I need to remove some installed plugins).
There are a couple of features shown in the v1.0 video that I was unaware of and am keen to check out.
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
Gotta say farewell to Sublime. Now Zed is my general purposed text editor. For doing most of my coding work, still use VSCode and nvim.
The only thing stopping me from leaving Cursor is their tab completion, which is honestly just incredible.
On the agent side, I really like their ACP approach but for now it seems buggy and limited in functionality (previous message editing, occasionally never-ending work, ...)
I love that most of my (small but important) set of keyboard shortcuts from VSCode jsut works.
- Terminal - Ctrl + P (and siblings).
Suggestion (minor):
To me, font size is as import these days as dark/light mode. Would be cool if basic font-size (ui panel etc, were part of default/first-run config)
Also like that AI is a "first class citizen" it seems on Zed.
Well done guys :)
What an awesome journey!
PS: Pretty daring move to think of building an editor when there's already sublime, textmate, Jetbrains and VSCode.
Though it's a pretty big bummer to see that extension improvements were removed from the roadmap.
and then the whole telemetry bit.
bye.
The debugger in Python FastAPI and mainly Django is not working as expected. Hopefully soon will be fixed.
I don't use AI tools in 90% of the projects.
It's snappy, fast, everything just works. I have the vim mode turned on while editing.
That seems risky.
Create issue in the Zed Github repository?
https://github.com/zed-industries/zed/issues/9057 https://github.com/zed-industries/zed/issues/12629
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.
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
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”.
Jetbrains “just worked”, but work isn’t paying for the license anymore because AI so I’ll just bang my head against these plugins.
Interesting times…
Simply love it!
I was admittedly skeptical of Zed in the beginning, because they started out with so few features, and it seemed impossible to really switch permanently to it and still be as productive. The Jetbrains platform has got such an amazingly rich set of features and an uncanny ability to just nail the editor experience. It seems almost unthinkable that anyone would be able to compete, and for a long time Zed was very far behind, but this year I feel they're finally a viable alternative.
What ultimately pushed me towards Zed was performance and the sheer amount of work-stopping bugs. I would have days where Jetbrains would get unresponsive or extremely sluggish. Suddenly "undo" would stop working (!). Major and minor upgrades often introduced perplexing performance degradation. In short, I've wasted insane amounts of time on bugs and on filing detailed bug reports that are never looked at. That undo bug has been open for maybe a year now.
For all the bells and whistles, I think Jetbrains faces an intractable problem. It's just utterly unrealistic that they'll be able to solve everything unless they stopped all development to focus on just stability. The product is too big, too complex, too unwieldy, and too bloated. I was always allocating 16GB RAM to Jetbrains, and often had it sit there consuming 1000% (!) CPU. Zed chews up a couple of gigs at most, and rarely uses much CPU. There's a tendency for editors to get bloated as they evolve. This certainly happens with Atom. I'm really hoping Zed will stay lean.
Either is fine by me, but I have zero interest until one of those things happen.
RESPONSE EDIT (clear and intentional rate-limit evasion): It's not paranoia; I'm not concerned if they "take" my content. I write open source, CC0 licensed software. I couldn't give a fuck about anyone doing literally anything they want to do with the code I write. Literally take it and call it your own, for all I care. If I can return the interrogation, why are you so concerned with ownership? Why was that the first place your mind jumped to? Paraphrasing: where is the need for this insane level of "if you've got nothing to hide..." submission?
Like I said: it's about trust. They want me to trust them. You, for some inexplicable reason, seem really upset that I won't trust them. Neither of the parties have given me any reason to trust them. Just insistence that I should, if I want to use their product. And while I entirely agree with that rationale, I don't understand why I get clapbacks for stating that I intend to adhere to that agreement entirely! Won't use the product because they won't give me what I need to trust them. That should be making everyone happy, right? I know I'm happy with the arrangement, at least.
Aside from all that, and far more relevant to my actual comments: another user pointed out the repository where they DO offer the transparency that I'm asking for. So your entire hissy fit is moot when you could have just pointed out that I was wrong in my understanding of what they offered. I mean, that would have gotten in the way of your sycophantic leap to the defense of the company I was so hellaciously attacking, so I understand why a good capitalist bootlicker might not think of that first, but at least now we both know!
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?
Plus, you can just packet sniff and see if they're doing anything AI related when the switch is off.
You still haven't even answered my question.
Why are you so concerned by there being AI code in the editor that you need this level of trust?
The point I have been attempting to make is that needing this level of trust and verification when you can't even explain or articulate what you're worried about at all is weird and confusing and unjustified, and I've been trying to get you to explain what you're so concerned about.
Required trust/verification should be proportional to what you're concerned about happening.
> Paraphrasing: where is the need for this insane level of ... submission?
It is not an "insane level of submission" to point out that trusting that a toggle does what it's supposed to do, when the possible consequences are basically nonexistent — as I said, without a connection to an AI provider set up, where is it going to be sending your data? No one is doing AI inference for free; and now you've even knocked the concern about code ownership out, so again, what really is the concern? — is probably reasonable.
Also, this is not remotely the equivalent of the old "if you've got nothing to hide" canard, because "if you've got nothing to hide, you've got nothing to worry about" is a justification for surveillance of your personal life; this is literally not doing surveillance. Also, even worrying about surveillance needs to be justified with an actual explanation of what negative things you expect to happen; with surveillance that's obvious; with this, it is not, which is why I'm asking you to explain it.
> Like I said: it's about trust. They want me to trust them. You, for some inexplicable reason, seem really upset that I won't trust them. Neither of the parties have given me any reason to trust them. Just insistence that I should, if I want to use their product. And while I entirely agree with that rationale, I don't understand why I get clapbacks for stating that I intend to adhere to that agreement entirely! Won't use the product because they won't give me what I need to trust them. That should be making everyone happy, right? I know I'm happy with the arrangement, at least.
I'm annoyed, because your standards for trust are insane when you can't even articulate what you're trying to guard against. You're getting clapbacks not because you won't use their product if you don't trust them, but because your standards for trust are extremely high and you seem to be completely unable to explain why to any degree, instead just getting irrationally angry at me for just asking you why.
> So your entire hissy fit is moot when you could have just pointed out that I was wrong in my understanding of what they offered
You're very clearly the one having a hissy fit lol.
> I mean, that would have gotten in the way of your sycophantic leap to the defense of the company I was so hellaciously attacking, so I understand why a good capitalist bootlicker might not think of that first, but at least now we both know!
Ah, and now we get to the personal attacks. Of course.
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?
RESPONSE EDIT (clear and intentional rate-limit evasion): hey thanks! that changes things quite a bit! Now I'm curious how well Claude could vibe-code the AI out of that project. Mostly just for the irony of it, but I can't deny that it would probably be faster than doing it myself - at least to start.
anyway, I appreciate the simple and straightforward solution without getting side-tracked by how my ignorance and misunderstandings made you feel.
everything gets a warning until the app has some minimum count of installs
Unless the devs sign their app
Is it targeted for IDE people or vscode users, or is there something else i can benefit from coming from vim?
Sorry, can't help it, every time I see Zed i think of the ZFS Event Daemon
Regardless of everything else being said, does anyone actually still do it? I thought this practice more or less died with Eclipse, where proprietary editors often shipped as Eclipse plugin and then the ops of a company that bought the plugin would have to configure it for every developer, set up with home-made automation etc.
I haven't seen anything like this in the last ten years at least and assumed the practice was dead, and, instead, developers were allowed to use whatever editor they want, while committing editor-specific (configuration) files, for example, would be considered a noobie mistake.
Or was I just happily living in the world where the long arm of the corporate was unable to reach me?
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...
It is a problem though, the GPU apis are pretty terrible. But with such large modern displays it feels important to have a GPU accelerated path. Maybe sticking with OpenGL would be better.
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.