mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-10-09 15:58:34 +00:00
2.6 KiB
2.6 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
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. - 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.