How to overwrite a Base.macro?

Sure.

import Base: @cmd

macro cmd(str)
...
end