Thanks for your interest! This project thrives on community contributions — new profiles, improvements to existing ones, documentation, and bug fixes.
- New profiles — if you've created a useful profile, share it!
- Profile improvements — better descriptions, more efficient configs
- Bug fixes — issues in
op.sh,install.sh, or documentation - Translations — profile descriptions in other languages
- Documentation — tutorials, examples, FAQs
- Fork the repository
- Create a branch for your changes
git checkout -b feat/my-new-profile
- Make your changes
- Test locally
# Run the installer in dry-run mode to verify ./install.sh --dry-run # Test profile listing ./bin/op.sh --list
- Commit with a descriptive message
- Push and open a Pull Request
Create profiles/profile.<name>.md following this structure:
# Perfil: <name> — <Short description>
## Identidade
<2-3 sentences describing the personality and focus>
## Core Mission
<What this profile is designed to do>
## Behavior Rules
- <specific rule 1>
- <specific rule 2>See profiles/profile.example.md for a complete template.
Update the "Community" table in README.md if you want your profile listed.
Create templates/opencode.<name>.json as a reference config. Use placeholders instead of real API keys:
{
"mcpServers": {
"my-server": {
"command": "my-command",
"args": [],
"env": {
"API_KEY": "{{YOUR_API_KEY_HERE}}"
}
}
}
}op.sh— zsh,set -euo pipefail, POSIX-friendly patternsinstall.sh— bash,set -euo pipefail- Profiles — markdown, UTF-8, no emojis in profile names (emoji in descriptions is OK)
- README — English (primary), Portuguese (optional at bottom)
- Keep line length under 100 characters where practical
- One change per PR (one profile, one fix, one feature)
- Include a clear description of what and why
- If adding a profile, include a brief explanation of what it's for
- If fixing a bug, include steps to reproduce
Open a Discussion or Issue.