DEV Community

Kouki Badr
Kouki Badr

Posted on

from a CLI engine to four different usage: Cleanbev

If you've shipped a Flutter app for more than a few months, you know the drill: assets pile up. Old icons nobody swapped out, images from a design iteration three sprints ago, a splash screen you replaced but never deleted. assets/ quietly turns into a junk drawer, and nobody notices until app size becomes a conversation.

That's the problem Cleanbev is solving — But in 4 different ways not only via a CLI.

It started as just that: a CLI but today it covers every surface a developer might actually want to use it from.

The four surfaces

🖥️ CLI The original. dart pub global activate cleanbev, then run it in your project root.

🤖 MCP Server Lets AI coding assistants (Claude, Cursor, and others) clean up unused assets as part of an agentic workflow, instead of you manually running commands mid-conversation.

⚙️ GitHub Action Drop assets checks straight into CI which catch unused assets before they ever reach production.

🧩 VS Code Extension: new Scan and clean unused assets without leaving your editor. This is what I'm actually writing this post about.

What the extension does

Two commands, both from the Command Palette:

Cleanbev: Dry Run — scans your project and shows you exactly what's unused, as structured results, without touching anything. This is the one you run first, every time.
Cleanbev: Clean — scans and removes unused assets, after you confirm the assets path.

Requirements (for now)

The extension is a UI layer on top of the real CLI, not a reimplementation — so it needs the CLI installed:

dart pub global activate cleanbev
Enter fullscreen mode Exit fullscreen mode

I went this route deliberately for v1 rather than reimplementing the detection logic inside the extension itself. Once you have a CLI, an MCP server, and a GitHub Action all needing to agree on what "unused" means, keeping one canonical implementation that everything else calls into is a lot saner than three parallel implementations quietly drifting apart. A dependency-free bundled binary is on the roadmap, but "one source of truth" won out for launch.

Try it
📦 Cleanbev package https://pub.dev/packages/cleanbev
🧩 Cleanbev extension VScode Extension
🤖 The MCP tool https://pypi.org/project/cleanbev-mcp/
🛞 The github action https://github.com/marketplace/actions/cleanbev-asset-check

If you run into anything or have ideas for what the extension should do next, I'd genuinely love the feedback.

This whole project has grown a lot more than I originally planned for one CLI tool, and that's mostly been driven by people actually using it and telling me what they needed next.

Top comments (0)