Kimi 网页端怎么一键清空历史记录?这个 F12 脚本太好用了
你是不是也遇到过这种情况:用 Kimi 用久了,左侧的历史聊天列表长得拖不到底,想清理一下吧,官方竟然到现在都没给个“一键清空”或者“全选删除”的按钮?哪怕过了两年,这个基础功能依然缺失,逼得强迫症用户不得不一个个手动删,简直让人抓狂。
既然官方不给,那就只能自己动手丰衣足食了。最近发现了一个专门针对 Kimi 网页端的“一键清空全部历史会话”脚本,操作非常简单,只需要会按 F12 就行,完全不需要懂太多代码。下面就把这个实用的小教程分享给大家。
脚本原理一览
这个脚本的逻辑其实非常直接:它不走页面上的 DOM 元素操作,而是直接模拟浏览器向 Kimi 的后端 API 发送请求。简单来说,它做了两件事:
- 批量拉取列表:调用 ListChats 接口,把你账号下所有的历史聊天 ID 全部捞出来,自动翻页,一个不漏。
- 批量执行删除:拿到 ID 列表后,调用 BatchDeleteChats 接口,每 50 个为一批,直接发送删除指令。
这比手动删快了不知道多少倍,而且因为它有简单的错误重试机制(如果批量接口挂了会尝试备用接口),稳定性也相当不错。
手把手操作教程
整个过程只需要三步,建议直接收藏备用,以备不时之需。
第一步:登录 Kimi 网页版 打开浏览器,访问 www.kimi.com,确保你已经登录了自己的账号。这一步很关键,因为脚本需要从浏览器的 LocalStorage 里读取你的登录凭证。
按 F12 打开开发者工具,点击 Console 标签
第二步:打开开发者工具 在 Kimi 网页上按键盘上的 F12 键(或者右键点击页面空白处选择“检查”),在弹出的开发者工具面板中,点击顶部的 “Console”(控制台) 标签。
将代码粘贴到控制台,回车即可执行
温馨提示:有些浏览器打开控制台可能是一屏英文代码,并提示“Warning: Don't paste code here...”,别担心,只要是你自己贴的脚本,那是没问题的。
第三步:粘贴并运行脚本 将下方的完整代码复制,粘贴到 Console 的空白处(光标闪烁的地方),然后按下 回车键(Enter)。
/**
* Kimi 一键清空全部历史会话(F12 控制台脚本)
*
* 使用方法:
* 1. 打开 www.kimi.com 并已登录
* 2. F12 → Console
* 3. 粘贴全部代码,回车执行
*
* 原理:直接调 Kimi API(ListChats + BatchDeleteChats),不依赖页面 DOM
*/
(async function () {
const API_BASE = 'https://www.kimi.com';
const PAGE_SIZE = 50;
const BATCH_SIZE = 50;
const DELAY = 300;
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
// ===== 获取 token =====
const token = localStorage.getItem('access_token');
if (!token) {
console.error('\n❌\n未找到 access_token,请确认已登录 Kimi');
return;
}
console.log('\n✅\n已获取 access_token');
const headers = {
'Content-Type': 'application/json',
'Connect-Protocol-Version': '1',
'Authorization': `Bearer ${token}`,
};
async function apiPost(path, body) {
const resp = await fetch(`${API_BASE}${path}`, {
method: 'POST',
headers,
body: JSON.stringify(body),
});
if (!resp.ok) {
const text = await resp.text();
throw new Error(`API ${resp.status}: ${text.slice(0, 300)}`);
}
return resp.json();
}
// ===== 列出全部会话 =====
console.log('\n📋\n正在获取全部历史会话...');
const allChats = [];
let pageToken = '';
while (true) {
const data = await apiPost('/apiv2/kimi.chat.v1.ChatService/ListChats', {
query: '',
pageToken,
pageSize: PAGE_SIZE,
});
const chats = data?.chats || [];
allChats.push(...chats);
console.log(` 已获取 ${allChats.length} 条`);
pageToken = data?.nextPageToken || '';
if (!pageToken || chats.length === 0) break;
await sleep(DELAY);
}
if (allChats.length === 0) {
console.log('\n✅\n当前没有历史会话');
return;
}
const chatIds = allChats.map((c) => c.id).filter(Boolean);
console.log(`\n📊\n共 ${allChats.length} 条会话,准备删除...`);
// ===== 批量删除 =====
let deleted = 0;
for (let i = 0; i < chatIds.length; i += BATCH_SIZE) {
const batch = chatIds.slice(i, i + BATCH_SIZE);
try {
await apiPost('/apiv2/kimi.chat.v1.ChatService/BatchDeleteChats', {
chatIds: batch,
});
deleted += batch.length;
} catch (err) {
// 降级:尝试另一个删除接口
console.warn(` 批量接口失败,尝试备用接口...`);
try {
await apiPost('/apiv2/kimi.chat.v1.ChatService/DeleteChats', {
chatIds: batch,
});
deleted += batch.length;
} catch (err2) {
console.error(` 删除第 ${Math.floor(i / BATCH_SIZE) + 1} 批失败:`, err2.message);
}
}
console.log(` 进度: ${deleted}/${chatIds.length}`);
await sleep(DELAY);
}
console.log(`\n🎉\n完成!已删除 ${deleted}/${chatIds.length} 条会话`);
if (deleted > 0) {
console.log('\n📍\n3 秒后刷新页面...');
setTimeout(() => location.reload(), 3000);
}
})();
运行效果与注意
脚本运行后,你会在控制台看到实时的进度条,比如“正在获取全部历史会话...”、“已获取 150 条”、“进度: 50/150”等等。脚本内置了 300毫秒的延时(DELAY),是为了避免请求太频繁触发接口限制,请耐心等待它跑完。
一旦删除完成,页面会自动刷新,你会发现左侧的列表变得干干净净,整个世界都清净了。
常见问题排查:
- 报错“未找到 access_token”:请检查你是否真的处于登录状态,或者尝试刷新页面重新登录。
- 删除失败:脚本其实包含了一个“降级策略”,如果批量删除接口不行,它会尝试单条接口。如果还是不行,可能是网络波动,建议重试一次。
虽然这个脚本是个好东西,但也折射出产品功能的缺失。希望在未来的版本更新中,Kimi 官方能听到用户的呼声,早点加上这个原生的“清空历史”按钮吧。
评论已关闭