Add cross-platform packaging, icons, and Claude Code config discovery
Build & Release / Build (Linux) (push) Failing after 2m56s
Build & Release / Build (macOS) (push) Successful in 4m24s
Build & Release / Build (Windows) (push) Has been cancelled
Build & Release / Publish Release (push) Has been cancelled

- Auto-discovers Claude Code (~/.claude/settings.json) alongside Claude Desktop
- Generated icons/app.icns (macOS) and icons/app.ico (Windows) from rounded PNGs
- bcc.spec: PyInstaller spec for all platforms (.app on macOS, onefile on Windows/Linux)
- .github/workflows/release.yml: builds and publishes GitHub Release on version tags
- scripts/build_icons.py: regenerates icon files from source PNGs
- requirements-dev.txt: adds pyinstaller and pillow for building
- CLAUDE.md: initial repo guidance for Claude Code

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
AJ Avezzano
2026-06-29 15:01:30 -04:00
parent 780d4c3a9c
commit dd7557ea62
23 changed files with 458 additions and 14 deletions
+11 -4
View File
@@ -78,11 +78,12 @@ def app_support_base() -> Path:
def discover_profiles() -> list[Profile]:
"""
Find every `Claude*` data directory in the platform's app-support base.
Find every `Claude*` data directory in the platform's app-support base
(Claude Desktop installs), then also check for a Claude Code global config.
This catches the standard `Claude` folder plus any sibling like
`Claude-Work`, `Claude-Personal`, etc. A directory is listed even if the
config file doesn't exist yet (it will be created on first save).
Claude Desktop: scans the platform app-support folder for any `Claude*`
directory (catches `Claude`, `Claude-Work`, etc.).
Claude Code: always at ~/.claude/settings.json on every platform.
"""
base = app_support_base()
out: list[Profile] = []
@@ -93,6 +94,12 @@ def discover_profiles() -> list[Profile]:
seen.add(d.name)
cfg = d / CONFIG_FILENAME
out.append(Profile(label=d.name, path=cfg, config_exists=cfg.is_file()))
# Claude Code global settings (~/.claude/settings.json) — same mcpServers format,
# cross-platform (the ~/.claude/ directory is always in the same place).
cc_cfg = Path.home() / ".claude" / "settings.json"
out.append(Profile(label="Claude Code", path=cc_cfg, config_exists=cc_cfg.is_file()))
return out