An (Incomplete) Guide to AI Coding Assistants and Agents (Winter 2024)
TL;DR
I like Cursor+Aider, but Github Copilot is an easy place to start. Whatever tool you use, use it with Sonnet-3.5 (new).
Background
I’ve spent the past year testing every AI coding tool I could get my hands on. Writing code is challenging, and there’s a lot of tedious, repetitive work in engineering that I’d rather automate.
All engineers are familiar with traditional autocomplete - it’s a good starting point for thinking about AI coding. Adding AI to autocomplete is straightforward, so there’s no reason not to start now. GitHub Copilot is an easy entry point, but most editors now support Claude 3.5 Sonnet for tab completion, and it will seriously improve your developer workflow. Once you’ve tried it, you’ll never go back to traditional autocomplete.
Once you get used to smart autocomplete, you should skip single-file chat editors and go straight to multi-file editors or coding agents that can understand and modify code across multiple files.
Quick Reference Guide
Full IDEs
Coding Agents (IDE-Agnostic)
Models
Detailed Reviews
Cursor
Cursor is a standout tool in the AI coding space. As a fork of VS Code, it offers excellent tab completion, effective code chat and editing features, and a capable multi-file agentic editor. It’s likely the most popular product in this domain: 100% of my AI consultant friends use it. Its VS Code base can sometimes make it feel bloated and slow. However, the availability of numerous VS Code extensions is a significant advantage. Recently, Cursor acquired Supermaven, which is a lot of people’s favorite autocomplete.
Github Copilot
Github Copilot model was neglected for 2 years and started to get stale, but now you can use Sonnet. Mostly does tab complete, but they just rolled out chat with your code and multi-file editing to compete with Cursor.
Zed
Zed is a new editor from the team that built Atom. Focused on speed, but supposedly has great tab completion. I like their way of managing prompts, and I think they have more AI features coming soon. I haven’t used it myself, but I hear their tab complete is very good.
Codestory Aide
I haven’t actually used Codestory Aide, but their agent does well on the SWEBench leaderboard.
Windsurf
Windsurf has a bunch of hype, I see people using it and happy with it. Designed for huge codebases and enterprise customers. Their Twitter thread of non-technical users building things with Windsurf is pretty impressive. Their UI for interacting with the coding agent is pretty nice. I haven’t used it myself, but I hear the autocomplete is worse than Cursor.
Bolt
Bolt is a browser-based IDE focusing on instant project creation and collaboration. Unique for its ability to spin up full development environments in seconds right in the browser. Features AI assistance powered by Claude and integrates with GitHub. Their instant environment creation and sharing is impressive - just grab a URL and you have a full dev environment. I have not tried this yet myself, but the demo looks compelling. I like the idea of good cloud IDEs, but have never found one I liked.
Aider
Aider is my favorite coding agent. Fully open source, you just need your OpenAI / Anthropic API keys. I love their leaderboard too, which demonstrates the power of Sonnet 3.5.
Cline
I haven’t actually used Cline, but I like the design. Built around Sonnet and includes visual debugging and web browsing (based on Sonnet’s core capabilities). Sonnet is the most capable model, so it makes sense to me to have a purpose-built tool that maximizes Sonnet’s power. Cline is the top app on OpenRouter by a HUGE margin, so I’ve been meaning to try them out. They have good reviews from my AI engineer friends.
OpenHands
OpenHands is another fully open source agent. I’ve heard good things and they top the SWEBench leaderboard. I’ve never used it though.
SWE-Agent
I couldn’t install SWE-Agent, and its code ability seems worse than the other tools.
Manicode
Manicode is the first coding agent I tried. Easy to install and configure but it didn’t work. It’s probably improved a lot since then.
Continue
Continue is a newer entry focused on seamless IDE integration and multi-file code understanding. Features natural language code editing and custom command creation. Gaining traction in the developer community. I have not tried this yet myself.
Sonnet-3.5-New
Sonnet-3.5-New is far and away the best coding model, and the one I use with all of the above tools. No other model matters, don’t even consider them.
Qwen/Qwen2.5-Coder-32B-Instruct
Well, one other model matters. Qwen/Qwen2.5-Coder-32B-Instruct is the best open source coding model. Run it locally on your laptop with LMStudio if you don’t have internet access or are working on highly sensitive data. It runs all right on a CPU if you have ~64 GB of RAM. Large local models tend to run best on Macs, because Macs have very high memory bandwidth. You want to use the highest precision possible for coding models, which is 34GB for an 8-bit quant and 64GB for the full floating-point 16 model. You can easily get a Mac with this much RAM, but they won’t fit onto a 4090.
Maximizing Your Results
So long as you’re using a tool that leverages Claude 3.5 Sonnet, you’ll get solid results with any of these coding agents. However, as I discuss in my article on prompt engineering techniques, the way you interact with these tools can dramatically impact their effectiveness. Clear prompts that encourage step-by-step thinking often yield better results. There’s a whole community out there of system prompts for Cursor and other tools.
Finally, these tools work best with well-structured codebases. Strong typing, modular organization, and comprehensive automated tests that provide clear failure signals will help both AI tools and human developers work more effectively. I’ll be expanding on these best practices in a future article, but the key takeaway is that good software engineering principles become even more important when working with AI coding assistants.