`money serve --root DIR` failed because --root was only read before the subcommand; after it, the flag reached serve's own flag set, which knows only --addr, and was rejected. It is too natural a thing to type to refuse, so run now lifts --root/--root=DIR out of any subcommand's arguments before they are parsed. A bare `--` still ends it, and given on both sides, the one after the command wins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>