Thanks for your interest in contributing to itwillsync! This guide will help you get started.
- Node.js 22+ (use nvm:
nvm use) - pnpm 10+
- Build tools for native modules (
build-essentialon Linux, Xcode CLI tools on macOS)
# Clone the repo
git clone https://github.com/shrijayan/itwillsync.git
cd itwillsync
# Install dependencies
pnpm install
# Build everything (web-client → hub → cli)
pnpm build
# Quick test
node packages/cli/dist/index.js -- bashpackages/
cli/ # Main npm package (itwillsync)
web-client/ # Browser terminal client (xterm.js, embedded in CLI dist)
hub/ # Dashboard hub for multi-session management
landing/ # Landing page / docs site
- Fork the repo and create a branch from
main - Make your changes
- Run tests:
pnpm test - Build to verify:
pnpm build - Open a pull request against
main
# Run all tests
pnpm test
# Run tests for a specific package
pnpm --filter itwillsync test
pnpm --filter @itwillsync/web-client test
pnpm --filter @itwillsync/hub test
# Run tests with coverage
pnpm test -- --coverageThe packages must be built in order since they embed each other:
@itwillsync/web-client(Vite)@itwillsync/hub(Vite)itwillsyncCLI (tsup)
Running pnpm build at the root handles this automatically.
- Bug fixes
- Documentation improvements
- New agent detection support
- Platform compatibility fixes (Windows/Linux/macOS)
- Performance improvements
- Test coverage
- Keep PRs focused — one feature or fix per PR
- Include tests for new functionality
- Update documentation if your change affects user-facing behavior
- Make sure CI passes (tests + build)
- Write clear commit messages
Please read and follow our Code of Conduct in all project interactions.
Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Your OS, Node.js version, and terminal
- Any error output
- TypeScript with ESM modules
- No specific linter enforced yet — follow existing patterns
- Keep dependencies minimal
By contributing, you agree that your contributions will be licensed under the MIT License.