正在加载视频...
视频加载失败
closed source is dead... i just reverse-engineered CCleaner / CleanMyMac with Opus 5.5 for Mac & Windows PC $40/year cleaners → replaced in one afternoon. → free. open code. no account. no upsells. how it came together: • step 1 → Claude Code on Opus 5.5 in an empty... show more
34,415 次观看 • 1 天前 •via X (Twitter)
13 条评论

You are my senior desktop engineer and product designer. Together we are shipping "Cleanly", a free, open-source disk cleaner for macOS and Windows that looks and feels like Apple built it. I attached screenshots of CleanMyMac and CCleaner: treat them as a quality bar only. Name, logo, icons, copy and code must be 100% original. Work in phases. At the end of every phase, show me what you made and wait for my "go" before the next one. ─────────────────────────────────── PHASE 1 — Design exploration (no app code yet) ─────────────────────────────────── - Make 3 clearly different directions as clickable HTML mockups of the home screen: 1. light glass, 2. dark neon, 3. minimal / editorial. - Each mockup has: - a sidebar; - a hero card with a giant "X GB ready to reclaim" number and one Clean button; - a disk "space map" of bubbles sized by folder size; - 4 small status cards: Cleanup, Speed, Protection, Apps. - Make them interactive: Clean counts the number down, the bubbles react. - Then iterate with me on fonts, icons and buttons until it feels premium: - display font for numbers, clean UI font, mono font for small labels; - a custom duotone icon set; - a calm glass "capsule" primary button. Deliverable: one approved concept page. ─────────────────────────────────── PHASE 2 — Architecture & contract ─────────────────────────────────── - Stack: Electron (latest) + React + TypeScript + Vite. esbuild bundles the main process (ESM) and the preload (CJS). - Write `shared/types.ts` first: every data type and the full typed API between the main process and the UI. The main process's handler map must be typed so that a missing method fails the build. - Security baseline: - sandbox: true, contextIsolation: true, nodeIntegration: false; - the preload exposes only the typed API; - IPC refuses calls from any frame that is not our own index.html; - only https links leave the app, and they open in the system browser; - strict CSP in production, fonts bundled offline. - A mock implementation of the whole API, so the UI runs in a normal browser with realistic fake data (npm run demo). Deliverable: the contract, an app shell with the sidebar and routing, the design system in CSS, and the browser demo running. ─────────────────────────────────── PHASE 3 — Build in parallel ─────────────────────────────────── Split the work across sub-agents. Each owns its own files, and no two touch the same file: A. File scanner + delete/trash + disk map + large files B. Duplicates, startup apps, installed apps, protection status C. Settings (keys encrypted with Electron safeStorage), AI assistant, tips, feedback D. Home screen E. File screens (Cleanup, Space Map, Large Files, Duplicates) F. System screens (Speed, Apps, Protection, Assistant, Settings) G. Tip + Feedback screens and the mock API H. App icon, installers, CI What each part must do: - Scanner: - async walker using lstat, ~16 concurrent fs operations, never follows symlinks or junctions, bounded memory, progress events to the UI; - categories: - Windows: temp, Windows temp, browser caches for every profile, app caches, crash dumps, update downloads, dev caches, Recycle Bin, downloads untouched for 90+ days; - macOS: Library caches, logs, browser caches, Xcode DerivedData, dev caches, Trash, old downloads. - Space Map: - bubbles sized by folder size, drill-down, a source switch: Home plus every fixed drive (C:, D:, external volumes on Mac); - bubbles are a physics toy: drag, throw, collide (mass by area), spring back. Write transforms straight to the DOM, with no React re-render per frame. - Startup apps: - show impact (high / medium / low); - toggling writes the same StartupApproved REG_BINARY value Task Manager writes; - system-wide items go through one elevated reg.exe behind a UAC prompt; - on macOS, launchctl for LaunchAgents. - Apps: - real icons, sizes, last used; - uninstall with the vendor's own uninstaller (Windows) or move the .app to Trash (macOS). - Protection: - read-only check of Defender / firewall / Gatekeeper / XProtect / SIP with a 0–100 score; - honest copy: "Cleanly does not replace your antivirus". - AI assistant: - Claude via the official Anthropic SDK, or ChatGPT; the user's own key; - send only names, paths and sizes, never contents; - get structured JSON verdicts per path: safe / review / keep. - Tips: a native in-app screen with preset amounts, one-time / monthly and a note. Payment opens Stripe Checkout in the system browser. The app never sees card data. - Feedback: idea / bug / love, star rating, message, optional email and system info. Sends to <YOUR CONTACT EMAIL> by opening the user's mail app with the letter ready. ─────────────────────────────────── PHASE 4 — Safety review (separate agent, adversarial) ─────────────────────────────────── Its only job is to find ways real user data could be lost or leaked, and fix them. It must cover at least: - Never trust paths from the UI. The main process re-derives every cleanup location from the category id. - Canonicalize the FULL path with realpath, then run the guard again. Refuse: - drive roots, the home folder itself, OS and Program Files folders; - $RECYCLE.BIN, System Volume Information; - UNC/network paths, alternate data streams, trailing dots/spaces; - 8.3 short names like DOCUME~1; - standard user folders even when they were moved to D:. - Caches are deleted for good; user files ALWAYS go to the system Trash. - Keep temp files younger than 24 h (running apps use them). - Old downloads are processed after the Recycle Bin is emptied, never before. - File icons: no network/removable drives, and never .url/.lnk/.scf files. Windows would authenticate to a remote host and leak an NTLM hash. - Elevated actions: build arguments only from server-side data, escape for PowerShell, and handle a cancelled UAC prompt. - reg.exe prints in the OEM code page (e.g. 866): decode it properly. Deliverable: a list of every issue found and how it was fixed. ─────────────────────────────────── PHASE 5 — Integration & real-machine test ───────────────────────────────────- typecheck + build fully green. - Click through every screen in the browser demo: no console errors, no unhandled rejections, no effects without cleanup. - Package the Windows app and run it on my PC READ-ONLY. Capture screenshots through the Chrome DevTools protocol (--remote-debugging-port) and show me real numbers: disks, reclaimable GB, startup items, apps. Do not press Clean without my OK. - Known traps, check them before they bite: - backdrop-filter over an animated canvas → 3 fps. Don't. - WebGL shaders: render at 0.3–0.5× resolution and use real elapsed time per frame. - PowerShell 5.1 loses the exit code of an elevated child → re-read the registry instead of trusting it. - NSIS "could not open file" → the path is over 260 chars; build from a short folder. - Single-instance lock: a test run needs its own --user-data-dir. ─────────────────────────────────── PHASE 6 — Ship ─────────────────────────────────── - electron-builder: - Windows: NSIS installer + portable .exe; - macOS: .dmg + .zip for arm64 and x64, ad-hoc signed (hardenedRuntime off until we have an Apple ID). - Installer file names WITHOUT the version (Cleanly-setup.exe, Cleanly-mac-arm64.dmg…), so `releases/latest/download/<name>` links never go stale. - App icon: generate it from an SVG (squircle, soft pastel gradient, our brand mark). - GitHub Actions on a "v*" tag: build Windows on windows-latest and macOS on macos-latest, then publish a GitHub Release with every installer. - Before making the repo public: scan the whole git history for keys, tokens, emails and local usernames. Add a LICENSE (MIT). - README: features, the safety model, how to build, and first-run notes: - Windows: SmartScreen → More info → Run anyway; - Mac: xattr -cr /Applications/Cleanly.app. ─────────────────────────────────── PHASE 7 — Website (in parallel with phase 6) ─────────────────────────────────── - A separate session builds an Apple-style landing page in the same design language: - hero with a live recreation of the app window; - scroll-story sections: scan, space map, safety, AI, speed, protection; - FAQ and a download section with a Contact link. - Download buttons read from one config file that points to releases/latest/download. - Deploy to Vercel. Lighthouse 95+ on mobile and desktop. No horizontal scroll at 390px. ─────────────────────────────────── Definition of done ─────────────────────────────────── ✓ the app runs on my PC and finds real junk on every drive ✓ the safety review is complete, with fixes listed ✓ a public GitHub Release with .exe and .dmg that anyone can download ✓ the website is live and its download buttons work ✓ screenshots of the real app, not the mock

$40 a year to empty a cache folder was always wild pricing

Yeah. Also true

The moat will be trust

dammn, this is sick !

thx mate !

Claude just killed paid cleaners in one afternoon!

Paid cleaners charge for what's free. The real flex is the agent whose only job was to break it.

thanks bro. you just nailed it.

Love this build. Inspired by REA, I re-built a REA skill with recursive self learning, so it keeps building till the task is done. Give it a spin!

It's nice to be able to do but the real game changer is doing it in a low level language with only a few external packages. Less bloat. Less resources the app needs. Don't just fight the war on pay walls. Fight the war on bloat.

Windows so much wasted tokens. Reverse engineer it to Linux instead 😄

I thought Claud stopped this from happening?
