diff --git a/changelog.d/9151.doc b/changelog.d/9151.doc
new file mode 100644
index 0000000000000000000000000000000000000000..753574806026daf1f1401f43a503095506af9437
--- /dev/null
+++ b/changelog.d/9151.doc
@@ -0,0 +1 @@
+Quote `pip install` packages when extras are used to avoid shells interpreting bracket characters.
diff --git a/docs/postgres.md b/docs/postgres.md
index c30cc1fd8cef525f4e0ac33533e3d043b6799c45..680685d04ef4ba957a4fd9c751cb9e93b8b14eea 100644
--- a/docs/postgres.md
+++ b/docs/postgres.md
@@ -18,7 +18,7 @@ connect to a postgres database.
     virtualenv](../INSTALL.md#installing-from-source), you can install
     the library with:
 
-        ~/synapse/env/bin/pip install matrix-synapse[postgres]
+        ~/synapse/env/bin/pip install "matrix-synapse[postgres]"
 
     (substituting the path to your virtualenv for `~/synapse/env`, if
     you used a different path). You will require the postgres
diff --git a/docs/workers.md b/docs/workers.md
index cc5090f22406e1e8df8bf10ebd5ed5cf828e06d8..d01683681f9e67bfc608544e7af2f81980dd6498 100644
--- a/docs/workers.md
+++ b/docs/workers.md
@@ -59,7 +59,7 @@ The appropriate dependencies must also be installed for Synapse. If using a
 virtualenv, these can be installed with:
 
 ```sh
-pip install matrix-synapse[redis]
+pip install "matrix-synapse[redis]"
 ```
 
 Note that these dependencies are included when synapse is installed with `pip