It's 2025, and LLM-based developer tools have become mainstream, not a novelty. I've been gradually using these tools for coding tasks outside of work. I enjoy using them in two popular ways: for vibe coding, which is all about those fun, low-stakes projects, and in responsible AI-assisted programming. In that latter setting, I take the time to review every line of code it generates, as I have higher security and quality requirements for certain tasks.
Here are the tools I commonly use these days:
- Co-pilot chat in VS Code: I use it mostly to ask questions about the code base I have open in the editor and for general technical questions regarding the task at hand. Inline chat by highlighting code snippets or adding @workspace as context to the chat works well with my flow. The 50 chat requests/month on the free plan are enough for me. Although it comes with access to both GPT-4o and Claude 3.5 Sonnet models, I'm mostly sticking to GPT-4o here.
- Cline: This is one of the first VS code extensions I tried for AI-assistance, and I liked it enough to stick with it. There are a few features I enjoy most in Cline:
- The separation of plan/act modes helps me to mentally track the progress of the task.
- The pane showing token costs helps to track the API costs in dollars as well as tokens.
- The diff view clearly shows the proposed changes, so I can approve/disapprove as needed. After the task is completed, I will have a sense of which files of the code base were modified.
- Claude code: It was somewhat surprising to see a big model provider like Anthropic getting into the application layer by providing an agentic CLI tool for development tasks. I'm sure they have some good reasons to build a CLI tool without going on the IDE extension route like the others. The installation, setting up, and working with it were very smooth. I like that they keep adding new features to it.
- repomix and llm tool: I use this combination to understand code bases I'm delving into for the first time. I use repomix to first generate an LLM-friendly representation of the code base and then ask LLM to generate an architecture summary of the repo like this: cat repomix-output.xml | llm -m gemini-2.5-pro-exp-03-25 -s 'this file contains all the files in the repository combined into one. provide architectural overview as markdown' | tee architecture.md
Based on the number of input tokens sent to the model, I can clearly see that Cline is a bit more verbose in its prompts than Claude Code. But I guess the additional context helps because I noticed Cline was slightly better when handling complex tasks. So my usage pattern is to first try the task with Claude Code and, if it fails, throw away the generated code to start from scratch with Cline.
In terms of the models, I've moved from Claude 3.5 to Claude 3.7 Sonnet, and I'm paying for the API tokens as needed. Based on some quick experiments via their web interface, I'm also considering moving to Gemini 2.5 Pro (gemini-2.
Tools that I want to start using more:
- OpenHands: I've heard a lot of good things about it since OpenDevin, but I didn't get the time to try it out.
- Zed: With me trying out Rust development, I wanted to use Zed for my development with all the hype surrounding it. But I could not get into the flow with it.
- Warp: Same as with Zed, Warp sounded amazing on paper. But I kept going back to the plain old terminal. I should give this another chance.
- files-to-prompt: I want to use it instead of repomix, but could not get it to work with UV.
- Cursor, Windsurf, and others: Cline is working well for me for now, but I should try these out to see what's new with them.
- Ollama: I'm eager to integrate all my tools with a locally hosted model! Unfortunately, the models I've found so far for my hardware (MacBook Air M3 16GB) haven't quite met my needs for coding tasks. I'm really looking forward to that amazing future. If you have any suggestions for models that would work well for me, I'd love to hear them!
PS: I also use Grammarly Premium. I thought I would include it in dev tools because I write a lot in English while coding (in code comments and documentation, and these days, mostly as prompts to the LLMs). So, grammar and spell checking all of this prose is important.