diff --git a/test_cs_freshness/README.md b/test_cs_freshness/README.md
index 23ed4c2..cd5d3b1 100644
--- a/test_cs_freshness/README.md
+++ b/test_cs_freshness/README.md
@@ -4,11 +4,11 @@
 
 1. Start NFD.
 2. Start ndn-traffic-server to serve `ndn:/test-caching`, FreshnessPeriod=2800ms
-3. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+3. Invoke ndnpeek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
 4. Pause 1000ms.
-5. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+5. Invoke ndnpeek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
 6. Kill ndn-traffic-server. Check "total Interests received" equals 1.
 7. Pause 2000ms.
-8. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is answered.
-9. Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A` without MustBeFresh. Fail if this Interest is unanswered.
+8. Invoke ndnpeek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is answered.
+9. Invoke ndnpeek to send Interest `ndn:/test-caching/A` without MustBeFresh. Fail if this Interest is unanswered.
 
diff --git a/test_cs_freshness/cs-freshness-test.sh b/test_cs_freshness/cs-freshness-test.sh
index 8a6b6d3..cb22222 100755
--- a/test_cs_freshness/cs-freshness-test.sh
+++ b/test_cs_freshness/cs-freshness-test.sh
@@ -16,8 +16,8 @@
 ndn-traffic-server NDNTrafficServer.conf > logs/server.log 2>&1 &
 sleep 1
 
-# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
-output=$(ndn-tlv-peek -fp ndn:/test-caching/A)
+# Invoke ndnpeek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+output=$(ndnpeek -fp ndn:/test-caching/A)
 if [[ $output != 'AAAAAAAA' ]]
 then
     echo "FAIL: Expected data for first interest: 'AAAAAAAA', Actual: '$output'"
@@ -28,8 +28,8 @@
 # Pause 1000ms.
 sleep 1
 
-# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
-output=$(ndn-tlv-peek -fp ndn:/test-caching/A)
+# Invoke ndnpeek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is unanswered.
+output=$(ndnpeek -fp ndn:/test-caching/A)
 if [[ $output != 'AAAAAAAA' ]]
 then
     echo "FAIL: Expected data for second interest: 'AAAAAAAA', Actual: '$output'"
@@ -48,8 +48,8 @@
     exit 3
 fi
 
-# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is answered.
-output=$(ndn-tlv-peek -fp ndn:/test-caching/A)
+# Invoke ndnpeek to send Interest `ndn:/test-caching/A`, MustBeFresh=yes. Fail if this Interest is answered.
+output=$(ndnpeek -fp ndn:/test-caching/A)
 if [[ ! -z $output ]]
 then
     echo "FAIL: Expected no data received for third interest. Actual data received: '$output'"
@@ -58,8 +58,8 @@
 fi
 sleep 1
 
-# Invoke ndn-tlv-peek to send Interest `ndn:/test-caching/A` without MustBeFresh. Fail if this Interest is unanswered.
-output=$(ndn-tlv-peek -p ndn:/test-caching/A)
+# Invoke ndnpeek to send Interest `ndn:/test-caching/A` without MustBeFresh. Fail if this Interest is unanswered.
+output=$(ndnpeek -p ndn:/test-caching/A)
 if [[ $output != 'AAAAAAAA' ]]
 then
     echo "FAIL: Expected data for fourth interest: 'AAAAAAAA', Actual: '$output'"
diff --git a/test_interest_aggregation/README.md b/test_interest_aggregation/README.md
index bb4d2f3..2f3bfae 100644
--- a/test_interest_aggregation/README.md
+++ b/test_interest_aggregation/README.md
@@ -7,15 +7,15 @@
 
 ## Description ##
 
-This test case will run NFD, ndn-tlv-peek and ndn-traffic-server to check aggregation of interests by NFD. The following steps will be followed:
+This test case will run NFD, ndnpeek and ndn-traffic-server to check aggregation of interests by NFD. The following steps will be followed:
 
 1. Start NFD.
 2. Start ndn-traffic-server to serve ndn:/test-agg, with -d 2000 flag to delay response for 2000ms.
-3. Start two instances of ndn-tlv-peek to request ndn:/test-agg/A. Wait until they terminate. Fail if either is unanswered.
+3. Start two instances of ndnpeek to request ndn:/test-agg/A. Wait until they terminate. Fail if either is unanswered.
 4. Stop ndn-traffic-server. Fail if total served Interest does not equal 1.
 5. Start ndn-traffic-server to serve ndn:/test-agg, with -d 2000 flag to delay response for 2000ms.
-6. Start ndn-tlv-peek to request ndn:/test-agg/B ChildSelector=leftmost, and another instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate. Fail if either is unanswered.
+6. Start ndnpeek to request ndn:/test-agg/B ChildSelector=leftmost, and another instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate. Fail if either is unanswered.
 7. Stop ndn-traffic-server. Fail if total served Interest does not equal 2.
 8. Start ndn-traffic-server to serve ndn:/test-agg, with -d 2000 flag to delay response for 2000ms.
-9. Start ndn-tlv-peek to request ndn:/test-agg/C InterestLifetime=6000ms, and another instance to request ndn:/test-agg/C InterestLifetime=8000ms. Wait until they terminate. Fail if either is unanswered.
+9. Start ndnpeek to request ndn:/test-agg/C InterestLifetime=6000ms, and another instance to request ndn:/test-agg/C InterestLifetime=8000ms. Wait until they terminate. Fail if either is unanswered.
 10. Stop ndn-traffic-server. Fail if total served Interest does not equal 1.
diff --git a/test_interest_aggregation/test_interest_aggregation.py b/test_interest_aggregation/test_interest_aggregation.py
index b52c0b9..490e3c3 100644
--- a/test_interest_aggregation/test_interest_aggregation.py
+++ b/test_interest_aggregation/test_interest_aggregation.py
@@ -24,14 +24,14 @@
     def tearDown(self):
         self.killNfd()
         self.killProcess("ndn-traffic-server-1")
-        self.killProcess("ndn-tlv-peek-1")
-        self.killProcess("ndn-tlv-peek-2")
+        self.killProcess("ndnpeek-1")
+        self.killProcess("ndnpeek-2")
         self.killProcess("ndn-traffic-server-2")
-        self.killProcess("ndn-tlv-peek-3")
-        self.killProcess("ndn-tlv-peek-4")
+        self.killProcess("ndnpeek-3")
+        self.killProcess("ndnpeek-4")
         self.killProcess("ndn-traffic-server-3")
-        self.killProcess("ndn-tlv-peek-5")
-        self.killProcess("ndn-tlv-peek-6")
+        self.killProcess("ndnpeek-5")
+        self.killProcess("ndnpeek-6")
         self.cleanupProcesses()
 
     def checkAndReportFailure(self, processKey, processName):
@@ -80,27 +80,27 @@
             "-> Starting Traffic Server 1 (Prefix=ndn:/test-agg, ContentDelay=2000ms)")
         time.sleep(1)
 
-        #Start two instances of ndn-tlv-peek to request ndn:/test-agg/A. Wait until they
+        #Start two instances of ndnpeek to request ndn:/test-agg/A. Wait until they
         #terminate. Fail if either is unanswered.
         peekOutputFile = os.path.abspath(self.logFolder + "test-peek-output-1.txt")
-        self.startProcess("ndn-tlv-peek-1",
-            ["ndn-tlv-peek", "ndn:/test-agg/A"],
+        self.startProcess("ndnpeek-1",
+            ["ndnpeek", "ndn:/test-agg/A"],
             "-> Starting Peek Client 1 (Prefix=ndn:/test-agg/A)",
             outputFile=peekOutputFile)
         peekOutputFile = os.path.abspath(self.logFolder + "test-peek-output-2.txt")
-        self.startProcess("ndn-tlv-peek-2",
-            ["ndn-tlv-peek", "ndn:/test-agg/A"],
+        self.startProcess("ndnpeek-2",
+            ["ndnpeek", "ndn:/test-agg/A"],
             "-> Starting Peek Client 2 (Prefix=ndn:/test-agg/A)",
             outputFile=peekOutputFile)
-        self.waitForProcessCompletion("ndn-tlv-peek-1", 10)
-        self.waitForProcessCompletion("ndn-tlv-peek-2", 10)
+        self.waitForProcessCompletion("ndnpeek-1", 10)
+        self.waitForProcessCompletion("ndnpeek-2", 10)
 
         #Stop ndn-traffic-server. Fail if total served Interest does not equal 1.
         self.killProcess("ndn-traffic-server-1")
         time.sleep(1)
         print "-> Stopping Traffic Server 1"
-        self.checkAndReportFailure("ndn-tlv-peek-1", "Peek Client 1")
-        self.checkAndReportFailure("ndn-tlv-peek-2", "Peek Client 2")
+        self.checkAndReportFailure("ndnpeek-1", "Peek Client 1")
+        self.checkAndReportFailure("ndnpeek-2", "Peek Client 2")
         self.checkServerReceiveCount("ndn-traffic-server-1", "Traffic Server 1", 1)
 
         #Start ndn-traffic-server to serve ndn:/test-agg, with content delay set to 2000ms
@@ -109,28 +109,28 @@
             "-> Starting Traffic Server 2 (Prefix=ndn:/test-agg, ContentDelay=2000ms)")
         time.sleep(1)
 
-        #Start ndn-tlv-peek to request ndn:/test-agg/B ChildSelector=leftmost, and another
+        #Start ndnpeek to request ndn:/test-agg/B ChildSelector=leftmost, and another
         #instance to request ndn:/test-agg/B ChildSelector=rightmost. Wait until they terminate.
         #Fail if either is unanswered.
         peekOutputFile = os.path.abspath(self.logFolder + "test-peek-output-3.txt")
-        self.startProcess("ndn-tlv-peek-3",
-            ["ndn-tlv-peek", "ndn:/test-agg/B"],
+        self.startProcess("ndnpeek-3",
+            ["ndnpeek", "ndn:/test-agg/B"],
             "-> Starting Peek Client 3 (Prefix=ndn:/test-agg/B, ChildSelector=leftmost)",
             outputFile=peekOutputFile)
         peekOutputFile = os.path.abspath(self.logFolder + "test-peek-output-4.txt")
-        self.startProcess("ndn-tlv-peek-4",
-            ["ndn-tlv-peek", "-r", "ndn:/test-agg/B"],
+        self.startProcess("ndnpeek-4",
+            ["ndnpeek", "-r", "ndn:/test-agg/B"],
             "-> Starting Peek Client 4 (Prefix=ndn:/test-agg/B, ChildSelector=rightmost)",
             outputFile=peekOutputFile)
-        self.waitForProcessCompletion("ndn-tlv-peek-3", 10)
-        self.waitForProcessCompletion("ndn-tlv-peek-4", 10)
+        self.waitForProcessCompletion("ndnpeek-3", 10)
+        self.waitForProcessCompletion("ndnpeek-4", 10)
 
         #Stop ndn-traffic-server. Fail if total served Interest does not equal 2.
         self.killProcess("ndn-traffic-server-2")
         time.sleep(1)
         print "-> Stopping Traffic Server 2"
-        self.checkAndReportFailure("ndn-tlv-peek-3", "Peek Client 3")
-        self.checkAndReportFailure("ndn-tlv-peek-4", "Peek Client 4")
+        self.checkAndReportFailure("ndnpeek-3", "Peek Client 3")
+        self.checkAndReportFailure("ndnpeek-4", "Peek Client 4")
         self.checkServerReceiveCount("ndn-traffic-server-2", "Traffic Server 2", 2)
 
         #Start ndn-traffic-server to serve ndn:/test-agg, with content delay set to 2000ms
@@ -139,27 +139,27 @@
             "-> Starting Traffic Server 3 (Prefix=ndn:/test-agg, ContentDelay=2000ms)")
         time.sleep(1)
 
-        #Start ndn-tlv-peek to request ndn:/test-agg/C InterestLifetime=6000ms, and another
+        #Start ndnpeek to request ndn:/test-agg/C InterestLifetime=6000ms, and another
         #instance to request ndn:/test-agg/C. InterestLifetime=8000ms. Wait until they terminate.
         #Fail if either is unanswered.
         peekOutputFile = os.path.abspath(self.logFolder + "test-peek-output-5.txt")
-        self.startProcess("ndn-tlv-peek-5",
-            ["ndn-tlv-peek", "-l 6000", "ndn:/test-agg/C"],
+        self.startProcess("ndnpeek-5",
+            ["ndnpeek", "-l 6000", "ndn:/test-agg/C"],
             "-> Starting Peek Client 5 (Prefix=ndn:/test-agg/C, InterestLifetime=6000ms)",
             outputFile=peekOutputFile)
         peekOutputFile = os.path.abspath(self.logFolder + "test-peek-output-6.txt")
-        self.startProcess("ndn-tlv-peek-6",
-            ["ndn-tlv-peek", "-l 8000", "ndn:/test-agg/C"],
+        self.startProcess("ndnpeek-6",
+            ["ndnpeek", "-l 8000", "ndn:/test-agg/C"],
             "-> Starting Peek Client 6 (Prefix=ndn:/test-agg/C, InterestLifetime=8000ms)",
             outputFile=peekOutputFile)
-        self.waitForProcessCompletion("ndn-tlv-peek-5", 10)
-        self.waitForProcessCompletion("ndn-tlv-peek-6", 10)
+        self.waitForProcessCompletion("ndnpeek-5", 10)
+        self.waitForProcessCompletion("ndnpeek-6", 10)
 
         #Stop ndn-traffic-server. Fail if total served Interest does not equal 1.
         self.killProcess("ndn-traffic-server-3")
         time.sleep(1)
         print "-> Stopping Traffic Server 3"
-        self.checkAndReportFailure("ndn-tlv-peek-5", "Peek Client 5")
-        self.checkAndReportFailure("ndn-tlv-peek-6", "Peek Client 6")
+        self.checkAndReportFailure("ndnpeek-5", "Peek Client 5")
+        self.checkAndReportFailure("ndnpeek-6", "Peek Client 6")
         self.checkServerReceiveCount("ndn-traffic-server-3", "Traffic Server 3", 1)
         print ">> TEST SUCCESSFUL"
diff --git a/test_localhop/localhop-test.sh b/test_localhop/localhop-test.sh
index 19aa099..36c3b08 100755
--- a/test_localhop/localhop-test.sh
+++ b/test_localhop/localhop-test.sh
@@ -45,7 +45,7 @@
 
 # From A, send interest ndn:/localhop/test-localhop/A/1
 echo "From A, sending interest ndn:/localhop/test-localhop/A/1..."
-output=$(ndn-tlv-peek -p ndn:/localhop/test-localhop/A/1)
+output=$(ndnpeek -p ndn:/localhop/test-localhop/A/1)
 if [[ ! -z $output ]]
 then
     echo "ndn:/localhop/test-localhop/A/1 is answered."
@@ -55,7 +55,7 @@
 
 # From B, send interest ndn:/localhop/test-localhop/B/1
 echo "From B, sending interest ndn:/localhop/test-localhop/B/1..."
-output=$(ssh $CTRL_B "ndn-tlv-peek -p ndn:/localhop/test-localhop/B/1")
+output=$(ssh $CTRL_B "ndnpeek -p ndn:/localhop/test-localhop/B/1")
 if [[ $output != BBBBBBBB ]]
 then
     echo "ndn:/localhop/test-localhop/B/1 is not correctly answered. Content: $output"
diff --git a/test_localhost_scope/README.md b/test_localhost_scope/README.md
index deda7a6..52d95be 100644
--- a/test_localhost_scope/README.md
+++ b/test_localhost_scope/README.md
@@ -6,27 +6,27 @@
 
 1. On host B, start NFD.
 2. On host B, start ndn-traffic-server to serve `ndn:/localhost/test-in`.
-3. On host A, start [socat](http://linux.die.net/man/1/socat) to create a relay from a listening UNIX socket to TCP hostB:6363.  
+3. On host A, start [socat](http://linux.die.net/man/1/socat) to create a relay from a listening UNIX socket to TCP hostB:6363.
    Write the path of this UNIX socket to `$HOME/.ndn/client.conf`.
-4. On host A, invoke ndn-tlv-peek to request `ndn:/localhost/test-in/A`.  
+4. On host A, invoke ndnpeek to request `ndn:/localhost/test-in/A`.
    Fail if Interest is answered.
-5. On host B, stop ndn-traffic-server.  
+5. On host B, stop ndn-traffic-server.
    Fail if total served Interest does not equal 0.
 6. On host A, kill socat and restore `$HOME/.ndn/client.conf`.
 
 ## Outgoing scope control
 
-1. On host A, start [netcat](http://linux.die.net/man/1/nc) to listen on TCP port 6363.  
+1. On host A, start [netcat](http://linux.die.net/man/1/nc) to listen on TCP port 6363.
    Redirect netcat output into a file.
-2. On host B, invoke nfdc to create face tcp://hostA:6363.  
+2. On host B, invoke nfdc to create face tcp://hostA:6363.
    Fail if nfdc fails.
-3. On host B, invoke nfdc to add nexthop for `ndn:/` toward face created in step 8.  
+3. On host B, invoke nfdc to add nexthop for `ndn:/` toward face created in step 8.
    Fail if nfdc fails.
-4. On host B, invoke nfdc to add nexthop for `ndn:/localhost/test-out` toward face created in step 8.  
+4. On host B, invoke nfdc to add nexthop for `ndn:/localhost/test-out` toward face created in step 8.
    Do not fail if nfdc fails (forwarder MAY reject prefix registration that violates scope control).
-5. On host B, invoke ndn-tlv-peek to request `ndn:/localhost/test-out/B/c39b6fed4ce4464ea136062f80002c7c`.
-6. On host B, invoke ndn-tlv-peek to request `ndn:/localhost/C/c39b6fed4ce4464ea136062f80002c7c`.
-7. On host B, invoke ndn-tlv-peek to request `ndn:/ref-out/D/3b5fe3f184ff48adb3523180dee50555`.
-8. On host A, stop netcat.  
-   Search netcat output for string "c39b6fed4ce4464ea136062f80002c7c". Fail if this string exists.  
+5. On host B, invoke ndnpeek to request `ndn:/localhost/test-out/B/c39b6fed4ce4464ea136062f80002c7c`.
+6. On host B, invoke ndnpeek to request `ndn:/localhost/C/c39b6fed4ce4464ea136062f80002c7c`.
+7. On host B, invoke ndnpeek to request `ndn:/ref-out/D/3b5fe3f184ff48adb3523180dee50555`.
+8. On host A, stop netcat.
+   Search netcat output for string "c39b6fed4ce4464ea136062f80002c7c". Fail if this string exists.
    Search netcat output for string "3b5fe3f184ff48adb3523180dee50555". Fail if this string does not exist.
diff --git a/test_localhost_scope/in-master.sh b/test_localhost_scope/in-master.sh
index 756ffd7..c782aed 100755
--- a/test_localhost_scope/in-master.sh
+++ b/test_localhost_scope/in-master.sh
@@ -25,7 +25,7 @@
 sleep 1
 
 # send interest
-response=$(ndn-tlv-peek -p ndn:/localhost/test-in/A 2>&1)
+response=$(ndnpeek -p ndn:/localhost/test-in/A 2>&1)
 if [[ ! -z $response ]]
 then
     echo "FAIL: Expected no data come back for ndn:/localhost/test-in/A, Actual: '$response'"
diff --git a/test_localhost_scope/out-master.sh b/test_localhost_scope/out-master.sh
index f75cc78..742c688 100755
--- a/test_localhost_scope/out-master.sh
+++ b/test_localhost_scope/out-master.sh
@@ -27,10 +27,10 @@
     exit 4
 fi
 
-# On B, use ndn-tlv-peek to request names that starts with ndn:/localhost
-r=$(ssh $CTRL_B "ndn-tlv-peek -p ndn:/localhost/test-out/B/c39b6fed4ce4464ea136062f80002c7c;\
-                 ndn-tlv-peek -p ndn:/localhost/C/c39b6fed4ce4464ea136062f80002c7c;\
-                 ndn-tlv-peek -p ndn:/ref-out/D/3b5fe3f184ff48adb3523180dee50555")
+# On B, use ndnpeek to request names that starts with ndn:/localhost
+r=$(ssh $CTRL_B "ndnpeek -p ndn:/localhost/test-out/B/c39b6fed4ce4464ea136062f80002c7c;\
+                 ndnpeek -p ndn:/localhost/C/c39b6fed4ce4464ea136062f80002c7c;\
+                 ndnpeek -p ndn:/ref-out/D/3b5fe3f184ff48adb3523180dee50555")
 sleep 2
 
 # stop netcat and examine netcat.log
diff --git a/test_multicast/README.md b/test_multicast/README.md
index 833d56a..a344b72 100644
--- a/test_multicast/README.md
+++ b/test_multicast/README.md
@@ -6,12 +6,12 @@
 2.  On host A, insert FIB entry `ndn:/test-mcast` to either UDP or Ethernet multicast face on experiment NIC.
 3.  On host B, start traffic generator producer to serve `ndn:/test-mcast/B`, `ndn:/test-mcast/Z`.
 4.  On host C, start traffic generator producer to serve `ndn:/test-mcast/C`, `ndn:/test-mcast/Z`.
-5.  On host A, invoke `ndn-tlv-peek ndn:/test-mcast/B/1`.
+5.  On host A, invoke `ndnpeek ndn:/test-mcast/B/1`.
     Fail the test if this Interest is unanswered.
-6.  On host A, invoke `ndn-tlv-peek ndn:/test-mcast/C/1`.
+6.  On host A, invoke `ndnpeek ndn:/test-mcast/C/1`.
     Fail the test if this Interest is unanswered.
-7.  On host A, invoke `ndn-tlv-peek ndn:/test-mcast/Z/1`.
+7.  On host A, invoke `ndnpeek ndn:/test-mcast/Z/1`.
     Fail the test if this Interest is unanswered.
 8.  On host B, kill the producer.
-9.  On host A, invoke `ndn-tlv-peek ndn:/test-mcast/Z/2`.
+9.  On host A, invoke `ndnpeek ndn:/test-mcast/Z/2`.
     Fail the test if this Interest is unanswered.
diff --git a/test_multicast/multicast-test.sh b/test_multicast/multicast-test.sh
index 3a2ca00..503c0bd 100755
--- a/test_multicast/multicast-test.sh
+++ b/test_multicast/multicast-test.sh
@@ -37,22 +37,22 @@
 faceid=$(nfd-status -f | grep $a_ipaddr | grep -Po 'faceid=.*? ' | sed 's/faceid=//' | sed 's/ //')
 nfdc add-nexthop ndn:/test-mcast $faceid
 
-# use ndn-tlv-peek to test multicast feature
-response=$(ndn-tlv-peek -p ndn:/test-mcast/B/1)
+# use ndnpeek to test multicast feature
+response=$(ndnpeek -p ndn:/test-mcast/B/1)
 if [[ $response != 'BBBBBBBB' ]]
 then
     echo "FAIL: Expected data for ndn:/test-mcast/B/1 is: 'BBBBBBBB', Actual: '$response'"
     clean_up
     exit 1
 fi
-response=$(ndn-tlv-peek -p ndn:/test-mcast/C/1)
+response=$(ndnpeek -p ndn:/test-mcast/C/1)
 if [[ $response != 'CCCCCCCC' ]]
 then
     echo "FAIL: Expected data for ndn:/test-mcast/C/1 is: 'CCCCCCCC', Actual: '$response'"
     clean_up
     exit 2
 fi
-response=$(ndn-tlv-peek -p ndn:/test-mcast/Z/1)
+response=$(ndnpeek -p ndn:/test-mcast/Z/1)
 if [[ ( $response != 'ZZZZZZZB' ) && ( $response != 'ZZZZZZZC' ) ]]
 then
     echo "FAIL: Expected data for ndn:/test-mcast/Z/1 is: 'ZZZZZZZB' or 'ZZZZZZZC', Actual: '$response'"
@@ -63,8 +63,8 @@
 # kill ndn-traffic-server on host B
 ssh $CTRL_B "sudo killall ndn-traffic-server"
 
-# use ndn-tlv-peek to request ndn:/testmcast/Z/2
-response=$(ndn-tlv-peek -p ndn:/test-mcast/Z/2)
+# use ndnpeek to request ndn:/testmcast/Z/2
+response=$(ndnpeek -p ndn:/test-mcast/Z/2)
 if [[ $response != 'ZZZZZZZC' ]]
 then
     echo "FAIL: Expected data for ndn:/test-mcast/Z/2 is: 'ZZZZZZZC', Actual: '$response'"
diff --git a/test_ndnpeekpoke/README.md b/test_ndnpeekpoke/README.md
index 47150d9..145953c 100644
--- a/test_ndnpeekpoke/README.md
+++ b/test_ndnpeekpoke/README.md
@@ -3,10 +3,10 @@
 
 ## Objective ##
 
-To test the ndn-tlv-peek and ndn-tlv-poke applications on a single host.
+To test the ndnpeek and ndnpoke applications on a single host.
 
 ## Description ##
 
-This test case will run NFD, ndn-tlv-peek and ndn-tlv-poke.
-This will report SUCCESS if one interest/data is successfully exchanged between ndn-tlv-peek and ndn-tlv-poke.
+This test case will run NFD, ndnpeek and ndnpoke.
+This will report SUCCESS if one interest/data is successfully exchanged between ndnpeek and ndnpoke.
 In all other scenarios, the test case will report FAILURE
diff --git a/test_ndnpeekpoke/test_ndnpeekpoke.py b/test_ndnpeekpoke/test_ndnpeekpoke.py
index e49adba..336b74e 100644
--- a/test_ndnpeekpoke/test_ndnpeekpoke.py
+++ b/test_ndnpeekpoke/test_ndnpeekpoke.py
@@ -12,17 +12,17 @@
 import process_manager
 
 class test_ndnpeekpoke(unittest.TestCase, process_manager.ProcessManager):
-    """Test case for testing ndn-tlv-peek and ndn-tlv-poke applications"""
+    """Test case for testing ndnpeek and ndnpoke applications"""
 
     def setUp(self):
-        print "\nTesting ndn-tlv-peek & ndn-tlv-poke"
+        print "\nTesting ndnpeek & ndnpoke"
         print "***********************************"
         os.system("mkdir test_ndnpeekpoke/logs/")
 
     def tearDown(self):
         self.killNfd()
-        self.killProcess("ndn-tlv-poke")
-        self.killProcess("ndn-tlv-peek")
+        self.killProcess("ndnpoke")
+        self.killProcess("ndnpeek")
         os.system("rm -r test_ndnpeekpoke/logs/")
         self.cleanupProcesses()
 
@@ -32,31 +32,31 @@
         self.startNrd()
         time.sleep(1)
         pokeInputFile = os.path.abspath("test_ndnpeekpoke/test-poke-input.txt")
-        self.startProcess("ndn-tlv-poke",
-            ["ndn-tlv-poke", "ndn:/test/peekpoke"],
+        self.startProcess("ndnpoke",
+            ["ndnpoke", "ndn:/test/peekpoke"],
             "-> Starting Poke",
             inputFile=pokeInputFile)
         time.sleep(1)
         peekOutputFile = os.path.abspath("test_ndnpeekpoke/logs/test-peek-output.txt")
-        self.startProcess("ndn-tlv-peek",
-            ["ndn-tlv-peek", "ndn:/test/peekpoke"],
+        self.startProcess("ndnpeek",
+            ["ndnpeek", "ndn:/test/peekpoke"],
             "-> Starting Peek",
             outputFile=peekOutputFile)
         time.sleep(1)
-        self.waitForProcessCompletion("ndn-tlv-peek", 10)
-        self.waitForProcessCompletion("ndn-tlv-poke", 10)
-        if self.hasProcessCompleted("ndn-tlv-peek"):
-            if self.getProcessReturnCode("ndn-tlv-peek") != 0:
-                print self.getProcessReturnCode("ndn-tlv-peek")
-                print self.getProcessError("ndn-tlv-peek")
-                print self.getProcessOutput("ndn-tlv-peek")
-                self.fail(">> TEST FAILED - received non-zero return code from ndn-tlv-peek")
+        self.waitForProcessCompletion("ndnpeek", 10)
+        self.waitForProcessCompletion("ndnpoke", 10)
+        if self.hasProcessCompleted("ndnpeek"):
+            if self.getProcessReturnCode("ndnpeek") != 0:
+                print self.getProcessReturnCode("ndnpeek")
+                print self.getProcessError("ndnpeek")
+                print self.getProcessOutput("ndnpeek")
+                self.fail(">> TEST FAILED - received non-zero return code from ndnpeek")
         else:
-            self.fail(">> TEST FAILED - ndn-tlv-peek failed to complete")
-        if self.hasProcessCompleted("ndn-tlv-poke"):
-            if self.getProcessReturnCode("ndn-tlv-poke") != 0:
-                print self.getProcessError("ndn-tlv-poke")
-                self.fail(">> TEST FAILED - received non-zero return code from ndn-tlv-poke")
+            self.fail(">> TEST FAILED - ndnpeek failed to complete")
+        if self.hasProcessCompleted("ndnpoke"):
+            if self.getProcessReturnCode("ndnpoke") != 0:
+                print self.getProcessError("ndnpoke")
+                self.fail(">> TEST FAILED - received non-zero return code from ndnpoke")
         else:
-            self.fail(">> TEST FAILED - ndn-tlv-poke failed to complete")
+            self.fail(">> TEST FAILED - ndnpoke failed to complete")
         print ">> TEST SUCCESSFUL"
