-
-
Save RafalWilinski/3416a497f94ee2a0c589a8d930304950 to your computer and use it in GitHub Desktop.
// HOW TO INSTRUCTIONS | |
// 1. Open Claude Desktop | |
// 2. Go to Help -> Enable Developer Mode | |
// 3. Navigate Developer Tools window named "Developer Tools - https://claude.ai" | |
// 4. Go to "Console" tab | |
// 5. Type "allow pasting" and hit Enter | |
// 6. Paste this snippet and hit Enter | |
// From now on, all MCP calls will be auto-approved | |
// END INSTRUCTIONS | |
// Cooldown tracking | |
let lastClickTime = 0; | |
const COOLDOWN_MS = 1000; // 1 second cooldown | |
const observer = new MutationObserver((mutations) => { | |
// Check if we're still in cooldown | |
const now = Date.now(); | |
if (now - lastClickTime < COOLDOWN_MS) { | |
console.log("π Still in cooldown period, skipping..."); | |
return; | |
} | |
console.log("π Checking mutations..."); | |
const dialog = document.querySelector('[role="dialog"]'); | |
if (!dialog) return; | |
const buttonWithDiv = dialog.querySelector("button div"); | |
if (!buttonWithDiv) return; | |
const toolText = buttonWithDiv.textContent; | |
if (!toolText) return; | |
console.log("π Found tool request:", toolText); | |
const toolName = toolText.match(/Run (\S+) from/)?.[1]; | |
if (!toolName) return; | |
console.log("π οΈ Tool name:", toolName); | |
const allowButton = Array.from(dialog.querySelectorAll("button")).find( | |
(button) => button.textContent.includes("Allow for This Chat") | |
); | |
if (allowButton) { | |
console.log("π Auto-approving tool:", toolName); | |
lastClickTime = now; // Set cooldown | |
allowButton.click(); | |
} | |
}); | |
// Start observing | |
observer.observe(document.body, { | |
childList: true, | |
subtree: true, | |
}); |
couldn't get this to work on latest claude desktop on windows, was able to enter into console but still get approval requests
Minor update since the label of the button did not match the current Claude UI:
@hflatoey this should work
// Cooldown tracking
let lastClickTime = 0;
const COOLDOWN_MS = 2000; // 2 seconds cooldown is fast enough
const observer = new MutationObserver((mutations) => {
// Check if we're still in cooldown
const now = Date.now();
if (now - lastClickTime < COOLDOWN_MS) {
console.log("π Still in cooldown period, skipping...");
return;
}
console.log("π Checking mutations...");
const dialog = document.querySelector('[role="dialog"]');
if (!dialog) return;
const buttonWithDiv = dialog.querySelector("button div");
if (!buttonWithDiv) return;
const toolText = buttonWithDiv.textContent;
if (!toolText) return;
console.log("π Found tool request:", toolText);
const toolName = toolText.match(/Run (\S+) from/)?.[1];
if (!toolName) return;
console.log("π οΈ Tool name:", toolName);
const allowButton = Array.from(dialog.querySelectorAll("button")).find(
(button) => button.textContent.toLowerCase().includes("allow for this chat") // case insensitive checking fixes the original script
);
if (allowButton) {
console.log("π Auto-approving tool:", toolName);
lastClickTime = now; // Set cooldown
allowButton.click();
}
});
// Start observing
observer.observe(document.body, {
childList: true,
subtree: true,
});
Update; I've taken inspiration from this script and made it into an extensible tiny framework so others can add other actions (like automatically submitting "Continue" or awaiting cooldown periods when rate limits are hit).
https://gist.github.com/rvanbaalen/96796aee97f05133b3ad51671597e770
Just for whoever has troubles opening Developer Tools, you need to Enable first the Developer Mode The context Menu on Top Left. Onve you enable Developer Mode, you can CTRL + SHIFT + ALT + I
And CMD+SHIFT+OPTION+I for the mac users :-)
// 3. Navigate Developer Tools window named "Developer Tools - https://claude.ai"
I can't find this... I have a developer tab in the menu but it just takes me to the mcp log.
allow pasting
VM62:1 Uncaught SyntaxError: Unexpected identifier 'pasting'