3.8 KiB
Contributing to Netcatty
Thank you for your interest in contributing to Netcatty — an AI-powered SSH client, SFTP browser, and terminal manager built with Electron, React, and xterm.js.
Please read this guide before submitting issues or pull requests.
Code of Conduct
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this standard.
Ways to Contribute
- Report bugs via GitHub Issues
- Suggest features or improvements
- Fix bugs or implement features listed in Issues
- Improve documentation
Reporting Issues
Issues that do not follow the required format are closed automatically by the issue-format bot.
- Title prefix (required): start with
[Bug],[Feature], or[Other], then a short summary of at least 4 characters. Example:[Bug] SFTP upload fails on Windows - Template (required): open from
New Issue and pick
Bug Report or Feature Request. Fill every required field. Blank
issues are disabled (
blank_issues_enabled: false). - Templates live in
.github/ISSUE_TEMPLATE/. - Questions and open-ended discussion belong in GitHub Discussions, not Issues.
If you open an issue via the API or gh, you must still use a valid title
prefix and a body that matches the Bug Report or Feature Request template
structure (required headings such as "Steps to reproduce" or
"Problem / pain point").
Development Setup
Prerequisites: Node.js 22+ and npm.
# Clone the repository
git clone https://github.com/binaricat/Netcatty.git
cd Netcatty
# Install dependencies
npm ci
# Start in development mode (Vite + Electron)
npm run dev
Build & Package
npm run build # Build for production
npm run pack # Package for current platform
npm run pack:mac # macOS (DMG + ZIP)
npm run pack:win # Windows (NSIS, portable, ZIP)
npm run pack:linux # Linux (AppImage, DEB, RPM, pacman)
Linting and Tests
npm run lint # Run ESLint
npm test # Run the test suite
Pull Request Process
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes, following the existing project style.
- Commit with a clear message:
git commit -m 'feat: add amazing feature' - Push the branch and open a Pull Request against
main. Use the checklist in.github/PULL_REQUEST_TEMPLATE.md. - Run
npm run lintandnpm testbefore requesting review. - If you changed the capability catalog, run
npm run generate:capability-toolsand commit any generated updates. - Ensure all CI checks pass before requesting review.
Commit Message Convention
We recommend following Conventional Commits:
feat:— new featurefix:— bug fixdocs:— documentation onlyrefactor:— code change without feature or fixchore:— build process or tooling changes
Architecture & Coding Guidelines
Netcatty is organized around three layers:
- Domain logic in
domain/ - Application state in
application/state/ - UI components in
components/
Keep side effects in application or infrastructure code, avoid direct
localStorage or network calls from components, and update relevant
documentation when behavior changes.
License
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.