First off, thank you for considering contributing!
This is a hobby project maintained by one person (currently) in spare time. Every contribution — whether a bug report, feature suggestion, documentation fix, or code PR—is genuinely appreciated.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Pull Request Guidelines
- Questions?
Be respectful, constructive, and patient. We're all learning. This is a friendly space.
- ✅ Search existing issues - maybe someone already reported it!
- ✅ Update to the latest version - bug might already be fixed
- ✅ For questions → Use Discussions instead of creating an Issue
| Type | Effort | How to Start |
|---|---|---|
| Bug Report | ~10 min | Open Issue |
| Feature Idea | ~10 min | Start Discussion |
| Documentation Fix | ~30 min | Edit file → Propose Change |
| Code Fix/Feature | 1h+ | Fork → Branch → PR → Wait for review |
| Testing/Feedback | ~15 min | Test pre-releases, give feedback |
Use the Bug Report Template. Include:
- Exact steps to reproduce
- Screenshots/logs if relevant
- Your environment (OS, version, installation method)
Start a Discussion first. We'll create a formal Issue if the idea aligns with the project direction.
-
Find an Issue
- Look for open issues or
help wantedlabels
- Look for open issues or
-
Comment on the Issue or Assign yourself
- Say "I'd like to work on this" so others don't duplicate effort
-
Fork & Create Branch
git clone https://github.com/YOUR_USERNAME/OpenSSH-GUI.git cd OpenSSH-GUI git checkout -b feature/your-feature-name -
Make Changes
- Follow existing code style
- Keep commits focused (one thing per commit)
- Write meaningful commit messages
-
Test Locally
dotnet restore dotnet build dotnet run
-
Submit PR
- Reference the issue number: Closes #123
- Fill out the PR template completely
- .NET SDK 8.0+ (or .NET 10 for latest)
- Git
- IDE: Visual Studio, VS Code, or Rider
```bash
# Clone repository
git clone https://github.com/frequency403/OpenSSH-GUI.git
cd OpenSSH-GUI
# Restore dependencies
dotnet restore
# Run development build
dotnet run
# Build release
dotnet publish -c Release -r <your-runtime> --self-contained false
```
```bash
OpenSSH-GUI/
├── OpenSSH_GUI.Core/ # Core logic (key parsing, SSH operations)
├── OpenSSH_GUI.Dialogs/ # UI dialogs and modals
├── OpenSSH_GUI.SshConfig/ # SSH configuration management
└── installer/ # Installer scripts/packages
```
Do:
- Keep PRs small and focused
- Write clear descriptions
- Link related issues
- Be responsive to review comments
Don't:
- Mix unrelated changes in one PR
- Ignore failing builds/tests
- Expect instant merge (review time varies)
- Review Timeline: As maintainer, I try to respond within 48 hours, but delays happen. Ping me politely if silence extends beyond a week.
Join the conversation in GitHub Discussions!
Or reach out via:
- Open a Discussion thread
- Check existing discussions for similar questions
Every contribution makes this project better—even reporting a typo in the docs counts! ❤️