diff --git a/reclass_tools/cli.py b/reclass_tools/cli.py
index 418d5dc..d6aa10c 100644
--- a/reclass_tools/cli.py
+++ b/reclass_tools/cli.py
@@ -90,3 +90,22 @@
         params.key_name,
         verbose=params.verbose,
         pretend=pretend)
+
+def inventory_list(args=None):
+    try:
+        from reclass_tools import reclass_models
+    except ImportError:
+        print("Please run this tool on the salt-master node with installed 'reclass'")
+        return
+
+    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter,
+                                     description="")
+    parser.add_argument('--all', dest='all_nodes', action='store_const', const=True,
+                        help=('Show all the nodes available for reclass. '
+                              'By default, show nodes only for the same domain '
+                              'as used for the current minion'),
+                        default=False)
+
+    params = parser.parse_args(args)
+
+    reclass_models.inventory_list(all_nodes=params.all_nodes)
diff --git a/reclass_tools/reclass_models.py b/reclass_tools/reclass_models.py
new file mode 100644
index 0000000..1bc83de
--- /dev/null
+++ b/reclass_tools/reclass_models.py
@@ -0,0 +1,43 @@
+import reclass
+from reclass.adapters import salt as reclass_salt
+from reclass import config as reclass_config
+from reclass import core as reclass_core
+import salt.cli.call
+import salt.cli.caller
+
+
+def get_core():
+    """Initializes reclass Core() using /etc/reclass settings"""
+
+    defaults = reclass_config.find_and_read_configfile()
+    inventory_base_uri = defaults['inventory_base_uri']
+    storage_type = defaults['storage_type']
+
+    nodes_uri, classes_uri = reclass_config.path_mangler(inventory_base_uri,
+                                                         None, None)
+    storage = reclass.get_storage(storage_type, nodes_uri, classes_uri,
+                                  default_environment='base')
+
+    return reclass_core.Core(storage, None, None)
+
+
+def get_minion_domain():
+    """Try to get domain from the local salt minion"""
+    client = salt.cli.call.SaltCall()
+    client.parse_args(args=['pillar.items'])
+    caller = salt.cli.caller.Caller.factory(client.config)
+    result = caller.call()
+    # Warning! There is a model-related parameter
+    # TODO: move the path to the parameter to a settings/defaults
+    domain = result['return']['_param']['cluster_domain']
+    return domain
+
+
+def inventory_list(all_nodes=False):
+    core = get_core()
+    inventory = core.inventory()
+    nodes_list = inventory['nodes'].keys()
+    if not all_nodes:
+        domain = get_minion_domain()
+        nodes_list = [node for node in nodes_list if domain in node]
+    print('\n'.join(sorted(nodes_list)))
diff --git a/reclass_tools/walk_models.py b/reclass_tools/walk_models.py
index dbfd211..a07e51b 100644
--- a/reclass_tools/walk_models.py
+++ b/reclass_tools/walk_models.py
@@ -1,5 +1,3 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
 
 import copy
 import hashlib
diff --git a/setup.cfg b/setup.cfg
index 6bafdf7..6fad0ba 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -29,3 +29,4 @@
     reclass-dump-params = reclass_tools.cli:dump_params
     reclass-remove-key = reclass_tools.cli:remove_key
     reclass-show-key = reclass_tools.cli:show_key
+    reclass-inventory-list = reclass_tools.cli:inventory_list
