diff --git a/action.yml b/action.yml
index 0d59255..e9fecd3 100644
--- a/action.yml
+++ b/action.yml
@@ -1,9 +1,14 @@
 name: 'Update flake.lock'
 description: 'Update your flake.lock and send a PR'
+inputs:
+  inputs:
+    description: 'A space-separated list of inputs to update. Leave empty to update all inputs.'
+    required: false
+    default: ''
 runs:
   using: "composite"
   steps:
-    - run: nix flake update --commit-lock-file
+    - run: ./update-input-or-inputs.sh ${{ inputs.inputs }}
       shell: bash
       env:
         GIT_AUTHOR_NAME: github-actions[bot]
diff --git a/update-input-or-inputs.sh b/update-input-or-inputs.sh
new file mode 100755
index 0000000..d01d0e3
--- /dev/null
+++ b/update-input-or-inputs.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+to_update=$*
+
+if [ -n "$to_update" ]; then
+  inputs=()
+  for input in $to_update; do
+    inputs+=("--update-input" "$input")
+  done
+  nix flake lock "${inputs[@]}" --commit-lock-file
+else
+  nix flake update --commit-lock-file
+fi