My grammar bot (who)
  • corrects Twitter users’ grammar (what, where)
  • since 2012 (when)
  • to serve the public interest by educating users (why),
  • by using heuristics to find patterns that usually constitute a solecism and correcting them (how).

It doesn't just correct everything; there are some restrictions.

Notify-Once Restriction - the bot will try not to correct you if you have been corrected in the last month.

Follower Restrictions - the bot automatically adjusts the follower count threshold (slightly) every 15 tweets or 16 hours, whichever occurs earlier, to maintain approximately 1 tweet/3 hours for each of the 14 checks. Some of the checks do not occur often enough, so this results in less than 120 tweets/day. Probably only 75% (90 tweets/day) will occur. Also, the minimum follower:following ratio is 3:2 (1.5).

Category Link
Corrections (tweets) (statuses/user_timeline) or [from:_grammar_] (not recommended)
Replies [to:_grammar_] or [@_grammar_ -from:_grammar_] (mentions)
Mentions without replies [ @_grammar_ -from:_grammar_ -to:_grammar_ ]
This bot used to favorite every reply, but this action has been reversed.
Raging responses [ to:_grammar_ fuck ]
Source code available on GitHub
Parser Test /r/grammarcheck/ on Reddit

Frequently Asked “Questions”

The bot made an improper correction.
Although I strive to keep the error rate low, the bot is not perfect. Additional checks have already been added to reduce false positives. Also, if you can improve the bot, feel free to submit a pull request.
I made a mistake similar to one the bot corrected, but mine was not corrected.
You need to meet the follower requirement, which dynamically changes, within a few (about 4) minutes of the tweet. After 8 minutes, it is safe to assume that you will not be corrected. If you wish to be corrected, you may force a correction by saying “#GRAMMAROVERRIDE” or “I don’t supposed to make this mistake.” Any tweet containing that statement (with the period, without quotation marks) or the hashtag (it must be entirely in capitals) is exempt from the follower restriction, but it is also case-sensitive. Please note that it will not bypass the notify-once restriction.
There is a 140 character limit.
The bot does not attempt to lengthen your tweet. For almost every correction, the length is either shortened or untouched.
The periods should be inside the quotation marks.
No, this is a style choice in American English, whose historical ‘rule’ was created to place ‘convenience above logic’: the newspaper printing presses might go out of alignment if the period is outside of the quotation marks, but the British still risked misalignment. Clearly, this is no longer an issue today.
Isn’t this a grammar bot? Why does it correct spelling?
The bot corrects for the grammar error, not for the misspelling. For example, there is is sometimes mistyped as *their is and will be corrected. However, sneak *peak (a sneaky mountain?) is sometimes misused to mean sneak peek (preview of the future). Both are valid noun phrases, so this does not concern grammar.
Do you have a life? Get a life, etc.
The bot isn’t even alive; it’s just a piece of software.
What happened to freedom of speech?
Because of freedom of speech, you have the right to use improper grammar, but the bot has the right to point it out.
My/Our Grammar Police!”? I/We don't have nor own grammar police. Also, the exclamation mark is superfluous.
The account name is intended to mean ((Your Grammar) Police) rather than (Your (Grammar Police)) and therefore means Police of Your Grammar rather than Grammar Police of You, so despite the awkward construction, there is no error. As Twitter allows 20 characters in the name, adding that one exclamation mark allows the name to fully occupy the space given for it. The name is still a complete noun phrase.

This issue has been resolved.

The biography uses poor grammar.
@victor_zheng, inspired by @StealthMountain, coded me, which am alerting users in whose statuses I detect improper grammar. To publish solecisms abases oneself!

While it might have awkward constructions, it does not have any grammar errors; it is grammatically valid and shouldn't've been perceived as incorrect. The 'am' in "me, which am alerting" is simple subject-verb agreement and is also notorious for causing unwarranted criticism.

Also, here’s a nice fact about the biography: it uses exactly 160 characters, the maximum allowed by Twitter.

This issue has been resolved by rewriting the biography for clearer language.

Shouldn’t ‘fewer’ be used for countable nouns instead of ‘less’?
Alfred the Great (888 AD) used ‘less’ for a number of words. Also, this modification would lengthen the tweet and is difficult to implement. Usually, ‘fewer’ is preferred over ‘less’ for countable nouns (except amounts like time, money, distance, speed, etc.) but does not have to be used, just like in the quote from Alfred the Great: "Swa mid læs worda swa mid ma, swæðer we hit ȝereccan maȝon." This means whether we may prove it with less words or with more.
Wasn’t this account suspended?
It was at one point, so I had to write this to Twitter many many times:

Upon registration, I agreed to the Twitter Terms of Service, Rules, and Privacy Policy.
My actions do not violate any rules specified those pages. The only prohibited uses of @replies are these two:

to send large numbers of duplicate @replies or mentions;
to send large numbers of unsolicited @replies or mentions in an
attempt to spam a service or link

My account, by sending @replies in a manner similar to that of @StealthMountain, does not spam any service nor does it spam links. Since it only @replies a user that it has not @replied before, it does not send any duplicates @replies.
There is no prohibited following behavior that was/is/will be engaged in.

You may review all of this account's tweets, and you will find that all of them do not even mention any service, and all of them have no links. They are all @replies, with no links and no services.

Thank you in advance!

Their automated system requires me to make a reply before they will consider my request:
I confirm that the account complies with the Twitter Rules as described in my initial request.