diff --git a/reclass_tools/cli.py b/reclass_tools/cli.py
index 975b737..b3b0f5a 100644
--- a/reclass_tools/cli.py
+++ b/reclass_tools/cli.py
@@ -43,19 +43,22 @@
 
     def do_add_key(self):
         # Try convert to digits
-        try:
-          add_val = int(self.params.add_value)
-        except ValueError:
-          # Try convert to float
-          try:
-            add_val = float(self.params.add_value)
-          except ValueError:
+        if self.params.str:
+            add_val = str(self.params.add_value)
+        else:
             try:
-              # Try convert to list
-              if type(eval(self.params.add_value)) == list:
-                  add_val = eval(self.params.add_value)
-            except (SyntaxError, NameError):
-              add_val = self.params.add_value
+                add_val = int(self.params.add_value)
+            except ValueError:
+                # Try convert to float
+                try:
+                    add_val = float(self.params.add_value)
+                except ValueError:
+                    try:
+                        # Try convert to list
+                        if type(eval(self.params.add_value)) == list:
+                            add_val = eval(self.params.add_value)
+                    except (SyntaxError, NameError):
+                      add_val = self.params.add_value
 
         walk_models.add_reclass_parameter(
             self.params.path,
@@ -172,6 +175,12 @@
                                   help='Merge value to list or dict',
                                   default=False)
 
+        as_str_parser = argparse.ArgumentParser(add_help=False)
+        as_str_parser.add_argument('--str', dest='str',
+                                   action='store_const', const=True,
+                                   help='Use value as plain string',
+                                   default=False)
+
         key_parser = argparse.ArgumentParser(add_help=False)
         key_parser_help = (
             'Key name to find in reclass model files, for example:'
@@ -261,7 +270,7 @@
         subparsers.add_parser('add-key',
                               parents=[key_parser, add_value_parser,
                                        path_parser, verbose_parser,
-                                       merge_parser],
+                                       merge_parser, as_str_parser],
                               help="Add a key in YAMLs found in <path>",
                               description=("Add a key to "
                                            "different YAMLs"))
