- {isConfigured && (
+ {isConfigured && !isCliProvider && (
handleDeleteKey(provider.id)}
className="text-xs text-error hover:underline"
@@ -362,11 +380,28 @@ export function ApiKeysPage() {
type="password"
value={apiKeys[provider.id] || ''}
onChange={(e) => updateApiKey(provider.id, e.target.value)}
- placeholder={isConfigured ? '••••••••••••••••' : getProviderPlaceholder(provider)}
+ placeholder={isConfigured && !isCliProvider ? '••••••••••••••••' : getProviderPlaceholder(provider)}
className="w-full px-3 py-2 bg-bg-tertiary dark:bg-dark-bg-tertiary border border-border dark:border-dark-border rounded-lg text-text-primary dark:text-dark-text-primary font-mono text-sm focus:outline-none focus:ring-2 focus:ring-primary/50"
/>
- {isConfigured && !hasNewValue ? (
+ {isCliProvider ? (
+ <>
+ {helperText}
+ {provider.docsUrl ? (
+ <>
+ {' '}
+
+ Setup docs
+
+ >
+ ) : null}
+ >
+ ) : isConfigured && !hasNewValue ? (
'Enter a new key to update'
) : (
<>
diff --git a/packages/ui/src/pages/CodingAgentSettingsPage.tsx b/packages/ui/src/pages/CodingAgentSettingsPage.tsx
index 4d67f7dd..0cdc4a52 100644
--- a/packages/ui/src/pages/CodingAgentSettingsPage.tsx
+++ b/packages/ui/src/pages/CodingAgentSettingsPage.tsx
@@ -1,7 +1,7 @@
/**
* Coding Agent Settings Page
*
- * Provider configuration: install status, API keys, version info,
+ * Provider configuration: install status, auth mode, version info,
* test connectivity. Accessible at /settings/coding-agents.
*/
@@ -41,7 +41,7 @@ const PROVIDER_META: Record = {
installCommand: 'npm i -g @anthropic-ai/claude-code',
docsUrl: 'https://console.anthropic.com',
docsLabel: 'console.anthropic.com',
- authInfo: 'Claude Pro subscription or API key (ANTHROPIC_API_KEY)',
+ authInfo: 'Claude CLI login/session auth or ANTHROPIC_API_KEY',
},
codex: {
icon: 'O',
@@ -49,7 +49,7 @@ const PROVIDER_META: Record = {
installCommand: 'npm i -g @openai/codex',
docsUrl: 'https://platform.openai.com',
docsLabel: 'platform.openai.com',
- authInfo: 'ChatGPT Plus subscription or API key (CODEX_API_KEY)',
+ authInfo: 'ChatGPT/Codex CLI login/session auth or CODEX_API_KEY',
},
'gemini-cli': {
icon: 'G',
@@ -57,7 +57,7 @@ const PROVIDER_META: Record = {
installCommand: 'npm i -g @google/gemini-cli',
docsUrl: 'https://aistudio.google.com',
docsLabel: 'aistudio.google.com',
- authInfo: 'Google account login or API key (GEMINI_API_KEY)',
+ authInfo: 'Google account login/session auth or GEMINI_API_KEY',
},
};
@@ -152,9 +152,8 @@ export function CodingAgentSettingsPage() {
- No API key required! All providers support subscription-based login
- (Claude Pro, ChatGPT Plus, Google account). API keys are optional — the CLI will prompt
- you to authenticate on first use in interactive mode.
+ Login or API key. CLI providers can use their local authenticated
+ session, and OwnPilot will also forward a configured API key when one is available.
@@ -230,7 +229,7 @@ function ProviderCard({
{status.configured && (
- API Key
+ {status.authMethod === 'login' ? 'Login Ready' : 'Ready'}
)}