Skip to content

Latest commit

 

History

History
93 lines (68 loc) · 2.56 KB

File metadata and controls

93 lines (68 loc) · 2.56 KB

Contributing to OpenCode Profiles

Thanks for your interest! This project thrives on community contributions — new profiles, improvements to existing ones, documentation, and bug fixes.

What kinds of contributions are welcome

  • 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

Getting started

  1. Fork the repository
  2. Create a branch for your changes
    git checkout -b feat/my-new-profile
  3. Make your changes
  4. Test locally
    # Run the installer in dry-run mode to verify
    ./install.sh --dry-run
    
    # Test profile listing
    ./bin/op.sh --list
  5. Commit with a descriptive message
  6. Push and open a Pull Request

Adding a new profile

1. Personality file

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.

2. (Optional) Add to the README table

Update the "Community" table in README.md if you want your profile listed.

3. (Optional) MCP config template

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}}"
      }
    }
  }
}

Code style

  • op.sh — zsh, set -euo pipefail, POSIX-friendly patterns
  • install.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

Pull Request guidelines

  • 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

Questions?

Open a Discussion or Issue.