diff --git a/manpages/conf.py b/manpages/conf.py
new file mode 100644
index 0000000..20709a9
--- /dev/null
+++ b/manpages/conf.py
@@ -0,0 +1,11 @@
+# General information about the project.
+project = u'NDN Essential Tools'
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('ndnpeek', 'ndnpeek', 'simple consumer to send one Interest and expect one Data', None, 1),
+    ('ndnpoke', 'ndnpoke', 'simple producer to publish one Data', None, 1),
+]
diff --git a/manpages/ndnpeek.rst b/manpages/ndnpeek.rst
new file mode 100644
index 0000000..1f36263
--- /dev/null
+++ b/manpages/ndnpeek.rst
@@ -0,0 +1,56 @@
+ndnpeek
+=======
+
+Usage
+-----
+
+::
+
+    ndnpeek [-h] [-f] [-r] [-m min] [-M max] [-l lifetime] [-p] [-w timeout] name
+
+Description
+-----------
+
+``ndnpeek`` is a simple consumer program that sends one Interest and expects one Data
+packet in response.  The full Data packet (in TLV format) is written to stdout.  The
+program terminates with return code 0 if Data arrives, and with return code 1 when timeout
+occurs.
+
+``name`` is interpreted as the Interest name.
+
+Options
+-------
+
+``-h``
+  Print help and exit
+
+``-f``
+  If specified, set ``MustBeFresh`` selector in the Interest packet.
+
+``-r``
+  Set ``ChildSelector=1`` (the rightmost child) selector.
+
+``-m``
+  Set ``min`` as the ``MinSuffixComponents`` selector.
+
+``-M``
+  Set ``max`` as the ``MaxSuffixComponents`` selector.
+
+``-l``
+  Set ``lifetime`` (in milliseconds) as the ``InterestLifetime``.
+
+``-p``
+  If specified, print the received payload only, not the full packet.
+
+``-w``
+  Timeout after ``timeout`` milliseconds.
+
+
+Examples
+--------
+
+Send Interest for ``ndn:/app1/video`` and print the received payload only
+
+::
+
+    ndnpeek -p ndn:/app1/video
diff --git a/manpages/ndnpoke.rst b/manpages/ndnpoke.rst
new file mode 100644
index 0000000..c4c0a47
--- /dev/null
+++ b/manpages/ndnpoke.rst
@@ -0,0 +1,54 @@
+ndnpoke
+=======
+
+Usage
+-----
+
+::
+
+    ndnpoke [-h] [-f] [-D] [-i identity] [-F] [-x freshness] [-w timeout] name
+
+Description
+-----------
+
+``ndnpoke`` is a simple producer program that reads payload from stdin and publishes it
+as a single NDN Data packet.  The Data packet is published either as a response to the
+incoming Interest for the given ``name``, or forcefully pushed to the local NDN
+forwarder's cache if ``-f`` flag is specified.
+
+The program terminates with return code 0 if Data is sent and with return code 1 when
+timeout occurs.
+
+Options
+-------
+
+``-h``
+  Print usage and exit.
+
+``-f``
+  If specified, send Data without waiting for Interest.
+
+``-D``
+  If specified, use ``DigestSha256`` signature instead of default ``SignatureSha256WithRsa``.
+
+``-i``
+  Use ``identity`` to sign the created Data packet.
+
+``-F``
+  Set ``FinalBlockId`` to the last component of specified name.
+
+``-x``
+  Set ``FreshnessPeriod`` in milliseconds.
+
+``-w``
+  Wait at most ``timeout`` milliseconds for the incoming Interest.  If no Interest arrives
+  within the ``timeout``, the Data packet will not be published.
+
+
+Examples
+--------
+
+Create Data packet with content ``hello`` with the name ``ndn:/app/video`` and wait at
+most 3 seconds for the incoming Interest for it::
+
+    echo "Hello" | build/bin/ndnpoke -w 3000 ndn:/app/video
diff --git a/manpages/wscript b/manpages/wscript
new file mode 100644
index 0000000..e1093a4
--- /dev/null
+++ b/manpages/wscript
@@ -0,0 +1,10 @@
+def build(bld):
+    if not bld.env['SPHINX_BUILD']:
+        return
+    bld(features='sphinx',
+        builder='man',
+        outdir='.',
+        config='./conf.py',
+        source=bld.path.ant_glob('*.rst'),
+        install_path='${MANDIR}/',
+        VERSION=bld.env['VERSION'])
