diff --git a/.gitignore b/.gitignore
index bf49a1b61c1fea587568e8f78e28944b09e143e0..c2b0d964a6225a814af480c2e3979956ce3c1db3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,3 +107,6 @@ desktop.ini
 
 # Secrets
 .lokalise_token
+
+# monkeytype
+monkeytype.sqlite3
diff --git a/script/monkeytype b/script/monkeytype
new file mode 100755
index 0000000000000000000000000000000000000000..dc1894c91edea21a913fc0b55fcbd2adf0419d43
--- /dev/null
+++ b/script/monkeytype
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Run monkeytype on test suite or optionally on a test module or directory.
+
+# Stop on errors
+set -e
+
+cd "$(dirname "$0")/.."
+
+command -v pytest >/dev/null 2>&1 || {
+  echo >&2 "This script requires pytest but it's not installed." \
+    "Aborting. Try: pip install pytest"; exit 1; }
+
+command -v monkeytype >/dev/null 2>&1 || {
+  echo >&2 "This script requires monkeytype but it's not installed." \
+    "Aborting. Try: pip install monkeytype"; exit 1; }
+
+if [ $# -eq 0 ]
+  then
+    echo "Run monkeytype on test suite"
+    monkeytype run "`command -v pytest`"
+    exit
+fi
+
+echo "Run monkeytype on tests in $1"
+monkeytype run "`command -v pytest`" "$1"