diff --git a/tools/peek/ndnpeek/main.cpp b/tools/peek/ndnpeek/main.cpp
index 89b2222..5a8bc19 100644
--- a/tools/peek/ndnpeek/main.cpp
+++ b/tools/peek/ndnpeek/main.cpp
@@ -84,6 +84,7 @@
     ("link-file",  po::value<std::string>(), "set ForwardingHint from a raw binary file")
     ("lifetime,l", po::value<time::milliseconds::rep>()->default_value(options.interestLifetime.count()),
                    "set InterestLifetime, in milliseconds")
+    ("hop-limit,H",     po::value<int>(), "set HopLimit")
     ("app-params,A",    po::value<std::string>(), "set ApplicationParameters from a base64-encoded string")
     ("app-params-file", po::value<std::string>(), "set ApplicationParameters from a file")
   ;
@@ -158,10 +159,19 @@
 
   options.interestLifetime = time::milliseconds(vm["lifetime"].as<time::milliseconds::rep>());
   if (options.interestLifetime < 0_ms) {
-    std::cerr << "ERROR: lifetime cannot be negative" << std::endl;
+    std::cerr << "ERROR: InterestLifetime cannot be negative" << std::endl;
     return 2;
   }
 
+  if (vm.count("hop-limit") > 0) {
+    auto hopLimit = vm["hop-limit"].as<int>();
+    if (hopLimit < 0 || hopLimit > 255) {
+      std::cerr << "ERROR: HopLimit must be between 0 and 255" << std::endl;
+      return 2;
+    }
+    options.hopLimit = static_cast<uint8_t>(hopLimit);
+  }
+
   if (vm.count("app-params") > 0) {
     if (vm.count("app-params-file") > 0) {
       std::cerr << "ERROR: cannot specify both '--app-params' and '--app-params-file'" << std::endl;
diff --git a/tools/peek/ndnpeek/ndnpeek.cpp b/tools/peek/ndnpeek/ndnpeek.cpp
index 7bcb137..cc9286c 100644
--- a/tools/peek/ndnpeek/ndnpeek.cpp
+++ b/tools/peek/ndnpeek/ndnpeek.cpp
@@ -63,10 +63,11 @@
   Interest interest(m_options.name);
   interest.setCanBePrefix(m_options.canBePrefix);
   interest.setMustBeFresh(m_options.mustBeFresh);
-  interest.setInterestLifetime(m_options.interestLifetime);
   if (m_options.link) {
     interest.setForwardingHint(m_options.link->getDelegationList());
   }
+  interest.setInterestLifetime(m_options.interestLifetime);
+  interest.setHopLimit(m_options.hopLimit);
   if (m_options.applicationParameters) {
     interest.setApplicationParameters(m_options.applicationParameters);
   }
diff --git a/tools/peek/ndnpeek/ndnpeek.hpp b/tools/peek/ndnpeek/ndnpeek.hpp
index 357597e..998d049 100644
--- a/tools/peek/ndnpeek/ndnpeek.hpp
+++ b/tools/peek/ndnpeek/ndnpeek.hpp
@@ -49,6 +49,7 @@
   bool mustBeFresh = false;
   shared_ptr<Link> link;
   time::milliseconds interestLifetime = DEFAULT_INTEREST_LIFETIME;
+  optional<uint8_t> hopLimit;
   shared_ptr<Buffer> applicationParameters;
 
   // program behavior options
