Description
In the opencode desktop app, custom project icons are saved correctly but never rendered in the projects list — each project shows the default colored letter instead of the chosen image.
Repro: Edit a project → choose an image file as its icon → Save. The selection persists, but the projects list keeps showing the default letter.
Root cause (investigated)
The icon is persisted. In the desktop data store the project record contains:
"icon": { "color": "pink", "override": "data:image/png;base64,iVBORw0K…" }
i.e. the chosen image is stored as a base64 data-URI in icon.override, alongside a fallback icon.color. The projects-list UI appears to render the color fallback and never uses icon.override.
I verified this across 5 projects in ~/Library/Application Support/ai.opencode.desktop/opencode.workspace.*.dat:
| icon size |
type |
fallback color |
renders? |
| 226 KB |
PNG |
pink |
no |
| 40 KB |
JPEG |
lime |
no |
| 30 KB |
PNG |
purple |
no |
| 19 KB |
PNG |
mint |
no |
| 3 KB |
JPEG |
pink |
no |
Every stored override is a valid, fully-decodable image (correct PNG/JPEG magic bytes). So:
- Not a save bug — the data is correct and complete.
- Not size-dependent — a 3 KB icon fails identically to a 226 KB one.
- Not format-dependent — PNG and JPEG both fail.
- No errors logged —
main.log / renderer.log show only benign ResizeObserver loop… warnings and update checks; nothing about icon/image decode or render.
Conclusion: the projects-list icon component isn't consuming icon.override; it falls back to the colored letter.
OpenCode version
Desktop app v1.15.12 (mac arm64), channel latest (confirmed up to date; no newer version available).
Steps to reproduce
- Open the opencode desktop app.
- Edit a project and set its icon to an image file (PNG or JPEG), then Save.
- Observe the projects list — it shows the default colored letter, not the chosen image.
- (Optional) Inspect
~/Library/Application Support/ai.opencode.desktop/opencode.workspace.*.dat: the project record's icon.override contains the correct base64 data-URI.
Operating System
macOS 26.5 (arm64)
Notes
Data store path: ~/Library/Application Support/ai.opencode.desktop/. Happy to provide a sanitized sample record or logs if useful.
Description
In the opencode desktop app, custom project icons are saved correctly but never rendered in the projects list — each project shows the default colored letter instead of the chosen image.
Repro: Edit a project → choose an image file as its icon → Save. The selection persists, but the projects list keeps showing the default letter.
Root cause (investigated)
The icon is persisted. In the desktop data store the project record contains:
i.e. the chosen image is stored as a base64 data-URI in
icon.override, alongside a fallbackicon.color. The projects-list UI appears to render thecolorfallback and never usesicon.override.I verified this across 5 projects in
~/Library/Application Support/ai.opencode.desktop/opencode.workspace.*.dat:Every stored
overrideis a valid, fully-decodable image (correct PNG/JPEG magic bytes). So:main.log/renderer.logshow only benignResizeObserver loop…warnings and update checks; nothing about icon/image decode or render.Conclusion: the projects-list icon component isn't consuming
icon.override; it falls back to the colored letter.OpenCode version
Desktop app v1.15.12 (mac arm64), channel
latest(confirmed up to date; no newer version available).Steps to reproduce
~/Library/Application Support/ai.opencode.desktop/opencode.workspace.*.dat: the project record'sicon.overridecontains the correct base64 data-URI.Operating System
macOS 26.5 (arm64)
Notes
Data store path:
~/Library/Application Support/ai.opencode.desktop/. Happy to provide a sanitized sample record or logs if useful.