HackPair lets you and your teammates code together from anywhere. See each other's cursors, code, and files in real-time.
One extension to start. One link to share. That's it.
| 🔴 Live Cursors | See where your teammates are working in your editor |
| 📝 Real-Time Sync | Code edits sync instantly across all members |
| 👥 Team Awareness | See who's online, click to view their code |
| 📂 Shared Workspaces | Browse anyone's file tree from your sidebar |
| 🔒 100% Private | Your code never leaves your machine |
| 🔄 Auto-Reconnect | Reopen VS Code → back in the team instantly |
Download hackpair-0.2.4.vsix from Releases and install:
code --install-extension hackpair-0.2.4.vsixZero config. No account, no token, no setup. Create a room and HackPair starts a public link for you automatically.
- Click the HackPair icon in VS Code sidebar
- Enter your name
- Click "Create Room"
- Pick your workspace folder to share
- Copy the invite link → Share with team
- Click the HackPair icon in VS Code sidebar
- Enter your name
- Paste the invite link
- Click "Join Room"
- Pick your workspace folder to share
┌────────────────────────────────────────────────────┐
│ HackPair │
├────────────────────────────────────────────────────┤
│ │
│ http://192.168.1.100:3001?room=ABC123 │
│ [Copy Link] [Copy Code] │
│ │
│ Team (3) │
│ ──────────────── │
│ 🔵 Alice (you) │
│ 🟢 Bob ← click to see files │
│ 🟡 Charlie ← click to see files │
│ │
└────────────────────────────────────────────────────┘
Click any teammate → See their file tree → Click a file → Read their code.
| Scenario | How |
|---|---|
| Same WiFi | Use your local IP: http://192.168.x.x:3001 |
| Remote Team | Built-in Cloudflare tunnel — fully automatic on room creation, no account or token |
| Port Forwarding | Forward port 3001 on your router |
| Layer | Technology |
|---|---|
| Server | Fastify |
| Real-time | Socket.io |
| Database | sql.js (SQLite in WASM) |
| CRDT | Y.js |
| Extension | VS Code API |
| Language | TypeScript |
hackpair/
├── packages/
│ ├── extension/ # VS Code extension
│ │ ├── src/ # TypeScript source
│ │ └── dist/ # Bundled files
│ ├── server/ # Server source code
│ ├── shared/ # Shared types
│ └── dashboard-tool/ # Standalone server + dashboard
# Clone
git clone https://github.com/Hussaincodes01/hackpair.git
cd hackpair
# Build shared types
npx tsc -p packages/shared/tsconfig.json
# Build extension
cd packages/extension && npx esbuild src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node
# Build server bundle
npx esbuild packages/server/src/index.ts --bundle --outfile=packages/extension/dist/server.js --platform=node --format=cjs
# Start server
node packages/extension/dist/server.js- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing) - Open a Pull Request
MIT License - see LICENSE for details.