diff --git a/vpd_tool.cpp b/vpd_tool.cpp
index 0498761..d988f63 100644
--- a/vpd_tool.cpp
+++ b/vpd_tool.cpp
@@ -13,9 +13,14 @@
             "update the keywords"};
 
     string objectPath{};
+    string recordName{};
+    string keyword{};
 
     auto object =
         app.add_option("--object, -O", objectPath, "Enter the Object Path");
+    auto record =
+        app.add_option("--record, -R", recordName, "Enter the Record Name");
+    auto kw = app.add_option("--keyword, -K", keyword, "Enter the Keyword");
 
     auto dumpObjFlag =
         app.add_flag("--dumpObject, -o",
@@ -27,6 +32,16 @@
         "--dumpInventory, -i", "Dump all the inventory objects. { vpd-tool-exe "
                                "--dumpInventory/-i }");
 
+    auto readFlag =
+        app.add_flag("--readKeyword, -r",
+                     "Read the data of the given keyword. { "
+                     "vpd-tool-exe --readKeyword/-r --object/-O "
+                     "\"object-name\" --record/-R \"record-name\" --keyword/-K "
+                     "\"keyword-name\" }")
+            ->needs(object)
+            ->needs(record)
+            ->needs(kw);
+
     CLI11_PARSE(app, argc, argv);
 
     ifstream inventoryJson(INVENTORY_JSON);
@@ -46,6 +61,13 @@
             vpdToolObj.dumpInventory(jsObject);
         }
 
+        else if (*readFlag)
+        {
+            VpdTool vpdToolObj(move(objectPath), move(recordName),
+                               move(keyword));
+            vpdToolObj.readKeyword();
+        }
+
         else
         {
             throw runtime_error("One of the valid options is required. Refer "
