Skip to content

Commit 42fcd5b

Browse files
znsoftznsoft
authored andcommitted
feat(rebrand): Rename application to AICoder across metadata and build scripts
1 parent 920677b commit 42fcd5b

File tree

13 files changed

+126
-28
lines changed

13 files changed

+126
-28
lines changed

.DS_Store

0 Bytes
Binary file not shown.

app.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ func (a *App) CheckUpdate(currentVersion string) (UpdateResult, error) {
508508
if err != nil {
509509
return UpdateResult{}, err
510510
}
511-
req.Header.Set("User-Agent", "Claude-Code-Easy-Suite")
511+
req.Header.Set("User-Agent", "AICoder")
512512

513513
client := &http.Client{}
514514
resp, err := client.Do(req)

build/scripts_arm64/postinstall

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
2-
APP_PATH="/Applications/Claude Code Easy Suite.app"
3-
APP_URL="file:///Applications/Claude%20Code%20Easy%20Suite.app/"
2+
APP_PATH="/Applications/AICoder.app"
3+
APP_URL="file:///Applications/AICoder.app/"
44
CURRENT_USER=$(stat -f '%Su' /dev/console)
55
RANDOM_GUID=$(od -An -N4 -t u4 /dev/urandom | tr -d ' ')
66

@@ -9,8 +9,8 @@ RANDOM_GUID=$(od -An -N4 -t u4 /dev/urandom | tr -d ' ')
99

1010
if [ -d "$APP_PATH" ]; then
1111
# Check if already in dock (check by app name)
12-
if ! sudo -u "$CURRENT_USER" defaults read com.apple.dock persistent-apps | grep -q "Claude%20Code%20Easy%20Suite.app"; then
13-
logger "CCEASY: Adding $APP_URL to Dock for user $CURRENT_USER with GUID $RANDOM_GUID"
12+
if ! sudo -u "$CURRENT_USER" defaults read com.apple.dock persistent-apps | grep -q "AICoder.app"; then
13+
logger "AICoder: Adding $APP_URL to Dock for user $CURRENT_USER with GUID $RANDOM_GUID"
1414

1515
# Use a more complete XML structure matching system style
1616
DOCK_ITEM="<dict>
@@ -20,7 +20,7 @@ if [ -d "$APP_PATH" ]; then
2020
<key>_CFURLString</key><string>$APP_URL</string>
2121
<key>_CFURLStringType</key><integer>15</integer>
2222
</dict>
23-
<key>file-label</key><string>Claude Code Easy Suite</string>
23+
<key>file-label</key><string>AICoder</string>
2424
<key>file-type</key><integer>41</integer>
2525
</dict>
2626
<key>tile-type</key><string>file-tile</string>

build/scripts_x64/postinstall

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
2-
APP_PATH="/Applications/Claude Code Easy Suite.app"
3-
APP_URL="file:///Applications/Claude%20Code%20Easy%20Suite.app/"
2+
APP_PATH="/Applications/AICoder.app"
3+
APP_URL="file:///Applications/AICoder.app/"
44
CURRENT_USER=$(stat -f '%Su' /dev/console)
55
RANDOM_GUID=$(od -An -N4 -t u4 /dev/urandom | tr -d ' ')
66

@@ -9,8 +9,8 @@ RANDOM_GUID=$(od -An -N4 -t u4 /dev/urandom | tr -d ' ')
99

1010
if [ -d "$APP_PATH" ]; then
1111
# Check if already in dock (check by app name)
12-
if ! sudo -u "$CURRENT_USER" defaults read com.apple.dock persistent-apps | grep -q "Claude%20Code%20Easy%20Suite.app"; then
13-
logger "CCEASY: Adding $APP_URL to Dock for user $CURRENT_USER with GUID $RANDOM_GUID"
12+
if ! sudo -u "$CURRENT_USER" defaults read com.apple.dock persistent-apps | grep -q "AICoder.app"; then
13+
logger "AICoder: Adding $APP_URL to Dock for user $CURRENT_USER with GUID $RANDOM_GUID"
1414

1515
# Use a more complete XML structure matching system style
1616
DOCK_ITEM="<dict>
@@ -20,7 +20,7 @@ if [ -d "$APP_PATH" ]; then
2020
<key>_CFURLString</key><string>$APP_URL</string>
2121
<key>_CFURLStringType</key><integer>15</integer>
2222
</dict>
23-
<key>file-label</key><string>Claude Code Easy Suite</string>
23+
<key>file-label</key><string>AICoder</string>
2424
<key>file-type</key><integer>41</integer>
2525
</dict>
2626
<key>tile-type</key><string>file-tile</string>

build_release.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -e
33

4-
APP_NAME="Claude Code Easy Suite"
4+
APP_NAME="AICoder"
55
# Read version from build_number if exists, else default
66
if [ -f "build_number" ]; then
77
BUILD_NUM=$(cat build_number)
@@ -10,7 +10,7 @@ else
1010
VERSION="1.3.2.0"
1111
fi
1212

13-
IDENTIFIER="com.wails.ClaudeCodeEasySuite"
13+
IDENTIFIER="com.wails.AICoder"
1414
OUTPUT_DIR="dist"
1515
BIN_DIR="build/bin"
1616

@@ -100,7 +100,7 @@ create_app_bundle() {
100100
<key>CFBundleVersion</key>
101101
<string>${VERSION}</string>
102102
<key>CFBundleGetInfoString</key>
103-
<string>Claude Code Easy Suite</string>
103+
<string>AICoder</string>
104104
<key>CFBundleShortVersionString</key>
105105
<string>${VERSION}</string>
106106
<key>CFBundleIconFile</key>

conductor/tracks.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@ This file tracks all major tracks for the project. Each track has its own detail
1111

1212
## [ ] Track: Increase Interface Height
1313
*Link: [./conductor/tracks/inc_height_20251228/](./conductor/tracks/inc_height_20251228/)*
14+
15+
---
16+
17+
## [~] Track: AICoder - Multi-Model Support Expansion
18+
*Link: [./conductor/tracks/aicoder_20251231/](./conductor/tracks/aicoder_20251231/)*
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"track_id": "aicoder_20251231",
3+
"type": "feature",
4+
"status": "new",
5+
"created_at": "2025-12-31T10:00:00Z",
6+
"updated_at": "2025-12-31T10:00:00Z",
7+
"description": "Rename app to AICoder and add support for OpenAI Codex, Google Gemini CLI, and Claude Code with startup installation check."
8+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Plan: AICoder - Multi-Model Support Expansion
2+
3+
Expansion of Claude Code Easy Suite into "AICoder", a multi-model dashboard supporting OpenAI Codex, Google Gemini CLI, and Anthropic's Claude Code with automated environment setup.
4+
5+
## Phase 1: Rebranding & Configuration Schema Migration
6+
Goal: Rename the application and prepare the configuration system for multiple tools.
7+
8+
- [~] Task: Update project metadata (`wails.json`, `main.go`, `app.go`) to "AICoder".
9+
- [ ] Task: Refactor `AppConfig` in `app.go` to support independent settings for Codex, Gemini, and Claude Code.
10+
- [ ] Task: Implement migration logic to safely move existing Claude settings into the new multi-tool schema.
11+
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Rebranding & Config' (Protocol in workflow.md)
12+
13+
## Phase 2: Tool Management Backend (Go)
14+
Goal: Implement the logic for detecting, verifying, and installing the required CLI tools.
15+
16+
- [ ] Task: Implement `ToolManager` in Go to handle PATH discovery and version checks for all three tools.
17+
- [ ] Task: Implement auto-installation routines for missing tools (e.g., `npm install -g @anthropic-ai/claude-code`).
18+
- [ ] Task: Expose tool status and installation triggers to the frontend via `App` struct bindings.
19+
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Tool Management Backend' (Protocol in workflow.md)
20+
21+
## Phase 3: Unified Sidebar & Multi-Tab UI (Frontend)
22+
Goal: Revamp the UI to use a vertical sidebar and provide configuration tabs for each model.
23+
24+
- [ ] Task: Implement the Left Sidebar navigation using React/CSS.
25+
- [ ] Task: Create a reusable `ToolConfiguration` component for Settings (API Key, URL) and Model Switching.
26+
- [ ] Task: Implement persistence logic to ensure changes in each tab are saved independently.
27+
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Unified Sidebar UI' (Protocol in workflow.md)
28+
29+
## Phase 4: Startup Installation Flow
30+
Goal: Implement the mandatory installation check window during application launch.
31+
32+
- [ ] Task: Create the "Installation Progress" UI component.
33+
- [ ] Task: Modify application startup sequence to display the progress window before the main dashboard.
34+
- [ ] Task: Implement error handling and "Retry" logic for failed installations.
35+
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Startup Installation Flow' (Protocol in workflow.md)
36+
37+
## Phase 5: Launch Integration & Final Polish
38+
Goal: Connect the "Launch" buttons and perform final refinements.
39+
40+
- [ ] Task: Update the CLI launch logic in `app.go` to inject the correct environment variables based on the active tab's configuration.
41+
- [ ] Task: Update all user documentation (`README.md`, `UserManual_CN.md`, etc.) to reflect the new "AICoder" identity and features.
42+
- [ ] Task: Final cross-platform build verification (macOS/Windows).
43+
- [ ] Task: Conductor - User Manual Verification 'Phase 5: Final Polish' (Protocol in workflow.md)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Specification: AICoder - Multi-Model Support Expansion
2+
3+
## Overview
4+
Rebrand the application to "AICoder" and expand support to include three AI coding assistants: OpenAI Codex, Google Gemini CLI, and Anthropic's Claude Code. The application will ensure these tools are correctly installed at startup and provide a unified interface to configure and launch each one.
5+
6+
## Functional Requirements
7+
8+
### 1. Full Rebranding to "AICoder"
9+
- Update application display name in UI (Window Title, About dialog).
10+
- Rename build artifacts and executable to `AICoder`.
11+
- Update internal project identifiers, bundle IDs (macOS), and application metadata.
12+
13+
### 2. Startup Installation & Verification
14+
- **Installation Window:** Display a progress window during startup.
15+
- **Verification Steps:**
16+
- Check if `codex`, `gemini` (CLI), and `claude-code` are installed (PATH check).
17+
- Verify versions meet minimum requirements.
18+
- **Auto-Installation:** If a tool is missing or outdated, attempt to install it automatically (e.g., via `npm` or `go` as appropriate).
19+
- **Blocking Progress:** Startup only continues if tools are verified or successfully installed/updated.
20+
21+
### 3. Unified Tabbed Interface (Vertical Sidebar)
22+
- Implement a sidebar on the left for navigation between three tabs: **Codex**, **Gemini**, and **Claude Code**.
23+
- Each tab must provide:
24+
- **Model Settings:** Configuration for API Keys and Base URLs.
25+
- **Model Switching:** Ability to switch between different service providers/endpoints for the same tool.
26+
- **Launch Action:** A button to trigger the execution of the respective CLI tool with the current configuration.
27+
28+
## Non-Functional Requirements
29+
- **Consistency:** Maintain a uniform layout and styling across all three tabs.
30+
- **Robustness:** Gracefully handle installation failures with clear user guidance.
31+
- **Platform Support:** Ensure installation logic works across macOS, Windows, and Linux.
32+
33+
## Acceptance Criteria
34+
- [ ] Application title is "AICoder" and executable is named accordingly.
35+
- [ ] Startup window correctly detects missing tools and attempts installation.
36+
- [ ] Sidebar navigation allows switching between tool configurations.
37+
- [ ] Changes to API Key/URL in one tab are persisted and used when launching that specific tool.
38+
- [ ] All three tools can be launched from their respective tabs.
39+
40+
## Out of Scope
41+
- Integration with other AI models not mentioned (Codex, Gemini, Claude).
42+
- Direct terminal emulation within the GUI (launches external terminal as per existing pattern).

frontend/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta charset="UTF-8"/>
55
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
6-
<title>claude-config-manager</title>
6+
<title>AICoder</title>
77
</head>
88
<body>
99
<div id="root"></div>

0 commit comments

Comments
 (0)