Skip to content

Adding "Copilot" menu for users who already uninstalled Copilot is deeply offensive #237819

@mcclure

Description

@mcclure

Long ago, I installed VS Code, and there was a "Copilot" extension. I uninstalled it immediately. I do not want to use Copilot, I do not want Copilot on my computer, I do not want to use software that is capable of integrating with Copilot. I want that trash completely off my computer.

Yet today I opened VSCodeยน and found a new menu:

Image

After poking around, I discovered I could disable it with a new checkbox.

Image

But that is not good enough for me.

There are two problems here:

  1. Those of us who have already uninstalled Copilot have already said no to Copilot. We should not have to say no again. This is the worst thing about Microsoft software these daysโ€” having to disable the same features over, and over, and over, as VPs get more desperate to juice metrics and software updates re-enable things we've already disabled. The checkbox should have been off by default for people who don't have the chatbot plugin installed, and for new users uninstalling the plugin should automatically uninstall the Copilot extension. You should respect our consent. Respect our humanity.

  2. Although I've disabled the Copilot menu, I am unsatisfied because my copy of VS Code still contains the Copilot menu code. Previously I could remove all Copilot code completely by simply uninstalling the Copilot extension. Now, there's this little bridgehead of Copilot on my computer, inactive (until you enable it again) but still there. I want the infection gone completely.

My "expected behavior" is that you should remove the Copilot menu from VS Code and move the code that adds the menu into the Copilot extension. Or, to put it a different way, if you're going to put explicit Copilot support code into VS Code proper rather than quarantining it in the removable extension, then I personally will uninstall VS Code and switch to VS Codium, and you will have N-1 users. My policy is that I do not use software that can integrate with an AI chatbot. I will tolerate AI chatbot integration only if it is an extension that can be fully removed, as in iTerm2, Android Studio or (until the update this morning) older VS Code. I have already ditched SwiftKey over this, I'm avoiding Windows 11, and I am in the process of ditching Firefox (Firefox's "AI" integration works similarly to the new Copilot menuโ€” there is an AI chatbot interface which is always present in the code, but it doesn't do anything until you install an AI pluginโ€” that's not good enough. Even having the extension point present is too much: My complaint here is about moral rejection of something I consider harmful and repulsive, not about the actual behavior of my computer.)

This is a waste of time. I had work to do this morning and instead I'm having to clean corporate malware off my computer. If this is how you behave then VSCode is no longer a free program, it is something I am having to pay for with labor to keep the AI bugs out

  • VS Code Version: 1.96.2 ("user setup")
  • OS Version: Windows 10 19045.5247

Steps to Reproduce:

  1. Open VSCode

ยน Before seeing this change, I had been on a non-C# project for two weeks and using an IDE other than VSCode. So maybe the update I'm objecting to here is older than today.

Activity

vs-code-engineering

vs-code-engineering commented on Jan 14, 2025

@vs-code-engineering

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.96.3. Please try upgrading to the latest version and checking whether this issue remains.

Happy Coding!

mcclure

mcclure commented on Jan 14, 2025

@mcclure
Author

Thanks, I ran the update sequence, I am now using 1.96.3 ("user setup") and I still see the settings option in the screenshot above. To the limit of my ability to test, 1.96.3 and 1.96.2 are identical in the above-described regard.

albertosantini

albertosantini commented on Jan 14, 2025

@albertosantini

If you didn't "Sign in to Use Copilot for Free", installing "GitHub Copilot" and "GitHub Copilot Chat" extensions and authenticating in GitHub (GitHub Copilot Chat), you should not see any Copilot "element" in VSCode.

Also you need to enable Copilot in your GitHub settings.

Recap:

  • no extensions installed
  • no login into GiHtub
  • no GitHub settings enabled
    Here no Copilot (Free or Paid)

If Copilot is not installed, that element in the command center doesn't exist.

bpasero

bpasero commented on Jan 14, 2025

@bpasero
Member

@mcclure there should be a very prominent "Hide Copilot" action in that new menu you found:

Image

That one takes care of removing any UI pieces from VS Code.

Unfortunately we have no way of knowing that you previously had Copilot installed and then decided to uninstall, so we cannot really make a decision based on that, sorry.

shaedrich

shaedrich commented on Jan 14, 2025

@shaedrich

Unfortunately we have no way of knowing that you previously had Copilot installed and then decided to uninstall, so we cannot really make a decision based on that, sorry.

Well, maybe make it opt-in then

mcclure

mcclure commented on Jan 14, 2025

@mcclure
Author

If you didn't "Sign in to Use Copilot for Free", installing "GitHub Copilot" and "GitHub Copilot Chat" extensions and authenticating in GitHub (GitHub Copilot Chat), you should not see any Copilot "element" in VSCode.

Hm. I did none of these things, not a single one of them. Therefore, if what you say is correct, I conclude VSCode has a bugโ€ฆ?

If you look in this thread (this thread is about the addition of non-disable-able Copilot GUI widgets to Github, not Code, but several people in the thread talk about Code in addition) you will find multiple people claiming similar results to mine, and "andy3520" even posts a screenshot, which looks like the one I took.

(Also: I don't think my VS Code installation has any knowledge whatsoever of my GitHub/Microsoft account. Maybe I am wrong about this but I don't remember ever logging in to GitHub through VS Code, and I can't find anything relevant in a cursory review of my Settings. So I don't understand how VS Code could possibly know whether I've clicked the "Sign Up to Use Copilot for Free" button. I have used Live Code and downloaded plugins but used no other connected features, I don't even allow VS Code to manage my git repositories.)

there should be a very prominent "Hide Copilot" action in that new menu you found:

Good to know. However if you add a menu/button with a Copilot logo to my UI, the last thing I would ever do is click on itโ€ฆ

connor4312

connor4312 commented on Jan 14, 2025

@connor4312
Member

Thanks for the issue. As you found, the "Hide Copilot" action should take care of the command center and any other copilot-related views you may hit. We don't gate this behind account sign in, since in VS Code sign in is only triggered when you need it for an extension, and many users may never have signed in before if they never used certain features/extensions.

The addition of the copilot menu without the extension is an intentional change so that folks can discover the feature now that there's a free version available to all VS Code users. Feature discoverability is a perennial challenge in an editor that we try to keep uncluttered, and this icon is the entrypoint we have at the moment. It might change in the future, but the "Hide Copilot" action will hide the current entrypoint and should continue to work for any other variants in the future.

As the entrypoint is part of the OSS build of VS Code, you will find it in the sources of other forks and builds of the project, but if you want to expunge it from your machine you can search in the distributed build for the relevant code (or make your own build)

export class ChatCommandCenterRendering extends Disposable implements IWorkbenchContribution {
static readonly ID = 'chat.commandCenterRendering';
constructor(
@IActionViewItemService actionViewItemService: IActionViewItemService,
@IChatAgentService agentService: IChatAgentService,
@IChatQuotasService chatQuotasService: IChatQuotasService,
@IInstantiationService instantiationService: IInstantiationService,
@IContextKeyService contextKeyService: IContextKeyService,
) {
super();
const contextKeySet = new Set([ChatContextKeys.Setup.signedOut.key]);
const disposable = actionViewItemService.register(MenuId.CommandCenter, MenuId.ChatCommandCenter, (action, options) => {
if (!(action instanceof SubmenuItemAction)) {
return undefined;
}
const dropdownAction = toAction({
id: 'chat.commandCenter.more',
label: localize('more', "More..."),
run() { }
});
const chatExtensionInstalled = agentService.getAgents().some(agent => agent.isDefault);
const { chatQuotaExceeded, completionsQuotaExceeded } = chatQuotasService.quotas;
const signedOut = contextKeyService.getContextKeyValue<boolean>(ChatContextKeys.Setup.signedOut.key) ?? false;
let primaryActionId: string;
let primaryActionTitle: string;
let primaryActionIcon: ThemeIcon;
if (!chatExtensionInstalled) {
primaryActionId = 'workbench.action.chat.triggerSetup';
primaryActionTitle = localize('triggerChatSetup', "Use AI Features with Copilot for Free...");
primaryActionIcon = Codicon.copilot;
} else {
if (signedOut) {
primaryActionId = CHAT_OPEN_ACTION_ID;
primaryActionTitle = localize('signInToChatSetup', "Sign in to Use Copilot...");
primaryActionIcon = Codicon.copilotWarning;
} else if (chatQuotaExceeded || completionsQuotaExceeded) {
primaryActionId = OPEN_CHAT_QUOTA_EXCEEDED_DIALOG;
primaryActionTitle = quotaToButtonMessage({ chatQuotaExceeded, completionsQuotaExceeded });
primaryActionIcon = Codicon.copilotWarning;
} else {
primaryActionId = CHAT_OPEN_ACTION_ID;
primaryActionTitle = OpenChatGlobalAction.TITLE.value;
primaryActionIcon = Codicon.copilot;
}
}
return instantiationService.createInstance(DropdownWithPrimaryActionViewItem, instantiationService.createInstance(MenuItemAction, {
id: primaryActionId,
title: primaryActionTitle,
icon: primaryActionIcon,
}, undefined, undefined, undefined, undefined), dropdownAction, action.actions, '', { ...options, skipTelemetry: true });
}, Event.any(
agentService.onDidChangeAgents,
chatQuotasService.onDidChangeQuotas,
Event.filter(contextKeyService.onDidChangeContext, e => e.affectsSome(contextKeySet))
));
// Reduces flicker a bit on reload/restart
markAsSingleton(disposable);
}
}

and

registerWorkbenchContribution2(ChatCommandCenterRendering.ID, ChatCommandCenterRendering, WorkbenchPhase.BlockRestore);

68 remaining items

gjsjohnmurray

gjsjohnmurray commented on Aug 11, 2025

@gjsjohnmurray
Contributor

@sharma9012mahesh it should be sufficient to disable the GitHub Copilot extension.

samuelbsource

samuelbsource commented on Aug 13, 2025

@samuelbsource

@sharma9012mahesh it should be sufficient to disable the GitHub Copilot extension.

I think Copilot was permanently built-in to VSCode because I don't have that it installed and it's still showing in random places. Was Copilot created with AI? Because I've not seen so terribly designed "feature" in a long time.

kevlar700

kevlar700 commented on Aug 18, 2025

@kevlar700

I still cannot comprehend why we cannot have a simple option to disable all AI features. I feel forced to use AI stuffs that I don't want to use

Why is it called hide instead of disable?

shaedrich

shaedrich commented on Aug 18, 2025

@shaedrich

I still cannot comprehend why we cannot have a simple option to disable all AI features. I feel forced to use AI stuffs that I don't want to use

Why is it called hide instead of disable?

Martin Woodward (GitHub'S VP of Developer Relations) owes me an explanation to this very question since over a year: https://github.com/orgs/community/discussions/147437#discussioncomment-11870783

But since he knows that he can't answer it without admitting that this is intentional, he has kept quiet ever since.

kevlar700

kevlar700 commented on Aug 18, 2025

@kevlar700

I still cannot comprehend why we cannot have a simple option to disable all AI features. I feel forced to use AI stuffs that I don't want to use

Why is it called hide instead of disable?

Martin Woodward (GitHub'S VP of Developer Relations) owes me an explanation to this very question since over a year: https://github.com/orgs/community/discussions/147437#discussioncomment-11870783

But since he knows that he can't answer it without admitting that this is intentional, he has kept quiet ever since.

Interesting, especially as hide is such a non standard term to use in an interface compared to disable?

I'm sure "hide" and removing the extension is probably fine but still concerning considering things like this

https://www.linkedin.com/posts/georgzoeller_how-stupidly-easy-is-it-to-put-a-persistent-activity-7348770387016507394-qP-i?utm_source=social_share_send&utm_medium=android_app&rcm=ACoAADGgF38BQUYlr8q_AhdgN89TiFy8ksW5BBE&utm_campaign=copy_link

Zache

Zache commented on Sep 4, 2025

@Zache

I now have a "Copilot" option in the right click context menu with a submenu containing a single item: "Editor Inline Chat". Please stop!

kevlar700

kevlar700 commented on Sep 4, 2025

@kevlar700

I now have a "Copilot" option in the right click context menu with a submenu containing a single item: "Editor Inline Chat". Please stop!

Perhaps we can poison it via a source comment to delete itself ;-)

kevlar700

kevlar700 commented on Sep 4, 2025

@kevlar700

Thankfully I use Gnat Studio daily so it's only a very mild annoyance for me.

leus

leus commented on Sep 6, 2025

@leus

This Copilot thingy keeps getting enabled by itself. When it does, Intellisense for typescript stops working for me.

Please, PLEASE, don't embed copilot in VSCode. Such a dick move.

kaylynb

kaylynb commented on Sep 7, 2025

@kaylynb

I don't hate AI (I even subscribed to copilot before) but I also am frustrated about the copilot icon regularly re-enabling itself, along with other copilot features even when the plugin is uninstalled. Other AI plugins work fine without being bundled in the editor.

It's not just the icon: I have copilot uninstalled and have disabled all the copilot features I could find in the config. I've been evaluating another AI plugin and whenever I open my secondary sidebar copilot still shows up and then disappears when I switch to the other window in the secondary sidebar.

BlueCyro

BlueCyro commented on Sep 8, 2025

@BlueCyro

I've essentially stopped using VSCode altogether because more and more LLM features keep being added (let's be real, LLMs are not "AI"). I'm tired of the "Press CTRL+I to open a prompt" messages in my terminal, the copilot iconography & mentions I can't remove, and the panels that keep being added.

Not to mention that the settings for disabling these things are increasingly obscure and non-obvious to the end user. I really don't like this "slowly creep in the AI features and make them hard to turn off" strategy that's being executed.

Another editor - Zed - has an option to disable LLM assistant features & mentions of AI wholesale for those who don't want to interact with it. It's that simple - a single boolean to turn all of it off. I guarantee that if VSCode were to implement a "turn off all AI features" setting, it would regain a good standing with a significant portion of it's userbase, myself included.

gjsjohnmurray

gjsjohnmurray commented on Sep 8, 2025

@gjsjohnmurray
Contributor

I guarantee that if VSCode were to implement a "turn off all AI features" setting, it would regain a good standing with a significant portion of it's userbase, myself included.

Look out for a new chat.disableAIFeatures setting in 1.104 which is scheduled for release later this week.

isidorn

isidorn commented on Sep 8, 2025

@isidorn
Collaborator

Thank you @gjsjohnmurray

  • We now have a setting chat.disableAIFeatures that you can use to hide Copilot
  • There is still the title bar menu entry that takes the user to this setting (to make it discoverable)

This is documented in our upcoming release notes https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_104.md#setting-to-hide-and-disable-github-copilot-ai-features

locked and limited conversation to collaborators on Sep 8, 2025
removed
under-discussionIssue is under discussion for relevance, priority, approach
on Sep 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @leus@mcclure@wolfgang-noichl@Glandos@albertosantini

      Issue actions

        Adding "Copilot" menu for users who already uninstalled Copilot is deeply offensive ยท Issue #237819 ยท microsoft/vscode