Console log cleaner (free, no signup)
Paste the contents of your browser console and this free tool strips the noise, collapses duplicates, groups errors with their stack traces, and hands back a clean log as Markdown or JSON. It runs entirely in your browser, nothing you paste is sent anywhere.
Cleaner
Clean your console log
Cleaning
[vite] connected.
TypeError: Cannot read properties of undefined (reading 'map')
at renderList (app.js:212:18)
at App (app.js:80:3)
[Deprecation] Listener added for a synchronous 'DOMNodeInserted' DOM Mutation Event.
Autosave queued
Autosave queued
Autosave queued
Download the React DevTools for a better development experience: https://react.dev/link/react-devtools9 lines in, 3 entries out. 2 noise lines stripped, 2 duplicates collapsed.
## Errors
```
TypeError: Cannot read properties of undefined (reading 'map')
at renderList (app.js:212:18)
at App (app.js:80:3)
```
## Warnings
```
[Deprecation] Listener added for a synchronous 'DOMNodeInserted' DOM Mutation Event.
```
## Everything else
```
Autosave queued (x3)
```Add the repository as owner/repo, for example octocat/hello-world.
Why it matters
What to include from the console in a bug report
The errors, with their stack traces attached. An error message on its own says what broke; the indented lines under it say where, and they are the part people most often cut off when they paste. Keep the warnings that appeared around the same time too, since they often name the cause the error only hints at. Everything else in a raw console paste is usually weight: the same message repeated hundreds of times, dev server chatter, and lines your browser extensions injected.
This cleaner does that edit for you. It recognises the usual suspects by pattern: the DevTools paste warning, the React and Vue DevTools nudges, HMR, Vite, and webpack-dev-server chatter, dev server websocket reconnect spam, anything from a chrome-extension:// URL, favicon 404s, and source map warnings. It stitches loose stack frames back onto the error above them, collapses exact repeats into one line with an xN count, and sorts what is left into errors, warnings, and everything else, in the order each first appeared.
How to copy your console output
- Chrome and Edge. Open DevTools (F12, or Cmd+Option+J on a Mac), click into the Console, select all with Ctrl+A or Cmd+A, and copy. Or right-click in the Console and choose Save as... to write the whole log to a file.
- Firefox. Open the console (Ctrl+Shift+K, or Cmd+Option+K on a Mac), right-click any message, and choose Export Visible Messages To, then Clipboard.
- Safari. Turn on the Develop menu (Settings, then Advanced, then Show features for web developers), open the console with Cmd+Option+C, select the messages, and copy.
A clean log is one exhibit in a bigger report. The bug report template generator builds the full write-up with a section ready for the console error, the steps to reproduce generator turns what you did into numbered steps a developer or a coding agent can replay, and the bug severity and priority calculator sets the triage labels once the evidence is in. If the failure lives in the Network tab rather than the console, the HAR file sanitizer strips the cookies and tokens out of a recording before you attach it. When the log reads right, the buttons under the output send it straight to GitHub or Linear as a prefilled issue.
FAQ
Console log questions
How do I copy console logs from Chrome, Firefox, or Safari?
In Chrome or Edge, open DevTools with F12 (Cmd+Option+J on a Mac), click into the Console, press Ctrl+A or Cmd+A to select everything, and copy. Right-clicking in the Console and choosing Save as... writes the whole log to a file instead. In Firefox, open the console with Ctrl+Shift+K or Cmd+Option+K, right-click any message, and choose Export Visible Messages To, then Clipboard. In Safari, turn on the Develop menu first (Settings, then Advanced, then Show features for web developers), open the console with Cmd+Option+C, select the messages, and copy. Whichever browser it came from, paste the result into the cleaner above and it sorts the mess out.
What should I include from the console in a bug report?
The errors and their stack traces, first. An error with its stack tells a developer where the failure happened; the stack is the part people most often cut off, so keep every indented 'at' line under its message. Add any warnings that appeared around the same time, and a note on when the log was captured, ideally tied to your steps to reproduce. What you should not include is five hundred repeats of the same message, dev server chatter, or lines injected by your browser extensions. That noise buries the signal, and stripping it is exactly what this cleaner does for you.
Why does the same error appear hundreds of times in my console?
Because the code that throws it runs hundreds of times. An error inside a render loop, a scroll or resize handler, a polling call, or a retry loop fires once per pass, and the console logs every one. Chrome collapses exact repeats into a single line with a counter, but that counter is lost the moment you copy and paste, so the paste balloons back into a wall of text. It is still one bug. The cleaner collapses repeats into a single entry with an xN count, so whoever reads the report sees one error that fired 400 times, not 400 errors.
Is my pasted console output uploaded anywhere?
No. The cleaner runs entirely in your browser: the parsing, deduplication, and grouping are plain JavaScript on this page, and nothing you paste is sent anywhere. There is no server round trip and no storage of the pasted text. That matters for console output in particular, because logs routinely carry URLs with tokens, session identifiers, email addresses, and API responses. Clean the log here, read the output, and take out anything sensitive before you file it, because the tracker you paste it into is usually the least private place it will ever live.
Can a coding agent read the cleaned output?
Yes, both formats are built for it. Markdown mode groups errors, warnings, and everything else under predictable headings with fenced blocks an agent can lift straight into context. JSON mode goes further and emits one object per entry with level, message, count, and stack fields, which an agent can filter and act on without any parsing guesswork. Quell calls this agent-readable feedback: the same idea its widget applies automatically, capturing the console with every report, already deduped and structured. Feeding agents clean, structured logs instead of raw console walls is the difference between a fix and a follow-up question.