The install script now detects file collisions before installing and gives you 4 clear options.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Select Components to Install โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Scan for Existing Files โ
โ (Check what would be overwritten) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโดโโโโโโโ
โ Collisions? โ
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโโดโโโโโโโโโ
โ โ
NO YES
โ โ
โผ โผ
Install โโโโโโโโโโโโโโโโโโโโ
Everything โ Show Report โ
โ Ask User Choice โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ โ โ โ
โผ โผ โผ โผ
โโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ
โ Skip โ โOverwrite โ โ Backup & โ โ Cancel โ
โExistingโ โ All โ โOverwrite โ โ โ
โโโโโฌโโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โโโโโฌโโโโโ
โ โ โ โ
โผ โผ โผ โผ
Install Install All Backup Files Exit
New Only (Replace) Then Install
What happens:
โ New files โ Installed
โ Existing files โ Untouched
โ Your changes โ Preserved
Use when:
โข You've customized files
โข You only want new components
โข You're doing incremental updates
Example:
10 selected, 5 exist
โ 5 installed, 5 skipped
What happens:
โ New files โ Installed
โ Existing files โ REPLACED
โ Your changes โ LOST
Use when:
โข You want latest versions
โข You haven't customized anything
โข You want to reset to defaults
Requires: Type 'yes' to confirm
Example:
10 selected, 5 exist
โ 10 installed (5 new, 5 replaced)
What happens:
โ Existing files โ Backed up
โ New files โ Installed
โ Existing files โ Replaced
โ Backup โ Available for restore
Use when:
โข You want new versions
โข You want safety net
โข You're not sure about changes
Backup location:
.opencode.backup.YYYYMMDD-HHMMSS/
Example:
10 selected, 5 exist
โ 5 backed up
โ 10 installed (5 new, 5 replaced)
What happens:
โข Nothing changes
โข Exit cleanly
Use when:
โข You need to review first
โข You want manual backup
โข You're not ready
โ Found 8 file collision(s):
Agents (2):
.opencode/agent/task-manager.md
.opencode/agent/opencoder.md
Subagents (3):
.opencode/agent/subagents/reviewer.md
.opencode/agent/subagents/tester.md
.opencode/agent/subagents/coder-agent.md
Commands (2):
.opencode/command/test.md
.opencode/command/commit.md
Context (1):
.opencode/context/core/essential-patterns.md
Clear, organized, easy to review!
| Your Situation | Best Option | Why |
|---|---|---|
| First install | Any (no collisions) | Nothing exists yet |
| Adding new components | Option 1: Skip | Keeps your customizations |
| Want latest versions | Option 3: Backup | Safe update with rollback |
| Reset to defaults | Option 2: Overwrite | Clean slate (careful!) |
| Not sure | Option 4: Cancel | Review and decide later |
# List backups
ls -la .opencode.backup.*/
# Restore one file
cp .opencode.backup.20251118-143022/.opencode/agent/my-agent.md .opencode/agent/
# Restore everything
rm -rf .opencode
mv .opencode.backup.20251118-143022/.opencode .opencode
# Delete the file you want to update
rm .opencode/agent/task-manager.md
# Run installer with "Skip existing"
# Only the deleted file gets reinstalled
# Compare with backup
diff .opencode/agent/my-agent.md .opencode.backup.*/agent/my-agent.md
# Or use git
git diff .opencode/
| Before | After |
|---|---|
| โ Always overwrites | โ Asks first |
| โ All-or-nothing | โ Flexible strategies |
| โ No visibility | โ Clear collision report |
| โ No backup option | โ Optional backup |
| โ Risky updates | โ Safe incremental updates |
The install script is now smart:
You're in control! ๐