Maintain the Machine with ops
Use the built-in ops profile when the job is the machine itself rather than
a project: installing or removing software, reclaiming disk space, or fixing a
service.
caretz --profile ops -p "free up disk space: remove old Homebrew versions and caches"
caretz --profile ops -p "make ollama listen on my tailscale address"
Commands stay sandboxed but can see the real network, processes, and package
manager directories. Anything more, like sudo or /etc, asks you first and
then runs on your terminal; see
Run one command outside
.
What It Grants
- Write access to the Homebrew prefix and its caches and logs, plus
~/.local,~/.cache,~/.cargo,~/go, and~/.npmwhen they exist. - The real machine’s view: the host network, so
ip addr,ss, andtailscalesee real interfaces and ports, and the host’s processes and daemon sockets, sopsandtailscale statuswork. On Linux, the system D-Bus is reachable when Caretz doesn’t run as root, sosystemctl status,systemctl list-units, andloginctlanswer from the real host; anything that changes state through it still needs polkit’s approval. Sockets that control the host outright, such as the user bus, user systemd, and container engines, stay hidden. GPU device nodes are visible too, sonvidia-smi,tegrastats, and ROCm tools report the real hardware. Outbound traffic isn’t filtered. Commands run one at a time rather than in a persistent session, because session execution gives commands a private process list. - The same SSH, SSH agent, and GitHub CLI grants as
coding, read access to macOS log directories, and an operations-focused prompt.
Everything else (system services, /etc, sudo, Docker, apt) stays out of
reach until you approve a command.
Customize It
Settings under profiles.ops merge over the built-in:
{
"profiles": {
"ops": {
"sandbox": {"allowDocker": true}
}
}
}
This machine’s ops sessions then reach the host Docker daemon without asking;
Docker access is effectively root on the host. "sandbox": {"askSandboxOff": false}
turns escalation off, and "writableRoots": [] removes the package-manager
grants. Leave sessionExec off for ops: a persistent session gets a private
process list and hides the host’s ps and daemon sockets.