microsoft / microsoft/vscode

Allow disabling Copilot harness built-in tools in Chat: Open Customizations

Open
#333,134 0 comments 0 reactions 1 assignee Claimed by @roblourens View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

Allow users to enable or disable individual Copilot harness built-in tools from:

**Chat: Open Customizations → Tools → Copilot**

## Current behavior

When the **Copilot** harness is selected, the Tools page displays the tools built into the Copilot runtime, but they are read-only. Users can enable or disable client-side and extension-provided tools, but cannot disable Copilot built-in tools such as `task`.

The built-in tools also do not appear in **Chat: Manage Tool Approval**, so users cannot require confirmation before they are invoked.

For example, the `task` tool can delegate work to a sub-agent. That sub-agent can use a different model and reasoning effort from those selected for the parent conversation. It may therefore change the expected review behavior, latency, and model usage without explicit user confirmation.

I've also tryed adding the following setting but it also cannot be used because `task` is not recognized as an approval-configurable VS Code tool:

```json
"chat.tools.eligibleForAutoApproval": {
"task": false
}
```

## Requested behavior

In **Chat: Open Customizations → Tools → Copilot**, allow users to toggle individual Copilot built-in tools in the same way that client-side tools can be toggled.

When a built-in tool is disabled:

- It should not be advertised to the model.
- The model should not be able to invoke it.
- The selection should persist at the user-profile level, consistently with the existing Tools customization UI.

For example, disabling `task` should ensure that work is performed by the model and reasoning effort selected for the parent conversation rather than being delegated to a separately configured sub-agent.

It would also be useful for Copilot built-in tools to appear in **Chat: Manage Tool Approval**, so users could choose between:

1. Enabled without confirmation.
2. Enabled but always requiring confirmation.
3. Disabled entirely.

The primary request is the ability to disable these tools from the existing **Chat: Open Customizations → Tools** interface.

## Motivation

Tool selection affects more than filesystem permissions. Built-in tools can influence:

- Which model performs the work.
- Reasoning effort and review quality.
- Premium request or model usage.
- Latency.
- Whether work is delegated to another context.
- Reproducibility of agent behavior.

Users should be able to control these capabilities explicitly, especially when the UI already presents built-in tools alongside configurable client-side tools.

Natural-language instructions such as “do not use sub-agents” are not an enforceable substitute for disabling the tool.

## Related issues

- #323371 documents that Copilot CLI built-in tools are intentionally displayed as read-only.
- #300411 requests model and tool parameters for `runSubagent`.
- #309540 requests user approval for more expensive sub-agent models.
- #333026 reports problems toggling tools in Manage Tool Approval, but Copilot built-in tools are not shown there in this case.

VS Code version: Code 1.135.0 (08d4889f9ec4a1685d257b9b95de036c8e1ce1e5, 2026-08-25T14:26:52Z)
OS version: Windows_NT x64 10.0.26200
Modes:

System Info

|Item|Value|
|---|---|
|CPUs|11th Gen Intel(R) Core(TM) i5-11500H @ 2.90GHz (12 x 2918)|
|GPU Status|2d_canvas: enabled
GPU0: VENDOR= 0x8086, DEVICE=0x9a60 [Intel(R) UHD Graphics], DRIVER_VENDOR=Intel, DRIVER_VERSION=32.0.101.7085 *ACTIVE*
GPU1: VENDOR= 0x1414, DEVICE=0x008c [Microsoft Basic Render Driver], DRIVER_VERSION=10.0.26100.8875
Machine model name:
Machine model version:
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
trees_in_viz: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgpu: enabled
webnn: disabled_off|
|Load (avg)|undefined|
|Memory (System)|31.73GB (11.55GB free)|
|Process Argv|--crash-reporter-id ac345bfc-93b4-4307-bac6-f33633d96820|
|Screen Reader|no|
|VM|0%|
Extensions (22)

Name|Identifier|Author|Version
---|---|---|---
TOML Language Support|be5invis.toml|be5invis|0.6.0
Markdown Preview Mermaid Support|bierner.markdown-mermaid|bierner|1.32.1
Ruff|charliermarsh.ruff|charliermarsh|2026.74.0
Workspace Default Settings|dangmai.workspace-default-settings|dangmai|0.0.7
Todo Tree|gruntfuggly.todo-tree|Gruntfuggly|0.0.226
filesize|mkxml.vscode-filesize|mkxml|3.2.2
Black Formatter|ms-python.black-formatter|ms-python|2026.6.0
Python Debugger|ms-python.debugpy|ms-python|2026.6.0
Python|ms-python.python|ms-python|2026.4.0
Pylance|ms-python.vscode-pylance|ms-python|2026.3.100
Jupyter|ms-toolsai.jupyter|ms-toolsai|2025.9.1
Jupyter Keymap|ms-toolsai.jupyter-keymap|ms-toolsai|1.1.2
Jupyter Notebook Renderers|ms-toolsai.jupyter-renderers|ms-toolsai|1.3.0
Jupyter Cell Tags|ms-toolsai.vscode-jupyter-cell-tags|ms-toolsai|0.1.9
Jupyter Slide Show|ms-toolsai.vscode-jupyter-slideshow|ms-toolsai|0.1.6
Hex Editor|ms-vscode.hexeditor|ms-vscode|1.11.1
autoDocstring - Python Docstring Generator|njpwerner.autodocstring|njpwerner|0.6.1
YAML|redhat.vscode-yaml|redhat|1.24.0
SCSS Formatter|sibiraj-s.vscode-scss-formatter|sibiraj-s|3.0.1
Code Spell Checker|streetsidesoftware.code-spell-checker|streetsidesoftware|4.7.3
Even Better TOML|tamasfe.even-better-toml|tamasfe|0.21.2
win-ca|ukoloff.win-ca|ukoloff|3.5.1

A/B Experiments

```
vsliv368cf:30146710
pythonvspyt551cf:31249601
binariesv615:30325510
nativeloc1:31344060
dwcopilot:31170013
dwoutputs:31242946
copilot_t_ci:31333650
e5gg6876:31282496
pythonrdcb7:31342333
6518g693:31463988
aj953862:31281341
envsactivate1:31551504
478i5457:31544283
cloudbuttont:31379625
3efgi100_wstrepl:31403338
ddidtcf:31399634
ec5jj548:31422691
diffpatch-lysithea-0014-prod-ctrl:31574142
cp_cls_t_966_ss:31526232
4je02754:31466945
c3h7c220:31478652
ge8j1254_inline_auto_hint_haiku:31490510
cp_cls_t_1081:31454832
conptydll_true:31498968
e9c30283:31461165
c9b86496:31447327
capico_a_098a3278:31555650
t-26112-aa:31454027
ei9d7968:31496641
nes-extended-on:31455476
chat:31457767
8hig5102:31480529
89g7j272:31518289
i2gc6536:31499202
52612955:31516516
ddid_t:31478206
hmra_i5g22:31518061
ja75b849:31569110
7df3h592:31512476
cp_cls_t_1082:31535311
logging_enabled_new:31498466
db5d2638:31499441
jb_cp_cls_t_632:31543129
56dj4588:31512888
32d76977:31512328
ha629193:31508444
jh5f2457_c:31540921
jbcp_cls_pctr_t:31531130
61138546:31518536
cp_intellij_t_nes:31548657
gf14b233:31526830
ahp-both-windows:31556933
session_8:31532895
ihg5j128:31534457
f412h606:31551416
9gg7f176:31542112
enable_editor_pane_layout:31569726
allow-none:31555437
36h42362:31564511
c7c27ce7:31554789
1h923230:31564177
1532g621_copy:31554320
treatment-23-1:31555779
unuse_dynamic_mcp:31555281
0d8dfbc3:31570291
switchtoauto:31559321
0c1h4866:31566224
vrbsty_fls:31561059
session-mark-done:31558131
5b8j3302:31564601
mangle-name-treatment:31572634
lunaclean:31573760
permission_prompt_treatment:1332566
ccr_pr_nudge_control:1319470
vsc_wsm_c:1340633
eh853263:1355661

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.