Files
NetMesh/CONTRIBUTING.md
zhaolei 3c72efcb7f
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
[Init] Initial commit - NetMesh terminal manager
2026-09-13 18:24:01 +08:00

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

  1. Fork the repository.
  2. Create a feature branch:
    git checkout -b feature/your-feature-name
    
  3. Make your changes, following the existing project style.
  4. Commit with a clear message:
    git commit -m 'feat: add amazing feature'
    
  5. Push the branch and open a Pull Request against main. Use the checklist in .github/PULL_REQUEST_TEMPLATE.md.
  6. Run npm run lint and npm test before requesting review.
  7. If you changed the capability catalog, run npm run generate:capability-tools and commit any generated updates.
  8. Ensure all CI checks pass before requesting review.

Commit Message Convention

We recommend following Conventional Commits:

  • feat: — new feature
  • fix: — bug fix
  • docs: — documentation only
  • refactor: — code change without feature or fix
  • chore: — 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.