For a `string` arg, yes you do need that shell syntax to get a literal TAB.
Besides @xigoi's fine suggestions, you can also just set an environ variable called `t='<Ctrl-V>TAB'`. I do that for newlines sometimes (called `n`) where you don't even need the `<Ctrl-V>` keystroke (`^V` with typical default stty settings, anyway) - rather just quote-ENTER-quote. Once you have such a variable it's just "$t" or "$n". There is also "printf capture" as in `tab="$(printf \\t)"` (or `tr capture` or ..). However, as I already showed (in my comment lines), `cligen` will unescape a single `char` type [for you, though.](https://github.com/c-blake/cligen/blob/master/cligen/argcvt.nim#L29) . And if you hate _that_ then all this is CLauthor-overridable replacing `cligen/argcvt.nim` definitions between `import cligen` and `dispatch`. Documentation could be better. Feel free to hack away at the [cligen Wiki](https://github.com/c-blake/cligen/wiki).
