发个 kimi 网页端清空历史聊天的控制台脚本

coldle 2026-06-30 00:33 1

两年过去了还是不加个清空聊天的入口,恁娘咧


登录 kimi 然后在 F12 console 控制台粘贴运行即可


/**
* 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('❌ 未找到 access_token,请确认已登录 Kimi');
return;
}
console.log('✅ 已获取 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('📋 正在获取全部历史会话...');
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('✅ 当前没有历史会话');
return;
}

const chatIds = allChats.map((c) => c.id).filter(Boolean);
console.log(`📊 共 ${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(`🎉 完成!已删除 ${deleted}/${chatIds.length} 条会话`);
if (deleted > 0) {
console.log('📍 3 秒后刷新页面...');
setTimeout(() => location.reload(), 3000);
}
})();
最新回复 (2)
  • Eevee 06-30 00:36
    1


    很棒,已测试,能完全删除干净。

  • ℬ𝒶𝒾𝒲𝒶𝓃 06-30 01:45
    2

    没那么复杂,直接在 历史会话 的界面,全选所有复选框就好了:


    // 打开 https://www.kimi.com/chat/history 页面在控制台执行下面的代码,只是选中,需要手动点击删除确定
    document.querySelectorAll("input[type=checkbox]:not(:checked)").forEach((c) => c.click());

    不过抓的接口确实高级点

* 帖子来源Linux.do
返回