diff --git a/README.rst b/README.rst
index 06bde45c64..eae7fc8e1a 100644
--- a/README.rst
+++ b/README.rst
@@ -7,7 +7,7 @@ python-trezor
.. image:: https://badges.gitter.im/trezor/community.svg
:target: https://gitter.im/trezor/community
-Python library for communicating with TREZOR Hardware Wallet
+Python library and commandline client for communicating with TREZOR Hardware Wallet
See https://trezor.io for more information
@@ -41,67 +41,21 @@ or build via ports:
cd /usr/ports/security/py-trezor
make install clean
-Usage
------
-There is a command line tool called ``trezorctl`` which can perform various tasks. Use the following to learn about its commands:
+Commandline client (trezorctl)
+---------------------------
-.. code::
+The included ``trezorctl`` python script can perform various tasks such as changing setting in the Trezor, signing transactions, retrieving account info and addresses. See the `docs/ `_ sub folder for detailed examples and options.
- trezorctl --help
+NOTE: An older version of the ``trezorctl`` command is `available for Debian Stretch `_ (and comes pre-installed on `Tails OS `_).
-or to learn options of a particular command:
-.. code::
+Python Library
+--------------
- trezorctl commands --help
+You can use this python library to interact with a Bitcoin Trezor and use its capabilities in your application.
+See examples here in the `tools/ `_ sub folder.
-or visit `docs/USAGE.rst `_ page for more info.
-
-NOTE: The ``trezorctl`` command is `available for Debian Stretch `_ (and comes pre-installed on `Tails OS `_).
-
-To use the library in your application look at the following example.
-
-Example
--------
-
-also found in ``tools/helloworld.py``
-
-.. code:: python
-
- #!/usr/bin/env python
-
- from trezorlib.client import TrezorClient
- from trezorlib.transport_hid import HidTransport
-
- def main():
- # List all connected TREZORs on USB
- devices = HidTransport.enumerate()
-
- # Check whether we found any
- if len(devices) == 0:
- print('No TREZOR found')
- return
-
- # Use first connected device
- transport = HidTransport(devices[0])
-
- # Creates object for manipulating TREZOR
- client = TrezorClient(transport)
-
- # Print out TREZOR's features and settings
- print(client.features)
-
- # Get the first address of first BIP44 account
- # (should be the same address as shown in wallet.trezor.io)
- bip32_path = client.expand_path("44'/0'/0'/0/0")
- address = client.get_address('Bitcoin', bip32_path)
- print('Bitcoin address:', address)
-
- client.close()
-
- if __name__ == '__main__':
- main()
PIN Entering
------------
diff --git a/docs/USAGE.rst b/docs/EXAMPLES.rst
similarity index 93%
rename from docs/USAGE.rst
rename to docs/EXAMPLES.rst
index cc2728eb3e..be85b237ff 100644
--- a/docs/USAGE.rst
+++ b/docs/EXAMPLES.rst
@@ -1,7 +1,7 @@
-Usage
-=====
+Examples demonstrating how to use trezorctl
+===========================================
-Show help for all command:
+Show all available `options `_:
.. code::
@@ -15,8 +15,8 @@ Retrieve features, settings and coin types supported by your device:
trezorctl get_features
-Bitcoin
--------
+Bitcoin examples
+----------------
Get first receiving address of first account for Bitcoin (Legacy / non-SegWit):
@@ -97,8 +97,8 @@ The signed transaction text can then be inspected in Electrum (`screenshot `_ or later.
diff --git a/docs/OPTIONS.rst b/docs/OPTIONS.rst
new file mode 100644
index 0000000000..02ec1bfb6f
--- /dev/null
+++ b/docs/OPTIONS.rst
@@ -0,0 +1,63 @@
+Commandline options for trezorctl
+=================================
+
+See `EXAMPLES.rst `_ for examples on how to use.
+
+Use the following command to see all options:
+
+.. code::
+
+ trezorctl --help
+
+
+.. code::
+
+ Usage: trezorctl [OPTIONS] COMMAND [ARGS]...
+
+ Options:
+ -t, --transport [usb|udp|pipe|bridge]
+ Select transport used for communication.
+ -p, --path TEXT Select device by transport-specific path.
+ -v, --verbose Show communication messages.
+ -j, --json Print result as JSON object
+ --help Show this message and exit.
+
+ Commands:
+ backup_device Perform device seed backup.
+ change_pin Change new PIN or remove existing.
+ clear_session Clear session (remove cached PIN, passphrase,...
+ cosi_commit Ask device to commit to CoSi signing.
+ cosi_sign Ask device to sign using CoSi.
+ decrypt_keyvalue Decrypt value by given key and path.
+ decrypt_message Decrypt message.
+ disable_passphrase Disable passphrase.
+ enable_passphrase Enable passphrase.
+ encrypt_keyvalue Encrypt value by given key and path.
+ encrypt_message Encrypt message.
+ ethereum_get_address Get Ethereum address in hex encoding.
+ ethereum_sign_message Sign message with Ethereum address.
+ ethereum_sign_tx Sign (and optionally publish) Ethereum...
+ ethereum_verify_message Verify message signed with Ethereum address.
+ firmware_update Upload new firmware to device (must be in...
+ get_address Get address for specified path.
+ get_entropy Get example entropy.
+ get_features Retrieve device features and settings.
+ get_public_node Get public node of given path.
+ list List connected TREZOR devices.
+ list_coins List all supported coin types by the device.
+ load_device Load custom configuration to the device.
+ nem_get_address Get NEM address for specified path.
+ nem_sign_tx Sign (and optionally broadcast) NEM...
+ ping Send ping message.
+ recovery_device Start safe recovery workflow.
+ reset_device Perform device setup and generate new seed.
+ self_test Perform a self-test.
+ set_flags Set device flags.
+ set_homescreen Set new homescreen.
+ set_label Set new device label.
+ set_u2f_counter Set U2F counter.
+ sign_message Sign message using address of given path.
+ sign_tx Sign transaction.
+ verify_message Verify message.
+ version Show version of trezorctl/trezorlib.
+ wipe_device Reset device to factory defaults and remove...
diff --git a/docs/README.rst b/docs/README.rst
new file mode 100644
index 0000000000..6153d74ba9
--- /dev/null
+++ b/docs/README.rst
@@ -0,0 +1,5 @@
+Documentation for trezorctl commandline client
+==============================================
+
+* `EXAMPLES.rst `_ - Examples demonstrating how to use trezorctl
+* `OPTIONS.rst `_ - Commandline options for trezorctl