diff --git a/rwm.py b/rwm.py
index 098a1b384ca8070755ce066671fc5f04f3b993ef..fa69a1e3b5eb036727fdea4d21f98e8b60a9210b 100755
--- a/rwm.py
+++ b/rwm.py
@@ -155,6 +155,7 @@ def main(argv=None):
     parser.add_argument("--config", default="rwm.conf")
 
     subparsers = parser.add_subparsers(title="commands", dest="command", required=False)
+    version_cmd_parser = subparsers.add_parser("version", help="show version")
     aws_cmd_parser = subparsers.add_parser("aws", help="aws command")
     aws_cmd_parser.add_argument("cmd_args", nargs="*")
     rc_cmd_parser = subparsers.add_parser("rclone", help="rclone command")
@@ -172,6 +173,8 @@ def main(argv=None):
     # assert config ?
     rwmi = RWM(config)
 
+    if args.command == "version":
+        print(__version__)
     if args.command == "aws":
         return wrap_output(rwmi.aws_cmd(args.cmd_args))
     if args.command == "rclone":
diff --git a/tests/test_default.py b/tests/test_default.py
index 26a53ee96eaee6f99748e4615d261d5038995670..2b6d7614f1420e749be4304764e02991cef5540b 100644
--- a/tests/test_default.py
+++ b/tests/test_default.py
@@ -42,7 +42,7 @@ def test_main(tmpworkdir: str):  # pylint: disable=unused-argument
     # optional and default config hanling
     assert rwm_main([]) == 0
     Path("rwm.conf").touch()
-    assert rwm_main([]) == 0
+    assert rwm_main(["version"]) == 0
 
     # command branches
     mock = Mock(return_value=CompletedProcess(args='dummy', returncode=0))