Safety & permissions
What Halo will and will not do on your machine, and how you stay in control.
The service proposes, your machine decides
The Halo service reads your request and returns a signed proposal. It cannot run anything on your computer. Halo on your machine:
- verifies the proposal's signature and that it is for the request you sent;
- works out the real effect of every step itself (it never takes the service's word for it);
- decides whether to run it, ask you, or refuse;
- runs commands inside an operating-system sandbox (Seatbelt on macOS, bubblewrap on Linux) limited to what the step needs.
If the sandbox cannot be set up, Halo does not run the command.
What asks first
| Kind of step | Behavior |
|---|---|
| Reading (listing files, showing processes, Git history) | runs straight away |
| Changing files (move, copy, rename, write, convert, zip) | shows what it affects, asks |
| Removing (delete, stopping processes) | shows what it affects, asks; deleting goes to the Trash unless you ask for permanent |
| Running programs, services, packages, scheduling | shows the command, asks |
A multi-step job is shown whole and confirmed once.
Exactly what you approved
When you approve a change, Halo acts on exactly the files it previewed. Files that start matching afterwards are not added, and if a previewed file changed before the action, Halo stops instead of acting on something you did not see.
Machine access
Working in a folder lets Halo read and change that folder after your
confirmation. Reaching beyond it (other folders, running processes, network
ports, system information) needs your permission. You can allow some of these
always; consequential ones (stopping processes, system changes, administrator
rights) are asked every time and never remembered. See what you allowed with
/permissions.
Commands you type
$ command runs a shell command directly, without the service. It still goes
through the same local checks: dangerous commands ask, and the deny list
applies.