Borra todo tu historial de comentarios, solo los más recientes o solo los de algunos subreddits. Gratis, en tu navegador, sin darle tu contraseña a ninguna app.
Funciona en old.reddit.com (la misma cuenta, con páginas más simples). Inicia sesión, abre tus comentarios y ejecuta el script.
// Responsive Muse · Delete All Reddit Comments · v1.0 · 2026-10-22
// Deletes your Reddit comments, newest first: all of them, the latest LIMIT, or only those in
// some subreddits. Runs only on your comments page on old.reddit.com, whose pages stay the same
// for years. It asks before changing anything, then clicks the same "delete" and "yes" links you
// would, at a human pace, in a hidden frame of the same site. It makes no network requests of
// its own and never reads cookies, passwords or tokens.
(async () => {
const TOOL = 'Borrar comentarios de Reddit';
const LIMIT = 0; // only the latest this many comments (0 = all)
const SUBREDDITS = []; // only in these subreddits, e.g. ['pics', 'AskReddit'] (empty = everywhere)
const DELAY = 2000; // pause between deletions, in milliseconds. Reddit limits fast actions.
if (location.hostname !== 'old.reddit.com' || !/^\/user\/[^/]+\/comments/.test(location.pathname)) {
alert('Abre primero tus comentarios en old Reddit (con tu sesión iniciada):\nhttps://old.reddit.com/user/me/comments/');
return;
}
// Must be your own list: old Reddit shows the signed-in user in the header
const me = (document.querySelector('#header .user a[href*="/user/"]')?.textContent || '').trim();
const owner = (location.pathname.split('/')[2] || '').toLowerCase();
if (owner !== me.toLowerCase()) {
alert(me
? `Esta no es tu lista. Abre:\nhttps://old.reddit.com/user/${me}/comments/`
: 'Inicia sesión en old.reddit.com y abre tu propia lista de comentarios.');
return;
}
// A small box on the page shows progress and asks before changing anything,
// so you never need to read or edit the console.
const many = (n, word) => `${n} ${n === 1 ? word : ({ canal: 'canales', 'canción': 'canciones', 'publicación': 'publicaciones', 'elemento guardado': 'elementos guardados' })[word] || word + 's'}`; // 1 vídeo, 2 vídeos
const panel = (() => {
const box = document.createElement('div');
box.style.cssText = 'position:fixed;right:16px;bottom:16px;z-index:2147483647;width:340px;max-width:calc(100vw - 32px);' +
'background:#111318;color:#e6e8ee;font:14px/1.5 system-ui,sans-serif;border-radius:12px;padding:16px;' +
'box-shadow:0 8px 30px rgba(0,0,0,.4);text-align:left';
const head = document.createElement('strong');
head.textContent = TOOL;
const msg = document.createElement('p');
msg.style.cssText = 'margin:8px 0 12px;white-space:pre-line';
const row = document.createElement('div');
row.style.cssText = 'display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end';
box.append(head, msg, row);
document.body.append(box);
const button = (label, primary, onClick) => {
const b = document.createElement('button');
b.textContent = label;
b.style.cssText = 'font:600 14px system-ui,sans-serif;padding:8px 14px;border-radius:8px;cursor:pointer;' +
(primary ? 'background:#0f766e;color:#fff;border:1px solid #0f766e' : 'background:none;color:#e6e8ee;border:1px solid #3a3f4b');
b.onclick = onClick;
row.append(b);
};
return {
text(t) { msg.textContent = t; },
ask(t, yes) {
msg.textContent = t;
row.replaceChildren();
return new Promise(r => {
button('Cancelar', false, () => { row.replaceChildren(); r(false); });
button(yes, true, () => { row.replaceChildren(); r(true); });
});
},
stoppable(onStop) { row.replaceChildren(); button('Parar', false, onStop); },
actions(t, list) {
msg.textContent = t;
row.replaceChildren();
list.forEach(([label, primary, run]) => button(label, primary, run));
},
finish(t) { this.actions(t, [['Cerrar', true, () => box.remove()]]); },
close() { box.remove(); },
};
})();
const sleep = ms => new Promise(r => setTimeout(r, ms));
const only = new Set(SUBREDDITS.map(s => s.replace(/^\/?r\//i, '').toLowerCase()));
if (!document.querySelector('.thing.comment form.del-button')) {
alert('Esto no parece tu página de comentarios (no hay enlaces «delete»). Inicia sesión y abre:\nhttps://old.reddit.com/user/me/comments/');
return;
}
// 1. Ask (the total isn't known until the end: Reddit shows 25 per page)
const where = only.size ? ` en ${[...only].map(s => 'r/' + s).join(', ')}` : '';
const scope = LIMIT ? `tus últimos ${LIMIT} comentarios${where}` : `todos tus comentarios${where}, de más nuevo a más antiguo`;
if (!await panel.ask(`¿Borrar ${scope}?\nNo se puede deshacer. Puedes pararlo cuando quieras.`, LIMIT ? `Borrar ${LIMIT}` : 'Borrar todo')) {
panel.finish('Cancelado. No se ha cambiado nada.');
return 0;
}
// Each page of comments opens in a hidden frame of the same site; it stays open while we click
let frame = null;
const openPage = path => new Promise(resolve => {
frame?.remove();
frame = document.createElement('iframe');
frame.style.cssText = 'position:absolute;left:-9999px;width:1000px;height:800px';
const timer = setTimeout(() => resolve(null), 30000);
frame.onload = () => { clearTimeout(timer); resolve(frame.contentDocument); };
frame.src = new URL(path, location.origin).href;
document.body.appendChild(frame);
});
// 2. Delete page by page. Deleted comments leave the list, so the first page is reloaded
// until nothing on it is left to delete; then the script moves on to the next page.
let stop = false;
panel.stoppable(() => { stop = true; });
const done = new Set();
const start = location.pathname + location.search;
let path = start, count = 0, skipped = 0;
while (!stop && !(LIMIT && count >= LIMIT)) {
const doc = await openPage(path);
if (!doc) break;
let deletedHere = 0;
for (const t of doc.querySelectorAll('#siteTable > .thing.comment[data-fullname]')) {
if (stop || (LIMIT && count >= LIMIT)) break;
const id = t.dataset.fullname;
if (done.has(id)) continue;
done.add(id);
if (only.size && !only.has((t.dataset.subreddit || '').toLowerCase())) { skipped++; continue; }
const form = t.querySelector('form.del-button');
if (!form) continue;
form.querySelector('a.togglebutton').click(); // "delete"
await sleep(300);
form.querySelector('a.yes').click(); // "are you sure? yes"
count++;
deletedHere++;
panel.text(`Borrando… ${count}${LIMIT ? ` de ${LIMIT}` : ''}${skipped ? ` (${skipped} conservados en otros subreddits)` : ''}`);
await sleep(DELAY);
}
if (deletedHere) { path = start; continue; } // fresh look at the first page
const next = doc.querySelector('.next-button a')?.getAttribute('href');
if (!next) break;
path = next;
await sleep(1000);
}
frame?.remove();
if (!count && !stop) {
panel.finish(only.size ? 'No hay comentarios que borrar en esos subreddits.' : 'No tienes comentarios que borrar.');
return 0;
}
panel.finish(`${stop ? 'Parado' : 'Hecho'}: borrados ${many(count, 'comentario')}.\nRecarga la página para ver el resultado.`);
return count;
})();
Marcador: arrastra el botón del medio a tu barra de marcadores, abre old.reddit.com y pulsa el marcador. Ejecuta el mismo script con las opciones de arriba.
- No envía nada a ningún sitio. Sin fetch, XHR ni scripts externos. La única actividad de red es la de old.reddit.com cargando tu lista.
- No toca tu sesión. No lee cookies, contraseñas, tokens ni el almacenamiento del navegador.
- Solo funciona en old.reddit.com. En cualquier otra web se detiene antes de hacer nada.
- Corto y legible. 138 líneas comentadas, sin minificar ni ofuscar.
- Pregunta antes de cambiar nada. Un recuadro en la página muestra lo que ha encontrado y espera tu OK. Puedes pararlo cuando quieras.
- El mismo código para todos. SHA-256 de la versión por defecto:
363ca4eb096b8d39…
Compruébalo tú mismo en 30 segundos
- Léelo: todas las líneas están arriba, con comentarios.
- Busca en el código
fetch,XMLHttpRequest,cookie,localStorageoeval. No aparece ninguna. - Abre la pestaña Red (Network) antes de ejecutarlo: solo verás peticiones a old.reddit.com.
Ten en cuenta: esto no se puede deshacer en bloque. El script siempre muestra cuántos hay y pregunta antes de empezar. Deja la pestaña abierta hasta que el recuadro diga «Hecho».
Cómo usarlo
- Abre old.reddit.com/user/me/comments con tu sesión iniciada.
- Abre la consola: F12 o Ctrl+Mayús+J (Cmd+Opción+J en Mac). Si Chrome te lo pide, escribe
permitir pegar(oallow pastingsi lo tienes en inglés) y pulsa Enter. - Elige las opciones, copia el script, pégalo en la consola y pulsa Enter. Un recuadro te dice cuántos ha encontrado y espera tu confirmación antes de empezar. Puedes pulsar Parar cuando quieras.
Antes de empezar
Si quieres una copia, tus comentarios están en la solicitud de datos de Reddit (Ajustes > Privacidad). El borrado va lento a propósito, un comentario cada dos segundos, porque Reddit bloquea temporalmente las cuentas que van más rápido.
Preguntas frecuentes
¿Se puede deshacer?
No. Los comentarios borrados no se pueden recuperar. Las respuestas de otras personas se quedan, bajo un «[deleted]».
¿Cuánto tarda?
Unos dos segundos por comentario, para que Reddit no limite tu cuenta: unos 30 comentarios por minuto. Deja la pestaña abierta; puedes pararlo cuando quieras.
¿Puedo conservar algunos comentarios?
Usa la opción de subreddits para borrar solo en los que elijas, o el límite para borrar solo los más recientes.
