ワンクリックで
electron-ai-key-silent-fail
Diagnose when AI features silently return 'Offline' or 'no API key' despite valid settings
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Diagnose when AI features silently return 'Offline' or 'no API key' despite valid settings
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Find and fix WCAG 2.2 accessibility issues. Two modes — report (sweep a codebase or page, produce a prioritized written report, no edits) and fix (audit→edit→verify loop on a target). Prefers direct-CDP live-DOM auditing; falls back to HTML-string audits.
Diff a live page's accessibility violations against a baseline — by default compares uncommitted changes (stash-based), or pass --branch [<name>] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use `scan` for a full audit with no diffing.
Audit a live page for accessibility issues and locate each violation precisely — pass a URL, a config target name (e.g. `accesslint:scan dev`), or nothing to use the default target from accesslint.config.json. Ensures a debuggable Chrome, runs the @accesslint/core engine via CDP, and returns a worklist of live-DOM WCAG violations grounded to each violation's DOM selector and source file:line. Locates; doesn't edit — output drives fixes by Claude. Use it for "is this page accessible", or to verify a UI change. For diffing against uncommitted changes or a branch, use the `diff` skill.
Remove native title bar double-rendering in Electron by setting `frame: false` and using CSS `-webkit-app-region` for window dragging
When a utility exports a boolean constant but a component imports and calls it as a function — `isNative()` instead of `isNative` — causes "is not a function" at render time
Systematically remove Firebase auth & cloud sync from an Electron + React app — trace dependencies across renderer, main process, and preload bridge
| name | electron-ai-key-silent-fail |
| description | Diagnose when AI features silently return 'Offline' or 'no API key' despite valid settings |
| source | auto-skill |
| extracted_at | 2026-06-06T10:38:00.000Z |
AI features (transforms, chat, OCR) return "[Offline] Cannot transform X → Y without an AI key" or similar, even though Settings shows a valid API key and the provider appears "Active" in the sidebar.
The openai npm package is not installed. Electron's electron/ai.js does:
try {
const { OpenAI } = require('openai')
_client = new OpenAI({ apiKey, baseURL })
} catch {
return null // SILENT FAILURE
}
The require('openai') throws because the package isn't in package.json. The try/catch silently returns null, which makes every AI call fall through to the offline/error path.
npm install openai
Then restart the Electron app (not just Vite HMR — the main process needs a full restart).
Check if openai is in package.json dependencies. If missing, it's the cause. All providers (OpenAI, Gemini, DeepSeek, Groq, Ollama, OpenRouter, DashScope, Custom) use the OpenAI-compatible client, so this single package affects everything.