First impressions of Claude Code after using GitHub Copilot

Background
I’m a long-time user of GitHub Copilot as a professional programmer, as my employer gave me access when we first started trialling its use in our company. I’ve used it mainly through Rider, which is the IDE I generally prefer, although I have used Copilot in both Visual Studio and VS Code as well to a lesser extent.
A week or two ago I was given access to Claude Code as well, so I’ve been using it fairly heavily for some upgrades I’ve been working on. It’s not a piece of work I’ve chosen to be representative of my normal workflow, it’s just what I’ve happened to be working on, but it’s been interesting to compare and contrast Claude Code with GitHub Copilot.
Here are my initial thoughts (which are, of course, all subject to change over time).
Planning
The single feature which has most impressed me has been Claude Code’s plan mode. Plans are very thorough and clear, and the default behaviour is to clear context before implementing the plan, which makes sense to me. It’s nice to have written plans without the overhead of managing all the markdown files containing the plans, as Claude does it for you. They are just saved to disk, so you can find the plans and copy them elsewhere if you want to.
Claude does take a long time to write plans, so in that sense I suspect it's slower than Copilot. It results in high quality stuff though. This may also be down to a difference in which model is being used, I haven’t really paid attention to the models too much. I tend to default to Claude Sonnet 4.5 in Copilot to try and balance a powerful model with a low quota usage. Claude Code is using Opus 4.5 most of the time, so this difference may well be the model rather than the method of interacting with it. I suppose the more significant difference is how my model selection has been shaped by the defaults built into each product, and the way that usage quotas are determined. Even if this is an unfair comparison when looking narrowly at what each product can do with the same model, I think it’s a fair comparison of how I have actually used the two products while trying to get work done.
I love the commit messages which Claude Code writes. Again this may be because it defaults to using Opus rather than Sonnet, but they’re very clear and contain a lot of detail. I’ve already benefited from this, searching my commit history for 'Google' when a Google maps integration broke, and immediately finding the commit which broke it.
UI
The biggest surprised for me has been how much I enjoy the Claude Code UI. I should prefer Copilot. I like having everything in a single IDE and I generally prefer GUIs to CLIs, yet I still prefer Claude Code to Copilot. Admittedly Copilot doesn’t have the best support in Rider, Microsoft have clearly prioritised adding features to Copilot in VSCode rather than in their Rider plugin, but this has still been a surprise to me. Claude Code somehow seems well thought through in way that Copilot doesn’t. I would struggle to articulate the specific features which have given me this impression, but it’s a surprisingly strong impression. Copilot feels a bit clunky, whereas Claude Code feels enjoyable.
I think one advantage of Claude Code (and presumably the other agentic coding CLI tools) is that they are consistent regardless of what IDE a developer prefers, whereas Copilot is very different in VSCode / VS / Rider (and presumably also other IDEs), depending on where Microsoft are up to with implementing new features in the relevant plugin. I get the impression VSCode leads the pack in terms of getting new copilot features, then other IDEs may or may not get the same features later, whereas a CLI tool gives everyone access to new features at the same time.
When I want to copy the agent’s output and paste it elsewhere, I’ve found that it’s easier to copy from Claude Code than the Copilot plugin in Rider. It seems like very simple functionality, but the formatting always seems to get messed up when copying from Copilot in Rider (and I would like a button to copy a response with a single click, though I appreciate that in agent mode it would be a little ambiguous exactly which messages should be included).
Claude Code is good for working with long prompts. The Copilot UI in Rider struggles with this, and normal keyboard shortcuts for navigating around a long piece of text don’t always work as expected. Claude Code has the shortcut CTRL+G to open the prompt in a separate text editor without disrupting the workflow at all, giving you full access to whatever text editing tooling you’re used to while writing prompts. I have found this very helpful. The same shortcut works when reviewing a plan produced by Claude Code, so you don’t have to read it in the terminal window or manually copy the plan elsewhere.
I prefer Claude Code’s approach to approving file changes and command line tools. Claude Code has 3 modes — plan mode (in which no files can be edited), auto–edit mode (in which all project files can be edited), and default (in which the user is prompted to approve edits to files). There’s a keyboard shortcut to cycle through them, making it very easy to allow Claude to make extensive changes when you want it to. Copilot (in Rider) doesn’t seem to have the option to auto–approve file edits, and the nearest setting I could find is to auto–approve after a short delay. As far as I can tell, you have to open the settings window every time you want to turn this on or off, which introduces much more friction than Claude Code.
Similarly, Copilot (in Rider) manages tool approval via the settings window. To be honest I’m not super confident with how (or if) it works, I’ve set up various approvals but still get asked for approval for those tool calls. Claude Code makes it really easy to approve specific commands without breaking flow, as the approval is done inline with the rest of the conversation. By default this is saved to .claude/settings.local.json in the directory where you are running Claude, but it’s also possible to save these settings to the .claude/settings.json in your user directory if you want them to apply to all directories (e.g. if you’re happy for claude to run git log in one project, you’re probably happy for it to run git log in all projects).
Copilot wants you to approve changes to files, but it’s already made the changes so they may have been picked up by external tools. You might build on top of them but the codebase is in a weird limbo state until you accept/reject the changes. This is disruptive to the workflow, and can cause code to be reverted unexpectedly if the approval/rejection comes a while later. I think it also causes Copilot to get confused when running git add or git commit sometimes. I’ve used auto-approve mode for Claude Code when I’m ready for it to make changes, and this has been a much smoother workflow.
Copilot has a nasty habit of opening multiple terminals in Rider, especially if it’s not getting the results it expects from the commands its running. It seems to like opening a new terminal to ensure it has a clean slate, but it doesn’t tidy up after itself by closing them again. Claude Code, of course, already runs in a terminal, so when it executes commands it doesn’t need to open a terminal elsewhere, keeping everything clean. Ironically, one of the advantages of Claude Code is that, being a CLI tool, it’s easy to run multiple instances in different directories. I’ve found this helpful for asking questions of a codebase without opening it in an IDE, something which Copilot can’t do.
Possibly the only thing (so far) that I’ve found I prefer in the Copilot UI is the ability to add files to the prompt. I find the UI somehow more intuitive than using @ in Claude Code.
Frustrations
As I suspect is common to pretty much all LLM tools, Claude Code is sometimes prone to going off on strange tangents and being useless. My impression is that it does this less than GitHub Copilot, but still more than I’d like. It can waste a lot of time ‘thinking’ before reaching a useless conclusion.
Also, when I use Claude Code via windows command prompt it keeps creating nul files. If that happens to you, there are instructions for deleting them at https://techblog.timhilton.xyz/deleting-nul-files-created-in-error-by-claude-code.
Concerns
These are my main concerns about the impact of using Claude Code:
Will I stop learning? This is a broader concern about the use of LLMs generally, but I think it’s even more pronounced for Claude Code. The workflow around planning then implementing is great, but it doesn’t have a space for learning. Of course, you can still use Claude Code in others ways for learning, but it’s not baked into that (otherwise very helpful) workflow. I found that Copilot, lacking an obvious workflow, is easier to ask questions while in the flow of making other changes, blending a mixture of learning and implementing at the same time.
Is it too fun? Will I waste time playing around rather than doing useful work? There’s no denying that Claude Code feels to me like magic in a way that GitHub Copilot doesn’t, and I have no idea why that is!
As with all LLM tools, I am wary of the danger that the tool will feel fast but actually take longer than doing the work myself.
Conclusion
I am aware that Claude Code isn’t the only CLI for agentic coding, but I’ve not played around with Gemini CLI / Copilot CLI / any others, so I don’t know how much my experiences are related to Claude Code itself, and how much they apply more generally to CLI agents.
I think the fact I’ve been working on upgrades recently has played in favour of Claude Code. AI tools are generally most impressive when working with a topic which is well documented online, but about which you don’t know too much. That gives much more room for them to impress you than a topic in which you are already well–versed. Some of the upgrades I’ve been doing have been in this territory, so I suspect my opinions may change as I use Claude Code for a more diverse set of tasks over time, some of which fall more within my technical comfort zone.
Having said that, so far it’s been a great tool that I’ve enjoyed using, and it has replaced GitHub Copilot as my go–to coding agent. I don’t know how my AI use will evolve, but I may use Claude Code for planning and implementing bigger changes, Claude web view or GitHub Copilot for more general research and learning, and Copilot for quick inline things in my IDE.
If you’ve used Claude Code, how do you experiences fit with what I’ve described above?



