git clone https://github.com/kai3316/clipsync.git
cd clipsync
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e ".[dev]"- Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Run linting:
ruff check . - Run tests:
python -m pytest tests/ -v - Commit with a descriptive message
- Submit a pull request
- Python 3.12+ with type hints where practical
- 4-space indentation, 100-character line limit
- Follow existing patterns in the codebase
- Keep changes focused — one PR, one purpose
src/main.py # Application entry point
internal/
clipboard/ # Platform-specific clipboard I/O
config/ # JSON config persistence
i18n/ # Internationalization (EN, ZH)
platform/ # OS integration (autostart, notifications)
protocol/ # Wire format encoding/decoding
security/ # Encryption, pairing, identity
sync/ # Sync orchestration and file transfer
transport/ # TLS connections and mDNS discovery
ui/ # Dashboard (5 panels), settings, system tray
web/ # Built-in HTTP server + mobile PWA
tests/ # pytest test suite
- Core logic goes in the appropriate
internal/subpackage - UI for the feature goes in
internal/ui/dashboard.pyorsettings_window.py - Config fields are defined in
internal/config/config.py - Add tests in the
tests/directory - Wire everything together in
src/main.py
Use the GitHub Issues tracker. Include:
- Your OS and Python version
- Steps to reproduce
- Expected vs actual behavior
- Any relevant log output (Settings → Logs → Export)