diff --git a/action.yml b/action.yml
index 56025a40..534de6c7 100644
--- a/action.yml
+++ b/action.yml
@@ -25,6 +25,9 @@ inputs:
     description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
   cache-dependency-path:
     description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
+  cache-restore-only:
+    description: 'Set this option if you dont want to save the cache when it couldnt be restored.'
+    default: false
 # TODO: add input to control forcing to pull from cloud or dist.
 #       escape valve for someone having issues or needing the absolute latest which isn't cached yet
 outputs:
diff --git a/src/cache-save.ts b/src/cache-save.ts
index 0b071019..09b9ad93 100644
--- a/src/cache-save.ts
+++ b/src/cache-save.ts
@@ -33,6 +33,10 @@ const cachePackages = async (packageManager: string) => {
     core.debug(`Caching for '${packageManager}' is not supported`);
     return;
   }
+  if (core.getInput('cache-restore-only') == true ){
+    core.info(`Cache was not saved since 'cache-restore-only' was set }`);
+    return;
+  }
 
   if (!cachePaths.length) {
     // TODO: core.getInput has a bug - it can return undefined despite its definition (tests only?)