diff --git a/main.go b/main.go
index 1c86830ed43b113ccc8f0da98d5cc1bdc9432fcd..b45501bafaac45113f5b9cbbfda612dcdb98c2af 100644
--- a/main.go
+++ b/main.go
@@ -29,6 +29,7 @@ import (
 )
 
 func main() {
+	cli.PrintVersion()
 	cli.LoadConfig()
 
 	go http.ListenAndServe("localhost:6061", nil) // pprof Server for Debbuging Mutexes
diff --git a/packages/parameter/parameter.go b/packages/parameter/parameter.go
index ef82796fb744cf8b4c5b4dbe0197572eabe4c25a..7d390f1fb76675fdb95a58512c1b04544af5a4c5 100644
--- a/packages/parameter/parameter.go
+++ b/packages/parameter/parameter.go
@@ -37,7 +37,6 @@ func init() {
 // It automatically reads in a single config file starting with "config" (can be changed via the --config CLI flag)
 // and ending with: .json, .toml, .yaml or .yml (in this sequence).
 func FetchConfig(printConfig bool, ignoreSettingsAtPrint ...[]string) error {
-	flag.Parse()
 	err := parameter.LoadConfigFile(NodeConfig, *configDirPath, *configName, true, false)
 	if err != nil {
 		return err
diff --git a/plugins/cli/plugin.go b/plugins/cli/plugin.go
index 8fbaeab0e65f804969aa69fc89ef4321ff7d47ac..3075d0431d81b0e1daf9a6990fe4a9f4474d79cb 100644
--- a/plugins/cli/plugin.go
+++ b/plugins/cli/plugin.go
@@ -2,6 +2,7 @@ package cli
 
 import (
 	"fmt"
+	"os"
 
 	"github.com/iotaledger/goshimmer/packages/parameter"
 	"github.com/iotaledger/hive.go/events"
@@ -43,10 +44,20 @@ func parseParameters() {
 	}
 }
 
+func PrintVersion() {
+	version := flag.BoolP("version", "v", false, "Prints the GoShimmer version")
+	flag.Parse()
+	if *version {
+		fmt.Println(AppName + " " + AppVersion)
+		os.Exit(0)
+	}
+}
+
 func LoadConfig() {
 	if err := parameter.FetchConfig(false); err != nil {
 		panic(err)
 	}
+
 	parseParameters()
 
 	if err := logger.InitGlobalLogger(parameter.NodeConfig); err != nil {