BleachBit 6.0.6 is a maintenance release that improves performance, adds cleaners for Helium browser and Docker, expands cleaning for web browsers, Claude Code, and VS Code-based editors, refreshes the application icon, and fixes issues with language selection, saving preferences, and wiping.
Highlights of enhancements and features:
- Speed up application startup, deep scan, file deletion, and file wiping
- Add cleaners for the Helium browser and Docker Desktop (Windows, Linux, and macOS), including Docker's AI assistant
- Clean more crash reports, GPU caches, and network state files in web browsers and VS Code-based editors, and more cache and session files in Claude Code
- On Windows, fix a bug in versions 5.0.0 through 6.0.5 that prevented saving settings after first running BleachBit as administrator, and automatically repair affected configuration folders
- On Windows, disable executable compression for fewer antivirus false positives, faster startup, and lower memory usage
- On Linux, fix configuration file ownership when running with sudo, and fix "BleachBit as Administrator" on Fedora and other Red Hat-based distributions
- On macOS, add support to cleaners for Adobe Acrobat, Devin, GIMP, Google Earth, TeamViewer, Visual Studio Code, VLC, Zen browser, and Zoom, and fix translations when launched from Finder
- Refresh the application icon
- Add a .deb package for Ubuntu 26.10
This release includes 327 commits changing 305 files, including 109 cleaners, from 37 authors (about 30 of them translators). Special thanks to XhmikosR for 135 commits improving performance, the Windows installer and build, lint and CI, and code quality. Thank you to alberto (trhuxtonr) for 16 commits improving macOS cleaner support, to Josh Santiago (JoshSantiagoKC) for a DeepScan optimization, and to Pujitha Paladugu (pujitha24) for an NSIS translation fix and spotting the false permissions issue.
Changes since version 6.0.4
All Platforms
Faster application startup, file scanning, file deletion, and file wiping. This release also adds cleaners for the Helium browser and Docker, expands cleaning for web browsers, Claude Code, and VS Code-based editors, refreshes the application icon, and fixes issues with language selection, saving preferences, and wiping.
- Clean more crash reports across many web browsers
- Add a cleaner for Helium browser
- Add Windows and Linux support to the new Docker cleaner. Also add a cleaning option for Docker's AI assistant.
- Clean more files in the Zen browser
- Clean more GPU caches in Chromium-based web browsers and VS Code-based editors
- Clean more Network Persistent State files in web browsers, Docker Desktop, and VS Code-based editors, including extension storage partitions and backup files
- Fix language selection in preferences dialog
- Clean more cache and session files in Claude Code on all platforms, and detect it running on macOS
- Fix preference changes being lost when quitting with keyboard shortcut (Cmd+Q on macOS, Ctrl+Q on Windows/Linux) instead of clicking the window's close button
- Update the application icon art, including on Windows, rendered from the square logo. On Linux and BSD, also install a scalable SVG icon for sharper display.
- Quickly abort wiping CD-ROM instead of freezing
- Fix crash in Arabic and Hebrew when wiping was nearing completion
- Allow comma-separated lists and negation in the CleanerML os attribute
- Detect CD-ROM
- Speed up processing paths during deep scan
- Wipe file contents in 512 KiB blocks instead of 4 KiB to improve wiping speed
- Fail closed on unrecognized tokens in CleanerML os attribute
- Avoid showing a bindtextdomain() error message during startup when GTK is not available
- Speed up startup by reloading the application menu only when translations change
- Avoid updating the cleaner list twice when a refresh starts while one is still in progress
- Import psutil on first use instead of at module import to boost startup speed
- Scan for orphaned wipe files off the main thread to boost startup speed
- Speed up sorting of the cleaner list to boost application startup
- Show startup messages in their own idle callback to boost application startup speed
- Delay initialization of the preferences dialog during startup to boost application startup speed
- Speed up refreshing the cleaner list (such as after closing Preferences)
- Load the app menu once instead of twice to boost startup speed
- Import minidom on first use instead of at module import to boost startup speed
- Import urllib.request on first use instead of at module import to boost startup speed
- Speed up loading cleaner definitions to boost startup speed
- Queue one log scroll at a time instead of one per line
- Avoid scrolling the activity log twice when an operation finishes
- Speed up deleting files by checking each path's type once instead of several times
- Speed up the startup check for leftover wipe files
- Cache the process list for is_process_running()
- Use options.commit() instead of close() in on_quit()
- Fix: when CLI was given multiple paths to wipe and one failed, the others would not be attempted.
- Import html.escape only when building the GTK error page for a small boost to startup speed
- Import secrets on first use in Wipe for a small boost to startup speed
- Fix leaked code comment into translation hint
Windows
Fixes a configuration permissions bug from versions 5.0.0 through 6.0.5 that prevented saving settings after running as administrator, and automatically repairs affected configuration folders. Disables executable compression for faster startup, lower memory usage, a slightly smaller installer, and fewer antivirus false positives, at the cost of about 22 MB more installed disk space. Also fixes wiping FAT32 drives, cleaning Chromium security files, and applying language changes without a restart.
- When creating the configuration directories on Windows, inherit the parent's ACL to maintain proper permissions. This fixes a bug affecting BleachBit 5.0.0 through 6.0.4. The symptom was that when BleachBit was later started without elevated permissions, the user was unable to save the configuration file, and the application reported errors saving the configuration.
- Detect and fix broken config permissions caused when the user first started BleachBit as administrator using BleachBit 5.0.0 through 6.0.5
- Disable executable compression (UPX) for exe, dll, and pyd files to reduce false positives with antivirus software, improve application startup, reduce memory usage, and shrink the installer (~500 KB) at the tradeoff of increasing installed footprint (~22MB) and larger portable zip file (~2.6 MB)
- Fix cleaning of TransportSecurity files for Chromium-based browsers on Windows
- Ship fc-cache.exe again so the installer can build the font cache for fontconfig
- Fix wiping FAT32 on Windows
- Fix: application menu required application restart after changing languages to take effect
- Also run BleachBit as the logged-on user when setup itself was started elevated (such as with Run as administrator).
- After installation, run BleachBit as the user who started setup instead of as Administrator, when launched from the Finish page.
- Remove the counterproductive step to strip binaries in the Windows build
- Update the NSIS installer from 3.12 to 3.13
- Shrink the Windows build by ~1 MB by removing unused modules and codecs
- Exclude unittest and test from library.zip to shrink the Windows build by ~150 KB
- Skip redundant language dialog in the elevated installer
- In System Information, show an environment variable with compatibility mode settings
- In the Windows installer, show the license as rich text instead of plain text
- Write the Add/Remove Programs links to the real uninstall key
- Use English instead of fuzzy translations in the installer
- Keep the fontconfig cache inside the portable folder
- Fix translated uninstaller text being replaced by an unrelated string
- Match any fontconfig cache version when checking for a font cache
- Keep the keyboard hook responsive while the splash screen starts
- Store Python modules in library.zip uncompressed to speed up application startup
- Yield between winapp2.ini sections so the GUI keeps painting
- Probe each winapp2 Detect key once per load to boost startup speed
- Speed up importing Winapp2.ini cleaners to boost startup speed
- Add line break for Italian NSIS finish/reboot pages
- Remove two unneeded .pyd files that took 43 KB to shrink installation footprint
- Show the splash for a missing font cache only with the fontconfig backend
- Run fontconfig's cache utility without a console window during installation.
- Use ctypes.windll instead of importing windll
- Update bundled dependencies to PyGObject 3.58.0, Pango 1.58.0, and HarfBuzz 14.4.0
POSIX
Fixes language detection and menu updates when switching languages, skips unreadable folders instead of stopping during localization scans, installs a scalable SVG icon, and clarifies several cleaner descriptions and warnings.
- Find the package in <prefix>/share when installed with make install
- Fix hamburger menu not following language changes
- Install the SVG icon into the hicolor theme
- Fix: skip folders without read permission when scanning for unneeded localization files, instead of stopping the scan
- Check whether a temporary file is open last, not first
- Clarify several messages and cleaner descriptions, including the macOS Full Disk Access warning and the Safari history description
- Fix automatic language detection when the system locale is C.UTF-8
- Prefer UTF-8 in locale matching
- Load localization paths on Unix, not only Linux.
Linux
Fixes configuration file ownership when running with sudo, fixes launching as administrator on Fedora and other Red Hat-based distributions, and expands cleaning for snap packages and LibreWolf.
- Create options directory if missing and fix ownership in sudo mode. This fixes bug affecting BleachBit 6.0.1 through 6.0.5. Affected Linux users can run `sudo chown -R "$USER" ~/.config/bleachbit` to fix permissions.
- Fix 'BleachBit as Administrator' on Fedora and other Red Hat-based distributions by using pkexec instead of consolehelper
- Create cookie keep list with correct ownership when running under sudo. This fixes bug affecting BleachBit 5.1.0 through 6.0.5. Affected Linux users can run `sudo chown -R "$USER" ~/.config/bleachbit` to fix permissions.
- Clean more snap revisions, while avoiding duplicates in the preview. Clean more LibreWolf installed as deb or Flatpak.
- Recommend pkexec for the .deb administrator launcher
- Drop the redundant attachments action from the Geary cleaner
macOS
Adds a Docker Desktop cleaner, cleans old Chrome versions, and adds macOS support for Adobe Acrobat, Devin, GIMP, Google Earth, TeamViewer, Visual Studio Code, VLC, Zen browser, and Zoom. Also fixes translations and language detection when launched from Finder, hides unsupported System cleaner options, and recognizes macOS 27 (Golden Gate).
- Add cleaner for Docker Desktop (initially here only for macOS)
- Add macOS support to cleaners for GIMP and Google Earth
- Clean orphaned Chrome framework versions (stale versions of Chrome)
- Fix locale directory resolution in macOS .app to enable translations
- Clean cookies, site_data, and more cache on TeamViewer
- Add macOS cleaning support for TeamViewer
- Add macOS support cleaning to the Zen browser
- Clean more caches on Adobe Acrobat on macOS
- Add macOS cleaning support for Adobe Acrobat/Reader
- Add macOS support for to the VLC and Zoom cleaners
- Add macOS support to the Devin cleaner
- Add macOS support to Visual Studio Code and forks
- Fix automatic language detection when the app is launched from Finder
- Fix untranslated Gtk.Builder strings on macOS Python without bindtextdomain()
- Fix detection of read-only status of paths such as /tmp
- Improve error handling when reading the system language preferences
- Add codename for macOS 27 (Golden Gate)
- In System Information, show macOS version number for unknown codenames
- Hide desktop_entry and localizations, which are not compatible with macOS, in the BleachBit System cleaner
- Detect process names in versioned binaries
- Avoid a possible error when detecting the system language
- Explain empty except clause in Safari cookie temp file cleanup
- Improve internationalization (translation)
BSD
Improves detection of open files on FreeBSD and makes automated FreeBSD testing more reliable.
- Fix: only strip device suffix from lsof output on FreeBSD
- Detect open files on FreeBSD with psutil.
- Replace the source tree in a reused FreeBSD VM instead of extracting over it
- Resume an interrupted FreeBSD image download instead of decompressing it
Developers
Enforces pylint, pyflakes, shellcheck, and autopep8 checks in CI alongside a broad codebase cleanup. Also speeds up and hardens CI builds across Linux, macOS, and Windows, adds Python 3.15 testing, fixes openSUSE Leap 16.1 packaging, and improves translation hints.
- Fix building .rpm for openSUSE Leap 16.1
- Log cleaners dropped from the Windows build at info level
- Run the Windows build unbuffered so py2exe output stays in order
- Fail the Windows build on NSIS warnings
- Install dev/lint tools via Homebrew on macOS
- Bump the github-actions group with 3 updates
- Bump pyflakes from 3.4.0 to 4.0.0
- Bump the pip group across 1 directory with 2 updates
- Fail the RPM check when BleachBit crashes before wc -l
- Name the UPX installer the way windows.setup expects
- Fail the Windows build check when a required module is missing
- Fail the Windows deploy when any upload fails, not just the last one
- Drop Windows build cleanup steps for files that are no longer produced
- Skip the missing-tool pause in the Windows build on CI
- Retry the test ISO download on Windows and Linux, including refused connections
- Fail the macOS smoke test when --list exits with an error
- Drop pytest-rerunfailures and serialize the clipboard test
- Fail the Windows build when a file to copy is missing
- Stop copying GTK paths the vcpkg bundle does not have
- Silence the NSIS warning for the Italian reboot text override
- Check the exe still starts after repacking library.zip
- Log startup timings when BLEACHBIT_STARTUP_PROFILE is set
- Fix: new test caused tests to crash on Windows
- Fix lint and run `make pretty`
- Include windows/ directory in lint and pretty targets
- Improve logging in GitHub Actions for Windows build
- Fix dev install for openSUSE Leap 16
- Extract normalize_locale_code() and use it consistently
- Fix: test_with_sudo
- Fail make lint on pylint and autopep8 findings
- Add a Windows pylint job that checks the win32 calls for real
- Narrow the pylint ignore list on Windows and add a lint-pylint target
- Allow pylint to introspect pywin32 where it is installed
- Bind the loop value into the system path lambda
- Silence the remaining pylint findings with a reason at each site
- Run shellcheck as a single invocation, parallel with pyflakes and pylint
- Pin the lint tool installs to requirements-lint.txt and use it in CI
- Fix and document the names that shadowed or redefined another
- Raise RuntimeError instead of a bare Exception
- Compare against the True sentinel with is
- Fix or silence the pylint warnings that are deliberate or platform-guarded
- Run autopep8
- Use else for the unknown-OS branch so the import chain is exhaustive
- Add docstrings to the custom action methods
- Drop else and elif after a branch that always exits
- Use list() and in-comparisons instead of the long forms
- Simplify negated comparisons and redundant expressions
- Remove redundant returns, imports, and an override
- Use a comment instead of a bare string statement
- Drop the now-redundant inline import-outside-toplevel disables
- Add a pylint config tuned to the project's conventions
- Move the duplicated infobar code into a shared mixin
- Share one helper for the PyGObject asyncio warning filters
- Find pyflakes by module when the distro binary name differs
- Fix the remaining pyflakes findings
- Fix or silence the shellcheck findings in the shell scripts
- Fail make lint on shellcheck and pyflakes findings
- Add a lint workflow running make lint on Linux with default Python
- Pass check=False to subprocess.run explicitly
- Specify the encoding when opening text files
- Let logging do the formatting instead of formatting eagerly
- Chain the original exception when re-raising as OSError
- Improve return type for get_filesystem_type()
- Fix: remove unneeded localedef in local Docker
- Smoke test the frozen network stack
- Add workflow to delete the caches of closed PRs
- Use chained comparison for window position check
- Test on Python 3.15 in CI
- Stop the Windows build if fonts.conf already has the portable cachedir
- Change GitHub Actions translation workflow: update to Python 3.14, switch wget to curl.
- Speed up CI by skipping redundant package updates on Linux and macOS.
- Deduplicate the macOS paths list with a YAML anchor.
- Speed up macOS CI by skipping Homebrew auto-update and cleanup when installing gettext.
- Speed up Windows artifact upload by skipping recompression of already-compressed files.
- Deduplicate the CodeQL paths-ignore list with a YAML anchor
- Cancel superseded CI runs on feature branches to save runner time.
- Improve contribution documentation about writing translation hints.
- Add and fix translation hints in .py
- Add missing translation hints
- Add translation hint for the warning element in CleanerML
- Propagate the failure of CleanerML XSD validation
- Add logging to GitHub Actions cache cleanup workflow
Security advisory
We have recently seen about one hundred impersonation scams for BleachBit on GitHub, Telegram, YouTube, and BleachBit-specific cybersquatting domains, so make sure you download only from the official BleachBit website or reliable mirrors. Also, verify the digital signatures (instructions for Windows and Linux).
If you see a brand impersonation scam, report it to the platform where you found it and also send us a note.
Other changes
- Add a .deb package for Ubuntu 26.10
- Renew the expiration date of the GPG signing key
- On Windows, update the GTK build (pygtkwin release v2026-09-24) to PyGObject 3.58.0, Pango 1.58.0, HarfBuzz 14.4.0, and libxml2 2.15.4. This build also includes two GTK patches that earlier builds silently skipped: GLib compatibility with UNC network paths and a PNG-only gdk-pixbuf.
Translations
61 languages were updated with 461 changes. The most active were suomen kieli (69), română (56), and svenska (38).
For Developers
- 327 commits (15 merged pull requests) changed 305 files, adding 24,640 lines and removing 14,231 (7,539 and 3,610 excluding translations)
- List of commits
- List of 65 closed issues
Website & Documentation
- Enable HSTS preload for bleachbit.org, so browsers always connect securely over HTTPS
- On docs.bleachbit.org, the copy button on console code blocks copies only the commands, skipping shell prompts and output
- Move documentation pages to URLs without the .html extension, with automatic redirects from old links
- Improve the documentation on phones with a collapsible navigation menu and a responsive CLI demo video
- Ease navigation: highlight the current page in the menu, share one header across all pages including the homepage, and link each page to its source on GitHub
- List hardware requirements in the install guides, and fix spelling, lists, and markup
- Polish visuals and accessibility with consistent styling for code, tables, and quotes, semantic landmark elements, and fewer ads (now only on documentation pages)
- List of commits in bleachbit-docs
- andrew's blog
- Log in or register to post comments