The Rundown

In recent years we’ve seen Copilot, Cursor, MCPs and other tools augment the developer experience. Cursor is a fully-fledged IDE with AI integrated. To use Cursor, you pay a monthly subscription fee to get their code editor. Their subscription includes a limited amount of AI requests per day.

GitHub Copilot functions similarly except it is not locked to a single editor. I have GitHub Copilot running in Emacs. The experience is similar to Cursor: I can either chat with an AI model in the sidebar or use the code suggestions by pressing tab.

“Agents” were recently introduced to Copilot, Cursor, and their competitors. Agents are a reference to autonomous systems that perform actions on behalf of the user. This works by taking requests and calling tools (e.g. search_web) when the AI model determines its necessary. MCPs are the standard for providing tools to AI models.

From personal experience, TypeScript is Copilot’s best friend. I believe the type annotations and popularity of the language are why it does so well. Because of this, Copilot is much less helpful for a language like Elixir.

Code Generation

The key selling point is that Copilot can generate code for you. This is a time saver in some cases, and I’ve found it to be helpful.

My favorite way to use Copilot tab-completions is to never accept the suggestion, but rather read it, understand it, and then write it myself. This way I scrutinize each character before committing it to the codebase.

My favorite way to generate a full codebase is to provide tools that read/write files (desktop-commander MCP does this). To create a larger project, task-master-ai can take an idea, break it down and direct an AI model to work through it step-by-step.

ChatGPT as a Fallback

I’ve found that ChatGPT (or other chat models) are a great fallback when Copilot doesn’t know what to do. Sometimes it’s easier to have a conversation with ChatGPT than trying to get the right code out of Copilot.

I’ve also found that ChatGPT is naturally better at explaining things than Copilot.

ChatGPT Template

Every time I bring code to ChatGPT, I use the same template. I noticed that if you include the question at the end, it might miss the question entirely if the code snippet is long enough, so placing it at the beginning seems to work best.

I need this thing done with this tool, can you generate the code for me? Here's my current code:
 
```
<include some code here>
```

Note

ChatGPT has a similar issue to GitHub Copilot where it likes to make up things if it doesn’t have enough knowledge on the subject. Keep this in mind.