Run pared wizard for guided setup or use the commands below. Requires Apple
silicon and macOS 27 or newer.
Run in Terminal:
curl --fail --location --proto '=https' --proto-redir '=https' \
--output "$HOME/Downloads/pared-install.sh" \
https://github.com/4evy/pared/releases/latest/download/install.sh &&
sh "$HOME/Downloads/pared-install.sh"The installer verifies the CLI’s SHA-256 checksum and opens the wizard. No Xcode or Homebrew needed.
Choose Install Pared to install in ~/.local or another directory. If you
add Pared to your shell’s PATH, open a new terminal window afterward. Updating
keeps your policy and refuses to overwrite an unrelated installation.
For offline installation, download install.sh, pared-macos-arm64.tar.gz, and
pared-macos-arm64.tar.gz.sha256 from the same release into one folder:
sh install.sh --archive ./pared-macos-arm64.tar.gzPut --archive first. Remaining arguments go to the wizard:
--prefix /full/path suggests an installation directory, and --policy FILE
opens a policy. Run sh install.sh --help for all options.
Install Xcode 27 or newer, then run:
brew tap 4evy/pared https://github.com/4evy/pared.git
brew install 4evy/pared/paredWith Nix flakes enabled:
nix run github:4evy/pared -- status
nix profile install github:4evy/paredFrom a local checkout, nix build produces ./result/bin/pared.
Run pared wizard and choose Guided setup. It walks through feature
choices, profile installation, optional model removal, and CLI installation. You
can skip steps; completed actions are kept.
Use arrow keys and Enter to navigate, Space to select features, and / to
search. Change more features combines choices before saving. A new policy
starts with everything off; review the draft before saving or discard it to
leave settings unchanged. Model removal has a separate preview and confirmation.
Use --policy FILE to open or create another policy. The wizard needs a
terminal at least 40 columns wide and 16 rows tall. Confirmations default to No;
removal previews list model groups, not disk space.
pared features
pared statusfeatures lists names for commands. status shows saved choices and readable
preferences, not runtime enforcement. Choices form a policy, stored at
~/Library/Application Support/pared/policy.json by default. Use
--policy FILE with a command to select another path.
Starting with a new policy, this enables Writing Tools and leaves every other feature disabled:
pared enable writingTools
pared profile openInstall the profile in System Settings to apply supported controls and block unwanted model downloads. Replace it after every change; its settings stay in effect until replaced or removed. Some controls require device management; see profile compatibility.
enable, disable, and reset save choices and apply supported local
preferences. They do not download or remove models.
After installing the matching profile, preview removal:
pared models cleanup --dry-runRemove them without a confirmation prompt:
pared models cleanupOnly groups whose known features are all disabled are removed. Shared models stay if any feature in Pared’s catalog is enabled or unmanaged.
To check Apple's current model mappings without removing anything:
pared models cleanup --reviewThe JSON report lists supported sets in targets and unavailable mappings in
skipped, with a reason for each skipped set. --dry-run only lists sets
eligible under your policy; it does not check their mappings. Choose either
--review or --dry-run.
To remove a reviewed subset, pass each set from targets with --asset-set:
pared models cleanup --asset-set com.apple.modelcatalogRepeat --asset-set for more sets. Each must be unique and still eligible under
your policy; Pared rechecks mappings before removal. The app and wizard show
supported and skipped sets in their removal review and keep skipped sets.
Unselected sets are kept.
Cleanup exits 1 if selected model folders remain. If macOS accepts removal but
Pared cannot inspect the folders, it exits 3: removal is unverified. Pared warns
before requesting removal if folder inspection is already unavailable. A folder
access error does not show whether models are in use. Check Full Disk Access in
System Settings -> Privacy & Security for your terminal app (or Pared when
using the GUI), then quit and reopen it before running pared models status
again. Checking status does not repeat removal.
When folder verification is unavailable, cleanup also checks recent MobileAsset daemon logs. It reports completed elimination only when every selected asset type has a successful completion and a matching request with no remaining payload descriptors or locked payloads. Missing, unreadable, or changed log records remain inconclusive. This confirms the daemon's result; it does not independently verify protected folders or measure reclaimed space, so exit 3 still applies. Pared does not repeat deletion to obtain these records.
Full Disk Access entries for ad-hoc builds can trust an older binary; remove and re-add the current app if its permission stopped working after a rebuild. Some model storage also requires restricted Apple entitlements. Sudo and Full Disk Access cannot supply those, so folder verification can remain unavailable even with both enabled.
If listing is denied, Pared tries directory entry-count metadata. It can verify
an empty type directory, or a type directory containing only an empty
purpose_auto directory. It rejects symbolic links and retains the access error
for unfamiliar or unreadable layouts. For nonempty protected storage, Pared
asks Apple's subscription daemon for asset paths, then checks each candidate
with filesystem metadata. It accepts the known purpose_auto layout only when
the asset directories and observed XML catalog or its .purged copy account
for every entry, with unchanged directory identity, entry counts, and
modification/change times.
Missing candidates, extra entries, and symbolic links leave inventory unknown.
models status includes directoryEntries when this broker listing succeeds.
When inventory proves there are no payloads, status skips the atomic-instance
query that would otherwise fail because its lock file is absent. This does not
grant access to model files.
Ask the daemon for paths and parsed asset metadata:
pared models inventory
pared models inventory --asset-type com.apple.MobileAsset.UAF.FM.OverridesThis is a read-only broker view. reportedAssets contains Apple's reported
locations and metadata; it does not contain the original Info.plist or XML
catalog bytes. Archive decryption keys are omitted. An empty or partial daemon
reply cannot establish an empty directory. The daemon omits some file fields,
including download and retention policies, so metadataFileContentsComplete
remains false. directoryListingComplete is true
only when filesystem metadata verifies coverage, proves an empty known layout,
or confirms that the type directory does not exist.
Incomplete coverage exits 1 and includes inventoryError. The command does not
subscribe, download, remove models, or retain asset locks.
For reported assets, inventory automatically reads Apple's configured catalog endpoint and audience, then makes an HTTPS metadata request. It sends the device model, hardware model, OS version, and OS build, without serial numbers or other unique device identifiers. Each request has a 32 MiB response limit and a 35-second resource timeout. It does not download model archives or cache the response on disk.
Each reportedAssets entry gets catalogMetadata only when its asset type,
specifier, version, and archive ID match, every shared broker field agrees, and
all compatible catalog entries have identical metadata. Uncompared local broker
annotations appear in catalogUncomparedBrokerFields. Archive decryption keys
remain omitted. catalogSource, catalogAssetSetID, and catalogPostingDate
describe the published catalog; they do not prove the local catalog's cached
state or file contents.
catalogMetadataMatched means every reported asset has a compatible,
unambiguous published metadata record. It does not establish directory coverage
or a read of the original files: directoryListingComplete and
metadataFileContentsComplete retain their separate meanings. A missing asset,
conflicting field, ambiguous metadata, or unavailable catalog leaves the catalog
match incomplete and exits 1. A verified empty inventory needs no catalog
request and reports zero matched assets. An empty broker view with incomplete
directory coverage remains incomplete and exits 1.
macOS can retain an initial lock error after its forced removal succeeds. If Pared confirms that every selected model folder is gone, cleanup succeeds without offering to quit processes.
Inspect apps and services with selected model files open:
pared models holdersThis prints an open-file snapshot as JSON. You can pass feature names to limit the selection. Open files do not prove which process blocked removal, and an empty result does not prove that there are no locks. Process visibility depends on privileges; running this read-only command with sudo can expose holders running under other accounts.
After unsuccessful cleanup, the GUI and wizard offer administrator inspection to find holders running under other accounts. Review the listed processes and choose Force Quit and Retry to terminate holders and retry removal once. macOS requests administrator authentication when another account owns a holder. Save your work first: force quit can lose unsaved work or running requests.
Pared rechecks the policy, process version, executable, and selected open files before signaling each holder. The kernel checks the process version again when delivering SIGKILL, so a reused PID does not become the target. If holders remain or restart, Pared shows them for review instead of killing them again. The retry uses the reviewed model sets and checks the resulting folders. Denied folder access still leaves removal unverified.
Foreground apps also have a normal-quit option. Apps can show a save prompt or refuse; this option checks status without repeating removal.
For models confirmed to be in use, close affected apps, log out or restart, then
check pared models status before retrying. Check status after timeouts too:
removal may already have happened.
Keep the profile installed to block new downloads. Pared checks folders, not recovered APFS space; System Settings may update its storage total later.
To keep Siri while disabling other features:
pared disable all
pared enable siri siriVoiceTrigger
pared profile openInstall the updated profile, then check Siri in System Settings -> Apple
Intelligence & Siri. siriVoiceTrigger controls voice activation separately;
omit it if you only want keyboard activation.
Keeping Siri enabled or unmanaged keeps its shared foundation models; basic Siri is not guaranteed to work if you delete them. Siri-related services also serve other macOS features, so a running process alone does not show that Siri is on.
To stop managing a feature:
pared reset inlinePredictions
pared profile openInstall the replacement profile to finish. reset removes local overrides; it
does not restore earlier values. Apple supplies defaults where no other policy
applies.
Enable the feature and install the replacement profile before requesting its models. For a feature with a download mapping, such as Genmoji:
pared enable genmoji
pared profile open
# Finish installing the profile in System Settings before continuing
pared models download genmoji
pared models status genmojiSuccess means Apple accepted the request; downloads continue in the background.
models status shows a snapshot and local folders, not live progress. For
features without a download mapping, turn them on in their Apple app.
Run pared gui to open the native interface. Use File -> Open Settings
File or pared gui --policy FILE to inspect another policy. Policies in
/nix/store are read-only in the app; change them in Nix and rebuild.
For source builds, see the build instructions.
The CLI uses its own policy unless you pass --policy. For nix-darwin, preview
cleanup using the generated policy with:
pared models cleanup --policy /etc/pared/policy.json --dry-runHome Manager puts its policy in $XDG_CONFIG_HOME/pared, usually
~/.config/pared. Change Nix-managed choices in your Nix configuration and
rebuild; CLI edits to a policy in /nix/store are rejected.
Alongside the policy, disable-apple-intelligence.mobileconfig is the profile
to install in System Settings. declarations.json is for supervised mobile
device management (MDM) enrollment and cannot be installed there.
Both modules clean up eligible models during activation, retrying after policy
changes or failures. Set programs.pared.cleanupOnActivation = false; to opt
out. Activation does not install the profile. See the Nix setup
guide for configuration.
Home Manager respects activation dry runs and stores its cleanup record in
$XDG_STATE_HOME/pared; nix-darwin uses /var/db/pared.
Run pared --help for all commands. Read how profiles and model removal
work for implementation details.