diff --git a/jenkins/bin/jenkins.sh b/jenkins/bin/jenkins.sh
new file mode 100755
index 0000000..29c8f51
--- /dev/null
+++ b/jenkins/bin/jenkins.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+## -----------------------------------------------------------------------
+## Intent: Construct gerrit server queries and URLs based on arguments
+## -----------------------------------------------------------------------
+
+{ # loader
+    declare pgm=''
+    pgm="$(realpath --canonicalize-existing "$0")"
+    readonly pgm
+
+    declare libdir="${pgm%/*}"
+    libdir="${libdir%/*}/jenkins"
+    readonly libdir
+
+    declare root=''
+    root="${pgm%%/jenkins/bin/jenkins.sh}"
+    source "$root/lf/onf-common/common.sh" '--common-args-begin--'
+}
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+declare -x -g BROWSER="${BROWSER:-/usr/local/bin/firefox}"
+
+declare -a comps=()
+declare -a search=()
+declare -a servs=()
+
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+
+function usage()
+{
+    cat <<EOH
+Usage: $0
+  --computer        View jenkins node UI
+  --serv(er) {cord}
+
+EOH
+}
+
+##----------------##
+##---]  MAIN  [---##
+##----------------##
+[[ $# -eq 0 ]] && { set -- '--help'; }
+
+declare -a urls=()
+while [ $# -ne 0 ]; do
+    arg="$1"; shift
+    case "$arg" in
+        --help) usage; exit 0 ;;
+
+        ## Modes
+        --debug)
+            # shellcheck disable=SC2034
+            declare -g -i argv_debug=1
+            declare -g -i debug=1
+            ;;
+
+        --comp*)
+            arg="$1"; shift
+            comps+=("$arg")
+
+            declare -g -i argv_comp=1
+            ;;
+
+        --set*) set -x ;;
+        --serv*)
+            arg="$1"; shift
+            case "$arg" in
+                *cord*) servs+=('jenkins.opencord.org') ;;
+                *) error "Detected invalid server name [$arg]" ;;
+            esac
+            ;;
+
+        *)
+            arg="$1"; shift
+            search+=("$arg")
+            declare -g -i argv_search=1
+            ;;
+    esac
+done
+
+[[ ${#urls[@]} -eq 0 ]] && { servs+=('jenkins.opencord.org'); }
+
+if [[ -v argv_comp ]]; then
+    urls+=("https://${serv}/computer") 
+    for serv in "${servs[@]}";
+    do
+        for comp in "${comps[@]}";
+        do
+            urls+=("https://${serv}/computer/$comp")
+        done
+    done
+fi
+
+if [[ -v argv_search ]]; then
+    base='https://jenkins.opencord.org/view/bbsim/search'
+    for search in "${search[@]}";
+    do
+        urls+=("${base}?q=${search}")
+    done
+    # https://jenkins.opencord.org/view/bbsim/search/?q=bbs&Jenkins-Crumb=2368d5a9f8f7999b720d0bf0dc605ef2230dce1a77baad6ab1dd1d8b2f4799ea
+fi
+
+if [[ ! -v argv_comp ]] && [[ ! -v argv_search ]]; then
+    urls+=("https://jenkins.opencord.org")
+fi
+
+[[ ${#urls[@]} -gt 0 ]] && { "$BROWSER" "${urls[@]}" & }
+
+# [EOF]
diff --git a/jenkins/notes b/jenkins/notes
new file mode 100644
index 0000000..edbdaa8
--- /dev/null
+++ b/jenkins/notes
@@ -0,0 +1,4 @@
+All nodes of label ‘ubuntu18.04-basebuild-8c-15g’ are offline
+
+INFO: The instance EC2 (CORDEC2) - ubuntu18.04-basebuild-8c-15g (i-08fc2f43cf75d329d) didn't print the host key.
+  Expected a line starting with: "ssh-ed25519"
