'Return command line args as normalised unicode.
Args are decoded and normalised via :meth:`~Workflow.decode`.
The encoding and normalisation are the ``input_encoding`` and
``normalization`` arguments passed to :class:`Workflow` (``UTF-8``
and ``NFC`` are the defaults).
If :class:`Workflow` is called with ``capture_args=True``
(the default), :class:`Workflow` will look for certain
``workflow:*`` args and, if found, perform the corresponding
actions and exit the workflow.
See :ref:`Magic arguments <magic-arguments>` for details.'

@property
def args(self):

    msg = None
    args = [self.decode(arg) for arg in sys.argv[1:]]
    if (len(args) and self._capture_args):
        for name in self.magic_arguments:
            key = u'{0}{1}'.format(self.magic_prefix, name)
            if (key in args):
                msg = self.magic_arguments[name]()
        if msg:
            self.logger.debug(msg)
            if (not sys.stdout.isatty()):
                self.add_item(msg, valid=False, icon=ICON_INFO)
                self.send_feedback()
            sys.exit(0)
    return args
