diff --git a/webui/src/web-components/sketch-container-status.ts b/webui/src/web-components/sketch-container-status.ts
index 2199342..560044a 100644
--- a/webui/src/web-components/sketch-container-status.ts
+++ b/webui/src/web-components/sketch-container-status.ts
@@ -336,6 +336,43 @@
     .github-link:hover {
       text-decoration: underline;
     }
+
+    .commit-info-container {
+      display: flex;
+      align-items: center;
+      gap: 6px;
+    }
+
+    .commit-info-container .copy-icon {
+      opacity: 0.7;
+      display: flex;
+      align-items: center;
+    }
+
+    .commit-info-container .copy-icon svg {
+      vertical-align: middle;
+    }
+
+    .commit-info-container:hover .copy-icon {
+      opacity: 1;
+    }
+
+    .octocat-link {
+      color: #586069;
+      text-decoration: none;
+      display: flex;
+      align-items: center;
+      transition: color 0.2s ease;
+    }
+
+    .octocat-link:hover {
+      color: #0366d6;
+    }
+
+    .octocat-icon {
+      width: 16px;
+      height: 16px;
+    }
   `;
 
   constructor() {
@@ -533,6 +570,8 @@
         return {
           formatted: `${match[1]}/${match[2]}`,
           url: `https://github.com/${match[1]}/${match[2]}`,
+          owner: match[1],
+          repo: match[2],
         };
       }
     }
@@ -540,6 +579,20 @@
     return null;
   }
 
+  // Generate GitHub branch URL if linking is enabled
+  getGitHubBranchLink(branchName) {
+    if (!this.state?.link_to_github || !branchName) {
+      return null;
+    }
+
+    const github = this.formatGitHubRepo(this.state?.git_origin);
+    if (!github) {
+      return null;
+    }
+
+    return `https://github.com/${github.owner}/${github.repo}/tree/${branchName}`;
+  }
+
   renderSSHSection() {
     // Only show SSH section if we're in a Docker container and have session ID
     if (!this.state?.session_id) {
@@ -665,52 +718,88 @@
             >
               ${this.lastCommit
                 ? this.lastCommit.pushedBranch
-                  ? html`<span class="commit-branch-indicator main-grid-commit"
-                      >${this.lastCommit.pushedBranch}</span
-                    >`
+                  ? (() => {
+                      const githubLink = this.getGitHubBranchLink(
+                        this.lastCommit.pushedBranch,
+                      );
+                      return html`
+                        <div class="commit-info-container">
+                          <span
+                            class="commit-branch-indicator main-grid-commit"
+                            title="Click to copy: ${this.lastCommit
+                              .pushedBranch}"
+                            @click=${(e) => this.copyCommitInfo(e)}
+                            >${this.lastCommit.pushedBranch}</span
+                          >
+                          <span class="copy-icon">
+                            ${this.lastCommitCopied
+                              ? html`<svg
+                                  xmlns="http://www.w3.org/2000/svg"
+                                  width="16"
+                                  height="16"
+                                  viewBox="0 0 24 24"
+                                  fill="none"
+                                  stroke="currentColor"
+                                  stroke-width="2"
+                                  stroke-linecap="round"
+                                  stroke-linejoin="round"
+                                >
+                                  <path d="M20 6L9 17l-5-5"></path>
+                                </svg>`
+                              : html`<svg
+                                  xmlns="http://www.w3.org/2000/svg"
+                                  width="16"
+                                  height="16"
+                                  viewBox="0 0 24 24"
+                                  fill="none"
+                                  stroke="currentColor"
+                                  stroke-width="2"
+                                  stroke-linecap="round"
+                                  stroke-linejoin="round"
+                                >
+                                  <rect
+                                    x="9"
+                                    y="9"
+                                    width="13"
+                                    height="13"
+                                    rx="2"
+                                    ry="2"
+                                  ></rect>
+                                  <path
+                                    d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"
+                                  ></path>
+                                </svg>`}
+                          </span>
+                          ${githubLink
+                            ? html`<a
+                                href="${githubLink}"
+                                target="_blank"
+                                rel="noopener noreferrer"
+                                class="octocat-link"
+                                title="Open ${this.lastCommit
+                                  .pushedBranch} on GitHub"
+                                @click=${(e) => e.stopPropagation()}
+                              >
+                                <svg
+                                  class="octocat-icon"
+                                  viewBox="0 0 16 16"
+                                  width="16"
+                                  height="16"
+                                >
+                                  <path
+                                    fill="currentColor"
+                                    d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"
+                                  />
+                                </svg>
+                              </a>`
+                            : ""}
+                        </div>
+                      `;
+                    })()
                   : html`<span class="commit-hash-indicator main-grid-commit"
                       >${this.lastCommit.hash.substring(0, 8)}</span
                     >`
                 : html`<span class="no-commit-indicator">N/A</span>`}
-              <span class="copy-icon">
-                ${this.lastCommitCopied
-                  ? html`<svg
-                      xmlns="http://www.w3.org/2000/svg"
-                      width="16"
-                      height="16"
-                      viewBox="0 0 24 24"
-                      fill="none"
-                      stroke="currentColor"
-                      stroke-width="2"
-                      stroke-linecap="round"
-                      stroke-linejoin="round"
-                    >
-                      <path d="M20 6L9 17l-5-5"></path>
-                    </svg>`
-                  : html`<svg
-                      xmlns="http://www.w3.org/2000/svg"
-                      width="16"
-                      height="16"
-                      viewBox="0 0 24 24"
-                      fill="none"
-                      stroke="currentColor"
-                      stroke-width="2"
-                      stroke-linecap="round"
-                      stroke-linejoin="round"
-                    >
-                      <rect
-                        x="9"
-                        y="9"
-                        width="13"
-                        height="13"
-                        rx="2"
-                        ry="2"
-                      ></rect>
-                      <path
-                        d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"
-                      ></path>
-                    </svg>`}
-              </span>
             </div>
           </div>
         </div>
