diff --git a/circuit_tree.py b/circuit_tree.py
index 96b7928e6629f7715fcb94d37979c684e399bbfb..1d392e179a1d18bcec429a444cccb9d07eb1ebc4 100644
--- a/circuit_tree.py
+++ b/circuit_tree.py
@@ -1,10 +1,12 @@
+import json
 import os
 from operator import itemgetter
 
 import click
+import redis
 from tree_format import format_tree
 
-from inventory_provider.db.ims import IMS, CIRCUIT_PROPERTIES
+from inventory_provider.db.ims import IMS, CIRCUIT_PROPERTIES, InventoryStatus
 
 username = 'TEST05'
 password = ''
@@ -20,25 +22,33 @@ NAV_PROPS = [
 
 @click.command()
 @click.option('-c', 'carriers', is_flag=True)
+@click.option('-l', 'local', is_flag=True)
 @click.argument('root_circuit_id', type=click.INT, required=True)
-def cli(carriers, root_circuit_id):
-    if carriers:
-        children_prop = 'carriercircuits'
-        childid = 'carriercircuitid'
-        NAV_PROPS.append(CIRCUIT_PROPERTIES['CarrierCircuits'])
+def cli(carriers, local, root_circuit_id):
+    if local:
+        if carriers:
+            children_prop = 'carrier-circuits'
+        else:
+            children_prop = 'sub-circuits'
     else:
-        children_prop = 'subcircuits'
-        childid = 'subcircuitid'
-        NAV_PROPS.append(CIRCUIT_PROPERTIES['SubCircuits'])
+        if carriers:
+            children_prop = 'carriercircuits'
+            childid = 'carriercircuitid'
+            NAV_PROPS.append(CIRCUIT_PROPERTIES['CarrierCircuits'])
+        else:
+            children_prop = 'subcircuits'
+            childid = 'subcircuitid'
+            NAV_PROPS.append(CIRCUIT_PROPERTIES['SubCircuits'])
 
     def _get_childcircuit_tree(circuit_id):
-
         circuit = ds.get_entity_by_id(
             'circuit', circuit_id, navigation_properties=NAV_PROPS)
+        # print(circuit["id"])
         _tree = [
             f'{circuit["id"]} -- {circuit["name"]} -- '
-            f'prod. {circuit["product"]["name"]} -- '
-            f'spd. {circuit["speed"]["name"]}'
+            f'prod: {circuit["product"]["name"]} -- '
+            f'spd: {circuit["speed"]["name"]} -- '
+            f'status: {InventoryStatus(circuit["inventorystatusid"]).name}'
         ]
 
         if circuit[children_prop]:
@@ -52,7 +62,40 @@ def cli(carriers, root_circuit_id):
         else:
             _tree.append([])
         return _tree
-    tree = _get_childcircuit_tree(root_circuit_id)
+
+    def _get_childcircuit_tree_local(circuit_id, r):
+        circuit = r.get(f'ims:circuit_hierarchy:{circuit_id}')
+        if not circuit:
+            return None
+        circuit = json.loads(circuit)[0]
+        _tree = [
+            f'{circuit["id"]} -- {circuit["name"]} -- '
+            f'prod: {circuit["product"]} -- '
+            f'spd: {circuit["speed"]} -- '
+            f'status: {circuit["status"]}'
+        ]
+
+        if circuit.get(children_prop, None):
+
+            children = []
+            for child_id in circuit[children_prop]:
+                v = _get_childcircuit_tree_local(child_id, r)
+                if v:
+                    children.append(v)
+            _tree.append(children)
+        else:
+            _tree.append([])
+        return _tree
+
+    if local:
+        tree = _get_childcircuit_tree_local(
+            root_circuit_id,
+            redis.StrictRedis(
+                host='localhost', db=0, decode_responses=True,
+                encoding='utf-8')
+        )
+    else:
+        tree = _get_childcircuit_tree(root_circuit_id)
     print(format_tree(
         tree, format_node=itemgetter(0), get_children=itemgetter(1))
     )