← Blog
Tool Gratuito30 Maggio 2026·4 min di lettura

Come eliminare tutti i tweet in una volta — Gratis, senza API, senza app

X/Twitter non ha un pulsante per eliminare tutto. I tool a pagamento costano €6–15 al mese. Questo script gratuito lo fa in pochi minuti — nessuna installazione, nessun account, nessun trucco.

Il problema

Che tu voglia rilanciare un brand, pulire un vecchio account o ripartire da zero, cancellare migliaia di tweet uno per uno non è un'opzione. X non offre nessuna funzione di eliminazione in massa. Servizi come TweetDelete funzionano — ma costano €6–15 al mese per qualcosa che dovrebbe essere gratuito.

La soluzione gratuita

Abbiamo costruito uno script JavaScript che gira direttamente nella console del browser. Scorre il tuo profilo in automatico, identifica i tuoi tweet e repost, e li elimina uno per uno. Nessuna installazione, nessuna API key, nessun servizio esterno — solo il tuo browser.

Lo abbiamo usato noi stessi per pulire un vecchio account X prima di rilanciare @Sublime_Arts_ — ha eliminato centinaia di post senza un singolo problema.

Come usarlo — 3 passaggi

1Vai sul tuo profilo X — x.com/tuousername
2Apri DevTools: premi F12 → clicca sul tab Console
3Incolla lo script qui sotto e premi Invio. Lascia la scheda aperta.

Cosa fa

↩️Annulla tutti i repost
🗑️Elimina i tweet originali
🔍Solo la colonna feed principale
⏭️Salta ads e post altrui

I progressi vengono registrati in tempo reale nella console. Si ferma automaticamente dopo 8 scroll vuoti. Riesegui se X carica altri post.

Lo script

cleanup_x_profile.jsF12 → Console
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 — sviluppatore indipendente dietro Sublimearts.io. Ho costruito questo mentre pulivo il mio stesso account X prima del rilancio.