Thanks for contributing to vmux.
# Clone the repository
git clone https://github.com/roboco-io/tools.git
cd tools/vmux
# Install dependencies
npm install
# Build
npm run build
# Development mode (watch files and rebuild automatically)
npm run watchIn VS Code, press F5 to launch an Extension Development Host.
src/
├── extension/ # VS Code extension host code (IPC server, notifications, sessions, terminal management)
├── cli/ # vmux CLI used by agents and external tools
├── mcp/ # MCP server integration
├── shared/ # Shared types, protocol definitions, and utilities
└── test/ # Unit tests and E2E tests
- Use TypeScript strict mode (
strict: trueintsconfig.json) - Bundle with esbuild and emit CommonJS output
- If lint or format settings are present, run
npm run lintbefore submitting changes
# Unit and integration tests
npm test
# E2E tests (VS Code Extension Test Runner)
npm run test:e2eMake sure the test suite passes before opening a pull request.
- Fork the repository.
- Create a branch that matches the feature or fix (
feat/notification-improvements,fix/socket-timeout, etc.). - Commit your changes and push them to your fork.
- Open a Pull Request against the upstream repository.
Follow the Conventional Commits format.
<type>(<scope>): <description>
[optional body]
Common types:
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation change |
refactor |
Refactoring with no behavior change |
test |
Test addition or update |
chore |
Build, configuration, or other maintenance work |
Examples:
feat(notification): focus the sidebar when the badge is clicked
fix(ipc): handle Unix socket connection timeouts
docs: add CONTRIBUTING.md