#macos #declarative-settings #macos-automation

bin+lib cutler

Powerful, declarative settings management for your Mac, with speed

124 releases (14 breaking)

Uses new Rust 2024

new 0.15.2 Nov 12, 2025
0.14.6 Nov 9, 2025
0.9.6 Jul 15, 2025
0.2.4 Mar 17, 2025

#548 in Command line utilities

Download history 244/week @ 2025-07-16 45/week @ 2025-07-23 328/week @ 2025-08-06 197/week @ 2025-08-13 99/week @ 2025-08-20 33/week @ 2025-08-27 22/week @ 2025-09-03 395/week @ 2025-09-10 174/week @ 2025-09-17 682/week @ 2025-09-24 1167/week @ 2025-10-01 516/week @ 2025-10-08 13/week @ 2025-10-15 337/week @ 2025-10-22 9/week @ 2025-10-29

1,177 downloads per month

MIT/Apache

9.5MB
3K SLoC

Contains (Mach-o exe, 11MB) release/bin/cutler

🍎 cutler

Setup automation for your Mac

Crates.io Downloads Rust Tests

Pre-built binaries support macOS Big Sur (11.0) or later versions.

Quick Start

# Self-installing script
# See below sections for other methods.
curl -fsSL https://machlit.github.io/scripts/install-cutler.sh | /bin/bash

# Initialize a configuration file.
# Basic template includes preferences, Homebrew and external commands.
cutler init

# Modify using your preferred editor.
nano ~/.config/cutler/config.toml

# Apply your preferences.
cutler apply

What is cutler?

cutler simplifies the macOS setup pipeline by:

  • providing a declarative way to set system settings, without touching the Settings app,
  • wrapping around package managers for easy apps/tooling installation, and
  • by providing first-class support for external commands to ensure easy extensibility.

All of this happens with a single cutler.toml file in your config directory.

How it works

For backend functionality over system preferences, cutler wraps around the preferences APIs exposed by macOS. This allows for direct and instant feedback by just restarting the corresponding services related to the preference.

For wrapping around tooling, cutler includes mature implementations for extracting the data from the selected package managers. Sensitive actions (e.g. installing) are currently outsourced to remain as close to the original functionality as possible.

cutler is still in development and changes in functionality may be common during this stage.

Resources

Installation

curl -fsSL https://machlit.github.io/scripts/install-cutler.sh | /bin/bash

Using Homebrew

brew install hitblast/tap/cutler

Using cargo

cargo install cutler

Using mise

mise use -g cargo:cutler

Caveats

None at the moment. Previous issues with dictionary parsing for TOML & defaults-rs backend have been resolved.

Contributing

View the Contribution Guidelines to learn more about contributing to cutler. It also contains resources such as code snippets to make your contribution workflow easier.

License

This project is permissively licensed and free forever. See the license files mentioned below for the details:

Dependencies

~24–45MB
~719K SLoC