diff --git a/packages/bruno-cli/src/commands/run.js b/packages/bruno-cli/src/commands/run.js
index 039932c58..420eb696d 100644
--- a/packages/bruno-cli/src/commands/run.js
+++ b/packages/bruno-cli/src/commands/run.js
@@ -1,7 +1,7 @@
 const fs = require('fs');
 const chalk = require('chalk');
 const path = require('path');
-const { exists, isFile, isDirectory, getSubDirectories } = require('../utils/filesystem');
+const { exists, isFile, isDirectory } = require('../utils/filesystem');
 const { runSingleRequest } = require('../runner/run-single-request');
 const { bruToEnvJson, getEnvVars } = require('../utils/bru');
 const { rpad } = require('../utils/common');
@@ -103,8 +103,7 @@ const getBruFilesRecursively = (dir) => {
     return bruJsons;
   };
 
-  const bruJsons = getFilesInOrder(dir);
-  return bruJsons;
+  return getFilesInOrder(dir);
 };
 
 const builder = async (yargs) => {
@@ -122,6 +121,10 @@ const builder = async (yargs) => {
       describe: 'Environment variables',
       type: 'string'
     })
+    .option('env-var', {
+      describe: 'Overwrite a single environment variable, multiple usages possible',
+      type: 'string'
+    })
     .option('insecure', {
       type: 'boolean',
       description: 'Allow insecure server connections'
@@ -129,12 +132,16 @@ const builder = async (yargs) => {
     .example('$0 run request.bru', 'Run a request')
     .example('$0 run request.bru --env local', 'Run a request with the environment set to local')
     .example('$0 run folder', 'Run all requests in a folder')
-    .example('$0 run folder -r', 'Run all requests in a folder recursively');
+    .example('$0 run folder -r', 'Run all requests in a folder recursively')
+    .example(
+      '$0 run request.bru --env local --env-var secret=xxx',
+      'Run a request with the environment set to local and overwrite the variable secret with value xxx'
+    );
 };
 
 const handler = async function (argv) {
   try {
-    let { filename, cacert, env, insecure, r: recursive } = argv;
+    let { filename, cacert, env, envVar, insecure, r: recursive } = argv;
     const collectionPath = process.cwd();
 
     // todo
@@ -175,6 +182,31 @@ const handler = async function (argv) {
       envVars = getEnvVars(envJson);
     }
 
+    if (envVar) {
+      let processVars;
+      if (typeof envVar === 'string') {
+        processVars = [envVar];
+      } else if (typeof envVar === 'object' && Array.isArray(envVar)) {
+        processVars = envVar;
+      } else {
+        console.error(chalk.red(`overridable environment variables not parsable: use name=value`));
+        return;
+      }
+      if (processVars && Array.isArray(processVars)) {
+        processVars.forEach((value) => {
+          let parts = value.split('=');
+          if (parts.length !== 2) {
+            console.error(
+              chalk.red(`overridable environment variable not correct: use name=value - presented: `) +
+                chalk.dim(`${value}`)
+            );
+            return;
+          }
+          envVars[parts[0]] = parts[1];
+        });
+      }
+    }
+
     const options = getOptions();
     if (insecure) {
       options['insecure'] = true;
@@ -240,7 +272,7 @@ const handler = async function (argv) {
       } else {
         console.log(chalk.yellow('Running Folder Recursively \n'));
 
-        bruJsons = await getBruFilesRecursively(filename);
+        bruJsons = getBruFilesRecursively(filename);
       }
 
       let assertionResults = [];