broominal

module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2026 License: MIT

README ΒΆ

🧹 broominal

safe, transparent, undoable windows cleanup from the terminal

go ci release license platform

english Β· русский


What is it

broominal β€” a Windows cleanup CLI/TUI built around one rule:

cleanup must be reversible

Instead of permanently deleting files, broominal moves selected items into a local quarantine, stores JSON manifests, and makes every cleanup inspectable and restorable.

No fake boost magic. No hidden system tweaking. No "trust me bro" cleanup.

Main menu Scan results

Installation

go install github.com/elev1e1nSure/broominal/cmd/broominal@latest

Or grab the latest .exe from releases.

Build from source
git clone https://github.com/elev1e1nSure/broominal.git
cd broominal

go build -o broominal.exe ./cmd/broominal
.\broominal.exe ui

Quick Start

Typical workflow: scan β†’ preview β†’ clean β†’ restore if needed.

# find cleanup candidates
broominal scan

# preview what would be cleaned (dry-run)
broominal clean --dry-run

# clean safe items only
broominal clean --safe

# something went wrong? restore the last cleanup
broominal restore last

For an interactive experience, run broominal ui.


Safety Model

safe cleanup is selected by default. review requires manual choice. danger items are never cleaned automatically.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  safe    β–Έ selected by default                              β”‚
β”‚           temp files, thumbnails, shader cache, app caches  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  review  β–Έ user must select manually                        β”‚
β”‚           downloads, dumps, windows update cache, telegram  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  danger  β–Έ never cleaned automatically                      β”‚
β”‚           system paths, protected extensions                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Files are moved to %LOCALAPPDATA%\broominal\quarantine\<restore-id> with a manifest.json mapping original paths to quarantined paths.


Highlights

  • safe by default β€” files are quarantined, not deleted
  • transparent β€” scan results, reports, and manifests are plain JSON
  • undoable β€” restore any cleanup by ID or restore the latest one
  • predictable β€” explicit categories, risk levels, and exclusions
  • interactive β€” Bubbletea TUI for scan, preview, and restore
  • multilingual β€” English and Russian with first-run auto-detection
  • 30+ categories β€” temp, caches, logs, browser data, dev tools, and more
  • doctor β€” lightweight health checks for permissions, manifests, and state

Commands

scan

Scan your system for cleanup candidates across 30+ categories.

broominal scan

Scan results are saved as JSON for transparency and can be reviewed before any cleanup.

clean

Clean selected items. By default, safe and review items are cleaned. Danger items require explicit confirmation.

# clean safe and review items (default)
broominal clean

# allow cleaning danger items
broominal clean --danger

# clean only safe items
broominal clean --safe

# preview what would be cleaned without actually cleaning
broominal clean --dry-run
restore

Restore a previous cleanup. Every cleanup gets a unique ID that can be used to restore files.

# restore a specific cleanup by ID
broominal restore <id>

# restore the latest cleanup
broominal restore last

# restore with overwrite if file already exists
broominal restore <id> --force-overwrite
ui

Launch the interactive TUI for a guided cleanup experience.

broominal ui

The TUI lets you:

  • Browse scan results by category
  • Toggle items for cleanup
  • Preview total size before cleaning
  • Handle restore conflicts interactively
doctor

Run health checks to verify broominal is working correctly.

broominal doctor

Checks:

  • Admin rights
  • Directory write access
  • Manifest integrity
  • Quarantine statistics
config

View and edit configuration.

# show current config
broominal config

Config options include:

  • Enabled categories
  • Age/size thresholds
  • Exclusions
  • Risk overrides
  • Language preference
  • Quarantine max age
quarantine-cleanup

Clean up old quarantines to free up space.

# preview old quarantine cleanup (shows what will be removed)
broominal quarantine-cleanup

# remove quarantines older than 30 days
broominal quarantine-cleanup --force

# remove quarantines older than N days
broominal quarantine-cleanup --max-age-days 7 --force
report

Generate a cleanup report from the last scan.

# generate report (runs a fresh scan)
broominal report

The report is saved as JSON and includes scan results and cleanup statistics.


Configuration

You can customize broominal behavior with flags.

# clean only safe items
broominal clean --safe

# allow cleaning danger items
broominal clean --danger

# preview what would be cleaned
broominal clean --dry-run

Config file (%LOCALAPPDATA%\broominal\config.json):

{
  "enabledCategories": ["temp", "thumbnails", "logs"],
  "oldInstallerMonths": 6,
  "largeFileMinSizeMb": 100,
  "largeFileMonths": 6,
  "oldTempDays": 7,
  "oldExtensionDays": 30,
  "exclusions": [],
  "autoRiskOverrides": {},
  "language": "en",
  "quarantineMaxAgeDays": 30
}

Architecture

cmd/broominal/   CLI entrypoint (Cobra)

pkg/
  scanner/       file discovery by cleanup category
  cleaner/       quarantine move + report save pipeline
  quarantine/    move, restore, cleanup, JSON manifests
  report/        JSON report generation
  update/        check for and install updates
  config/        JSON configuration and defaults
  doctor/        runtime health checks
  i18n/          English/Russian localization
  style/         ANSI color helpers for CLI output
  util/          size formatting and shared helpers
  types/         shared domain types

internal/
  tui/           Bubbletea interactive interface

Philosophy

broominal is intentionally boring. It does not promise performance miracles, registry magic, or hidden optimization. It finds cleanup candidates, classifies risk, shows what it found, and moves selected files into quarantine so the operation can be reversed.

Small packages. Explicit responsibilities. No hidden cleanup magic.


Development

Enable shared githooks before committing:

git config core.hooksPath githooks

Hooks

  • pre-commit β€” warns when code changes may need documentation updates
  • commit-msg β€” enforces conventional commits

CI on every push / PR to main

gofmt β†’ go vet β†’ golangci-lint β†’ go test ./... β†’ Windows build artifact

Release workflow

git-cliff β†’ build broominal.exe β†’ signed tag β†’ GitHub release + checksums

Contributing

Bug reports, cleanup-category ideas, safety improvements, and Windows edge cases are welcome.

See CONTRIBUTING.md.


License

MIT Β© elev1e1nSure

Directories ΒΆ

Path Synopsis
cmd
broominal command
internal
tui
pkg
cleaner
Package cleaner orchestrates the quarantine-and-report pipeline.
Package cleaner orchestrates the quarantine-and-report pipeline.
util
Package util provides general-purpose helpers.
Package util provides general-purpose helpers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL