diff --git a/scripts/check_auth.py b/scripts-dev/check_auth.py
similarity index 100%
rename from scripts/check_auth.py
rename to scripts-dev/check_auth.py
diff --git a/scripts/check_event_hash.py b/scripts-dev/check_event_hash.py
similarity index 100%
rename from scripts/check_event_hash.py
rename to scripts-dev/check_event_hash.py
diff --git a/scripts/check_signature.py b/scripts-dev/check_signature.py
similarity index 100%
rename from scripts/check_signature.py
rename to scripts-dev/check_signature.py
diff --git a/scripts/copyrighter-sql.pl b/scripts-dev/copyrighter-sql.pl
similarity index 100%
rename from scripts/copyrighter-sql.pl
rename to scripts-dev/copyrighter-sql.pl
diff --git a/scripts/copyrighter.pl b/scripts-dev/copyrighter.pl
similarity index 100%
rename from scripts/copyrighter.pl
rename to scripts-dev/copyrighter.pl
diff --git a/scripts/database-save.sh b/scripts-dev/database-save.sh
similarity index 100%
rename from scripts/database-save.sh
rename to scripts-dev/database-save.sh
diff --git a/scripts/federation_client.py b/scripts-dev/federation_client.py
similarity index 100%
rename from scripts/federation_client.py
rename to scripts-dev/federation_client.py
diff --git a/scripts/hash_history.py b/scripts-dev/hash_history.py
similarity index 100%
rename from scripts/hash_history.py
rename to scripts-dev/hash_history.py
diff --git a/scripts/make_identicons.pl b/scripts-dev/make_identicons.pl
similarity index 100%
rename from scripts/make_identicons.pl
rename to scripts-dev/make_identicons.pl
diff --git a/scripts/nuke-room-from-db.sh b/scripts-dev/nuke-room-from-db.sh
similarity index 100%
rename from scripts/nuke-room-from-db.sh
rename to scripts-dev/nuke-room-from-db.sh
diff --git a/scripts/sphinx_api_docs.sh b/scripts-dev/sphinx_api_docs.sh
similarity index 100%
rename from scripts/sphinx_api_docs.sh
rename to scripts-dev/sphinx_api_docs.sh
diff --git a/scripts/port_from_sqlite_to_postgres.py b/scripts/port_from_sqlite_to_postgres.py
old mode 100644
new mode 100755
index da760af0877de35b1f2fbc18024ba802d44677b5..f98342db51681016fbcf8f25f8b69ebeb13555c9
--- a/scripts/port_from_sqlite_to_postgres.py
+++ b/scripts/port_from_sqlite_to_postgres.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # Copyright 2015 OpenMarket Ltd
 #
diff --git a/register_new_matrix_user b/scripts/register_new_matrix_user
similarity index 100%
rename from register_new_matrix_user
rename to scripts/register_new_matrix_user
diff --git a/scripts/upgrade_db_to_v0.6.0.py b/scripts/upgrade_db_to_v0.6.0.py
old mode 100644
new mode 100755
index 298e9c0789b67dfc786e82fa91819fccc8dc4bcc..f466ca510ed42cd768d6f4861909aa9da5418976
--- a/scripts/upgrade_db_to_v0.6.0.py
+++ b/scripts/upgrade_db_to_v0.6.0.py
@@ -1,4 +1,4 @@
-
+#!/usr/bin/env python
 from synapse.storage import SCHEMA_VERSION, read_schema
 from synapse.storage._base import SQLBaseStore
 from synapse.storage.signatures import SignatureStore
diff --git a/setup.py b/setup.py
index ab24159be7198ecfff6ee8f7ddd6eaf7e7d5af9e..f9929591e73396ec715cbc80f543a8ce1f6e9359 100755
--- a/setup.py
+++ b/setup.py
@@ -14,6 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import glob
 import os
 from setuptools import setup, find_packages
 
@@ -55,5 +56,5 @@ setup(
     include_package_data=True,
     zip_safe=False,
     long_description=long_description,
-    scripts=["synctl", "register_new_matrix_user"],
+    scripts=["synctl"] + glob.glob("scripts/*"),
 )