Coodeen
Guides

Troubleshooting

Common issues and fixes.

macOS "damaged app" / Gatekeeper Warning

The current macOS builds aren't code-signed. After installing the DMG, clear the quarantine attribute:

xattr -cr /Applications/Coodeen.app

Then open the app again.

Sidecar Won't Start

Coodeen fails if it can't spawn the bundled opencode binary.

  • Dev: ensure apps/desktop/resources/bin/opencode exists. Re-run bun run --cwd apps/desktop fetch-opencode.
  • Packaged app: the binary ships under <app>/Contents/Resources/bin/opencode (macOS) or resources/bin/opencode.exe (Windows). If missing, reinstall.

Look for [opencode] sidecar ready at http://127.0.0.1:<port> in the console.

Fresh Start

Wipe both stores:

PlatformElectron userDataopencode data
macOS~/Library/Application Support/coodeen/~/.local/share/opencode/
Windows%APPDATA%/coodeen/%APPDATA%/opencode/
Linux~/.config/coodeen/~/.local/share/opencode/

Preview Not Loading

  • Check your dev server is actually up at the URL shown.
  • Some servers set X-Frame-Options / Content-Security-Policy that block iframe embedding.
  • Click the refresh icon in the preview toolbar.
  • If the 10s load timeout fires, the retry panel appears — click Retry.

Element Picker Doesn't Pick Anything

The picker relies on iframe.contentDocument. Heavily cross-origin content (some third-party sites) hides that. Point the preview at your local dev server instead.

Screenshots Don't Reach the AI

The current app uses a fixed model. If that model doesn't accept images, the provider drops the image part. The agent still receives the selected element's DOM metadata (tag, id, classes, selector).

API Key Rejected

  • Paste-check the key — no stray whitespace.
  • Provider dashboard — is the key live and billable?
  • opencode caches its provider list; Coodeen disposes the cache after an auth mutation, but if model calls still fail, restart the app.

Event Stream Reconnects in a Loop

The sidecar's /global/event stream is monitored by a heartbeat. If 15s pass with no events, Coodeen aborts and reconnects with exponential backoff. Persistent reconnects usually mean the sidecar crashed — check the console for opencode sidecar exited early and share the stderr output in a bug report.