diff --git a/helpers/test.sh b/helpers/test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f10b1ff874f5b7ff8be3003aa9ca42389b0c0ff0
--- /dev/null
+++ b/helpers/test.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+echo '$1:'$1
+echo '$2:'$2
+echo '$3:'$3
+echo '$@:'$@
+echo '"$@":'"$@"
diff --git a/helpers/watchman_git_commit_generate_message.sh b/helpers/watchman_git_commit_generate_message.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5c89427bd515a123e6cc5ab5771194b12dde5046
--- /dev/null
+++ b/helpers/watchman_git_commit_generate_message.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# this generates a nicely formatted commit message for auto-commit
+# put changed files as params
+
+commit_msg=$'auto-commit\n\nchanges in:\n'
+
+# if no arguments are given, insert placeholder
+if [[ $# -eq 0 ]]; then commit_msg=$commit_msg$'\t-- no changes detected --';
+else
+	# loop over arguments (by shifting to the left)
+	while [[ $# -ne 0 ]] ; do
+		# $'' for c-style escape sequences
+		commit_msg+=$'\t- '$1$'\n'
+		shift
+	done
+fi
+
+# add everything to git
+git add -A
+
+# commit with message from stdin to preserve format
+git commit -F - <<< "$commit_msg"