diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 138ff1e..993737e 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -33,8 +33,13 @@
 
 #### LOCAL ITEMS
 @frappe.whitelist()
-def get_valid_items():
-	items = frappe.get_list('Item', fields=["*"])
+def get_valid_items(search_value=''):
+	items = frappe.get_list('Item', fields=["*"], filters={
+		'item_name': ['like', '%' + search_value + '%']
+	})
+
+	print([d.item_name for d in items])
+
 	valid_items = filter(lambda x: x.image and x.description, items)
 
 	def attach_source_type(item):
diff --git a/erpnext/public/js/hub/hub_listing.js b/erpnext/public/js/hub/hub_listing.js
index 3107c67..33df23e 100644
--- a/erpnext/public/js/hub/hub_listing.js
+++ b/erpnext/public/js/hub/hub_listing.js
@@ -186,6 +186,7 @@
 	}
 
 	get_items_and_render() {
+		this.$wrapper.find('.hub-card-container').empty();
 		this.get_items()
 			.then(r => {
 				erpnext.hub.hub_item_cache = r.message;
@@ -238,6 +239,7 @@
 	}
 
 	render(items) {
+		this.$wrapper.find('.hub-card-container').empty();
 		const html = get_item_card_container_html(items, __('Favourites'));
 		this.$wrapper.append(html)
 	}
@@ -253,6 +255,7 @@
 	}
 
 	get_items_for_category(category) {
+		this.$wrapper.find('.hub-card-container').empty();
 		return frappe.call('erpnext.hub_node.get_list', {
 			doctype: 'Hub Item',
 			filters: {
@@ -490,6 +493,8 @@
 	}
 
 	refresh() {
+		this.$register_container.empty();
+		this.$form_container.empty();
 		this.render();
 	}
 
@@ -615,15 +620,30 @@
 		this.$wrapper.find('.deselect-all').on('click', () => {
 			this.$wrapper.find('.hub-card').removeClass('active');
 		});
+
+		const $search_input = this.$wrapper.find('.hub-search-container input');
+		this.search_value = '';
+
+		$search_input.on('keydown', frappe.utils.debounce((e) => {
+			if (e.which === frappe.ui.keyCode.ENTER) {
+				this.search_value = $search_input.val();
+				this.get_items_and_render();
+			}
+		}, 300));
 	}
 
-	refresh() {
+	get_items_and_render() {
+		this.$wrapper.find('.hub-card-container').empty();
 		this.get_valid_items()
 			.then(r => {
 				this.render(r.message);
 			});
 	}
 
+	refresh() {
+		this.get_items_and_render();
+	}
+
 	render(items) {
 		const items_container = $(get_item_card_container_html(items));
 		items_container.addClass('static').on('click', '.hub-card', (e) => {
@@ -635,7 +655,12 @@
 	}
 
 	get_valid_items() {
-		return frappe.call('erpnext.hub_node.get_valid_items');
+		return frappe.call(
+			'erpnext.hub_node.get_valid_items',
+			{
+				search_value: this.search_value
+			}
+		);
 	}
 }
 
