Angelia

Angelia · Updated

Angelia for pi: setup, sandbox, approvals and limits

Angelia connects the pi coding agent on your Mac to WhatsApp and Telegram. Each chat gets its own pi session, in its own folder, on the model you pick. pi has no permission prompt and no sandbox of its own, so Angelia adds both: a gate that asks in the chat, and macOS's sandbox around every shell command. Angelia runs no model of its own: pi does the work, under the logins you gave it.

What Angelia does for pi

What you need

Set it up

curl -fsSL https://useangelia.com/install | sh
angelia service install

The first line checks the release's signature, installs Angelia and starts a setup wizard (read the script). Pick Quick or Advanced, then Telegram, WhatsApp or both. Pick pi as the CLI, then send the bot (or the second number) a message from your phone to pair the chat. The second line keeps Angelia running.

Already running Angelia with another CLI? An owner sends /backend pi in one of the profile's chats. Angelia edits the routing table, ~/.angelia/workspace/routing.yaml, with a backup, compiles the profile for pi and starts a fresh session.

Pick a model

pi's own default model may be from a provider with no login on this Mac. So after the switch, Angelia says to pick one. /model lists the models pi has a login for, as provider/model. Then set one for this session:

/model xai/grok-4.7

To keep a model for the profile, set model: on it in routing.yaml, then angelia accept and /restart.

What works from the chat

Approvals

The question comes to the chat as it does for Claude Code, and an owner answers yes <id> or no <id>. No answer in ten minutes means no. What asks depends on the profile's permission_mode:

pi's file tools read without asking, unless a deny rule covers the path. A command an owner approved may write outside the profile's folders; the deny rules still hold. Sending a file back in default mode takes two yes answers: one to write the file, one for the command that sends it.

What the sandbox does

Voice notes, photos and files

A photo or document you send lands in the profile's .inbox/ folder, up to 20 MB, and pi gets a [file: path] line. A voice note arrives as [voice note: path], and the agent runs angelia transcribe <path>. pi sends files back with angelia send-media. Every path is checked first: never a credential location, never another profile's folder.

Chat commands

/new, /stop, /status, /resume, /model, /effort, /backend, /restart and the others /help lists are answered by Angelia, without spending a token. /compact goes to pi's own compact command. When a provider hits a usage limit, the chat says to pick another model with /model. Long answers are split as for every CLI.

Tested

On 2026-10-27, with Angelia 0.3.22 and pi 0.86.1 on macOS, in a WhatsApp group routed to one profile in permission_mode: default. The model was xai/grok-4.7, picked with /model in the chat.

pi on Telegram is not tested yet. Voice notes are tested with Claude Code only.

Limits

Try Angelia

curl -fsSL https://useangelia.com/install | sh

It checks the release's signature, then a wizard pairs your first chat. Free and open source (MIT). How it works · Why pi runs this way · GitHub