11 KiB
Windows Cross-Device Sync Guide
Complete guide for syncing Claude Code agents and skills on Windows machines.
📋 Prerequisites
Required Software
-
Git for Windows
- Download: https://git-scm.com/download/win
- Install with "Git Bash" option enabled
- Use default settings during installation
-
Claude Code (if using skills)
- Should already be installed
- Skills directory:
%USERPROFILE%\.claude\skills - Agents directory:
%USERPROFILE%\.claude\agents
-
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):
# 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
# 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)
# 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)
# 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)
-
Download latest release from GitHub:
- Go to: https://github.com/runkids/skillshare/releases
- Download:
skillshare_<version>_windows_amd64.zip
-
Extract and install:
# In PowerShell (as Administrator) Expand-Archive skillshare_<version>_windows_amd64.zip -DestinationPath C:\Program Files\skillshare # Add to PATH $env:Path += ";C:\Program Files\skillshare" [Environment]::SetEnvironmentVariable("Path", $env:Path, [EnvironmentVariableTarget]::Machine) -
Verify installation:
skillshare version
Method 2: Using Scoop (if you have Scoop installed)
# Install via Scoop
scoop bucket add extras
scoop install skillshare
Method 3: Using Chocolatey (if available)
# Check if available
choco search skillshare
# If available
choco install skillshare
Initialize Skillshare on Windows
In Git 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:
# 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:
# 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:
# 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\:
@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\:
@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:
%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\:
# 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:
# 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)
# Run PowerShell as Administrator
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Create PowerShell Aliases
Add to your PowerShell profile:
# 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:
# 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:
https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-agents.git
Option 3: SSH Keys (Most Secure)
# 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
-
Open Task Scheduler
-
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"
-
Repeat for skills:
- Name: Sync Claude Skills
- Program:
skillshare.exe - Arguments:
pull --remote
🐛 Troubleshooting Windows
Skillshare Not Found
# Check if in PATH
$env:Path -split ';' | Select-String skillshare
# If not found, add manually
$env:Path += ";C:\Program Files\skillshare"
Line Ending Issues
# Configure git to handle line endings
git config --global core.autocrlf true
Permission Denied
# Run PowerShell as Administrator
Start-Process powershell -Verb RunAs
Git Command Not Found in PowerShell
# Add Git to PATH
$env:Path += ";C:\Program Files\Git\bin"
[Environment]::SetEnvironmentVariable("Path", $env:Path, [EnvironmentVariableTarget]::User)
Skillshare Init Hangs
# 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
- Use Git Bash for Linux-like commands
- Use PowerShell for Windows-native scripting
- Windows Terminal for better experience
- VSCode as git GUI (optional)
- Store scripts in
%USERPROFILE%\scripts\ - 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