diff --git a/SpeckleConnector/Connector.vcxproj b/SpeckleConnector/Connector.vcxproj
index 8c72f5b..9005564 100644
--- a/SpeckleConnector/Connector.vcxproj
+++ b/SpeckleConnector/Connector.vcxproj
@@ -105,6 +105,7 @@
+
@@ -161,6 +162,7 @@
+
diff --git a/SpeckleConnector/Connector.vcxproj.filters b/SpeckleConnector/Connector.vcxproj.filters
index 867cf2a..48eac5b 100644
--- a/SpeckleConnector/Connector.vcxproj.filters
+++ b/SpeckleConnector/Connector.vcxproj.filters
@@ -246,6 +246,9 @@
Connector\Interface\Browser\Bridge\Base
+
+ Connector\Interface\Browser\Bridge\Base
+
@@ -417,5 +420,8 @@
Connector\Interface\Browser\Bridge\Base
+
+ Connector\Interface\Browser\Bridge\Base
+
\ No newline at end of file
diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp
index 05f7ee5..3f985fe 100644
--- a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp
+++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/BaseBridge.cpp
@@ -8,6 +8,7 @@
#include "Connector/Interface/Browser/Bridge/Base/RemoveModel.h"
#include "Connector/Interface/Browser/Bridge/Base/UpdateModel.h"
#include "Connector/Interface/Browser/Bridge/Base/HighlightModel.h"
+#include "Connector/Interface/Browser/Bridge/Base/OpenUrl.h"
#include "Speckle/Event/Type/ProjectEvent.h"
using namespace connector::interfac::browser::bridge;
@@ -26,6 +27,7 @@ BaseBridge::BaseBridge() : BrowserBridge{"baseBinding"} {
addMethod();
addMethod();
addMethod();
+ addMethod();
} //BaseBridge::BaseBridge
/*--------------------------------------------------------------------
diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/OpenUrl.cpp b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/OpenUrl.cpp
new file mode 100644
index 0000000..ddfe254
--- /dev/null
+++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/OpenUrl.cpp
@@ -0,0 +1,22 @@
+#include "Connector/Interface/Browser/Bridge/Base/OpenUrl.h"
+
+using namespace connector::interfac::browser::bridge;
+using namespace speckle::utility;
+
+/*--------------------------------------------------------------------
+ Default constructor
+ --------------------------------------------------------------------*/
+OpenUrl::OpenUrl() : BridgeMethod{"OpenUrl", [&](const SendArgs& args) {
+ run(args);
+}} {}
+
+
+/*--------------------------------------------------------------------
+ Opens an url
+
+ url: The URL to open
+ --------------------------------------------------------------------*/
+void OpenUrl::run(const String& url) const {
+ std::string command = "start " + url;
+ system(command.c_str());
+} //OpenUrl::run
diff --git a/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/OpenUrl.h b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/OpenUrl.h
new file mode 100644
index 0000000..aa8fa35
--- /dev/null
+++ b/SpeckleConnector/Connector/Interface/Browser/Bridge/Base/OpenUrl.h
@@ -0,0 +1,41 @@
+#ifndef CONNECTOR_INTERFACE_BRIDGE_OPEN_URL
+#define CONNECTOR_INTERFACE_BRIDGE_OPEN_URL
+
+#include "Active/Serialise/CargoHold.h"
+#include "Active/Serialise/Item/Wrapper/ValueWrap.h"
+#include "Speckle/Interface/Browser/Bridge/BridgeMethod.h"
+
+namespace connector::interfac::browser::bridge {
+
+ class ConnectorConfig;
+
+ ///Argument parameter for a string
+ using StringHold = active::serialise::CargoHold, speckle::utility::String>;
+ ///Argument type for this method
+ using SendArgs = speckle::interfac::browser::bridge::JSArgType;
+
+ /*!
+ JS Function class to highlight elements from the selected model card in the open document
+ */
+ class OpenUrl : public speckle::interfac::browser::bridge::BridgeMethod {
+ public:
+
+ // MARK: - Constructors
+
+ /*!
+ Constructor
+ */
+ OpenUrl();
+
+ // MARK: - Functions (const)
+
+ /*!
+ Opens an url
+ @param url The URL to open
+ */
+ void run(const speckle::utility::String& url) const;
+ };
+
+}
+
+#endif //CONNECTOR_INTERFACE_BRIDGE_OPEN_URL