Boyfriend trouble

My boyfriend calls me fat and ugly and stupid and different mean names. We live together. He doesn't take me out anymore. He goes out with his friends on Fridays, doesn't come home until around 1 or 2 am. He blocked me from his snapchat story. He stopped letting me see his phone about 5 months into the relationship. He gets so mad that I try not to fight with him because I'm scared he'll hurt me. He's hit me before and when he bruised me once I told his mom and showed the proof and she yelled at him. But sometimes he threatens to hurt me if I don't do something. How do I stop this?