OpenCode plugin for using multiple GitHub Copilot accounts simultaneously
npm install opencode-copilot-multi


OpenCode plugin for seamless switching between multiple GitHub Copilot accounts in a single session.
- ๐ Multi-account support - Use 2+ GitHub Copilot accounts simultaneously
- ๐ฏ Per-model labeling - Models appear as username:model-name
- ๐ Secure - OAuth tokens stored locally with 0600 permissions
- โก Non-blocking - Lazy loads, zero impact on OpenCode startup
- ๐ Auto token refresh - 5-minute buffer before expiry
- ๐ฑ Cross-platform - macOS, Linux, Windows
Claude: Opus/Sonnet/Haiku (all versions)
OpenAI: GPT-5, GPT-4o, o1, o3-mini
Google: Gemini 2.5 Pro, Gemini 3
15+ models total. New models auto-detected when you authenticate.
bash
npm install -g opencode-copilot-multi
Restart OpenCode
`$3
`bash
npx opencode-copilot-multi@latest add
`$3
Edit ~/.config/opencode/opencode.json:
`json
{
"plugin": ["opencode-copilot-multi"]
}
`๐ฏ Quick Start
1. Add account
`bash
opencode-copilot-multi add
`
- Launches OpenCode auth
- Select "GitHub Copilot"
- Complete OAuth2. Restart OpenCode - models now appear
3. Select model - e.g.,
john:claude-sonnet-44. Add more accounts - Run
add again๐ ๏ธ CLI Commands
`bash
opencode-copilot-multi list # Show all accounts
opencode-copilot-multi add # Add GitHub Copilot account
opencode-copilot-multi remove # Remove account
opencode-copilot-multi clear [--force] # Remove all accounts
opencode-copilot-multi install # Register plugin (auto-run)
opencode-copilot-multi --help # Show help
`โ๏ธ System Requirements
- Node.js: โฅ 18.0.0
- OpenCode: Latest version
- GitHub Copilot: Active subscription
๐ Troubleshooting
$3
1. Run: opencode-copilot-multi list
2. If empty, run: opencode-copilot-multi add
3. Restart OpenCode
4. Check logs: tail ~/.local/share/opencode/log/copilot-multi.log$3
Re-authenticate:
`bash
opencode-copilot-multi remove
opencode-copilot-multi add
`$3
`bash
opencode-copilot-multi install
Restart OpenCode
`๐ Documentation
- ARCHITECTURE.md - System design, diagrams, patterns
- CONTRIBUTING.md - How to contribute
- SECURITY.md - Token security, vulnerability process
- CHANGELOG.md - Version history
๐๏ธ How It Works
When you select
john:claude-sonnet-4:1. Parser extracts username + model
2. Pool lookup finds account by username
3. Token check refreshes if expiring
4. API call routes to GitHub Copilot with account's token
5. Response returned to OpenCode
See ARCHITECTURE.md for detailed flow diagrams.
๐ Security
- Storage:
~/.local/share/opencode/copilot-multi-accounts.json (0600)
- Tokens: OAuth only, no passwords
- Refresh: Auto 5 minutes before expiry
- No telemetry: Offline by designSee SECURITY.md for complete details.
๐งช Development
`bash
npm install
npm run build # Compile TypeScript
npm run watch # Watch & rebuild
npm link # Link globally for testing
`Project structure:
`
src/
โโโ index.ts # Plugin entry
โโโ provider.ts # Custom fetch handler
โโโ storage/ # Account pool & auth
โโโ discovery/ # Account detection
โโโ config/ # Config management
โโโ commands/ # CLI commands
โโโ utils/ # Helpers
``See CONTRIBUTING.md for development workflow.
MIT ยฉ 2025 Valerio Fantozzi
Contributions welcome! See CONTRIBUTING.md for:
- Code style guidelines
- Development setup
- PR process
- Areas for contribution
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: See SECURITY.md
---
Made with โค๏ธ by Valerio Fantozzi