Skip to content

AlexGladkov/Spacie

Repository files navigation

Spacie

Native macOS disk space analyzer built for Apple Silicon. Visualize disk usage, find large files and duplicates, clean up caches — all in a fast, beautiful interface.

macOS 15+ Swift 6 License Platform

Features

Visualization

  • Sunburst (radial treemap) and rectangular treemap with seamless switching
  • Live visualization during scan — diagram builds in real time
  • Drill-down navigation with animated transitions and breadcrumb bar
  • Color-coded by file type (video, audio, images, code, archives, etc.)

Scan Engine

  • High-performance POSIX scanner (fts_open/fts_read) — targets 1M files in under 10 seconds
  • Arena-based file tree with string interning — under 500MB RAM for 5M files
  • Persistent binary cache with FSEvents incremental invalidation
  • APFS-aware: logical/physical size toggle, clone detection, hard link dedup

Cleanup Tools

  • Large Files — Top-N or threshold mode with sortable table
  • Duplicate Finder — progressive detection (size → partial hash → full SHA-256)
  • Smart Categories — 13 built-in plugins: Xcode DerivedData, brew, npm, Docker, Gradle, iOS backups, system logs, and more
  • Old Files — filter by last access date (6 months, 1 year, 2 years)
  • Storage Overview — system breakdown with purgeable space and recommendations

Safety

  • Drop Zone with two-step deletion (stage → confirm → Trash)
  • SIP-protected paths blocked, dotfiles show warnings
  • User-extensible blocklist (~/.spacie/blocklist.txt)
  • Graceful degradation without Full Disk Access

Integration

  • Reveal in Finder, Open in Terminal, Copy Path
  • Quick Look preview (Space key)
  • All volumes: internal, external, network
  • Native macOS tabs, keyboard shortcuts, Settings window
  • EN + RU localization ready

Requirements

  • macOS 15.0 (Sequoia) or later
  • Apple Silicon (arm64)

Build

# Clone
git clone https://github.com/AlexGladkov/Spacie.git
cd Spacie

# Option 1: Xcode
open Spacie.xcodeproj
# Build & Run (Cmd+R)

# Option 2: xcodegen (if you modify project.yml)
brew install xcodegen
xcodegen generate
open Spacie.xcodeproj

Project Structure

Spacie/
├── App/                        # Entry point, main window, settings
├── Core/
│   ├── Scanner/                # POSIX fts disk scanner
│   ├── FileTree/               # Arena-based tree + string pool
│   ├── Cache/                  # Binary cache + FSEvents monitor
│   ├── Duplicates/             # Progressive hash engine
│   └── SystemInfo/             # Volume, permission, trash managers
├── Features/
│   ├── Visualization/          # Sunburst + treemap (Canvas)
│   ├── DropZone/               # Deletion staging area
│   ├── FileList/               # Large files + old files
│   ├── Duplicates/             # Duplicate finder UI
│   ├── SmartCategories/        # Cleanup categories UI
│   ├── StorageOverview/        # System storage breakdown
│   └── Scan/                   # Volume picker
├── Plugins/
│   ├── Protocol/               # CleanupCategory protocol
│   └── BuiltIn/               # 13 built-in cleanup plugins
└── Shared/                     # Models, extensions, theme

Smart Categories (Built-in Plugins)

Category Typical Size Path
Xcode DerivedData 10–100 GB ~/Library/Developer/Xcode/DerivedData/
Xcode Archives 5–50 GB ~/Library/Developer/Xcode/Archives/
Xcode Device Support 5–30 GB ~/Library/Developer/Xcode/iOS DeviceSupport/
Homebrew Cache 1–20 GB ~/Library/Caches/Homebrew/
npm Cache 1–10 GB ~/.npm/_cacache/
node_modules 5–50 GB **/node_modules/
Docker Images 10–100 GB ~/Library/Containers/com.docker.docker/
Gradle Cache 5–30 GB ~/.gradle/caches/
System Logs 0.5–5 GB /var/log/, ~/Library/Logs/
Crash Reports 0.1–2 GB ~/Library/Logs/DiagnosticReports/
iOS Backups 10–200 GB ~/Library/Application Support/MobileSync/Backup/
Old Downloads varies ~/Downloads/ (> 30 days)
Trash varies ~/.Trash/

Adding custom plugins: implement the CleanupCategory Swift protocol and register in PluginRegistry.

Keyboard Shortcuts

Shortcut Action
Cmd+R Rescan
Cmd+1 / Cmd+2 Sunburst / Treemap
Cmd+[ / Cmd+] Back / Forward
Cmd+Up Parent directory
Cmd+Delete Add to Drop Zone
Cmd+Shift+Delete Empty Drop Zone
Space Quick Look
Cmd+I Get Info
Cmd+Shift+G Go to Folder
Cmd+F Search
Cmd+T New Tab

License

Non-Commercial License. Free for personal, educational, and research use. Commercial use is prohibited without a separate license agreement. See LICENSE for details.

About

Native macOS disk space analyzer for Apple Silicon. Sunburst/treemap visualization, duplicate finder, smart cleanup. Swift 6 + SwiftUI.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors