diff --git a/README.md b/README.md
index d5e672c..7d25d9a 100644
--- a/README.md
+++ b/README.md
@@ -90,6 +90,9 @@
 incorporate the logic of adding its mapped compiler flag to allow conditional
 compilation of the code.
 
+## pldmtool
+For more information on pldmtool please refer to plmdtool/README.md.
+
 ## TODO
 Consider hosting libpldm above in a repo of its own, probably even outside the
 OpenBMC project? A separate repo would enable something like git submodule.
diff --git a/pldmtool/README.md b/pldmtool/README.md
new file mode 100644
index 0000000..953848e
--- /dev/null
+++ b/pldmtool/README.md
@@ -0,0 +1,219 @@
+## Overview of pldmtool
+
+pldmtool is a client tool that acts as a PLDM requester which runs on the BMC.
+pldmtool sends the request message and displays the response message also
+provides flexibility to parse the response message and display it in readable
+format.
+
+pldmtool supports the subcommands for PLDM types such as base, platform, bios,
+fru, and oem-ibm.
+
+- Source files are implemented in C++.
+- Consumes pldm/libpldm encode and decode functions.
+- Communicates with pldmd daemon running on BMC.
+- Enables writing functional test cases for PLDM stack.
+
+please refer the DMTF PLDM specifications with respect to the pldm types.
+https://www.dmtf.org/
+
+
+## Code organization
+
+Source files in pldmtool repository are named with respect to the PLDM type.
+
+Example:
+```
+pldm_base_cmd.[hpp/cpp], pldm_fru_cmd.[hpp/cpp]
+```
+
+pldmtool commands for corresponding PLDM type is constructed with the help of
+encode request and decode response APIs which are implemented in pldm/libpldm.
+
+Example:
+
+Given a PLDM command "foo" of PLDM type "base" the pldmtool should consume
+following API from the libpldm.
+
+```
+- encode_foo_req()  - Send the required input parameters in the request message.
+- decode_foo_resp() - Decode the response message.
+```
+
+If PLDM commands are not yet supported in the pldmtool repository user can
+directly send the request message with the help of **pldmtool raw -d <data>** option.
+
+
+## Usage
+
+User can see the pldmtool supported PLDM types in the usage output available
+with the **-h** help option as shown below:
+
+```
+pldmtool -h
+PLDM requester tool for OpenBMC
+Usage: pldmtool [OPTIONS] SUBCOMMAND
+
+Options:
+  -h,--help                   Print this help message and exit
+
+Subcommands:
+  raw                         send a raw request and print response
+  base                        base type command
+  bios                        bios type command
+  platform                    platform type command
+  fru                         FRU type command
+  oem-ibm                     oem type command
+
+```
+pldmtool command prompt expects a PLDM type to display the list of supported
+commands that are already implemented for that particular PLDM type.
+
+```
+Command format: pldmtool <pldmType> -h
+```
+Example:
+
+```
+$ pldmtool base -h
+
+base type command
+Usage: pldmtool base [OPTIONS] SUBCOMMAND
+
+Options:
+  -h,--help                   Print this help message and exit
+
+Subcommands:
+  GetPLDMTypes                get pldm supported types
+  GetPLDMVersion              get version of a certain type
+  GetTID                      get Terminus ID (TID)
+  GetPLDMCommands             get supported commands of pldm type
+
+```
+More help on the command usage can be found by specifying the PLDM type and the
+command name with **-h** argument as shown below.
+
+```
+Command format: pldmtool <pldmType> <commandName> -h
+```
+
+Example:
+```
+$ pldmtool base GetPLDMTypes -h
+
+get pldm supported types
+Usage: pldmtool base GetPLDMTypes [OPTIONS]
+
+Options:
+  -h,--help                   Print this help message and exit
+  -m,--mctp_eid UINT          MCTP endpoint ID
+  -v,--verbose
+```
+
+
+## pldmtool raw command usage
+
+pldmtool raw command option accepts request message in the hexadecimal
+bytes and send the response message in hexadecimal bytes.
+
+```
+$ pldmtool raw -h
+send a raw request and print response
+Usage: pldmtool raw [OPTIONS]
+
+Options:
+  -h,--help                   Print this help message and exit
+  -m,--mctp_eid UINT          MCTP endpoint ID
+  -v,--verbose
+  -d,--data UINT              REQUIRED raw data
+```
+
+**pldmtool request message format:**
+
+```
+pldmtool raw --data 0x80 <pldmType> <cmdType> <payloadReq>
+
+payloadReq - stream of bytes constructed based on the request message format
+             defined for the command type as per the spec.
+```
+
+**pldmtool response message format:**
+
+```
+<instanceId> <hdrVersion> <pldmType> <cmdType> <completionCode> <payloadResp>
+
+payloadResp - stream of bytes displayed based on the response message format
+              defined for the command type as per the spec.
+```
+Example:
+
+```
+$ pldmtool raw -d 0x80 0x00 0x04 0x00 0x00
+
+Request Message:
+08 01 80 00 04 00 00
+Response Message:
+08 01 00 00 04 00 1d 00 00 00 00 00 00 80
+
+```
+## pldmtool output format
+
+In the current pldmtool implementation response message from pldmtool is parsed
+and displayed in the JSON format.
+
+Example:
+```
+$ pldmtool base GetPLDMTypes
+[
+    {
+        "PLDM Type": "base",
+        "PLDM Type Code": 0
+    },
+    {
+        "PLDM Type": "platform",
+        "PLDM Type Code": 2
+    },
+    {
+        "PLDM Type": "bios",
+        "PLDM Type Code": 3
+    },
+    {
+        "PLDM Type": "fru",
+        "PLDM Type Code": 4
+    },
+    {
+        "PLDM Type": "oem-ibm",
+        "PLDM Type Code": 63
+    }
+]
+```
+## pldmtool with mctp_eid option
+
+Use **-m** or **--mctp_eid** option to send pldm request message to remote mctp
+end point and by default pldmtool consider mctp_eid value as **'08'**.
+
+```
+Command format:
+
+pldmtool <pldmType> <cmdType> -m <mctpId>
+pldmtool raw -d 0x80 <pldmType> <cmdType> <payloadReq> -m <mctpId>
+```
+
+Example:
+```
+$ pldmtool base GetPLDMTypes -m 8
+
+$ pldmtool raw -d 0x80 0x00 0x04 0x00 0x00 -m 0x08
+
+```
+
+## pldmtool verbosity
+
+By default verbose flag is disabled on the pldmtool.
+
+Enable verbosity with **-v** flag as shown below.
+
+Example:
+
+```
+pldmtool base GetPLDMTypes -v
+```
