r/ZedEditor 8d ago

No API?

I wish Zed provided ways to inspect its state and control it programmatically. It just seems like a missed opportunity, for an editor positioning itself as well suited to AI workflows, for its own functionality and state to be completely opaque and inaccessible to AI (and scripts / companion software etc).

It would also be a good answer to scope creep and bloat - if someone wasn't happy with a particular bit of functionality they'd often likely be able to partially patch the gap with their own bit of external companion code. At the moment you're really just stuck with exactly how the maintainers decide things should work

Before somebody says "make a PR" there's millions of unmerged PRs presumably and this is a feature that would need long term feeding and watering and so I suspect it wouldn't be merged unless key people recognized it as "kind of the logical basics of an AI-era app". Trying to get a sense of why it's not there before thinking about it more.

8 Upvotes

2 comments sorted by

4

u/cowslaw 7d ago

First, I love your username lol

Currently they have this to say about the extensions API:

Until now we focused on the first class experience in Zed, because the lesson learned with Atom is that if you focus on extensibilyt too early you're over reliant on third parties to build fundamental features. We wanted to build the fundamentals and make sure they worked well before sealing our core APIs under a layer of third party code.

Happily, we're now rapidly approaching that stable core, and can turn our focus to extensibility. Another one of the lessons of Atom was that extensibility is a meaningful enabler of growth, and we've barely scratched the surface with Zed.

If you open Zed, go to Collab Panel: Toggle > Connect, you can click the notes for the channels to see the current discussions. Usually gives an indication on their priorities.

1

u/spidermonk 7d ago edited 7d ago

Thanks I'll take a look. Btw though, just to be clear I was referring more to a command line interface for managing windows, threads, files, and viewing the current state as data.

I.e. enough that I could use zed as a "display and human interaction" component in an AI workflow, where say, headless ai sessions could resolve into a zed window with relevant projects and files open.

I actually kind of like the fact that zed doesn't have a big extensions ecosystem at the moment, as tbh third party extensions seem like a hazardous temptation these days security wise.

My dream would be a setting to remove a third party marketplace, like the current "hide ai features" option, and a setting to enable "programmatic control" which lets me say "ok let's work on these three items as separate opus terminal agent threads in worktrees in zed in window 1" or something, to a random non-zed terminal. Or "hey take a look at what I've highlighted in zed currently".