diff --git a/src/web/public/settings-ui.js b/src/web/public/settings-ui.js
index 36d06214..a8eb46fd 100644
--- a/src/web/public/settings-ui.js
+++ b/src/web/public/settings-ui.js
@@ -694,6 +694,19 @@ Object.assign(CodemanApp.prototype, {
this._updatePollTimer = setInterval(poll, 1500);
},
+ async loadGeminiAvailability() {
+ const btn = document.getElementById('welcomeGeminiBtn');
+ if (!btn) return;
+ try {
+ const res = await fetch('/api/gemini/status');
+ const env = await res.json();
+ const status = env?.success === true ? env.data : env;
+ btn.style.display = status?.available ? 'flex' : 'none';
+ } catch {
+ btn.style.display = 'none';
+ }
+ },
+
async loadTunnelStatus() {
try {
const res = await fetch('/api/tunnel/status');
diff --git a/src/web/public/terminal-ui.js b/src/web/public/terminal-ui.js
index f19f37ee..4fe01c19 100644
--- a/src/web/public/terminal-ui.js
+++ b/src/web/public/terminal-ui.js
@@ -1195,6 +1195,7 @@ Object.assign(CodemanApp.prototype, {
if (overlay) {
overlay.classList.add('visible');
this.loadTunnelStatus();
+ this.loadGeminiAvailability();
this.loadHistorySessions();
this.initSearchPanel();
}