diff --git a/internal/cli/version/version.go b/internal/cli/version/version.go
index e445d751fc8..30250eec078 100644
--- a/internal/cli/version/version.go
+++ b/internal/cli/version/version.go
@@ -33,18 +33,20 @@ var tr = i18n.Tr
 
 // NewCommand created a new `version` command
 func NewCommand() *cobra.Command {
+	var noUpdateCheck bool
 	versionCommand := &cobra.Command{
 		Use:     "version",
 		Short:   tr("Shows version number of Arduino CLI."),
 		Long:    tr("Shows the version number of Arduino CLI which is installed on your system."),
 		Example: "  " + os.Args[0] + " version",
 		Args:    cobra.NoArgs,
-		Run:     runVersionCommand,
+		Run:     func(cmd *cobra.Command, args []string) { runVersionCommand(noUpdateCheck) },
 	}
+	versionCommand.Flags().BoolVar(&noUpdateCheck, "no-check-for-updates", false, tr("Do not check for updates, just print the current version."))
 	return versionCommand
 }
 
-func runVersionCommand(cmd *cobra.Command, args []string) {
+func runVersionCommand(noUpdateCheck bool) {
 	logrus.Info("Executing `arduino-cli version`")
 
 	info := version.VersionInfo
@@ -59,15 +61,17 @@ func runVersionCommand(cmd *cobra.Command, args []string) {
 	if err != nil {
 		feedback.Fatal(fmt.Sprintf("Error parsing current version: %s", err), feedback.ErrGeneric)
 	}
-	latestVersion := updater.CheckForUpdate(currentVersion)
+
+	var latestVersion *semver.Version
+	if !noUpdateCheck {
+		latestVersion = updater.CheckForUpdate(currentVersion)
+	}
 
 	if feedback.GetFormat() != feedback.Text && latestVersion != nil {
 		// Set this only we managed to get the latest version
 		info.LatestVersion = latestVersion.String()
 	}
-
 	feedback.PrintResult(info)
-
 	if feedback.GetFormat() == feedback.Text && latestVersion != nil {
 		updater.NotifyNewVersionIsAvailable(latestVersion.String())
 	}