Tech stack
SlipStream GUI is built using the following technologies:Core technologies
- Electron v28.0.0 - Cross-platform desktop application framework
- Node.js 18+ - JavaScript runtime for backend functionality
- HTML/CSS/JavaScript - Frontend UI and rendering
Key dependencies
- http-proxy (1.18.1) - HTTP proxy server implementation
- socks (^2.7.1) - SOCKS5 protocol implementation
- socks-proxy-agent (^8.0.2) - SOCKS5 agent for HTTP requests
- ip (^2.0.1) - IP address utilities
Build tools
- electron-builder (^24.9.1) - Package and build tool for Electron apps
- Node.js scripts - Custom build and verification scripts
Development prerequisites
Before starting development, ensure you have:- Node.js 16+ (18+ recommended)
- npm (comes with Node.js)
- Git for version control
- Platform-specific tools:
- macOS: Xcode Command Line Tools
- Windows: Windows SDK (for building)
- Linux: Standard build tools (gcc, make)
Project structure
The project follows a simple Electron application structure:Key files
-
main.js - Electron main process that handles:
- Window management
- SlipStream client process management
- HTTP proxy server
- System proxy configuration
- IPC communication with renderer
-
index.html - Renderer process containing:
- User interface
- Settings management
- Status monitoring
- Logs display
-
package.json - Project configuration including:
- Dependencies
- Build scripts
- electron-builder configuration
Architecture
SlipStream GUI implements a multi-layer proxy architecture:Components
- SlipStream Client - Native binary that establishes SOCKS5 proxy on port 5201
- HTTP Proxy Server - Node.js server on port 8080 converting HTTP to SOCKS5
- System Proxy - Automatic system proxy configuration for seamless routing
Development workflow
The typical development workflow:Configuration
Settings are stored insettings.json (created automatically):
- DNS Resolver address
- SlipStream server domain
- Verbose logging preference
- Proxy bypass list (domains/addresses excluded from proxy)
- SOCKS5 authentication credentials
Next steps
Development setup
Get your development environment ready
Building
Learn how to build the application
Contributing
Contribute to the project