diff --git a/WINDOWS-SETUP.md b/WINDOWS-SETUP.md new file mode 100644 index 0000000..64bb7da --- /dev/null +++ b/WINDOWS-SETUP.md @@ -0,0 +1,519 @@ +# Windows Cross-Device Sync Guide + +Complete guide for syncing Claude Code agents and skills on Windows machines. + +--- + +## šŸ“‹ Prerequisites + +### Required Software + +1. **Git for Windows** + - Download: https://git-scm.com/download/win + - Install with "Git Bash" option enabled + - Use default settings during installation + +2. **Claude Code** (if using skills) + - Should already be installed + - Skills directory: `%USERPROFILE%\.claude\skills` + - Agents directory: `%USERPROFILE%\.claude\agents` + +3. **PowerShell or Git Bash** + - PowerShell: Built into Windows + - Git Bash: Comes with Git for Windows (recommended for commands below) + +--- + +## šŸ¤– Agent Sync on Windows + +### Initial Setup + +Open **Git Bash** (or PowerShell with git installed): + +```bash +# Configure git (one-time) +git config --global user.name "admin" +git config --global user.email "admin@server-ai.local" +git config --global init.defaultBranch main + +# Clone agents repository +git clone https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-agents.git %USERPROFILE%\.claude\agents + +# Or in Git Bash (Unix-style paths) +git clone https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-agents.git ~/.claude/agents +``` + +### If You Have Existing Agents + +```bash +# Backup first +cp -r ~/.claude/agents ~/.claude/agents.backup + +# Initialize git +cd ~/.claude/agents +git init +git checkout -b main + +# Commit existing agents +git add . +git commit -m "Add existing agents from Windows PC" + +# Connect to Gitea +git remote add origin https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-agents.git + +# Merge with remote +git pull origin main --allow-unrelated-histories + +# Push your agents +git push origin main +``` + +### Daily Sync (Git Bash) + +```bash +# Pull updates +cd ~/.claude/agents +git pull origin main + +# Push changes +cd ~/.claude/agents +git add . +git commit -m "Update agents from Windows" +git push origin main +``` + +### Daily Sync (PowerShell) + +```powershell +# Pull updates +cd $env:USERPROFILE\.claude\agents +git pull origin main + +# Push changes +cd $env:USERPROFILE\.claude\agents +git add . +git commit -m "Update agents from Windows" +git push origin main +``` + +--- + +## šŸŽÆ Skills Sync on Windows + +### Skillshare Installation on Windows + +**Method 1: Manual Installation (Recommended)** + +1. Download latest release from GitHub: + - Go to: https://github.com/runkids/skillshare/releases + - Download: `skillshare__windows_amd64.zip` + +2. Extract and install: + ```powershell + # In PowerShell (as Administrator) + Expand-Archive skillshare__windows_amd64.zip -DestinationPath C:\Program Files\skillshare + + # Add to PATH + $env:Path += ";C:\Program Files\skillshare" + [Environment]::SetEnvironmentVariable("Path", $env:Path, [EnvironmentVariableTarget]::Machine) + ``` + +3. Verify installation: + ```powershell + skillshare version + ``` + +**Method 2: Using Scoop (if you have Scoop installed)** + +```powershell +# Install via Scoop +scoop bucket add extras +scoop install skillshare +``` + +**Method 3: Using Chocolatey (if available)** + +```powershell +# Check if available +choco search skillshare + +# If available +choco install skillshare +``` + +### Initialize Skillshare on Windows + +**In Git Bash:** + +```bash +# Initialize without prompts (AI-friendly) +skillshare init --no-copy --all-targets --git + +# Add git remote +cd ~/.config/skillshare/skills +git remote add origin https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-skills.git + +# Pull skills and sync to Claude Code +skillshare pull --remote +``` + +**In PowerShell:** + +```powershell +# Initialize +skillshare init --no-copy --all-targets --git + +# Add git remote +cd $env:USERPROFILE\.config\skillshare\skills +git remote add origin https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-skills.git + +# Pull skills +skillshare pull --remote +``` + +### Daily Skills Sync (Windows) + +**Git Bash:** +```bash +# Pull from Gitea (auto-syncs to Claude Code) +skillshare pull --remote + +# Push changes +skillshare new my-skill +skillshare sync +skillshare push -m "Add my-skill from Windows" +``` + +**PowerShell:** +```powershell +# Same commands work in PowerShell +skillshare pull --remote +skillshare push -m "Update from Windows" +``` + +--- + +## šŸ”§ Windows-Specific Paths + +### Claude Code Directories + +| Linux/Mac | Windows (Git Bash) | Windows (PowerShell) | +|-----------|-------------------|---------------------| +| `~/.claude/agents` | `~/.claude/agents` | `$env:USERPROFILE\.claude\agents` | +| `~/.claude/skills` | `~/.claude/skills` | `$env:USERPROFILE\.claude\skills` | +| `~/.config/skillshare/skills` | `~/.config/skillshare/skills` | `$env:USERPROFILE\.config\skillshare\skills` | + +### Typical Windows Paths + +- **Agents**: `C:\Users\YourName\.claude\agents` +- **Skills (Claude)**: `C:\Users\YourName\.claude\skills` +- **Skills (Source)**: `C:\Users\YourName\.config\skillshare\skills` + +--- + +## šŸ–„ļø Windows Batch Scripts + +### sync-agents.bat + +Create `sync-agents.bat` in `%USERPROFILE%\scripts\`: + +```batch +@echo off +echo Syncing Claude agents... +cd %USERPROFILE%\.claude\agents +git pull origin main +if %ERRORLEVEL% EQU 0 ( + echo. + echo āœ“ Agents synced successfully! + echo. + echo Current agents: + dir /b *.md +) else ( + echo. + echo āœ— Sync failed! +) +pause +``` + +### sync-skills.bat + +Create `sync-skills.bat` in `%USERPROFILE%\scripts\`: + +```batch +@echo off +echo Syncing Claude skills... +skillshare pull --remote +if %ERRORLEVEL% EQU 0 ( + echo. + echo āœ“ Skills synced successfully! + skillshare status +) else ( + echo. + echo āœ— Sync failed! +) +pause +``` + +### Usage + +Double-click the `.bat` files or run from Command Prompt: +```cmd +%USERPROFILE%\scripts\sync-agents.bat +%USERPROFILE%\scripts\sync-skills.bat +``` + +--- + +## šŸš€ PowerShell Scripts (Better Alternative) + +### sync-agents.ps1 + +Create `sync-agents.ps1` in `%USERPROFILE%\Documents\WindowsPowerShell\Scripts\`: + +```powershell +# Sync Claude agents from Gitea +$agentsPath = "$env:USERPROFILE\.claude\agents" + +Write-Host "šŸ”„ Syncing Claude agents..." -ForegroundColor Cyan +Set-Location $agentsPath + +try { + git pull origin main + Write-Host "`nāœ… Agents synced successfully!`n" -ForegroundColor Green + + Write-Host "šŸ“Š Current agents:" -ForegroundColor Cyan + Get-ChildItem -Filter *.md | ForEach-Object { + Write-Host " - $($_.BaseName)" -ForegroundColor White + } +} catch { + Write-Host "`nāŒ Sync failed: $_`n" -ForegroundColor Red +} + +Read-Host "`nPress Enter to continue" +``` + +### sync-skills.ps1 + +Create `sync-skills.ps1`: + +```powershell +# Sync Claude skills via Skillshare +Write-Host "šŸ”„ Syncing Claude skills..." -ForegroundColor Cyan + +try { + skillshare pull --remote + Write-Host "`nāœ… Skills synced successfully!`n" -ForegroundColor Green + skillshare status +} catch { + Write-Host "`nāŒ Sync failed: $_`n" -ForegroundColor Red +} + +Read-Host "`nPress Enter to continue" +``` + +### Enable PowerShell Scripts (One-Time) + +```powershell +# Run PowerShell as Administrator +Set-ExecutionPolicy RemoteSigned -Scope CurrentUser +``` + +### Create PowerShell Aliases + +Add to your PowerShell profile: + +```powershell +# Edit profile +notepad $PROFILE + +# Add these lines: +function Sync-Agents { + Set-Location "$env:USERPROFILE\.claude\agents" + git pull origin main +} + +function Sync-Skills { + skillshare pull --remote +} + +function Push-Agents { + param([string]$message = "Update agents from Windows") + Set-Location "$env:USERPROFILE\.claude\agents" + git add . + git commit -m $message + git push origin main +} + +function Push-Skills { + param([string]$message = "Update skills from Windows") + skillshare sync + skillshare push -m $message +} + +# Usage: +# Sync-Agents +# Sync-Skills +# Push-Agents -message "Add new agent" +# Push-Skills -message "Update helper skill" +``` + +--- + +## šŸ” Credential Management on Windows + +### Option 1: Git Credential Manager (Recommended) + +Git for Windows includes Credential Manager: + +```bash +# Configure credential helper (one-time) +git config --global credential.helper manager-core + +# First push/pull will prompt for credentials +# Credentials are then stored securely in Windows Credential Manager +``` + +### Option 2: Store Credentials in URL (Less Secure) + +Already configured in the remote URLs: +```bash +https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-agents.git +``` + +### Option 3: SSH Keys (Most Secure) + +```bash +# Generate SSH key +ssh-keygen -t ed25519 -C "admin@windows-pc" + +# Copy public key +cat ~/.ssh/id_ed25519.pub + +# Add to Gitea: +# 1. Login to Gitea +# 2. Settings → SSH Keys → Add Key +# 3. Paste public key + +# Update remote to use SSH +cd ~/.claude/agents +git remote set-url origin git@omv800:admin/claude-agents.git + +cd ~/.config/skillshare/skills +git remote set-url origin git@omv800:admin/claude-skills.git +``` + +--- + +## šŸ“± Windows Task Scheduler (Auto-Sync) + +### Create Scheduled Task for Auto-Pull + +1. Open **Task Scheduler** +2. Create Basic Task: + - **Name**: Sync Claude Agents + - **Trigger**: Daily at startup or login + - **Action**: Start a program + - **Program**: `C:\Program Files\Git\bin\bash.exe` + - **Arguments**: `-c "cd ~/.claude/agents && git pull origin main"` + +3. Repeat for skills: + - **Name**: Sync Claude Skills + - **Program**: `skillshare.exe` + - **Arguments**: `pull --remote` + +--- + +## šŸ› Troubleshooting Windows + +### Skillshare Not Found + +```powershell +# Check if in PATH +$env:Path -split ';' | Select-String skillshare + +# If not found, add manually +$env:Path += ";C:\Program Files\skillshare" +``` + +### Line Ending Issues + +```bash +# Configure git to handle line endings +git config --global core.autocrlf true +``` + +### Permission Denied + +```powershell +# Run PowerShell as Administrator +Start-Process powershell -Verb RunAs +``` + +### Git Command Not Found in PowerShell + +```powershell +# Add Git to PATH +$env:Path += ";C:\Program Files\Git\bin" +[Environment]::SetEnvironmentVariable("Path", $env:Path, [EnvironmentVariableTarget]::User) +``` + +### Skillshare Init Hangs + +```bash +# Use non-interactive flags +skillshare init --no-copy --all-targets --git +``` + +--- + +## šŸŽÆ Quick Setup Checklist + +### For Agents: +- [ ] Install Git for Windows +- [ ] Configure git username/email +- [ ] Clone or initialize agents repo +- [ ] Test pull/push +- [ ] Create sync script (optional) + +### For Skills: +- [ ] Install Git for Windows +- [ ] Download and install Skillshare binary +- [ ] Initialize Skillshare with `--all-targets --git` +- [ ] Add git remote +- [ ] Test `skillshare pull --remote` +- [ ] Create sync script (optional) + +--- + +## šŸ“š Windows Resources + +- **Git for Windows**: https://git-scm.com/download/win +- **Skillshare Releases**: https://github.com/runkids/skillshare/releases +- **PowerShell Docs**: https://docs.microsoft.com/powershell +- **Windows Terminal**: https://aka.ms/terminal (better than CMD) + +--- + +## šŸ’” Best Practices for Windows + +1. **Use Git Bash** for Linux-like commands +2. **Use PowerShell** for Windows-native scripting +3. **Windows Terminal** for better experience +4. **VSCode** as git GUI (optional) +5. **Store scripts** in `%USERPROFILE%\scripts\` +6. **Add to PATH** for easy access + +--- + +## šŸ”— Related Documentation + +- **Linux/Mac Guide**: `/home/jon/AGENT-SYNC-GUIDE.md` +- **Skills Guide**: `/home/jon/SKILLS-SYNC-GUIDE.md` +- **Server Docs**: `/home/jon/SERVER-DOCUMENTATION.md` + +--- + +**Last Updated**: 2026-01-29 +**Version**: 1.0 +**Platform**: Windows 10/11 +**Tested With**: Git for Windows 2.43+, Skillshare 0.6.20