Skip to content

feat: add individual tool controls to settings #5964

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

KJ7LNW
Copy link
Collaborator

@KJ7LNW KJ7LNW commented Jul 20, 2025

Context

This PR adds the ability to selectively enable/disable individual tools in the settings UI. This allows users to remove tools they never plan to use from the system prompt, saving valuable context tokens.

Implementation

  • Added new settings schema for individual tool controls in global-settings.ts
  • Created a new ToolsSettings UI component with checkboxes for each tool
  • Added logic to filter tools based on these settings in tools/index.ts
  • Integrated with the system prompt generation

How to Test

  1. Open Roo Code settings
  2. Navigate to the Tools section
  3. Toggle individual tools on/off
  4. Verify that disabled tools are removed from the system prompt
image

Get in Touch

Discord: KJ7LNW

Fixes #5963


Important

This PR adds UI and backend support for enabling/disabling individual tools in settings, affecting system prompt generation and tool availability.

  • Settings Schema:
    • Added individual tool control settings in global-settings.ts.
  • UI Components:
    • Created ToolsSettings component in ToolsSettings.tsx with checkboxes for each tool.
    • Integrated ToolsSettings into SettingsView.tsx.
  • Logic:
    • Updated tools/index.ts to filter tools based on new settings.
    • Modified generateSystemPrompt.ts to incorporate tool settings.
  • State Management:
    • Updated ExtensionStateContext.tsx to include tool settings.
  • Webview Communication:
    • Added message handling for tool settings in webviewMessageHandler.ts.
  • Localization:
    • Updated settings.json for tool-related strings.

This description was created by Ellipsis for f825bff. You can customize this summary. It will automatically update as commits are pushed.

@KJ7LNW KJ7LNW requested review from mrubens, cte and jr as code owners July 20, 2025 01:25
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. enhancement New feature or request UI/UX UI/UX related or focused labels Jul 20, 2025
@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Jul 20, 2025
@KJ7LNW KJ7LNW force-pushed the individual-tool-controls branch from f825bff to 276d61e Compare July 20, 2025 01:37
@shariqriazz
Copy link

I love this! ive been running similar setup on my fork for a month almost but my UI isn't very good, additionally i have an option to make #MODES part also granular so each mode can select which mode should be visible in its system prompt ( this helps when u have multiple agents packaged with specific workflows so they do not conflict with each other )

Eric Wheeler added 2 commits July 19, 2025 19:23
This feature allows users to selectively disable tools they never plan to use,
which removes those tool descriptions from the system prompt and saves context tokens.

The implementation includes:
- New settings schema for individual tool controls
- New ToolsSettings UI component with checkboxes for each tool
- Logic to filter tools based on these settings
- Integration with the system prompt generation

Fixes: #5963
Signed-off-by: Eric Wheeler <[email protected]>
This commit adds missing translations for the following locales:
- French (fr)
- Hindi (hi)
- Indonesian (id)
- Italian (it)
- Japanese (ja)
- Korean (ko)
- Dutch (nl)
- Polish (pl)
- Brazilian Portuguese (pt-BR)
- Russian (ru)
- Turkish (tr)
- Vietnamese (vi)
- Simplified Chinese (zh-CN)
- Traditional Chinese (zh-TW)

All translations were added to the respective `settings.json` files and verified using the `find-missing-translations.js` script.

Signed-off-by: Eric Wheeler <[email protected]>
@KJ7LNW KJ7LNW force-pushed the individual-tool-controls branch from 276d61e to 56049f5 Compare July 20, 2025 02:23
@hannesrudolph
Copy link
Collaborator

hannesrudolph commented Jul 20, 2025

I have not reviewed in depth but the MCP portion of the tools are already excluded if you have MCP disabled. This seems redundant. Same with apply_diff.

@daniel-lxs daniel-lxs moved this from Triage to PR [Needs Prelim Review] in Roo Code Roadmap Jul 21, 2025
@hannesrudolph hannesrudolph added PR - Needs Preliminary Review and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Jul 21, 2025
@adamhill
Copy link

Thanks for doing this @KJ7LNW !

We really need some way to start excluding tools at a project level.

There are now hyper specific MCP's like "Apple Development Docs" - https://github.com/kimsungwhee/apple-docs-mcp that I really only want to use by flagging something for Swift projects only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request PR - Needs Preliminary Review size:XL This PR changes 500-999 lines, ignoring generated files. UI/UX UI/UX related or focused
Projects
Status: PR [Needs Prelim Review]
Development

Successfully merging this pull request may close these issues.

Need for individual tool controls to reduce token usage
4 participants