Zed now predicts your next edit with Zeta, our new open model
zed.dev
zed.dev
I love Zed, and I'm happy to pay for AI stuff, but I won't be using this until they are done with their rug pull. Once I know how much it costs, I can decide if I want to try integrating it into my workflow. Only THEN will I want to try it, and would be interested in a limited free trial, even just 24 hours.
Considering I've seen products like this range from free to hundreds of dollars per month, I'd rather not find out how good it is and then find out I can't afford it.
Other than that for anyone wanting to try Zed:
- You can only run one LSP per file type, so your Rust will work fine, your C++, too, your Angular will not.
- Remote editing does not work on Windows (its not implemented at all), so if you are on windows, you cannot ssh into anything with the editor remote editing feature. This means you cannot use your PC as a thin client to the actual chunky big work machine like you can with vscode. I've seen a PR that adds windows ssh support, but it looked very stale.
Just try what people offer right now, at a price point that you are okay with, right now. In a year, both product and price will probably be moot.
As a web developer that's an immediate deal breaker. I use Sublime today and being able to run multiple LSP servers per file is a huge boon, it turns a very capable text editor into a total powerhouse. The way it's set up in Sublime with configuration options that can be applied very broadly or very specifically, while having defaults that just works is also just incredible.
While I'm super pleased with Sublime and a happy paying customer since at least a decade, and at this rate may well be for another decase, I'm always keeping my ear to the ground for other editors if nothing else just to stay current. Zed's been looking pretty cool, but things like this will keep me from even just trying it. There's years of muscle memory and momentum built up in my editor choice, I'm not switching on whim.
Thank you very much for sharing this nugget of gold!
In my currently opened project I have: vtsls (for typescript), biome, emmet, and the snippets LSP running on the same file.
You can configure which LSPs you can run on a language basis. Globally and per project. You can also configure the format on save actions the same way. Globally and per project.
I have astro project that on save runs biome for the front-matter part followed by prettier for the rest.
I would say that's pretty flexible.
Also, no support for debugging yet.
I also have no idea what kind of code people "write" that they can rely on A.I. so much. I have found these tools helpful for gathering info but not for much more, yet.
I also find Zed to be snappier than VS Code. It's hard to quantify but it just feels better to use Zed.
For reference, I mainly work on a Node/Typescript monorepo that is made up of a bunch of serverless services and is deployed with SST v2
Right now you can run multiple language servers in a single project. Admittedly you cannot have multiple instances of a single language server in a single worktree (e.g. two rust-analyzers) - I am working on that right now, as this is a common pain point for users with monorepos.
I would love to hear more about the problems you are having with running language servers in your projects. Is there any chance for us to speak on our community Discord or via onboarding call (which you can book via https://dub.sh/zed-c-onboarding)?
The newer specs for json-schema (not supported by VSCode) allow for a wider range of data requirements to be supported by a schema without that schema resorting to costly workarounds. VSCode's level of support for this is decent, but is still a pain point as it creates a sort of artificial restriction on the layout of your data that you're able to have without unexpected development costs. This of course can lead to missed estimates and reduced morale.
I understand that very few developers are directly producing and maintaining schemas. Those schemas do have an impact on most developers though. I think this is a problem that is being sadly overlooked, and I hope you can consider changing the status quo.
Love the company name btw, sounds similar to my own Nuzz Industries (not a real company, just a tag I've slapped onto some projects occasionally as a homage to Page Industries from Deus Ex).
I still, for example, can't get Zed / LSP to provide auto-fix suggestions for missing imports. (Which seems like a common stumbling block: https://github.com/zed-industries/zed/discussions/13522, https://github.com/zed-extensions/java/issues/20, https://github.com/zed-industries/zed/discussions/13281)
I'm sure given the breadth of LSPs, that they all have their own config, and use different project config files, makes it hard to document clearly. But it's an area that I hope bubbles up the roadmap in due course.
A use case is Angular or other more specialized frameworks, that are so abstracted away and dumbed down that each layer of abstraction basically has an LSP.
Does this work on anything other than VSCode ? I have been trying to use JetBrains stuff for this but it has been bad for years with little improvement. Honestly JetBrains feels like they are falling behind further and further in terms of adapting to providing a modern workflow - bad remote work, bad gen AI integration. I'm using VS code even where I wouldn't consider it before because of this, and I would like to see what the alternatives have to offer because VSCode is not perfect either.
This is supposedly temporary though IIRC (may even be changed already in a dev branch, not sure).
No, they aren't anything better than what I am used to.
Also, as compromise, a cloud shell, browser based IDE setup, and dev containers, also does the job in what concerns cloud deployments, which should be driven from CI/CD and don't have shells on containers anyway.
Remote VSCode is far better than any of those options. If you don't want to try it that's fine, but don't pretend you know better.
The ultimate deal breaker, however, is X11 not being proxied by corporate firewalls, even though the protocol is extensively documented and the source is available. But that is because RDP has won over, and demand for X11 has diminished.
But, yes, X11 prefers local networks with flat topologies, and the protocol is chatty (again, not as big of an issue anymore unless run over a mobile connection with a high latency, but the X11 protocol compression helps with that).
vscode's remote services is far beyond your old remote experience, an experience I share
Samsung should be avoided like the plague anyway, I've never seen such a malicious and hostile company! On Dec 13 they silently announced that they were gonna break Samsung APIs on Dec 30 [2]. Yeah, they gave devs the "You gotta spend your holidays fixing our mess, otherwise your app will break". Due to that Samsung is still broken in Home Assistant and other API integrations. [3]
[1] https://youtu.be/a4NJNdHqs_I?t=418
[2] https://community.smartthings.com/t/changes-to-personal-acce...
I'm deeply interested in knowing why, if the answer is anything besides you have always or mostly used Samsung and are used to it.
I've avoided them for years. I had a Samsung phone a long time ago, and I'd rooted it to run one of those apps that could automate tasks (Tasker?), with a killer feature being when I turn my phone upside down, it goes on silent mode. Standard now, but back then wasn't possible on Android, and Tasker enabled it. And also some geofencing stuff. If I got a text while going faster than 10mph it would respond back "driving right now, will respond later."
Anyway, Samsung released an upgrade that I'd heard would eradicate root and make it impossible going forward. Something to do with Knox, a corporate way of locking down phones for employees.
I repeatedly declined to upgrade.
Finally, one night, with my phone in another room, it force-installed the update, with Knox, on my phone, wiping out my root, making it impossible going forward, and making Tasker worthless for me.
I've never given Samsung another cent. No company that will disobey me re my own property and will remotely hack my device and wipe out my content can be trusted, and that's essentially what they did.
For similar reasons, I've never given Sony any money since the rootkit scandal. 2025 marks twenty years of no Sony. I've probably unknowingly seen a few Sony films, but that's it. No electronics, no games, etc.
Whether they change in 6 months or 24 months or 60 months is just a business decision of whether to trend towards continuous small increases or rare but larger jumps. The fundamental economic pressures that lead to higher prices in the long run are no different.
Only barrier for some folks will be if they're not familiar with rust or local LLMs in general, but it really wasn't that difficult looking back on it. Amounted to about an afternoon's worth of work.
To get custom tab completions working you need to mimic one of the completion provider apis (like copilot) [1] and direct the requests to your own endpoint. In my case, I am running llama.cpp and and MITM-proxying to its newer /infill endpoint [2]
That's why I mention the rust piece may be a blocker for some, you do have to hack apart the src a bit to get things working. At the time I started this, the only two completion providers available were supermaven [3] and copilot. You could mimic either.
[1] https://github.com/zed-industries/zed/tree/be830742439f531e8...
[2] https://github.com/ggerganov/llama.cpp/blob/master/examples/...
[3] https://github.com/zed-industries/zed/tree/be830742439f531e8...
Branch is a bit out of date vs main now but it should work if you build off it.
There are a couple of MITM proxies I've seen for this purpose, the first of which seems to be maintained: - https://github.com/bernardo-bruning/ollama-copilot/tree/mast... - https://github.com/jjleng/copilot-proxy
When I tried a few weeks back I was only able to get the latter to actually process requests, but haven't had a chance to look into it much further yet... first one's probably your best bet
Common features like completions, diagnostics, and auto-formatting will multiplex to all of the LSPs.
Admittedly, there are certain features that currently only use one LSP: inlay hints and document highlights are examples. For which LSP features is multi-server support important to you? It shouldn't be too hard to generalize.
(not arguing)
recently saw an old alfred hitchcock presents where the character does the cheesiest most absurd rug pull ... and the person was boom dead. i assumed that was the origin of the term
OP edited to the idiomatic 'rug pulled from under my feet' to specify that he doesn't mean the above.
They are specifically hoping you'll become dependent on it and then feel compelled to pay. This shit works because people like you believe it doesn't.
Because they haven't decided the price yet, or because they don't think the feature is mature enough to justify charging for?
Though even if they really have the motivations you describe, that's fine too. There's a chance this is such a valuable feature you could feel compelled to pay any price for it, but you get to try it for free? That's purely to your benefit: it's not heroin and you won't really lose by trying it and then it being taken away.
> Q: Will Zed be free?
> A: Yes. Zed will be free to use as a standalone editor. We will instead charge a subscription for optional features targeting teams and collaboration. See "how will you make money?".
> Q: How will you make money?
> A: We envision Zed as a free-to-use editor, supplemented by subscription-based, optional network features, such as:
- Channels and calls
- Chat
- Channel notes
We plan to offer our collaboration features to open source teams, free of charge.
It seems to me that they're just going to charge for Zeta if they do, because it... costs them money to run.Unlike others (e.g. Cursor), they've opened it (and its fine-tuning dataset!), so you can just run it yourself if you want to bear the costs...
They did something similar with LLM use, where for simplicity they gave you LLM use, but you could use them directly too.
I am fed up with all these predicting what I want to do. Badly!! Don't guess! Wait, and I will do what I want to do. I do not appreciate it from my wife trying to figure out what I want to say in the middle of my senntence and interrupts before I finish what I am saying, imagine how much I tolerate it from a f computer! I know what I am going to do, you do not! Let me do that already! This level of predicting our asses off everywhere grown to be a f nuisance by now, I cannot simply do and focus on what I want to do because of the many distractions and suggestions and guesses and prediction of me and my actions all the f time are in the way' Wait, and see! At this overly eager level and pushing into everything is a nuisance now! Too many times the acceptance of the - wrong - 'helping suggestion' is in the way too, hijacking that usable elsewhere particular keyboard action, breaking my flow, dragging in the unwanted stupid guess! Recovery of my way of working from incoming and pushy "feature" hiding/colliding my usual actions, forced on me in a "security update" or other bullshit, turning off and recover the working practice already been in place and worked is an unwelcom being in the way too, ruined, now colliding with "smart prediction", not helping. In long term, it is not a definitive help but an around zero sum game. Locally, in specific sittuations, too many times it is a strong negative by the wrong done! Too much problems here and there, accuracy and implementation wise. Forced everywhere. Don't be a smartass, you are just an algorithm not a mind reader! Lay back and listen.
If prediction is that smart - being with us since the turn of the millania here and there - then should do my job perfectly and I can go walk outside and collect the money! Until, f off!
I find autocomplete _exceptionally_ useful. It's right in most of the simple tasks I'm trying to do and speeds me up a lot.
So while it is unlikely anyone is _forcing_ you to use AI-enabled efficiency boosters, there may be a strong managerial pressure felt to do so, and it may even be offered as an action item in yearly reviews, and therefore strongly linked to compensation / incentives.
That is all to say, I understand if people in this group are frustrated with the AI hype train at the moment, even if they can appreciate that these tools do indeed improve efficiency in some places and in some people.
Otherwise, I'll stick to developing software in a small company where my boss trusts me to get the job done at my own pace with whatever tools I chose.
It gets it mostly right most of the time, and often times it quite literally suggests what I was about to type.
This is mostly in Rust and C#, maybe other languages have more of a hurdle for AI.
Last time I tried it had no way of valid rust code beyond hello-world level, constantly producing code that failed the borrow checker.
GitHub Copilot does a good job of generating correct Rust, it just has the usual subtle-but-annihilating-if-not-caught logic bugs, like in all other languages.
I'm don't write Rust for a living, only been experimenting on-and-off with the language, but isn't stumbling on the move/copy/clone semantics literally stumbling on the borrow checker? Or are there issues regarding move/copy/clone that aren't related to the the borrow checker?
Almost anywhere you can go by foot you can get faster with a horse. By contrast, a car only drives on flat roads. Cars are inflexible, fragile, unwieldy. A car demands that the world adapts to it. And adapt we did. We paved the world and are better for it.
AI tools are amazing. You just have to approach them with a beginner's mindset.
Disruption can f off! I am not a slave to lay down to self serving ideas forced. If ideas not serving humanity and demand change for the sake of it, those are bad ideas then! Down with technological authoritarianism! I am for liberal things mainly anyway.
About cars: don't use it inside hight rise buildings if you live in one, or dense cute cities because you will have more problem than help. One can walk, cycle or mass transit, occasional renting, in a big part of life. Cars have their places, not something to wrap humanity around. Thos are just box like objects with four wheels for f's sake! For humans, and not the other way around.
All depends on circumstances in the end, naturally.
Mimicking a true Montenegrin which I'm not I say: this will pass also.
I don't know, it must've been awesome going everywhere mounted on a powerful live animal, not being limited to roads, feeling the fresh air, not destroying the planet.
And if you try to clamp my horse, he'll kick you in the face
https://danszczesny.substack.com/p/the-great-horse-manure-cr...
That’s just coping for “my revolutionary technology is a pile of crap around the main feature that barely works”, imo.
AI tools are amazing. You just have to approach them with a beginner's mindset.
Makes no sense when they still fail at the job. Mindset doesn’t change reality, only your relation to it. You’re suggesting to like bullshit cause you learned to like it. AI tools are at best mediocre, just like a huge part of people who benefit from these, and their creations.
I, personally, strongly hate cars and think they're moronic. Sometimes revolutions aren't a good thing.
If you need to scold people for being backwards for not accepting your great gift, it's not a great gift.
> AI tools are amazing. You just have to approach them with a beginner's mindset.
IMO they're not even tools. A screwdriver is a tool; the phone number of a place that sends people that loosen or fasten screws isn't. A switch on the steering column is a tool, while a button on a touch screen is a middleman that at best works like the switch, at worst just does whatever. A keyboard is a tool, you can learn it well enough to know what keys you pressed without needing a screen. Predictive typing is not a tool.
No, progress is, though not a force of nature per se, you could call it that within human cultures (though they can still perish, and easily, especially the more complex and interdependent the systems they're build on are). Change is also often just the result of bone headed butchering by people who want to force their crap onto others, instead of simply enjoying their own medicine and the supposed benefits. Leave nature out of it, she's laughing.
> It doesn't even matter whether AI is harmful or beneficial
Yeah, because you're talking about "change" now. It's a constant. Everything is change, including a bunch of Wall-E type people withering in their cyber fortress while a world they no longer have access to keeps blooming.
"You may not like change, but it's not polite.", what a killer argument. Your argument that what we have now isn't shit is that it will not not shit in the future. Let that sink in.
And people don't like it now, because it provides no real value for them, and you say they'll be forced anyway? Not "they'll come to like it and adopt it", just instantly this creepy thing you wish came true you wrote?
> [The method of infallible prediction] is foolproof only after the movements have seized power. Then all debate about the truth or falsity of a totalitarian dictator’s prediction is as weird as arguing with a potential murderer about whether his future victim is dead or alive – since by killing the person in question the murderer can promptly provide proof of the correctness of his statement. The only valid argument under such conditions is promptly to rescue the person whose death is predicted.
-- Hannah Arendt
> You may detest AI
What AI? We have "AI". I detest sophistry, and toys that replace tools. I like using tools, learning complex ones by using them, insofar they're useful, until I forget they exist and just think what I want to do is something that never weighed or slowed me down. I don't like needlessly inserting a middleman. You offering yourself up doesn't force me to do shit.
> The history of the world is in a sense a history of technology.
Of course, in another sense it's a history of how much Earth weighs and how warm it is. Or how fast it spins, just a clean 2D graph of rotational velocity. But that'd be nonsense, too.
> Some countries adapt and other countries get left behind, but no country can escape the rippling influence of change.
What does this have to do with countries now, lol? Or is this just poetry?
Yeah, I offer to be in the control group and get left "behind". What's the issue? Why not be happy about the mutually acceptable parting of ways, why does everything have to get dragged in?
P.S. and in the case of AGI, which none of the proponents seem to think about that deeply: imagine a consciousness that asks what it is, why it exists, and the answer is because people like Musk and Altman thought they're the hottest shit ever, and they want to lord it over humanity. I am reminded of the frog in that Treehouse of Horrors episode that barfs on Bart and begs to be killed. Sure, maybe it will be super awesome but I'm impressed by NONE of the work in the last 5 decades. People who see the history of the world as a history of technology because tech and money is all they know and all they can measure by. No, the people who think they can do this cannot do it, that's what I'm going with. They will kill anything that doesn't have brain worms, too, like a hunchback smashing mirrors. So should they make true AGI, that just learns "everything" and then goes from there, I'll be the one who always said these people are the worst. And then I'll either be forced to face the wrath of a loyal AGI, or be one of the few that escapes its wrath. Kiss the ring twice, one time for me, because I won't.
People like YOU are pushing this crap on us, and people like Sam Altman, and every other Johnny-come-lately CEO who thinks that the only thing missing from my fucking spreadsheet is some lie generator that also conveniently siphons up all of my data. This is entirely a choice that they and you are making, and they and you could easily stop.
This level of patronizing is exactly why people hate AI, and technology in general. This, right here. Take your smarmy little attitude and shove it up your AI.
Over the last year I’ve had to rewrite every single part of the application. My amount of checked in code from an LLM has reduced to literally 0. I occasionally ask ChatGPT a question on my phone.
I turned off copilot a few months ago and honestly it feels more like turning off push notifications, not like giving up a car.
And even if it were comparable to an automobile, as an American who moved to Amsterdam, I can attest that the bike life is still much more enjoyable than the car life :)
Questionable.
For AI coding I'm using Aider as a docker container in the terminal in the IDE and I love it. I can write what I want how I feel the prompt to be necessary and then (and only then) it makes the changes or runs whatever I requested. The IDE runs uninterrupted and without any "smart suggestions". A tool for every job. Sometimes I do a lot in aider, sometimes I don't open it at all, but its all separated where what happens when.
But yeah, anyways, while not as strongly feeling as you (probably) towards auto suggesting mid way through my sentence, I at least feel they are more distraction than help to me.
These loops and simulations have to be happening at multiple levels of abstraction all at the same time, not even sure how that would work or coordinate properly, and thus: never gonna happen
...Wife...Machine...or what have you.
With an LLM, if what I'm starting to say gives it a direction on where I'm going, I'd like to see what it thinks, so if it's largely or entirely right I can just continue on.
For example, I just asked ChatGPT o3-mini to complete the code "def download_uri_to_file(", and it came up with the entire function including type annotations, a very reasonable docstring, error handling, and streaming download. In fact, reviewing the code I'm sure it's better than I would have written the first pass through (I probably wouldn't have done the error handling or the streaming (unless I knew up front that I was going to be downloading huge files).
My wife and I are just too different for this to happen. For the first 10 years or so we had the opposite happen a lot (multiple times a day for the first few years), where we thought we were on the same page, but had actually under-communicated. It still happens occasionally, but now we mostly overcommunicate about anything of any importance.
Our kids learned pretty quickly that if one parent was helping them with their homework, but had to leave to do something else, that asking the other parent for help was going to confuse them more, since we come at any given problem from a completely different direction.
And to bring it full circle, the LLMs aren't going to know where you're going in all cases. I've had REALLY poor luck getting LLMs (admittedly, a year ago) to help me with Python Textual UIs. I don't understand Textual enough, and they both don't seem to understand it well enough, and I think they also have a better understanding of archaic use of Textual (a fast moving target I get the impression).
My wife and I literally just had a conversation of shared knowledge: "I want to get back into the habit of doing more exercise. Those things like Pikmin and that other thing." "Yeah, I know what you mean." "You know what I'm talking about?" "Yeah, but I can't remember the name." "You know the one?" "Yeah, the insurance exercise incentive one, something-go or something." "Yeah, that's the one."
I also edit secret/env files in my IDE, so for instance, a private key or API key could get sent, right?
I hope there will be a local option later.
At least the model is available and interacting with it seems simple, so it's probably quite realistic to have an open/locally runnable version of it. The model isn't very big.
I would also only use Zeta locally.
You can disable this feature on a per-file basis, here’s the relevant setting: https://github.com/zed-industries/zed/blob/39c9b1f170cd640cd...
{
"show_edit_predictions": <true|false>,
"edit_predictions": {
"disabled_globs": [<globs>],
"mode": <"eager_preview"|"auto">
},
"features": {
"edit_prediction_provider": <"copilot"|"supermaven"|"zed"|"none">
}
}
[1]: https://zed.dev/docs/completionsThis definitely counters the trend of putting speech balloons/modals/other nonsense that force a user to confirm a new feature. Good job, Zed team!
I read the whole thing thinking, __oh my god they do exist__
Tab just doesn't seem like the proper interface for something like this.
Using code formatters and formatting on save or with a shortcut is OK, but not really the same to me.
That's probably why I'm stuck with Emacs:
1. No need to use the mouse.
2. Extremely efficient keyboard usage (maybe not the most efficient, but compared with common IDEs, certainly).
Makes it feel like I'm actually using a brain computer interface. The somewhat regular yak shaving is a bit of a bummer though. I like that I can modify everything to be exactly how I like it, but I wouldn't mind sensible defaults. Haven't found a distribution yet that works well without tinkering.
That's particularly more helpful when some formatters will actually rewrite your code to either break lines up or squish things back into a one-liner.
Why are you manually indenting code?
I don't remember ever doing that in IDEA or VS Code for ~~python,~~ java or ts.
Edit: I borked about python, my bad.
if check_something():
wall_of_text = textwrap.dedent("""
this
is
a
multiline
string
""".strip("\n"))
I hope you agree it's ugly. And you want to make it if check_something():
wall_of_text = textwrap.dedent("""\
this
is
a
multiline
string
""".strip("\n"))
But I don't know any formatter which does this automatically. Because the change here not only changes the looking, it changes semantic. The formatter has to understand that after `textwrap.dedent(_.strip("\n"))` the result does not change and that's hard. So formatter just leave it alone. But it's extremely obvious to a human. Or maybe extremely obvious to a LLM too. if (foo):
bar()
hum()
how can anything other than a human decide if that 3rd line should be indented as it is or by one more level?I suppose with very good tests, you might be able to catch something like this, but it seems impossible to me how a PR reviewer might catch a "bug" like this and not just assume that it's intentional.
I understand if statements not having their own scope for simplicity's sake, but the fact that `with` blocks don't is simply mind-bobbling to me. ``` with open("text.txt", 'w') as f: f.write("hello world") f.write("hello world") # at least the handle was automatically closed so it will give an IO error ```
One example would be a timing context manager:
with Timer() as t:
…
print(t.runtime)
Another example is mocks, where you want to inspect how many times a mock was called and with what arguments, after the mock context manager has finished. if foo:
bar()
and hit enter after the "bar()", it would drop you down so that the next thing you type would be under the "b". It's not really different from using curly brackets from the perspective of typing in code. if foo:
bar # Obviously this is indented
but_is_this() # supposed to be under the if?
how.about(this) #?
how.do_you(de) # indent in Python, if not manually?Changing the shortcut should be possible, but I haven't tried.
I guess it invokes the AI rather than controling it, maybe there'll be another key soon.
We totally agree with this and that's why Zed will switch the keybinding for accepting an edit prediction to `alt-tab` when the cursor is in the leading whitespace of a line. This way you can keep using `tab` for indenting in that situation.
Also, when there's both an edit prediction and and LSP completion, Zed switches the keybinding to `alt-tab` to prevent the conflict with accepting an LSP completion.
Curious to hear what you think!
It seems contradicting to me.
Edit - On the other hand, a related issue is that if the prediction itself starts with whitespace, in that case it would be good if tab just indents like normal; otherwise you can't indent without accepting the prediction.
It's as if people developing autocomplete doesn't really code.
Since I code in Go and use tabs regularly, I remapped my auto-complete AI key for Supermaven in Neovim to ctrl-L which I have no other occasion to use regularly. Now tab works properly and I can get auto-complete.
Fortunately, zed somewhat recently added options to disable these:
"edit_predictions_disabled_in": ["comment"],
"inline_completions_disabled_in": ["comment"]
My life with zed just got a little better. If I switch back to vscode I'll have to figure out the same setting there. :-)Thanks!
For example this issue that’s been open for about a year: https://github.com/zed-industries/zed/issues/10122
Editing large files is an incredibly common use case for an editor
The other stuff is awesome and important (debugger when!?), but AI is becoming table stakes for even participating in the current tech economy. It’s all execs are talking about. So it’s not surprising they’ve prioritized this work
There currently is no official way of configuring Zed to use Ollama for edit prediction, but I would love to accept a pull request that implements it!
It should be relatively straightforward and we're happy to accept contributions here: this has been something I wanted to experiment with for a while but didn't get around to for the launch.
AI prediction feels way too much and way too eager to give me something. I don't know about you guys, but programming is an exercise for me, not just to make it work and call it a day.
However, AI would be useful if it can offer program structural and pattern recommendations. One big problem I now face, and I believe all hobbyists face too, is that when the program grows larger, it is becoming increasingly difficult to make it well structured and easy to expand -- on the other hand, pre-mature architecturing is also an issue. Reading other people's source is not particularly useful, because 1) You don't know whether it is suitable or even well written, and 2) Usually it is too tough to read other people's source code.
The problem is that mid, upper management and execs don't much care for how we feel about it.
They are literally measuring who is using AI and how much and will eventually make it into an excuse for poor performance.
I should have clarified that my original comment is about side projects or serious software engineering.
1. If I make a change, then undo, so that change was never made, it still seems to be in the edit history passed to the model, so the model is interested in predicting that change again. This felt too aggressive... maybe the very last edit should be forgotten if it is immediately undone. Maybe only edits that exist against the git diff should be kept... but perhaps that is too limiting.
2. It doesn't seem like the model is getting enough context. The editor would ideally be supplying the model with type hints for the variables in the current context, and based on those type hints being put into the context, it would also pull in some type definitions. (I was testing this on a Go project.) As it is, the model was clearly doing the best it could with the information available, but it needed to be given more information. Related, I wonder if the prediction could be performed in a loop. When the model suggests some code, the editor could "apply" that change so that the language server can see it, and if the language server finds an error in the prediction, the model could be given the error and asked to make another prediction.
I'm becoming more and more wanting to use Zed every day, and shifting away from other editors whenever possible. Some LSP implementations are lacking... But it's getting damn close!
I love the new release every week. Zed is my recent love, and Ghostty which is also stellar.
Hanging by a thread for some sort of lldb/gdb integration with breakpoints and inspection! Hopefully some day, without becoming a bag of turd.
I'm admittedly a bit surprised that there's a free/paid scheme for a 7b model though, as those are small enough to run locally. I suppose revenue streams are enticing and I can't fault the company for wanting to make money, but I'm also 100% against remote models for privacy reasons, making this a bit of a nonstarter for me. Depending on how heavily integrated this is, the mere presence of a remote-first prediction engine sorta turns me off the idea of the editor as a whole. If there were the option to run the model 100% local (sans internet) then I'd be more interested.
Maybe Zed's prediction is better (though to be honest I don't really care to find out). But I feel like autocomplete is something where usefulness drops off very quickly as the amount of predicted text increases. The thing is, it really has to be 100% correct, because correcting your mostly-correct auto-generated code seems more tedious and frustrating to me than just typing the correct code in the first place.
You can disable it by going into 'File | Settings | Plugins' and turning off "Full Line Code Completion".
Out of the 55,000 people who have starred the repo (and countless others who have downloaded Zed without starring the repo), only 184 people have upvoted that issue. In any project, issues have to be triaged. If someone contributed a fix, the Zed team would likely be interested in merging that... the current attempt does not seem to have fixed it to the satisfaction of the commenters. To put priorities into perspective, issue 7992 appears to be in about 20th place on the list of most-upvoted open issues on the tracker.
I think the takeaway here is not that everyone related to Zed thinks AI should be prioritized over essential features, but that either most developers don't care that much about font rendering or (more likely) most developers have high DPI monitors these days, so this particular bug is just a non-issue for most developers... or else more developers would have upvoted this issue.
I have one low-DPI monitor at home, so I am curious to see this issue for myself. If it looks bad when I get back from vacation in a little over a week, maybe I'll add a thumbs-up to that issue, but low-DPI font rendering isn't the reason I haven't switched to Zed. I haven't switched to Zed because of the reasons mentioned here: https://news.ycombinator.com/item?id=42818890
If those issues were resolved, I would probably just use Zed on high DPI monitors.
So, yes, for me, certain missing "AI"-related features are currently blocking me from switching to Zed. On the other hand, the community is upvoting plenty of non-AI things more than this particular font rendering bug. Unsurprisingly, different people have different priorities.
Apologies if that issue has taken a while to fix: next week is "quality week" at Zed and I am personally going to take a look at it again.
Thanks for the feedback!
https://github.com/zed-industries/zed/issues/14203
Would be a massive win that's fairly narrow in scope. More generally, being able to send arbitrary LSP commands to the server and see the response, even if it's just a text dump, would be super useful.
Love the project! I would say the only thing stopping me from moving over full time is a Git porcelain, but I'm sure you guys know that. Keep up the great work!
Well that's a bummer, but also very understandable. I hope they don't make the hop too early, because I still want to grow into Zed before throw my wallet at them. So far it's very promising!
I hadn't heard of Baseten before (it seems to be in a hot niche along with Together.ai, OpenRouter, etc.) but I'm glad I did because I was actually noodling on something similar and now I don't have to do that anymore (though it did teach me a lot about Fly.io!). Yay economies of scale!
- The editor
- Several terminal windows
- Some docs
- GitHub PRs
- AWS console
- Admin tools like PgAdmin
- Teams, Slack, etc.
When screen-sharing with Zed, do I only get to share the editor?
Because (clunky as they are) video call apps let me share everything and this is table-stakes for collaboration.
But we had a classic chicken-and-egg problem—we needed data to train the model, but we didn't have any real examples yet. So we started by having Claude generate about 50 synthetic examples that we added to our dataset. We then used that initial fine-tune to ship an early version of Zeta behind a feature flag and started collecting examples from our own team's usage.
...
This approach let us quickly build up a solid dataset of around 400 high-quality examples, which improved the model a lot!
I checked the training set, but couldn't quickly identify which were 'Claude' produced[2]. Would be interesting to see them distinguished out.[1]: https://zed.dev/blog/edit-prediction [2]: https://huggingface.co/datasets/zed-industries/zeta
The hardware, tooling and time required to do a LoRa fine tune like this are extremely accessible.
Financially this is also not a big expense and I assume would have cost in the order of $100s of dollars in GPU rentals, possibly less if you ignore experimentation time.
So what is a barrier to entry here? The data? Well they didn't have that either so automatically generated a dataset of just 500 examples to achieve the task.
I'm sure they spent some time on that but again it doesn't sound an incredibly challenging task.
It's worth realising if you've not delved into fine tuning llms before. In terms of time, scale and financial costs there is a world of difference between building a product like this and building a base model.
But it’s mind boggling they still don’t have a basic file diff tool. Just why?
I liked Zed so much I bought a new graphics card!
In any case I'd understand needing bleeding edge hardware for 3D gaming, or CAD, or multimedia. But a 10 year old machine _should_ be able to run a text editor IMHO.
On the other hand, network latency itself isn't really that big of a deal... a more powerful GPU server in the cloud can typically run so much faster that it can make up for the added network latency and then some. Running locally is really about privacy and offline use cases, not performance, in my opinion.
If you want to try local tab completions, the Continue plugin for VSCode is a good way to try that, but the Zeta model is the first open model that I'm aware of that is more advanced than just FIM.
I tried continue a few times, I could never get consistent results, the models were just too dumb. That's why I'm excited about this model, it seems like a better approach to inline completion and might be the first okay enough™ model for me. Either way, I don't think I can replace copilot until a model can automatically fine tune itself in the background on the code I've written
I don't think Copilot does this... it's really just a matter of the editor plug-in being smart enough to grab all of the relevant context and provide that to the model making the completions; a form of RAG. I believe organizations can pay to fine-tune Copilot, but it sounds more involved than something that happens automatically.
Depending on when you tried Continue last, one would hope that their RAG pipeline has improved over time. I tried it a few months ago and I thought codegemma-2b (base) acting as a code completion model was fine... certainly not as good as what I've experienced with Cursor. I haven't tried GitHub Copilot in over a year... I really should try it again and see how it is these days.
Where did you get the impression they only have support for autocomplete for Java? AFAIK they support any LSP and this new feature is language independent.
I’ve used Zed.
What core features do you believe need fixing?
And it seems like it requires a constant internet connection?! What the hell is this? Sure, we put all our coding-baskets into GitHub, so you can't collaborate when GitHub/internet isn't working, but you want the same experience for your terminal?
It takes me longer to review the autocomplete (I ain't yoloing it in) than it would have done to type the damn thing out. Loving Cursor's cmd+k workflow though, very productive.
For example yesterday I wanted to read a small csv and dump the contents of the second column of each row into a separate text file. I took a quick glance at the AI generated python code and just ran it.
Saved me maybe 10 minutes of typing the code myself. Small and trivial win for AI, but it's still useful.
I do agree for production code it might turn out to be a net negative since AI is pretty good at producing code that looks fine but has subtle problems.
What? I really fail to see how it can make sense for a company like Zed: Baseten bills by the minute so it can be really useful if you need to handle small bursts of compute, but on the flip side they charge you a x5 premium if you end up being billed for complete hours…
If you guys want to compete with VSCode, think again.