Forget what I said, appstreamcli will always write to stdout, and there is little aptitude can do about that, so this needs to be solved in AppStream. I wonder if I can detect the curses interface somehow... If not, the refresh command will be quiet with the next release.
Cheers, Matthias