'juju-run' as currently written takes a single argument to run, so the entire thing needs to be quoted.eg: $ juju-run -r77 keystone/2 'relation-set monitors=CONTENT' From code: if len(args) < 1 { return fmt.Errorf("missing commands") } c.commands, args = args[0], args[1:] return cmd.CheckEmpty(args) ^ that last is saying 'the command to run is a single argument to 'juju-run' and there must be no further arguments. In 'juju run' we do: if len(args) == 1 { // If just one argument is specified, we don't pass it through // utils.CommandString in case it contains multiple arguments // (e.g. juju run --all "sudo whatever"). Passing it through // utils.CommandString would quote the string, which the backend // does not expect. c.commands = args[0] } else { c.commands = utils.CommandString(args...) } We should probably do the same for 'juju-run'. On Fri, Apr 3, 2020 at 6:20 PM Andrea Ieri