Intro#

I’ve been seeing a few folks talking about Amp recently, which is an agentic coding tool built by Sourcegraph, the folks who had built Cody. I have worked with Cody before and had a great time with it before it got overshadowed by Windsurf/Cursor etc, so I wanted to give Amp a try as well. Now, this is NOT a full fledged review but only my first hands on impressions from implementing a mid sized feature over the weekend. Thanks to Quinn (CEO of Sourcegraph/Amp) who gave me a bunch of extra credits to try it out.

I wanted to build a dashboard for my Amazon Price Tracker Telegram bot so I can see various analytics about it (Product price history charts, products being tracked, various stats around them, etc) and maybe even open up it up to public at some point. This served as a good one to try out Amp with because it was a decent sized feature while also not starting from scratch so it would give me an idea of how Amp plays with existing code bases. (Spoiler Alert: This page was part of the outcome, with absolutely 0 handwritten code)

Here are a few things I noticed.

The Good Stuff#

  • Context is King! (and smartly managed): One of my biggest worries with AI coding tools is hitting context limits and I find myself managing it manually myself by summarising and starting new conversations when it looks like things are going sideways. Ampcode handles this brilliantly. It shows you your current thread’s (what Amp calls a set of messages in an unbroken conversation) context usage info and even warns you when you’re nearing the 80% mark. It also provides you options to compact the thread (which summarises it), drastically reducing the context usage (In my case it went from 80+% to a mere 6%) and continue the conversation in the same thread or create a new one. This is a huge win for long, complex interactions IMO. Although, one thing they can improve upon is to up the context window a bit. Amp shows a 168k context window size. Compared to Cursor, it is good for the normal mode which has a 120k context window but smaller compared to their MAX mode which has 200k. Context Window Info in Amp Context Window reaching limit in Amp Thread summarisation in Amp

  • Gels well with existing codebase: It was good at picking up the tools and tech stack I’m using. Without me explicitly telling it, it knew that it’s going to add the feature to an existing codebase, figured out what dependencies I’m using and even though it was trying to build the dashboard separated out from the main bot, it made sure to pick the options that fit perfectly with the existing code. This is more about the model than Amp itself, but I’ve had cursor trip out often on this so much so that I had to create global rules around the tools and dependencies I was using.

  • Staying on track via a persistent To-Do list: Amp keeps a persistent TODO list at the bottom of the chat about the things it figures out that it needs to do in the current session. This might seem small but it’s incredibly useful as I think it remained on track because of this even while generating a bunch of things in a single shot. This also kept it on track to follow the plan.md file I had asked it to implement from and it always looked at the right file despite me having 2 files with same name in the codebase (one for the bot and one for the dashboard) and me not referencing the file directly. TODO List in Amp

  • Thread Sharing/Online Access: The thread messages (both input and output) can be accessed online and can even be shared with your team or publicly. This is a feature that I had asked Windsurf guys many times because I think it just provides an easy way for me to look up my past interactions or use for learning from others. Online/Sharing access for threads in Amp

  • The Beep!: A small but useful quality-of-life feature in Ampcode is that it beeps when it needs input from you or when it’s done with a task. I don’t have to constantly keep checking the editor to see where it’s at.

  • Use anywhere: A major issue I have with windsurf/cursor et al is that I’ve to use their editors. While Amp can be used in vanilla vscode, or cursor/windsurf, or CLI, or jetbrains IDEs etc.

  • Handling cli output: A particular issue I’ve run across in cursor a few times earlier was handled well by Amp. I use shadcn-vue for my frontend and often the models look for toast component instead of the recommended sonner with the shadcn-vue cli failing out with this recommendation/deprecation notice. Now cursor almost always does two issues (irrespective of which model I used): 1. It tries to implement the toast module itself instead of looking at the recommendation and installing that instead. Amp did it well and installed sonner instead after the first failure. 2. Even after installing sonner, cursor botches up the imports and uses Sonner imports instead of the Toaster it exports. Amp made the same mistake, but the next step is where it shined. Cursor, when it comes to know about this issue, tried often to fix the sonner module itself to export Sonner from it. But Amp correctly fixed the client module code to import Toaster instead. Now, Amp says that it provides mostly raw access to the models. I suspect that the issue with cursor et al might be the other things they layer on top of the model but not sure. Another nice thing about Amp is that it shows where it will run the command. E.g. see the image where it shows it will run the pip install in dashboard/api folder. Handling CLI output in Amp CLI Context in Amp

Mixed Feelings#

  • Web Browsing: I had some minor issues crop up with getting tailwindv4 to work (Most models struggle with this including in cursor) so typically I point out the url to tailwind v4 installation and cursor is able to pick it up and fix accordingly. Amp fixed it as well after I gave it the url, but I was not really sure if it took the exact url I gave or did a search via keywords because there wasn’t a way to @ refer a url like you can in cursor. Ultimately the issue was fixed straight away but it will be useful to understand if we can ask Amp to browse specific urls.

  • Model Choice: Another Amp principle is that it does not have a model selector and it will choose the best models itself. In practice, this worked well for me for this task as I focused not on trying different models and took off that cognitive load from my mind. But I will need to use it more before I form a more concrete opinion on this aspect. Looking at my dashboard it seems that Amp used Claude Sonnet 4 for my work. I’m not sure whether this means they will select “a” best model for all the work for everyone at a point in time, or whether they will select different models for different kinds of tasks (seems the former).

  • Doc Indexes: Cursor provides a way to add links to custom documentation that it can index and use while coding for you. Amp does not. Now, I am not giving it as a straight negative for Amp is because in practice I see cursor often not taking that documentation into account at all (probably context limitation? And potentially all the docs clutter the context even when not needed so it performs worse even at other things?). For this task, I didn’t see any issues with Amp. Will form a better opinion on this with more usage.

Niggles it can improve upon#

  • UI Placement: By default, Amp chat window sits on the left side of VS Code, mixed with other tabs of code/git/extensions etc. While you can drag it to the right, it felt a little unwieldy because Copilot Chat usually occupies that space. I was able to minimize copilot chat and get it to use the space well just like cursor but it was just a bit of effort which everyone might not see how to right away. Now, this may be out of hands for Amp because it is an extension compared to cursor which forks the editor itself. But I’d take being able to use Amp anywhere compared to the minor effort I had to do to place it right.

  • Folder References: I was able to @ refer files but could not do so for folders. A place where it caused me issues was that I wanted it to create a file under docs\dashboard folder, but mentioning just dashboard resulted in it creating a new folder dashboard under root itself. This could potentially lead to some file managment headaches.

  • Easy access to Cost: I can see my running costs in the dashboard on Amp’s website. But it will be useful to see that within the editor/thread (Either the cost incurred on this thread, or remaining credits)

Cost#

It roughly cost me around $10 in credits to get this work done. If I was using claude 4 sonnet in MAX mode in cursor, I’d probably be paying ~$12 or more because like I mentioned above I typically see a few issues in cursor which were taken care of by Amp so I’d likely use a bit more tokens there. Plus Amp pricing for model usage does not have any markup while Cursor has a 20% markup. If I was using the normal mode in cursor, it’d likely end up a bit cheaper (probably around $7-8 or so) but with a lot more effort on my part.

Verdict#

For me, Amp turned out to be pretty great and I will try to use it more over the next month to confirm which way I will lean for the long term but it is, at the very least, a pretty great competitor to Cursor and outshines it in several parts.