Runs a shell command on the user's Mac and returns its output. Always active. Disabled when LMCP is in read-only mode. Three kinds of command are refused, because they cannot be undone: formatting or overwriting a disk (mkfs, newfs, fdisk, diskutil erase/partition, dd to or from a disk device), a recursive delete of a system folder, of the user's home folder or one of its data folders (Documents, Desktop, Downloads, Library, Pictures, Movies, Music), of everything directly inside one of them, or of a target or folder the command's text does not settle (a variable, a command substitution, a cd inside a subshell), and a fork bomb. A command that names a credential location (keychains, ~/.ssh private keys, ~/.aws, ~/.config/gh, browser logins, another user's home) writes a file that runs code later (LaunchAgents, shell startup files, AI clients' folders), opens a script or a terminal app, controls a system service or power, pipes a downloaded script into a shell, writes to a device file or changes permissions recursively on a system path is NOT refused: the preview and the result carry a warning that says what it does. Controlling another app from the terminal is not available, whether or not the app is turned on in LMCP: a script that names another app (System Events included) is refused before it runs, and the refusal names the LMCP tool to use instead. Before confirming, tell the user what it will read or change, unless they asked for exactly this. The warnings read only the command's text, so a command that hides a path gets none. Commands run in a macOS sandbox that protects only Local MCP itself: the terminal cannot open or change Local MCP's own files by their path (its settings and token, binaries, activity log, messaging and web sessions, start-up item), cannot talk to its socket, and cannot open the files of an account whose Read or Write box the user turned off. No setting re-opens these. Because of that sandbox, setuid system programs other than ps and top cannot start (sudo, su, crontab, at, traceroute): the warning says so before the command runs, and the log command does not run. Inside the sandbox SwiftPM needs --disable-sandbox. Destructive: it previews the command first — pass confirm:true to actually run it. Output and runtime are capped.