You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
--available-tools with an empty value exposes all tools instead of none #5306
--available-tools is documented to disable every tool not listed, but an empty value (--available-tools= or --available-tools '') sends all 21 built-in tools, the same as omitting the flag. There's no documented way to run copilot -p with no tools.
Flag
Tools sent to the model
--available-tools=
21
--available-tools ''
21
--excluded-tools '*'
21
--available-tools __none__ (a name that matches no tool)
0
The workaround in the last row works, but it relies on unknown tool names being silently ignored.
Affected version
GitHub Copilot CLI 1.0.105
Steps to reproduce the behavior
In an empty directory, run:
copilot -p "Reply with the word ok." -s --model claude-haiku-5.5 \
--available-tools= --disable-builtin-mcps --no-custom-instructions --no-ask-user
Read the tool count from the newest session's events:
Repeat steps 1 and 2 with --available-tools __none__.
copilot -p "Reply with the word ok." -s --model claude-haiku-5.5 \
--available-tools='__none__' --disable-builtin-mcps --no-custom-instructions --no-ask-user
An empty --available-tools exposes no tools, or there's a documented way to disable all tools and an empty value is rejected with an error.
Additional context
For text-only copilot -p calls in CI, the unwanted tool definitions add about 10,000 tokens per call. Related: #4596 (system prompt still references removed tools), #407 (list available tools).
Activity