Claude’s great, but the website lacks a ton of features I’d consider “simple”, like the ability to bulk delete chats and projects. I wanted to do this myself recently and found the only way was to go through the browser console. Below is the code I used to clear all chats and projects via using the browser console.
If you don’t know how to open the browser console, Google “how to open browser console in {X browser}” and follow those steps.
Delete Chats
// === BULK DELETE CLAUDE.AI CHATS ===
// Replace ORG_ID below with your own
const orgId = "4bd7e6db-b27c-4172-96e7-133e1b1b1adc";
async function deleteAllClaudeChats() {
// Fetch all chats
const resp = await fetch(`https://claude.ai/api/organizations/${orgId}/chat_conversations`, {
credentials: 'include'
});
const chats = await resp.json();
if (!Array.isArray(chats) || chats.length === 0) {
console.warn("No chats found.");
return;
}
console.log(`Found ${chats.length} conversations.`);
const proceed = confirm(`⚠️ This will permanently delete ${chats.length} chats.\n\nDo you want to continue?`);
if (!proceed) {
console.log("Aborted by user.");
return;
}
// Rate limit: 1 delete every 500ms to stay safe
for (const [i, chat] of chats.entries()) {
const res = await fetch(`https://claude.ai/api/organizations/${orgId}/chat_conversations/${chat.uuid}`, {
method: 'DELETE',
credentials: 'include',
headers: { 'Content-Type': 'application/json' }
});
if (res.ok) {
console.log(`✅ [${i + 1}/${chats.length}] Deleted: ${chat.name}`);
} else {
console.warn(`⚠️ [${i + 1}/${chats.length}] Failed: ${chat.name} (${res.status})`);
}
// Delay to avoid rate limits
await new Promise(r => setTimeout(r, 500));
}
console.log("🎉 All deletions attempted. Refresh your page to verify.");
}
deleteAllClaudeChats();
Delete Projects
// === BULK DELETE CLAUDE.AI PROJECTS ===
// Replace ORG_ID with your actual organization ID
const orgId = "4bd7e6db-b27c-4172-96e7-133e1b1b1adc";
async function deleteAllClaudeProjects() {
console.log("Fetching projects...");
const resp = await fetch(`https://claude.ai/api/organizations/${orgId}/projects`, {
credentials: 'include'
});
const projects = await resp.json();
if (!Array.isArray(projects) || projects.length === 0) {
console.warn("No projects found.");
return;
}
console.log(`Found ${projects.length} projects:`);
projects.forEach((p, i) => console.log(`${i + 1}. ${p.name} (${p.uuid})`));
const proceed = confirm(`⚠️ This will permanently delete ${projects.length} projects.\n\nDo you want to continue?`);
if (!proceed) {
console.log("Aborted by user.");
return;
}
for (const [i, project] of projects.entries()) {
const res = await fetch(`https://claude.ai/api/organizations/${orgId}/projects/${project.uuid}`, {
method: 'DELETE',
credentials: 'include',
headers: { 'Content-Type': 'application/json' }
});
if (res.ok) {
console.log(`✅ [${i + 1}/${projects.length}] Deleted project: ${project.name}`);
} else {
console.warn(`⚠️ [${i + 1}/${projects.length}] Failed: ${project.name} (${res.status})`);
}
await new Promise(r => setTimeout(r, 500)); // rate-limit safety
}
console.log("🎉 All project deletions attempted. Refresh your Projects page to confirm.");
}
deleteAllClaudeProjects();