![[recordings/2025-07-02T02-18-58-553Z.mp4]] My text editor habits have changed quite a bit over the past few months, namely due to the advent of Cloud Code and other command line coding tools. Currently, at this particular moment in time, it seems that command line coding is the most effective way to have AI write code for you, even more effective than apps like Cursor, which integrated into the IDE. This is probably subjective, but this is my sense, and I've switched over to using the command line almost exclusively. This is interesting because two features come to mind that I thought would have been very useful if not indispensable. - One is tab completion. You just hit tab and you get what you want. - The other is selecting a range of text and asking for something with that text. Some sort of refactoring or changing or filling in the method or whatever, but being able to identify a specific range of text. And the thing is, those features just aren't that useful for my current workflow. Admittedly, my current workflow is not the professional software engineer workflow at the moment. The workflow is mostly focused on side projects, and when I'm working on side projects, I can let the AI do everything. Doesn't mean it'll get it right, but there is no pressure to do any sort of manual coding. So what that means is that tab completion just isn't useful, because I'm not in completing tabs, I'm just asking and the agent is delivering. And text selection is similar - in order to select text, you have to be aware of the text, you have to be in the code, and again, if I'm just asking the agent genie for magical code output, then I'm not doing that. So the workflow is basically: ask the most capable agent you can find to get the work done and let it go to work. And in that world, or given this workflow so far, I've found it much more effective to simply use Cloud Code, or more recently, I've been trying Gemini as well, but mainly Cloud Code. Let's go to work. And as such, my needs that I have of my text editor are very different than they used to be. # Context + Feedback Loops **The current AI workflow** ![[recordings/2025-07-02T02-22-45-945Z.mp4]] I've found that AI can be almost unreasonably effective if you can give it the right context and give it a proper feedback loop. An easy example of this would be getting a project to compile. Maybe it's Rust, or maybe it's just getting your TypeScript types to pass. But either way, you have a really tight feedback loop. The agent will write some code, and it has an automated way to check its work. This doesn't mean that the runtime is going to do what you expect, but it does mean that the code is going to run most likely. This type of feedback loop is really powerful. You can also have, say, an API that the agent creates, and then the agent will itself go use curl to hit that API and make sure the output is as expected. In doing so, it can look at the log output from the server if there is an error, and it can also look at the return JSON from the API. This is another form of feedback loop, and with that loop, the agent can almost always get it done completely to spec. The code may be messy, you may not like the code if you read it, but the software will do what you asked it to because the agent has a feedback loop and it will just spin until the job is done. This is really powerful, and this is my current way of working with AI agents. Provide them the right context and provide them the right feedback loops. Command line agents are very powerful in this regard because they can simply run anything on your command line. They'll ask you first, but they can just run it, which means that they themselves are capable of giving themselves a feedback loop in many circumstances. They can even suggest ways to provide a feedback loop by, say: - running a linter - running a compiler - running a type checker, etc. What this means for text editors is that integrated editor features are less important. Seeing integrated diffs is less important. Ultimately, when you're doing AI coding, you want the software to work. And if the AI has a feedback mechanism to understand when it does work, then so do you. You will know that the software is working as expected. So a lot of the features you find in editors, including Cursor, including Zed, including plugins like GitHub Copilot, feel no longer necessary, or at the very least, have had their value decreased significantly. That being said, a text editor can still provide a lot of value. We're gettin back to the basics. # Zed is a fast text editor ![[recordings/2025-07-02T02-26-08-703Z.mp4]] Zed seems to have pivoted heavily into being an AI agent-driven text editor, but before that, and still, their claim to fame was being very fast. And having a fast text editor is still amazingly powerful in terms of features. It's an amazingly powerful feature to have. It makes the experience of perusing code so much more enjoyable when everything is snapping. And in that regard, Z seems to shine. It is definitely snappier than VS Code. VS Code is fine, so I may end up moving back to VS Code and away from Cursor, but not away from VS Code in general, since Cursor is a VS Code fork. But Z is different. And it is much faster. So far, I quite like the experience. There are a few things that I don't like, but most of them have to do with configuration or customizability. Zed isn't a web browser like VS Code, and it has a different extension API - a less powerful API, as far as I can tell. And so extensions are not as capable of customizing the software as they are with VS Code. This is unfortunate. But so far, I've been happy enough with a very fast text editor to stick with it for the past few days. I likely have a more definitive verdict within a week, but for now, I'm using it and I'm enjoying it because it is fast. The features that I really want are: 1. Speed 2. The basic text editor features you expect, like highlighting text, language support, etc. Zed is very capable in this regard. And to my delight, its Vim emulator mode so far has been totally tolerable. I've written about Vim emulators in the past and how I think embedding Vim in the program rather than emulating it is the right way to go. But so far, Zed's emulation has proved satisfactory. # Next $EDITOR It will most likely be one of the following: - Zed - VSCode (plain, few plugins) - `nvim`(!) - Yes considering this, since its barebones, has good LSP support, and of course has best-in-class VIM support The fact that the list isn't simply Cursor is highly surprising to me, and quite pleasant. I'm happy to have an AI agent as a standalone tool so my editor can focus on being best in class at text editing.