Hey Pepper

Your AI chief of staffDocs

Hey Pepper
Mac host

Mac: a second user for Pepper's own iMessage

Note

Planned: this page is preparation only. Pepper's outbox agent, the small program that will do the sending from the second user, is not distributed yet, so following these steps won't make Pepper send anything.

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 signed in to yours, so Pepper needs a second macOS user for its account.

These notes come from a prototype, tested on a Mac mini running macOS 27 in October 2026. The code is not in the repository yet; the plan is to add it to Pepper as a part.

Below, your own account is the admin user and the second one is Pepper Bot. Pepper creates a job folder for each message in a shared folder, and the outbox agent, running as Pepper Bot, has Messages send it.

A LaunchAgent is a background program macOS keeps running under the Pepper Bot account. AppleScript is Apple's scripting language.

  • The agent moves each job folder to work/, sends the message, and writes the result to done/<id>.json.
  • Every wait has a deadline: 90 s for the agent to pick up a job, then 120 s to send it. If the agent misses a deadline, or its heartbeat (the heartbeat.json it writes every minute) is more than 5 minutes old, the job is withdrawn and Pepper tells you. It never assumes the message went out.

1. Create the user (you, in System Settings)

System Settings → Users & Groups → Add User:

  • Standard account, not Administrator
  • full name e.g. "Pepper Bot", account name e.g. pepperbot

2. An Apple account for Pepper (you)

Create a new Apple account for Pepper, e.g. a new iCloud address. You can use your own phone number for its two-factor codes. Then, logged in as Pepper Bot (switch with Apple menu → Lock Screen, not Log Out; step 4 says why):

  1. Open Messages and sign in with Pepper's Apple account.
  2. Messages → Settings → iMessage: make sure iMessage is active, and turn Messages in iCloud off.
  3. Avoid "Resume Data Sync" in System Settings → Apple Account. It froze the account on macOS 27.
  4. Add the people Pepper will message to Pepper Bot's Contacts, with their correct numbers and emails.

3. Remote access for setup (optional)

To manage the second user over SSH from another computer, first turn on Remote Login (host setup), then:

  • add your SSH public key to /Users/pepperbot/.ssh/authorized_keys
  • allow the user in /etc/ssh/sshd_config.d/100-pepper.conf: AllowUsers <admin> pepperbot (<admin> is your own account name)
  • add it to the Remote Login group: sudo dseditgroup -o edit -a pepperbot -t user com.apple.access_ssh

4. Keep both users logged in

  • Switch users only with Apple menu → Lock Screen, then pick the other user. Never use Log Out: logging out the admin user stops Pepper, Beeper and every routine until you log back in. That happened on the first try.
  • After a Mac restart, only the user who unlocks it is logged in, so log in to Pepper Bot by hand once.
  • Memory: the second user adds under 1 GB to memory use, measured on 2026-10-29 (Which Mac). To cut it further, turn Siri off and use a static wallpaper for that account.

5. Allow Messages automation (you)

Once the outbox agent is available, the first time it sends, macOS asks whether it may control Messages. Click Allow. This is a security setting, so only you can allow it.

ProblemWhat to know
A photo arrives as a blank icon, error 34In a second user, Messages only attaches files under ~/Pictures. The agent copies each photo to ~/Pictures/pepper-outbox first
A photo goes out as an empty message, yet it is reported as sentOn macOS 27, send (POSIX file p) inside the Messages tell block sends an empty message. Turn the path into an alias before the tell block
AppleScript returns -10000 when listing accounts or chatsevery account / every chat fail. Use 1st account whose service type = iMessage, or chat id "…"
AppleScript can't create a group chat (-1700)Open an imessage://open?addresses=a,b&body=… draft and press Return by hand, once. Afterwards Pepper sends to the group by its chat id
A recipient's phone number shows green or red in a new accountA brand-new Apple account sometimes can't tell that a number has iMessage. Use that person's Apple-account email instead, and check again a day later
A typo in a number reached a strangerDouble-check every number in Pepper Bot's Contacts before the first send