Skip to content

Repository files navigation

Tilly logo

Tilly

A native macOS uninstaller.

MIT license Latest release macOS 27+

Tilly is a native macOS uninstaller. Pick an installed app, inspect the files tied to it, and move only the ones you approve to the Trash.

It matches by bundle identity, not loose filenames. Shared containers stay unchecked.

Download the latest release · Apple Silicon, macOS 27 or later.

Product flow

  1. Choose an app from the installed applications sidebar.
  2. Inspect related files discovered from bundle identity, preferences, containers, caches, logs, saved state, and support directories.
  3. Review every candidate with independent selection, sorting, search, paths, sizes, and shared-data warnings.
  4. Move approved items to the Trash after a native confirmation step.

Features

A native macOS experience

  • Swift 6 and SwiftUI with a NavigationSplitView layout.
  • Native menus, confirmation dialogs, progress states, and keyboard actions.
  • Light, dark, tinted, and clear app icon appearances through Icon Composer.
  • Independent sidebar search and related-file search.
  • Transient feedback for actions such as copying a path or bundle identifier.

Conservative discovery

  • Installed application scanning from /Applications and ~/Applications.
  • Bundle identifier, display name, executable, and version-normalized identity matching.
  • Metadata-aware container matching, including UUID-named containers.
  • Application Support, caches, preferences, logs, saved state, containers, group containers, and launch agents.
  • Bounded nested searches with duplicate parent and child pruning.
  • Shared group containers marked for review and deselected by default.

Safe removal

  • Selected files are moved to the Trash, not permanently deleted.
  • Protected system paths and symlink targets are validated before removal.
  • Running applications are detected before deletion and can be asked to quit.
  • Missing files, permission failures, and partial results are reported clearly.
  • No privileged helper, elevated shell command, or background daemon.

Safety first

Important

Tilly is an uninstaller. Review the selected paths before confirming. Shared containers can belong to more than one application and are left out of the default selection.

Tilly searches known locations and prefers confidence over recall. It does not search every file on disk or delete unrelated data based on a loose filename match.

It has no broad notification, camera, contacts, automation, or network permissions. Storage summaries avoid scanning personal folders at startup. Related application data is inspected on demand when an application is selected. If macOS protects a selected location, Tilly explains the requirement and opens the relevant System Settings pane instead of failing silently.

Installation

Download the app

Open the latest release, download the Apple Silicon DMG, and drag Tilly to Applications.

The current release is locally built, ad hoc signed, and not notarized because the project does not yet have a Developer ID distribution certificate. macOS may ask you to Control-click Tilly in Applications and choose Open on the first launch. Read the release notes for the checksum and verification details.

Build from source

Requirements: macOS 27 or later, Xcode 27 or later, Swift 6.

open Tilly.xcodeproj

Select the Tilly scheme and press Run.

Development

xcodebuild \
  -project Tilly.xcodeproj \
  -scheme Tilly \
  -configuration Debug \
  -derivedDataPath .xcodebuild \
  build

The development app is created at:

.xcodebuild/Build/Products/Debug/Tilly.app

Use SwiftPM for a lightweight compile:

swift build

Format and lint Swift sources:

xcrun swift-format format --in-place --recursive Tilly
xcrun swift-format lint --recursive Tilly

For the DMG and release process, see docs/RELEASING.md.

Project structure

Tilly/
├── App/                    # Application entry point
├── Features/
│   ├── Sidebar/            # Installed application browser
│   ├── Storage/            # Storage summary
│   └── Uninstaller/        # Related-file review and removal actions
├── Models/                 # Small value models
├── Services/               # Filesystem scanning, storage, and deletion
├── Shared/                 # Search and feedback components
├── ViewModels/             # Main-actor application state
└── Resources/              # Icon Composer source asset

Tilly.xcodeproj/            # Native macOS app project
Package.swift               # SwiftPM development target

See docs/ARCHITECTURE.md for runtime flow and design decisions.

Current scope

Tilly focuses on one workflow: inspect and remove files associated with an installed application.

The default app does not search every file on disk, inspect package receipts, remove orphaned data unrelated to a selected app, install a privileged helper, or run privileged system cleanup. Those are deliberate boundaries.

Community

License

Tilly is available under the MIT License.

About

Native macOS uninstaller. Inspect leftovers, then trash only what you approve.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages