Hah, I use an old DOS grammar checker called Grammatik.
It works well enough for me, I use it with mutt instead of ispell. Naturally, it's 100% offline.
I made a (terrible?) unboxing video a while ago: https://www.youtube.com/watch?v=6DMlaJ-ROXc
I like to use write-good[0] - it takes a glob and prints suggestions to stdout.