great questions -- it's been so long since anyone actually inquired about user tools..
regarding the "macros" -- the basic idea is this.
when invoking a user tool, CHS:
1) creates a temp file with current clip contents; the full path to this file is %infile%.
2) thinks up a name for a temporary output file where it expects the changed clip to be stored; the full path to this is %outfile%.
3) invokes your tool with commandline you specify
4) it then looks in the %outfile% file to grab the new contents.
basically lets say you wanted to make a perl script to do lots of processing on some text, to clean it up.
you would make your script take 2 parameters, the input file and output file, and then youd pass them on the commandline when you configure your tool via CHS, like so:
myscript.exe "%infile% "%outfile%'
ok you asked about commandline input and output; right now its not supported, though you could very easily simply use a .bat file to execute whatever command you want that outputs to commandline and rout it to outfile, which is the easiest way to do it.
im not sure now whether %infile% and %outfile% have the complete paths in them or whether the complete paths are specified by "%tmpdir%/%infile%" and "%tmpdir%/%outfile%" which now seems more likely looking at the tool properties screen.
im happy to talk more over email to help you get things working and i'd appreciate a summary if/when you do get something working right, so i can update the help file with any lessons learned.. i think it's a nice feature in CHS but no one uses it so it's got very little testing. if there are issues i'm happy to try to improve it for the one user of it (you!).