TL;DR

  • ChillSweep은 Windows와 macOS에서 설치된 앱·게임·개발 프로젝트를 대조해 잔여 파일을 찾고, 제거 전 항목별 근거와 결과를 설명하는 정리 앱임.
  • 일반적인 정크 위치 목록 대신 Windows 레지스트리·바로 가기·프로그램 파일·Store 앱, macOS 앱 번들·설치 영수증·로그인 항목, 양쪽의 실행 중인 프로그램과 Steam 라이브러리를 확인함.
  • 발견 항목을 Safe to clear, Leftovers, Your call로 나누며, 게임 저장 데이터와 오래된 프로젝트 등은 정크로 단정하지 않음.
  • 스캔은 읽기 전용이며 기본 선택 항목이 없고, 삭제 전 재검사와 사용자 확인을 거치며 항목을 휴지통으로 보내거나 기록함.
  • 실행 중 AI 모델을 사용하지 않으며, Rust·Node.js 기반으로 개발하고 GNU GPL v3.0으로 배포함.

ChillSweep

  • ChillSweep은 Windows와 macOS용 정리 앱으로, 제거된 앱·캐시·개발 프로젝트·게임이 남긴 파일을 찾아 제거 전에 항목별 설명을 제공함.
  • Windows 10/11 설치 파일은 ChillSweep-Setup.exe이며, 아직 코드 서명이 없어 첫 실행 시 SmartScreen 확인이 필요함.
  • macOS 11 이상에서 Apple silicon과 Intel을 지원하며, 설치 파일은 ChillSweep.dmg이고 서명 및 공증이 완료됨.
  • 각 릴리스에는 SHA-256 체크섬과 변경 사항이 포함됨.
  • 일반 정리 앱이 고정된 정크 위치 목록을 사용하는 것과 달리, ChillSweep은 사용자 폴더의 내용을 실제 설치 현황과 대조함.
  • Windows에서는 설치된 프로그램과 게시자에 관한 레지스트리 정보, 시작 메뉴와 바탕 화면 바로 가기, 프로그램 파일, Store 앱을 확인함.
  • macOS에서는 앱 번들, 설치 영수증, 로그인 항목을 확인함.
  • 양쪽 운영체제에서 실행 중인 프로그램과 Steam 라이브러리도 확인함.
  • 다음과 같은 항목을 탐지함.
  • 제거한 프로그램의 앱 데이터(예: “Docker Desktop isn't installed”)
  • 더는 존재하지 않는 폴더를 가리키는 설정 파일(예: environments.txt가 존재하지 않는 C:\…\miniconda3를 가리키는 경우)
  • 앱 자동 업데이트 후 남은 이전 버전
  • 다시 생성되는 셰이더 캐시, npm·pip·Cargo·Electron 캐시, 앱 업데이터 다운로드 파일
  • Git에서 무시되는 프로젝트의 빌드 산출물과 종속성
  • 제거한 게임의 빈 Steam 게임 폴더, Workshop 데이터, 셰이더 캐시
  • 설치되지 않은 게임의 저장 데이터. 이 항목은 정크가 아니라 “your call”로 표시됨
  • 다운로드 폴더의 용량이 큰 오래된 동영상, 설치 프로그램, 압축 파일
  • 모든 발견 항목은 Safe to clear, Leftovers, Your call 가운데 하나의 등급에 배정되며, 쉬운 표현으로 된 근거와 제거 시 결과를 함께 표시함.
  • 실행 중에는 AI 모델을 사용하지 않으며, 일반 신호와 소규모 지식 베이스(src-tauri/rules/default.toml)를 바탕으로 탐지함.

안전성

  • 스캔은 파일을 읽기만 하며, Windows에서는 레지스트리도 읽음. 다른 프로그램을 실행하지 않음.
  • .ssh, Documents, 브라우저 프로필, 비밀번호 관리자 등 보호 위치는 일반 신호로 탐지 대상으로 표시하지 않음.
  • 기본으로 선택된 항목은 없으며, 제거 전에 확인이 필요함.
  • 가장 최근 스캔에서 발견한 항목만 제거할 수 있으며, 제거 직전에 해당 항목이 여전히 존재하는지, 보호 대상이 아닌지, 실행 중인 프로그램이 사용 중이지 않은지 다시 확인함.
  • 캐시 옆의 Pro Tools 세션 파일처럼 항목의 정체를 정확히 보여 주는 신호는 보호 폴더 안의 항목을 표시할 수 있음. 이 경우에도 그 밖의 항목은 거부됨.
  • 키, 키체인, 클라우드 동기화, 비밀번호 관리자, 샌드박스 앱 데이터는 어떤 경우에도 제거를 거부함.
  • 창작 도구와 게임 엔진의 프로젝트 폴더는 프로젝트 파일을 기준으로 인식하므로 정크로 오인하지 않음. 프로젝트 관련 탐지 결과는 기본 합계에서 분리된 Projects 섹션에 표시됨.
  • 도구가 스스로 다시 생성하는 부분은 안전하게 정리할 항목으로 표시됨.
  • 한 번도 사용되지 않았거나 1년 넘게 열지 않은 프로젝트 전체는 “your call”로만 제안됨.
  • Windows에서는 항목을 휴지통으로 보내고 Undo 버튼을 제공하며, macOS에서는 휴지통으로 보내고 Show in Trash 버튼을 제공함. 영구 삭제는 Safe to clear 항목에 한해 선택적으로 가능함.
  • 모든 제거 내역은 Windows의 %LOCALAPPDATA%\ChillSweep\history.jsonl 또는 macOS의 ~/Library/Application Support/ChillSweep/history.jsonl에 기록됨.
  • 인터넷에서 가져오는 항목은 업데이트 확인뿐임. 시작 시 저장소 릴리스의 latest.json을 읽으며, 업데이트는 서명되어 있고 사용자가 선택한 경우에만 설치됨.

개발

  • 개발에는 Rust(MSVC 툴체인), Visual Studio C++ Build Tools, Node.js 22 이상이 필요함.
  • npm install은 종속성을 설치하고, npm run dev는 앱을 실행함. About 화면에서 실제 버전을 확인할 수 있음.
  • cd src-tauri && cargo test --lib는 단위 테스트를 실행함.
  • cd src-tauri && cargo run --example scan은 명령줄 스캔을 실행하며, 원시 출력을 보려면 -- --json을 추가함.
  • npm run notices는 종속성 변경 후 src/third-party-notices.txt를 다시 생성함.
  • npm test는 릴리스 파이프라인 테스트를 실행함.
  • npm run build는 현재 운영체제용 설치 프로그램을 빌드하며, 버전 형식은 1.{commit count}.0임.
  • npm run release는 빌드·서명 후 초안 릴리스를 업로드하며, 자세한 내용은 RELEASING.md에 있음.
  • 사용자 대상 변경 사항은 변경 시점에 CHANGELOG.md의 ## Unreleased 아래 불릿으로 기록됨. 해당 항목은 릴리스 노트와 앱의 About → What's new에 반영됨.

코드 구성

  • src-tauri/src/inventory/: 설치된 항목 정보(레지스트리, 바로 가기, 프로세스, 프로그램 파일, Steam)
  • src-tauri/src/signals/: 잡동사니 유형별 파일로 구성되며, 각 파일은 근거가 포함된 발견 결과를 반환함.
  • src-tauri/src/clean.rs: 제거, 실행 취소, 기록
  • src-tauri/rules/windows.toml, src-tauri/rules/macos.toml: 플랫폼별 보호 경로와 지식 베이스
  • src/: 일반 HTML, CSS, JavaScript로 구성된 UI
  • build-scripts/: 버전 관리, 릴리스 파이프라인, 변경 기록 삽입

라이선스

  • ChillSweep은 GNU General Public License v3.0에 따라 라이선스가 부여된 자유 소프트웨어임.
  • 함께 배포되는 타사 구성 요소와 해당 라이선스는 src/third-party-notices.txt에 기재됨.