Le problème
Que vous souhaitiez rebrander, nettoyer un ancien compte ou repartir de zéro, supprimer des milliers de tweets un par un n'est pas une option. X ne propose aucune suppression en masse. Des services comme TweetDelete fonctionnent — mais facturent €6–15 par mois pour quelque chose qui devrait être gratuit.
La solution gratuite
Nous avons créé un script JavaScript qui s'exécute directement dans la console de votre navigateur. Il fait défiler votre profil automatiquement, identifie vos propres tweets et reposts, et les supprime un par un. Pas d'installation, pas de clé API, pas de service externe — juste votre navigateur.
Nous l'avons utilisé nous-mêmes pour nettoyer un ancien compte X avant le relancement de @Sublime_Arts_ — il a supprimé des centaines de publications sans le moindre problème.
Comment l'utiliser — 3 étapes
Ce qu'il fait
La progression est enregistrée en temps réel dans la console. S'arrête automatiquement après 8 défilements vides. Relancez le script si X charge d'autres publications.
Le script
const sleep = ms => new Promise(r => setTimeout(r, ms));
async function cleanupXProfile() {
let repostsRemoved = 0, tweetsDeleted = 0, emptyScrolls = 0;
const getCol = () =>
document.querySelector('[data-testid="primaryColumn"]') ||
document.querySelector('main') || document;
const closeMenu = async () => {
document.dispatchEvent(new KeyboardEvent('keydown',
{ key: 'Escape', keyCode: 27, bubbles: true }));
await sleep(250);
const h = getCol().querySelector('h1, h2');
if (h) h.click(); await sleep(200);
};
console.log('🧹 X Profile Cleanup started...');
while (emptyScrolls < 8) {
let actions = 0; const col = getCol();
for (const btn of [...col.querySelectorAll('button')]
.filter(b => b.innerHTML.includes('M4.75 3.79l4.603'))) {
try {
btn.click(); await sleep(700);
const c = document.querySelector('[data-testid="unretweetConfirm"]');
if (c) { c.click(); repostsRemoved++; actions++;
console.log(`↩️ Repost removed #${repostsRemoved}`); await sleep(900);
} else await closeMenu();
} catch { await closeMenu(); }
}
for (const btn of [...col.querySelectorAll('button')]
.filter(b => b.innerHTML.includes('M3 12c0-1.1.9-2 2-2s2'))) {
await closeMenu(); await sleep(300);
try {
btn.click(); await sleep(800);
const del = [...document.querySelectorAll('[role="menuitem"]')]
.find(i => i.textContent.trim()
.match(/^(Delete|Elimina|Supprimer|Löschen|Eliminar|Удалить|削除|삭제)$/));
if (del) {
del.click(); await sleep(700);
const ok = document.querySelector('[data-testid="confirmationSheetConfirm"]');
if (ok) { ok.click(); tweetsDeleted++; actions++;
console.log(`🗑️ Tweet deleted #${tweetsDeleted}`); await sleep(1200);
} else await closeMenu();
} else await closeMenu();
} catch { await closeMenu(); }
}
if (actions === 0) { emptyScrolls++;
console.log(`Scrolling... (${emptyScrolls}/8)`);
} else emptyScrolls = 0;
window.scrollBy(0, 900); await sleep(2000);
}
console.log(`\n✅ Done! Reposts: ${repostsRemoved} | Tweets: ${tweetsDeleted}`);
}
cleanupXProfile();About
Patrick Chen — développeur indépendant derrière Sublimearts.io. Créé en nettoyant mon propre compte X avant le relancement.