一个一个手动清太麻烦啦!
// ==UserScript==
// @name KIMI、DeepSeek、豆包清空历史
// @namespace http://tampermonkey.net/
// @version 2025-08-6
// @description 一个一个手动清太麻烦啦!
// @author madderscientist
// @match https://www.kimi.com/*
// @match https://chat.deepseek.com/*
// @match https://www.doubao.com/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
async function asyncDelay(time) {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, time);
});
}
let config;
if (window.location.host.includes("kimi"))
config = {
// 按钮容器
"btn_container_class": ".sidebar",
// 存放历史记录的容器
"more_btn_container_class": ".latest-history-list",
// 更多按钮,点击后会弹出删除按钮
"more_btn_class": ".more-btn",
// 删除按钮,点击后会弹出确认删除的弹窗
"delete_btn_class": ".opt-item.delete",
// 确认删除按钮,点击后会删除历史记录
"confirm_btn_class": ".kimi-button.danger"
};
else if (window.location.host.includes("deepseek"))
config = {
"btn_container_class": ".ebaea5d2",
"more_btn_container_class": "._77cdc67._8a693f3",
"more_btn_class": ".ds-icon",
"delete_btn_class": ".ds-dropdown-menu-option.ds-dropdown-menu-option--error",
"confirm_btn_class": ".ds-button.ds-button--error.ds-button--filled.ds-button--rect.ds-button--m"
};
else if(window.location.host.includes("doubao"))
config = {
"btn_container_class": ".flex.flex-col.h-full.select-none",
"more_btn_container_class": ".collapse-content-uFEpZ8",
"more_btn_class": ".semi-icon.semi-icon-default.text-s-color-text-quaternary",
"delete_btn_class": ".remove-btn-TOaQi0.select-none.semi-dropdown-item",
"confirm_btn_class": ".semi-button.semi-button-primary.samantha-button-Gqjh9l.danger-primary-XKkX_5.medium-MN8t8q"
};
const mousedownEvent = new MouseEvent('mousedown', {
bubbles: true,
cancelable: true,
view: window,
button: 0 // 左键
});
async function deleteAllChats() {
let morebtns = document.querySelector(config["more_btn_container_class"]);
if (morebtns != null) morebtns = morebtns.querySelectorAll(config["more_btn_class"]);
else morebtns = document.querySelectorAll(config["more_btn_class"]);
if (morebtns.length == 0) return;
for (const btn of morebtns) {
btn.click();
await asyncDelay(100);
// 豆包没有click事件,观察发现按下鼠标就响应,于是发现模拟按下事件就可以
document.querySelector(config["delete_btn_class"]).dispatchEvent(mousedownEvent);
document.querySelector(config["delete_btn_class"]).click();
await asyncDelay(100);
document.querySelector(config["confirm_btn_class"]).dispatchEvent(mousedownEvent);
document.querySelector(config["confirm_btn_class"]).click();
await asyncDelay(100);
}
deleteAllChats();
}
window.addEventListener('load', async function() {
let divContainer = null;
while(!divContainer) {
await asyncDelay(512);
divContainer = document.querySelector(config["btn_container_class"]);
}
let btn = document.createElement("button");
btn.innerHTML = "清空历史";
btn.onclick = deleteAllChats;
btn.style.background = "transparent";
btn.style.border = "none";
btn.style.color = "red";
btn.style.cursor = "pointer";
divContainer.appendChild(btn);
});
})();