<human>: Hi guys :) so I've been with my twenty one year old boyfriend for three years and the first two had been completely great..

My boyfriend gets these mood swings where he starts blowing me off, insulting me,

snapping and giving me the silent treatment, he also refuses to tell me why or what's wrong and if I ask too much (I mean how can you not if you see your SO being annoyed and a day before nothing was wrong?) He gets even more angry.. 

He eventually tells me after a few days and everything goes back to normal like nothing ever happened... 

Its annoying tho cause in that period when he's mad he treats me like shit and makes me feel lonely and confused :(

We talked about this calmly and he admits to being a dick to me and apologises profusely and says he will stop doing it but he always does it again. 

Over and over. 

Now last night we were joking around all happy and stuff after he just told me he wants us to move in together and BAM! He gets annoyed, pissed off over something i apparently said and just started ignoring me.. 

He keeps avoiding me and pretty much sulking and being distant. It really hurts and I feel like I'm at the end of my rope here

I know he's not treating me right but I love him so much that it hurts, and he says he loves me and I'm his soulmate but I feel like his actions betray his words

he hurls insults (jokingly) often and we usually laugh but if I ever react or get mad because he hurt my feelings with a joke, he gets angry, tells me I'm being a bitch and starts ignoring me and being snappy..

Maybe I'm going crazy, but I feel like something is not right here...

What should I do? I love him and I don't really wanna lose him but I'm sick of having to walk around on eggshells because everything ticks him off..

Can you give me the gist of the text in a nutshell?
<bot>: my boyfriend says whatever he wants to me but the second I say anything back to him he spends days ignoring me and treating me like a stranger