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.

[0]: https://github.com/btford/write-good