Setting up the Mac that runs Pepper
Pepper runs on one always-on Mac, usually a Mac mini. Install it with the install guide; this
page covers the settings on the Mac, so Pepper keeps running through idle nights, power cuts and restarts. Change
them in System Settings, or let npm run setup power apply the power settings after asking you. npm run doctor,
Pepper's health check, reports on them in its host line.
Any Mac with Apple Silicon, as long as it is used only for Pepper; a laptop is only good for testing. The base Mac mini, with 16 GB of memory and a 256 GB drive, is enough. Memory use measured on an M6 Mac mini on 2026-10-29, with Beeper (the app that brings your chats together), Pepper, its voice, transcription and search workers and the phone line (Pepper answering calls) all running:
| What | Memory |
|---|---|
| Everything running and idle, voice ready | about 4 GB |
| While Pepper speaks a reply | 2 GB more, for a few seconds |
| While Pepper transcribes a voice note or a call | 2.5 to 4.5 GB more, for a second or two |
| macOS itself | 3 to 4 GB |
| A second macOS user, so Pepper can send from its own iMessage (planned) | under 1 GB |
Add them all up when memory use is highest and a 16 GB Mac still has room. Disk space is less of a concern: Pepper, Beeper and the three local models for voice, transcription and search take about 6 GB, and a month of Pepper's data is under 100 MB.
What does not fit is other work on the same Mac: a browser with many tabs, virtual machines, a photo library being indexed, or a local language model, which Pepper does not run. On the test Mac, Apple Intelligence used about 1 GB of memory; turning it off in System Settings frees that.
In System Settings -> Energy:
| Setting | Set to | Why |
|---|---|---|
| Prevent automatic sleeping when the display is off | On | A sleeping Mac misses messages, briefs and calls |
| Start up automatically after a power failure | On | Pepper comes back by itself after a power cut |
| Wake for network access | On | Lets you reach the Mac over the network if it ever does sleep |
Or in Terminal: sudo pmset -a sleep 0 disksleep 0 autorestart 1 womp 1.
The display still turns off after a while (10 minutes by default), and that is fine: Pepper needs the Mac awake, not the screen. If it keeps going dark while you set things up, keep it on until you close the Terminal tab:
caffeinate -dPress Control-C to stop it. To change the delay for good, use System Settings -> Lock Screen -> Turn display off when inactive.
On a laptop, npm run doctor passes the host check with a note, without looking at these settings.
Beeper Desktop, Pepper and the phone line all run inside your macOS login. Lock the screen instead of logging out: logging out stops everything until someone logs back in. On a Mac with a second user for Pepper's iMessage, see the guide to Pepper's iMessage user for switching users safely.
With FileVault on (Apple's disk encryption, recommended so a lost Mac gives away none of your data), a Mac that
restarts waits at
the FileVault screen. Nothing runs until someone types the password at the keyboard. After a power cut or a macOS
update, unlock it once and log in; Pepper then starts by itself, and so does Beeper if you set it to open at login
(System Settings -> General -> Login Items). Check with /status in Pepper's Telegram chat.
For a restart you plan, unlock ahead of time so the Mac comes back up on its own:
sudo fdesetup authrestartInstall macOS updates by hand, when you can check on Pepper afterwards. In System Settings -> General -> Software Update -> Automatic updates, leave "Install macOS updates" off.
To run commands on the Mac from your laptop, turn on System Settings -> General -> Sharing -> Remote Login and sign in with an SSH key rather than a password. Screen Sharing in the same pane lets you see its screen.
Keep System Settings -> Network -> Firewall on. If you add the phone line, its guide names the one app to allow.
| Check | How |
|---|---|
| Never sleeps, restarts after a power cut | npm run doctor: read the host line. A laptop passes without these checks, and FileVault still needs someone at the keyboard after a restart |
| Pepper starts at login | launchd/install.sh was run (install step 11); launchctl print gui/$(id -u)/com.pepper.agent shows it running |
| Logged in, screen locked | You see the lock screen, not the login window |
| Everything else Pepper needs | npm run doctor: every line ok |
Talking to Pepper by phone
Once the Android bridge, a spare Android phone plugged into the Mac, is set up, Pepper answers that phone's number.
Mac: a second user for Pepper's own iMessage
Pepper will be able to send iMessages, for example daycare photos to a family group, from its own Apple account instead of yours. Messages on a Mac uses one Apple account per macOS user, and you stay…