I wonder if there is any way to characterise Abelian groups (in Grp) in the language of category theory. This is so basic that I can't imagine that this is not possible, but I cannot think of a way how.
One idea was to say a group is Abelian iff it is equal to its Abelianisation, but this does not work, because in order to define the Abelianisation we already need to know what Abelian groups are.
Then I thought maybe requiring that all subgroups are normal would be enough, but this is not strong enough since there are non-Abelian groups with only normal subgroups.
There's probably something I'm not thinking about. Would appreciate some input.