Helm allows one to specify their interface in the form of a class (helm-source) between (arbitrary searching code) and (helm-core = a standardized way to represent/navigate that in a buffer) which one can plug in his candidates for searching (anything).
So if one eg. used shell or remote tools, it would still plug into helm, one would write a "helm-source" which communicated to helm how the source was updated and provide actions to communicate back and update/filter the source.
So if one eg. used shell or remote tools, it would still plug into helm, one would write a "helm-source" which communicated to helm how the source was updated and provide actions to communicate back and update/filter the source.