Terminal logs arrive with baggage. Run your service with Docker, capture it through “tee”, or save a session that was rendered to a screen, and the file is littered with ANSI escape sequences: “[32m” and “[1m” and “[0m” scattered between every line. To a human terminal they are invisible color and style; to everything else they are unparsable control bytes that break grep, defeat log shippers, corrupt CSV exports and make stack traces unreadable. ANSI Color Code Stripper removes them all in one pass, entirely inside your browser.
The tool matches the full family of ANSI sequences: CSI escapes that set foreground and background colors, styles such as bold, underline, blink and reverse, cursor-movement and screen-clearing codes, OSC sequences like window titles and terminal hyperlinks, and the shorter Fe escape forms terminals use for less common control functions. Real escape bytes — the actual ESC (0x1B) byte plus its parameters — are stripped; literal backslash text like “\033[31m” (six separate printable characters as they sit in a source file) is left completely untouched, so code samples or documentation that merely print escape-looking strings stay safe and are never mistaken for real control sequences.
Beyond stripping, the tool gives you two small but genuinely useful controls over the plain text you end up with. Preserve newlines is checked by default and keeps every original log line on its own line, and it also quietly normalizes Windows-style CRLF endings down to a single LF so downstream tools that split on a plain newline behave consistently. Uncheck it and the behavior changes meaningfully: every line break in the pasted text is replaced with a single space, flattening the whole paste into one continuous line — handy when colored output needs to go into a field, a URL, or a search box that cannot contain literal newlines. Collapse blank lines works independently of that choice: turn it on and any line that is empty after trimming is dropped from the result, tightening up logs where every other line is blank padding.
After stripping you get clean plain text, ready to grep, diff, archive, or feed to a parser that expects sane input. The stats report exactly how many sequences were removed and the byte savings before and after, calculated on real UTF-8 byte length rather than character count, so multi-byte characters in your log never skew the numbers. All processing is local and instant — nothing is ever sent over the network.