# Platform Compatibility Guide
The OpenCode Agents installer is designed to work across multiple platforms and bash versions.
## Supported Platforms
### ✅ macOS
- **Bash Version:** 3.2+ (default macOS bash is 3.2.57)
- **Installation Method:** curl + bash
- **Status:** Fully Supported
```bash
# Standard installation
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash
# Profile-based installation
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash -s core
```
**Dependencies:**
```bash
# Install via Homebrew
brew install curl jq
```
---
### ✅ Linux
- **Bash Version:** 3.2+ (most distros ship with 4.0+)
- **Installation Method:** curl + bash
- **Status:** Fully Supported
```bash
# Standard installation
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash
# Profile-based installation
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash -s developer
```
**Dependencies:**
Ubuntu / Debian
```bash
sudo apt-get update
sudo apt-get install curl jq
```
Fedora / RHEL / CentOS
```bash
sudo dnf install curl jq
```
Arch Linux
```bash
sudo pacman -S curl jq
```
Alpine Linux
```bash
apk add curl jq bash
```
---
### ✅ Windows
#### Option 1: Git Bash (Recommended)
- **Bash Version:** 4.4+ (included with Git for Windows)
- **Installation Method:** curl + bash
- **Status:** Fully Supported
**Install Git for Windows:**
1. Download from [git-scm.com](https://git-scm.com/download/win)
2. Install with default options
3. Open "Git Bash" from Start Menu
**Run Installer:**
```bash
# Standard installation
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash
# Profile-based installation
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash -s full
```
#### Option 2: WSL (Windows Subsystem for Linux)
- **Bash Version:** 4.0+ (depends on WSL distro)
- **Installation Method:** curl + bash
- **Status:** Fully Supported
**Setup WSL:**
```powershell
# In PowerShell (Admin)
wsl --install
```
**Run Installer:**
```bash
# In WSL terminal
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh | bash
```
**Dependencies:**
```bash
# Ubuntu/Debian on WSL
sudo apt-get update
sudo apt-get install curl jq
```
#### Option 3: PowerShell (Download + Run)
- **Status:** Supported (requires Git Bash installed)
```powershell
# Download the script
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh" -OutFile "install.sh"
# Run with Git Bash
& "C:\Program Files\Git\bin\bash.exe" install.sh core
# Or with WSL
wsl bash install.sh core
```
---
## Requirements
### Minimum Requirements
- **Bash:** 3.2 or higher
- **curl:** Any recent version
- **jq:** 1.5 or higher
- **Disk Space:** ~5MB for full installation
- **Internet:** Required for downloading components
### Tested Configurations
| Platform | Bash Version | Status | Notes |
|----------|--------------|--------|-------|
| macOS 13+ | 3.2.57 | ✅ Pass | Default system bash |
| macOS 13+ | 5.2 (Homebrew) | ✅ Pass | Upgraded bash |
| Ubuntu 22.04 | 5.1.16 | ✅ Pass | Default |
| Ubuntu 20.04 | 5.0.17 | ✅ Pass | Default |
| Debian 11 | 5.1.4 | ✅ Pass | Default |
| Fedora 38 | 5.2.15 | ✅ Pass | Default |
| Arch Linux | 5.2.21 | ✅ Pass | Default |
| Alpine 3.18 | 5.2.15 | ✅ Pass | Requires bash package |
| Git Bash (Windows) | 4.4.23 | ✅ Pass | Git for Windows |
| WSL2 Ubuntu | 5.1.16 | ✅ Pass | Default |
---
## Compatibility Features
### Bash 3.2 Compatibility
The installer is specifically designed to work with bash 3.2 (macOS default):
✅ **No `mapfile` usage** - Uses while-read loops instead
✅ **No process substitution issues** - Uses temp files for compatibility
✅ **POSIX-compliant** - Avoids bash 4+ specific features
✅ **Array operations** - Uses bash 3.2 compatible syntax
### Cross-Platform Features
✅ **Platform detection** - Automatically detects macOS/Linux/Windows
✅ **Color support detection** - Disables colors on unsupported terminals
✅ **Path handling** - Works with Unix and Windows paths
✅ **Line endings** - Handles both LF and CRLF
---
## Testing Your System
Run the compatibility test to verify your system:
```bash
# Download and run the test
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/scripts/tests/test-compatibility.sh | bash
```
Or manually:
```bash
# Clone the repo
git clone https://github.com/darrenhinde/opencode-agents.git
cd opencode-agents
# Run the test
bash scripts/tests/test-compatibility.sh
```
The test checks:
- ✅ Bash version (3.2+)
- ✅ Required dependencies (curl, jq)
- ✅ Script syntax
- ✅ Argument parsing
- ✅ Array operations
- ✅ File operations
- ✅ Network connectivity
---
## Troubleshooting
### "mapfile: command not found"
**Cause:** Using bash version < 4.0
**Solution:** This should be fixed in the latest version. Update the installer:
```bash
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh > install.sh
bash install.sh core
```
### "curl: command not found"
**Cause:** curl is not installed
**Solution:**
```bash
# macOS
brew install curl
# Ubuntu/Debian
sudo apt-get install curl
# Fedora/RHEL
sudo dnf install curl
# Windows: Install Git for Windows (includes curl)
```
### "jq: command not found"
**Cause:** jq is not installed
**Solution:**
```bash
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# Fedora/RHEL
sudo dnf install jq
# Windows Git Bash
curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
```
### Colors not displaying correctly (Windows)
**Cause:** Terminal doesn't support ANSI colors
**Solution:** Use Windows Terminal, Git Bash, or WSL instead of cmd.exe
### "Permission denied" errors
**Cause:** Insufficient permissions
**Solution:**
```bash
# Don't use sudo with the installer
# It installs to .opencode/ in current directory
# If you need to install globally:
sudo bash install.sh core
```
### Script fails on Windows PowerShell
**Cause:** PowerShell can't run bash scripts directly
**Solution:** Use Git Bash or WSL:
```powershell
# Download first
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/install.sh" -OutFile "install.sh"
# Run with Git Bash
& "C:\Program Files\Git\bin\bash.exe" install.sh
```
---
## Known Limitations
### Windows cmd.exe
❌ **Not Supported** - Use Git Bash or WSL instead
### Bash < 3.2
❌ **Not Supported** - Upgrade bash or use a different system
### No Internet Connection
❌ **Not Supported** - Installer requires internet to download components
**Workaround:** Use manual installation (clone repo and copy files)
---
## Manual Installation (No Internet)
If you can't use the installer:
```bash
# 1. Clone or download the repository
git clone https://github.com/darrenhinde/opencode-agents.git
cd opencode-agents
# 2. Copy to OpenCode directory
mkdir -p ~/.opencode
cp -r .opencode/agent ~/.opencode/
cp -r .opencode/command ~/.opencode/
cp -r .opencode/context ~/.opencode/
cp -r .opencode/tool ~/.opencode/
cp -r .opencode/plugin ~/.opencode/
# 3. Configure environment
cp env.example .env
# Edit .env with your settings
```
---
## Getting Help
If you encounter issues:
1. **Run the compatibility test:**
```bash
curl -fsSL https://raw.githubusercontent.com/darrenhinde/opencode-agents/main/scripts/tests/test-compatibility.sh | bash
```
2. **Check your bash version:**
```bash
bash --version
```
3. **Verify dependencies:**
```bash
curl --version
jq --version
```
4. **Report issues:**
- [GitHub Issues](https://github.com/darrenhinde/opencode-agents/issues)
- Include: Platform, Bash version, Error message
---
## Summary
✅ **macOS** - Works out of the box (bash 3.2+)
✅ **Linux** - Works on all major distributions
✅ **Windows** - Use Git Bash or WSL
✅ **Bash 3.2+** - Fully compatible
✅ **Cross-platform** - Same commands everywhere
The installer is designed to "just work" on any modern system with bash 3.2+.