Tab completion of filenames has not worked well from the beginning. Completing a filename with whitespace would fail to add escapes, which meant that the user had to carefully fix the command, or add quotes. And tab completion with quoted filenames was also broken.
This all works now, and the fix was much more involved than it should have been. Completion from bash (which uses readline, apparently) works nicely. Trying to reproduce that behavior using the Python wrapper of readline defeated me. The delimiters used to delmit tokens depend on context (for marcel). So depending on context, I either wanted the default completer (which works great for filenames) or a custom one (for op names and marcel flags). But with the default completer, I found it impossible to successfully use the hooks needed to display the candidates and then place the selected candidate on the line being typed.
After bashing (hah!) my head against this problem for a few weeks, I looked for an alternative and found [prompt_toolkit](https://python-prompt-toolkit.readthedocs.io/). This is a very rich toolkit for doing command-line things from Python. I'll be adding more of its capabilities into marcel in future releases.
On one hand, marcel now has a new dependency, on prompt_toolkit. You shouldn't have to do anything because of this, but marcel installation will install prompt_toolkit, (similar to what already happens with psutil and dill).
On the other hand, the dependency on readline is removed! (Almost, upcoming dot releases will eliminate it completely). That removes a major impediment for porting to Mac and Windows. (I'm looking for volunteers to help with porting.)