I'll generate a comprehensive README for ShellSync based on the existing codebase structure and documentation. 1
ShellSync is an open-source, real-time terminal collaboration tool that enables multiple users to share and interact with terminal sessions through an intuitive, infinite canvas interface. 2 Whether you're pair programming, debugging remotely, or teaching command-line skills, ShellSync makes collaborative terminal workflows seamless and efficient.
-
🔄 Real-Time Collaboration: Share terminal sessions instantly with team members via unique URLs, enabling multiple users to view and interact with the same terminal simultaneously 3
-
🎨 Infinite Canvas Interface: Dynamic, draggable workspace where you can create, position, and manage multiple terminal windows with zoom and pan capabilities 4
-
🌐 Cross-Platform Support: Lightweight agent binaries available for macOS (Intel & Apple Silicon), Linux (amd64 & arm64), and Windows (amd64 & arm64) 5
-
⚡ Production-Ready: Built with WebSocket for frontend communication and gRPC for backend-agent interaction, ensuring enterprise-grade performance 6
-
🔒 Secure & Reliable: All connections are encrypted, with the agent running locally on your machine to ensure terminal sessions remain secure 7
ShellSync implements a three-tier architecture designed for scalability and security:
graph TB
subgraph "Frontend Tier"
Browser["Web Browser"]
Canvas["Infinite Canvas"]
Terminal["Xterm.js Terminal"]
end
subgraph "Backend Tier"
Server["Go Server :5000"]
WebSocket["WebSocket Hub"]
GRPC["gRPC Server :5001"]
end
subgraph "Agent Tier"
Agent["ShellSync Agent"]
PTY["PTY Manager"]
Shell["Local Shell"]
end
Browser --> Canvas
Canvas --> Terminal
Terminal -.->|WebSocket| WebSocket
WebSocket --> Server
Server --> GRPC
GRPC -.->|gRPC Stream| Agent
Agent --> PTY
PTY --> Shell
- Frontend: React-based UI with infinite canvas interface using WebSocket for real-time communication 8
- Backend: Go server handling WebSocket connections and gRPC streams for session management 9
- Agent: Local Go binary executing terminal commands via PTY and communicating over gRPC 10
Choose your platform and run the installation script:
curl -fsSL https://raw.githubusercontent.com/Ayush-Vish/ShellSync/main/scripts/get_linux.sh | sh
iwr -useb https://raw.githubusercontent.com/Ayush-Vish/ShellSync/main/scripts/get_windows.ps1 | iex
Platform | Architecture | Download Link |
---|---|---|
macOS | ARM64 | client-darwin-arm64 |
macOS | x86-64 | client-darwin-amd64 |
Linux | ARM64 | client-linux-arm64 |
Linux | x86-64 | client-linux-amd64 |
Windows | x86-64 | client-windows-amd64.exe |
Windows | ARM64 | client-windows-arm64.exe |
- Run the Agent: Execute
shellsync-agent
to start the local terminal manager - Access Interface: Open the generated session URL in your browser
- Create Terminals: Use the infinite canvas to spawn and manage multiple terminals
- Collaborate: Share your session URL with team members for real-time collaboration 13
- Node.js (v16+) and npm for frontend development
- Go (v1.18+) for backend and agent development
- Git to clone the repository
-
Clone the repository:
git clone https://github.com/Ayush-Vish/ShellSync.git cd ShellSync
-
Build the backend:
make run-server
-
Build the agent:
make build-client
-
Start the frontend:
cd frontend npm install npm start ``` [14](#0-13)
We welcome contributions! ShellSync is completely open source and free to use. 15
- Fork the repository:
https://github.com/Ayush-Vish/ShellSync
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m "Add amazing feature"
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request 16
Q: Do I need to install anything to use ShellSync? A: Yes, you need to download and run the lightweight ShellSync agent on your machine. No additional software or complex setup is required. 17
Q: Is ShellSync secure for production use? A: ShellSync is built with enterprise-grade security. All connections are encrypted, and the agent runs locally on your machine, ensuring your terminal sessions remain secure. 18
Q: How do I share a terminal session? A: After running the ShellSync agent, you'll receive a unique session URL. Simply share this URL with your team members, and they can join instantly through their web browser. 19
- Latest Milestone: MILESTONE 4 - Infinite canvas component implemented
- Status: Production-ready with minimal server, client, and frontend all operational
- Binaries: Available for all major OS/architecture combinations
- In Progress: Terminal encryption and session authentication features 20
ShellSync is licensed under the MIT License. 21
- Repository: https://github.com/Ayush-Vish/ShellSync
- Issues: GitHub Issues
- Email: ayushvish6555@gmail.com 22
Built for developers, by developers. 23