Configuration Reference
Complete reference for .opencode.config.json.
File Location
Project-specific: .opencode.config.json in project root
Global: ~/.config/sincronizado/config.json (fallback)
Schema
{
"vps": {
"default": "string",
"hosts": {
"host-name": {
"hostname": "string",
"user": "string",
"port": 2222,
"provider": "string"
}
}
},
"sync": {
"ignore": ["string"]
},
"session": {
"prefix": "string",
"default_editor": "string"
},
"plugins": {
"enabled": ["string"]
}
}
Options Reference
vps.default
- Type: string
- Required: Yes
- Description: Name of the default VPS host to use
- Example:
"oracle-ashburn"
vps.hosts
- Type: object
- Required: Yes
- Description: Map of VPS host configurations
host.hostname
- Type: string
- Required: Yes
- Description: Hostname or IP address (Tailscale name works)
- Example:
"ashburn"or"192.168.1.100"
host.user
- Type: string
- Required: Yes
- Default:
"ubuntu" - Description: SSH username for VPS
host.port
- Type: integer
- Required: No
- Default:
2222 - Description: Eternal Terminal port
host.provider
- Type: string
- Required: No
- Description: VPS provider name (for documentation)
- Example:
"oracle","aws","digitalocean"
sync.ignore
- Type: array of strings
- Required: No
- Default:
["node_modules", ".venv", ".git", "dist", "build"] - Description: File/directory patterns to exclude from sync
session.prefix
- Type: string
- Required: No
- Default:
"sync-" - Description: Prefix for session names
session.default_editor
- Type: string
- Required: No
- Default:
"code" - Description: Default editor command
plugins.enabled
- Type: array of strings
- Required: No
- Default:
["opencode-direnv", "agentmap", "opencode-sync", "ai-sessions-mcp", "ccmanager"] - Description: List of enabled OpenCode plugins
Example Configurations
Single VPS (Oracle)
{
"vps": {
"default": "oracle-ashburn",
"hosts": {
"oracle-ashburn": {
"hostname": "ashburn",
"user": "ubuntu",
"port": 2222,
"provider": "oracle"
}
}
}
}
Multiple VPS (Production + Staging)
{
"vps": {
"default": "prod",
"hosts": {
"prod": {
"hostname": "prod-vps",
"user": "ubuntu",
"port": 2222
},
"staging": {
"hostname": "staging-vps",
"user": "ubuntu",
"port": 2222
}
}
}
}
Custom Sync Ignore
{
"sync": {
"ignore": [
"node_modules",
".venv",
".git",
"dist",
"build",
"*.tmp",
"data/large-files/"
]
}
}
Full Configuration
{
"vps": {
"default": "my-vps",
"hosts": {
"my-vps": {
"hostname": "my-vps.tailnet.ts.net",
"user": "ubuntu",
"port": 2222,
"provider": "hetzner"
}
}
},
"sync": {
"ignore": [
"node_modules",
".venv",
".git",
"dist",
"build",
"__pycache__",
".pytest_cache"
]
},
"session": {
"prefix": "sync-",
"default_editor": "code"
},
"plugins": {
"enabled": [
"opencode-direnv",
"agentmap",
"opencode-sync",
"ai-sessions-mcp",
"ccmanager"
]
}
}
Validation
Use the config validation script:
Windows:
.\scripts\config-wizard.ps1 -Validate
This checks:
- Required fields present
- Valid JSON syntax
- Host configurations complete
Troubleshooting
Config not loading
- Check file is valid JSON:
cat .opencode.config.json | python -m json.tool - Verify file is in project root
- Check file permissions (readable)
VPS not found
- Verify
vps.defaultmatches a key invps.hosts - Check
hostnameis correct (ping it) - Ensure
userhas SSH access