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();