Skip to content

Releases: decoded-cipher/makleen

makleen 0.3.0

Choose a tag to compare

@decoded-cipher decoded-cipher released this 26 Oct 11:32

Install with Homebrew, and let an AI agent do the cleanup for you.

Added

  • Homebrew. brew install decoded-cipher/tap/makleen. brew upgrade makleen keeps it current.

  • An Agent Skill for Claude Code, Codex and other agents that read SKILL.md. Ask your agent to free up space: it scans, explains what it found, looks into the check first items, shows you the dry-run plan, and cleans only what you approve. Link it once:

    ln -s "$(brew --prefix)/share/makleen/skills/makleen" ~/.claude/skills/makleen    # Claude Code
    ln -s "$(brew --prefix)/share/makleen/skills/makleen" ~/.agents/skills/makleen    # Codex and others
  • makleen scan --json lists every item with an ID, its paths or command, and whether it's preselected, flagged or locked.

  • makleen clean --id ID,... cleans exactly those items, without the checklist, and scans only their categories.

Changed

  • Logs outside a clone go to ~/.makleen/logs, so a Homebrew upgrade doesn't delete them. Run from a clone, makleen still writes them to logs/ in the repo.
  • The weekly report survives brew upgrade. If you scheduled it from a clone and switch to Homebrew, run makleen schedule install again.
  • --dry-run without a terminal now shows the plan instead of failing.

Fixed

  • With two or more Android emulators, only the last one's .ini file was deleted. The others were left behind pointing at deleted emulators. If you cleaned emulators before, check ~/.android/avd for leftover .ini files.

makleen 0.2.1

Choose a tag to compare

@decoded-cipher decoded-cipher released this 25 Oct 12:22

Protection patterns now work however you write them.

Fixed

  • NEVER_TOUCH patterns with capital letters protected nothing. Paths were lowercased before matching but patterns weren't, so '*/Application Support/Foo*' silently matched nothing. Matching now ignores case on both sides.
  • Other ways of writing a pattern were silently ignored too. In NEVER_TOUCH and PROTECT, these now work:
    • a leading ~ for your home folder: '~/Library/Application Support/Foo'
    • a trailing slash: '~/.ssh/'
    • a bare folder name, which protects every folder of that name and its contents: mkcert
    • a pattern for a folder's contents, which now also covers the folder itself: '*/foo/*' protects …/foo
  • PROTECT and LEFTOVER_IGNORE cared about case. Both now ignore it.

If you set any of these, run makleen scan --all to check that what you meant to protect no longer shows up.

Thanks to HOL on X for the question that found this.

makleen 0.2.0

Choose a tag to compare

@decoded-cipher decoded-cipher released this 25 Oct 03:14

First release of makleen, a lightweight CLI (~65 KB) that frees disk space on a developer's Mac. It scans, shows everything it found in a checklist, and cleans only what you tick.

What it finds

  • Tool caches: 40+ of them, including npm, Bun, pnpm, Yarn, Go, Cargo, uv, pip, Gradle, CocoaPods, Xcode DerivedData, Homebrew, Docker, browsers, and VS Code, Cursor and JetBrains caches. Where a tool has its own clean command, makleen uses it.
  • Build folders in idle projects: node_modules, .next, target, Pods, .venv and more, but only in projects with no commit, checkout or build for 60 days, and only next to the file that produces them.
  • Leftovers of deleted apps: data in ~/Library that no installed app owns. These go to a quarantine you can restore from.
  • Optional extras: iOS simulators, Android emulators, unused Docker images, Ollama and Hugging Face models, old Node versions, Xcode archives and more. These start unticked.

Safety

  • No sudo, and nothing outside your home folder.
  • Nothing changes until you confirm the plan; --dry-run shows it without cleaning.
  • Items that belong to a running app can't be selected.
  • Every run that changes something writes a log of what it deleted, moved or ran.

Install

Needs macOS. makleen runs on the zsh that macOS ships, from whatever shell you use.

git clone https://github.com/decoded-cipher/makleen.git && cd makleen
./makleen --dry-run   # see the plan, nothing changes
./makleen             # pick, confirm, clean

See the README for the full list, configuration and adding your own caches.