diff --git a/.attach_pid1994321 b/.attach_pid1994321
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/.idea/go.imports.xml b/.idea/go.imports.xml
new file mode 100644
index 0000000000000000000000000000000000000000..73135801851111686d379b615ac4a0d3a77c8da2
--- /dev/null
+++ b/.idea/go.imports.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GoImports">
+    <option name="addUnambiguousImportsOnTheFly" value="false" />
+    <option name="optimizeImportsOnTheFly" value="false" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/libraries/fs.xml b/.idea/libraries/fs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8b6d565e46c6323b2871bf88c06c0a867df3197a
--- /dev/null
+++ b/.idea/libraries/fs.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="fs">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/html/template/testdata/fs.zip!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/testdata.xml b/.idea/libraries/testdata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f02ec5752f230990f382929706be4d01d5740ebe
--- /dev/null
+++ b/.idea/libraries/testdata.xml
@@ -0,0 +1,36 @@
+<component name="libraryTable">
+  <library name="testdata">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/symlink.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/test-prefix.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/utf8-7zip.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/zip64-2.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/winxp.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-22738.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/dupdir.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/utf8-infozip.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-win7.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/test-trailing-junk.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-osx.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-winrar.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/utf8-winrar.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-winzip.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/test-baddirsz.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-7zip.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/subdir.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/test.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/dd.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/utf8-winzip.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/crc32-not-streamed.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/readme.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/unix.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/utf8-osx.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-infozip.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/go-with-datadesc-sig.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/zip64.zip!/" />
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/src/archive/zip/testdata/time-go.zip!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/zoneinfo.xml b/.idea/libraries/zoneinfo.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4d0d4c00e4b0718983f67870b84481ab5e7c1b49
--- /dev/null
+++ b/.idea/libraries/zoneinfo.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="zoneinfo">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/.devenv/profile/share/go/lib/time/zoneinfo.zip!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/markdown.xml b/.idea/markdown.xml
new file mode 100644
index 0000000000000000000000000000000000000000..091f9820df8f2a4f86396c8263e916abdd75b44b
--- /dev/null
+++ b/.idea/markdown.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="MarkdownSettings">
+    <enabledExtensions>
+      <entry key="MermaidLanguageExtension" value="false" />
+      <entry key="PlantUMLLanguageExtension" value="true" />
+    </enabledExtensions>
+    <option name="fontFamily" value="JetBrains Mono" />
+    <option name="fontSize" value="15" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index bb7ece6409c90b758e2afd1ddd99a2dc8cef315e..0ff8b3edb3bfce0eb481faf9ba746d50eee454b8 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,6 +3,9 @@
   <component name="ComposerSettings">
     <execution />
   </component>
+  <component name="ProjectRootManager">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
   <component name="accountSettings">
     <option name="activeProfile" value="profile:default" />
     <option name="activeRegion" value="eu-west-1" />
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..19725177850d877f15c675f54f70f511dcb8f4d1
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/version.iml" filepath="$PROJECT_DIR$/.idea/version.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations/version_auto___git.xml b/.idea/runConfigurations/version_auto___git.xml
new file mode 100644
index 0000000000000000000000000000000000000000..45d55633786e4faee54a87323fe632077a34249a
--- /dev/null
+++ b/.idea/runConfigurations/version_auto___git.xml
@@ -0,0 +1,16 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="version auto --git" type="GoApplicationRunConfiguration" factoryName="Go Application">
+    <module name="version" />
+    <working_directory value="$PROJECT_DIR$" />
+    <parameters value="auto --git" />
+    <EXTENSION ID="com.fapiko.jetbrains.plugins.better_direnv.runconfigs.GolandRunConfigurationExtension">
+      <option name="DIRENV_ENABLED" value="false" />
+      <option name="DIRENV_TRUSTED" value="false" />
+    </EXTENSION>
+    <kind value="PACKAGE" />
+    <package value="gitlab.schukai.com/oss/utilities/version" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/main.go" />
+    <method v="2" />
+  </configuration>
+</component>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/version.iml b/.idea/version.iml
new file mode 100644
index 0000000000000000000000000000000000000000..25ed3f6e7b6e344b6ca91ebcc5d005f35357f9cf
--- /dev/null
+++ b/.idea/version.iml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="Go" enabled="true" />
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/commandline.go b/commandline.go
index 4232934c695840ba32e814cf1a51048c6f9c5640..364a74d58e0133391ab57ee1944fd6c4bc76d124 100644
--- a/commandline.go
+++ b/commandline.go
@@ -30,6 +30,8 @@ type commandLineOptions struct {
 	} `command:"date" description:"print the current date and time in the format YYYYMMDDHHMMSS"`
 	Auto struct {
 	} `command:"auto" description:"check the git repository and increase the version if necessary. Implies --git"`
+	Print struct {
+	} `command:"print" description:"print the current version, you can combine this with --git to print the last tag"`
 }
 
 func increasePatch() (string, error) {
@@ -104,6 +106,17 @@ func executeCommand() {
 	}
 
 	switch command {
+	case "print":
+		if arguments.Git {
+			version, err := getLatestSemanticTag(".")
+			if err != nil {
+				fmt.Println(err)
+				os.Exit(-1)
+			}
+
+			fmt.Printf("%s", version)
+			os.Exit(0)
+		}
 	case "date":
 		currentTime := time.Now()
 		build = currentTime.Format("20060102150405")
diff --git a/git.go b/git.go
index 50308f4241abb1e1485b576d2a8d7bacd09efee6..40488bed369d55b0876a470fee22d1bcc5eafe2f 100644
--- a/git.go
+++ b/git.go
@@ -4,6 +4,10 @@ import (
 	"fmt"
 	"strings"
 
+	"regexp"
+	"sort"
+	"strconv"
+
 	"github.com/go-git/go-git/v5"
 	"github.com/go-git/go-git/v5/plumbing"
 	"github.com/go-git/go-git/v5/plumbing/object"
@@ -38,6 +42,67 @@ func GetCommitType(path string) (CommitType, error) {
 	return commitType, nil
 }
 
+func getLatestSemanticTag(path string) (string, error) {
+
+	r, err := git.PlainOpen(path)
+	if err != nil {
+		return "", fmt.Errorf("failed to open repository: %v", err)
+	}
+
+	tags, err := r.Tags()
+	if err != nil {
+		return "", fmt.Errorf("failed to get tags: %v", err)
+	}
+
+	var tagList []string
+	err = tags.ForEach(func(tag *plumbing.Reference) error {
+		tagName := tag.Name().Short()
+		if isSemanticVersion(tagName) {
+			tagList = append(tagList, tagName)
+		}
+		return nil
+	})
+
+	if err != nil {
+		return "", fmt.Errorf("failed to iterate over tags: %v", err)
+	}
+
+	if len(tagList) == 0 {
+		return "", fmt.Errorf("no semantic tags found")
+	}
+
+	sort.Slice(tagList, func(i, j int) bool {
+		return compareSemanticVersions(tagList[i], tagList[j])
+	})
+
+	return tagList[len(tagList)-1], nil
+}
+
+func isSemanticVersion(tagName string) bool {
+	versionRegex := regexp.MustCompile(`^v?\d+\.\d+\.\d+.*$`)
+	return versionRegex.MatchString(tagName)
+}
+
+func compareSemanticVersions(a, b string) bool {
+	// Remove leading "v" if present
+	a = strings.TrimPrefix(a, "v")
+	b = strings.TrimPrefix(b, "v")
+
+	aParts := strings.Split(a, ".")
+	bParts := strings.Split(b, ".")
+
+	for i := 0; i < len(aParts) && i < len(bParts); i++ {
+		aNum, _ := strconv.Atoi(aParts[i])
+		bNum, _ := strconv.Atoi(bParts[i])
+
+		if aNum != bNum {
+			return aNum < bNum
+		}
+	}
+
+	return len(aParts) < len(bParts)
+}
+
 func getLatestTagCommit(r *git.Repository) (*object.Commit, error) {
 	tags, err := r.Tags()
 	if err != nil {