Port diff command to core

I'm quite proud of this one.
:baby_bottle: 
Fixed by making argument `file` optional.