amfid on Mac: the code signature checker, why it is busy, and why you leave it alone
amfid is the Apple Mobile File Integrity daemon, the part of macOS that confirms an app's code signature is valid before the kernel lets it run. It is consulted on every launch of every app and helper, so it is always present, normally at 0 to 1 percent CPU. It gets busy when a lot of code is launching or has just changed: right after a macOS update, after installing Xcode or a large suite, or during a software build that starts thousands of small programs. That settles within minutes. It is a root security daemon, not safe to quit, and it relaunches anyway.
- What it is
- The user-space half of Apple Mobile File Integrity. The kernel asks it whether a program's signature checks out.
- Normal
- 0 to 1 percent CPU. Short bursts to 20 or 40 percent while a large app launches for the first time.
- Not normal
- Sustained high CPU with nothing launching, or every app taking many seconds to open for days.
- Safe to quit?
- No. It runs as root, relaunches at once, and app launches fail while it is gone.
- The one safe fix
- Let the post-update or post-install burst finish. If launches stay slow, free space, update macOS and restart.
What amfid does
AMFI stands for Apple Mobile File Integrity, a name inherited from iOS, where it was built first. It is the mechanism that makes code signing mean something. Inside the kernel, a component checks the signature of every executable as it is loaded. When the kernel needs help, for example to validate a signature against Apple's certificate chain or to check a provisioning profile, it asks a small user-space daemon: amfid. That daemon answers yes or no, and the kernel either lets the program run or kills it.
This happens for every app you open, every helper an app launches, every command-line tool, every plug-in. On a normal day that is thousands of checks, each one taking a fraction of a millisecond, which is why amfid is nearly always idle in Activity Monitor. It is in the same family as syspolicyd, which enforces Gatekeeper on first launch, and trustd, which evaluates certificates. Eclectic Light's walkthrough of how macOS launches an app shows the sequence: the kernel loads the code, AMFI validates the signature, Gatekeeper and XProtect run their checks on first launch, and only then does the app's window appear.
amfid also protects itself. It runs as root, is launched by launchd at boot, lives on the sealed system volume, and is one of the components that System Integrity Protection covers. There is no user setting for it.
What normal looks like
amfid is a short-burst process. The pattern looks like this:
There are few forum threads about amfid on its own, and that is telling. It is one of the quietest daemons on the system. When people do mention it, it is nearly always alongside syspolicyd, trustd or XProtectService in the first day after an update, or during a build that launches a huge number of small binaries.
Why amfid is using CPU right now
- A macOS update just installed. Every system component and app is validated fresh on its next launch. The first hour is busier than usual and then it is quiet.
- You installed or updated something huge. Xcode, a game engine, a creative suite, or a package manager pulling in hundreds of tools. Each new binary gets a full signature validation the first time it runs.
- A build or test run is in progress. Compilers, linkers and test runners launch thousands of short-lived processes. Each one is checked. amfid shows as busy for the length of the build and stops when it does.
- A certificate check is slow. Validating some signatures involves trustd and the network. On a VPN, a captive portal or a flaky connection, each check waits, launches hang, and amfid appears busy while it is mostly waiting.
- The disk is slow or nearly full. Signature validation reads the executable. On a full or failing drive those reads crawl, and so does amfid.
- An app with a broken signature keeps relaunching. A helper whose signature no longer validates gets killed by the kernel and restarted by its parent, over and over. Each attempt is a check. Quitting the parent app ends it, and updating that app fixes it properly.
Is it safe to quit amfid?
No. amfid runs as root, so Activity Monitor asks for your password, and launchd brings it back within a second. During that gap, any app trying to launch has no one to validate its signature and the launch can fail outright. If the busy period was caused by an update or a build, the new amfid simply continues the same work. There is nothing to gain and a small chance of a failed app launch to lose.
It is also a core security component. The techniques that disable AMFI require turning off System Integrity Protection and changing boot arguments, which removes real protection from the Mac. That is never the answer to a process using CPU for a few minutes after an update.
Run any name from Activity Monitor through the checker above. amfid lands squarely on leave it.
What to do, in order
- Ask what just happened
A macOS update, a big install, or a build running? Then amfid is doing expected work. Give it the hour and open the apps you use once each so their checks are done and cached.
- Watch whether it is bursty or flat
Normal amfid activity rises when something launches and falls back to zero within seconds. Watch Activity Monitor for two minutes. Bursts are fine. A flat high line with nothing launching is the thing to investigate.
- Look at the neighbors
Sort by CPU. If syspolicyd, trustd or XProtectService are busy at the same time, this is the post-update check-in and it is normal. If a single third-party app or helper keeps appearing and disappearing, that is the relaunch loop; quit that app.
- Check the network if launches hang
Disconnect the VPN, or switch to a different Wi-Fi network, and try opening an app again. If it opens instantly, the slow part was the online certificate check, not amfid itself.
- Free up disk space
Keep at least 10 to 20 GB free. Signature checks read the whole executable, and a nearly full drive makes every read slow. The free up space guide has the safe steps.
- Update macOS and the app that is looping
System Settings, General, Software Update. Then update any app whose helper keeps relaunching; a broken signature is nearly always fixed by the developer's next build.
- Restart
A restart clears any stuck validation and warms the caches cleanly on the way back up. If amfid is quiet after the restart, you are done. If launches are still slow for days with plenty of free space and a good connection, reinstalling macOS over the top from Recovery repairs the system volume without touching your files.
When to worry
A busy amfid is the system checking code, which is the behavior you want. These are the situations that merit attention:
- An app you rely on is killed the moment it launches, every time. That is amfid rejecting its signature. Re-download the app from the developer; if it still fails, the developer needs to re-sign it.
- Every app launch stays slow for days after an update with free space and a working network. That can mean a damaged system volume; a reinstall over the top fixes it.
- A process named amfid is running from anywhere other than the system volume. The real one lives at
/usr/libexec/amfid. Check the path in the Activity Monitor info panel.
None of these are reasons to disable SIP or AMFI. They are reasons to update, reinstall or replace the app in question.
- 1You open an app or a tool starts a helper
- 2The kernel loads the code and checks its signature
- 3When needed, it asks amfid to validate the chain
- 4amfid answers in a fraction of a millisecond
- 5The app runs; the result is cached for next time
- 6After an update, every app repeats this once
Because amfid's load is tied to what is launching, the useful record is the timeline: which processes started at the moment amfid rose. Safe to Quit keeps that history for every process, so a burst after an Xcode update and a loop from a broken helper look clearly different.
Look up another process
amfid is rarely alone in the CPU list. Type any other name from Activity Monitor to see what it is and whether it is safe to leave.
Questions people ask
What is AMFI on macOS?
AMFI is Apple Mobile File Integrity, the part of macOS that enforces code signing. A kernel component checks the signature of every executable as it loads, and a small root daemon, amfid, helps with the validations the kernel cannot do alone, such as checking against Apple's certificate chain. It is what makes a tampered or unsigned program fail to launch, and it is covered by System Integrity Protection.
What is the amfid process on Mac?
amfid is the user-space daemon for Apple Mobile File Integrity. The kernel asks it to validate code signatures when an app, helper, tool or plug-in launches. It runs as root from boot, lives at /usr/libexec/amfid on the sealed system volume, and is relaunched instantly if it stops. On a normal day it handles thousands of checks that each take a fraction of a millisecond, so it stays near zero CPU.
Why is amfid using CPU?
Because a lot of code is launching or has just changed. The first hour after a macOS update, a fresh Xcode or large suite install, and software builds that spawn thousands of small programs all produce bursts of signature checks. A slow network during online certificate checks, a nearly full disk, or an app whose broken helper keeps relaunching can make the bursts longer. All of these settle; none call for quitting amfid.
Can I quit amfid?
No. It needs your password to end, launchd relaunches it within a second, and in that gap app launches can fail because nothing is there to validate their signatures. Disabling AMFI properly means turning off System Integrity Protection, which removes a real protection. Let the post-update burst finish, free up disk space, update macOS and the looping app, and restart if needed.
How do I verify file integrity on Mac?
For apps, macOS does it for you: amfid and Gatekeeper validate the signature on launch, and an app that fails is not allowed to run. To check an app yourself, open it once from Finder; if it opens without a warning, its signature and notarization are intact. For downloaded files that publish a checksum, you can compare the SHA-256 value shown on the developer's site using the Terminal's shasum command, which is read-only and safe.
Is amfid a virus?
No. amfid is one of the components that protects a Mac from malware by refusing to run code whose signature does not validate. It is part of every macOS installation, runs as root under launchd, and lives on the sealed system volume. A process with the same name running from your home folder or Applications would be suspicious, but that is not what people see; the real amfid is simply busy for a few minutes after updates.
Sources and further reading
- How macOS Sequoia launches an app Eclectic Light, Mar 2025. Where AMFI, Gatekeeper and XProtect sit in the launch sequence.
- Why some apps launch very slowly Eclectic Light, Apr 2025. Signature validation on large bundles and slow first launches.
- How does Ventura check the security of known apps and command tools? Eclectic Light, Jul 2023. Repeat-launch checks versus first-launch checks.
- Gatekeeper and runtime protection in macOS Apple Platform Security Guide. Code signing enforcement and runtime checks.
- System Integrity Protection Apple support. Why core daemons like amfid cannot be modified.