diff --git a/content/features/upcoming features.md b/content/features/upcoming features.md
index 34a95d9..671e6a1 100644
--- a/content/features/upcoming features.md	
+++ b/content/features/upcoming features.md	
@@ -6,8 +6,6 @@ draft: true
 
 - back button doesn't work sometimes
 - images in same folder are broken on shortest path mode
-
-- install dependencies on quartz update
 - https://help.obsidian.md/Editing+and+formatting/Tags#Nested+tags nested tags?? and big tag listing
 - watch mode for config/source code
 - https://help.obsidian.md/Editing+and+formatting/Basic+formatting+syntax#Task+lists task list styling
diff --git a/quartz/bootstrap-cli.mjs b/quartz/bootstrap-cli.mjs
index aa26ffc..1f853a2 100755
--- a/quartz/bootstrap-cli.mjs
+++ b/quartz/bootstrap-cli.mjs
@@ -247,6 +247,8 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started.
     )
     spawnSync("git", ["pull", UPSTREAM_NAME, QUARTZ_SOURCE_BRANCH], { stdio: "inherit" })
     await popContentFolder(contentFolder)
+    console.log("Ensuring dependencies are up to date")
+    spawnSync("npm", ["i"], { stdio: "inherit" })
     console.log(chalk.green("Done!"))
   })
   .command("sync", "Sync your Quartz to and from GitHub.", SyncArgv, async (argv) => {
@@ -339,9 +341,6 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started.
       .catch((err) => {
         console.error(`${chalk.red("Couldn't parse Quartz configuration:")} ${fp}`)
         console.log(`Reason: ${chalk.grey(err)}`)
-        console.log(
-          "hint: make sure all the required dependencies are installed (run `npm install`)",
-        )
         process.exit(1)
       })