This document describes the structure of the SlipStream GUI project.
SlipStream-GUI/
├── .github/ # GitHub templates and workflows
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ └── pull_request_template.md
├── assets/ # Static assets
│ └── icon.png # Application icon (1024x1024 PNG)
├── main.js # Electron main process
├── index.html # UI and renderer process
├── check-system-proxy.js # System proxy status checker
├── tun-manager.js # TUN interface manager (legacy, not used)
├── package.json # Dependencies and build configuration
├── .gitignore # Git ignore rules
├── .npmrc # npm configuration
├── LICENSE # MIT License
├── README.md # Main documentation
├── BUILD.md # Detailed build instructions
├── CONTRIBUTING.md # Contribution guidelines
├── PROJECT_STRUCTURE.md # This file
├── intro.png # Intro modal image
├── binaries/ # Native SlipStream client binaries (required for build)
│ ├── slipstream-client-mac-arm64 # macOS (Apple Silicon)
│ ├── slipstream-client-mac-intel # macOS (Intel)
│ ├── slipstream-client-linux # Linux
│ └── slipstream-client-win.exe # Windows
└── (other files)
-
main.js: Electron main process
- Window management
- IPC handlers
- SlipStream client process management
- HTTP proxy server
- System proxy configuration
-
index.html: Renderer process
- UI layout and styling
- User interactions
- Status display
- Logs panel
- Settings management
- package.json: Project metadata, dependencies, and build configuration
- .gitignore: Files to exclude from version control
- .npmrc: npm configuration
- README.md: Main project documentation
- BUILD.md: Detailed build instructions
- CONTRIBUTING.md: Guidelines for contributors
- LICENSE: MIT License
- assets/icon.png: Application icon (1024x1024 PNG)
- intro.png: Introduction modal image
- binaries/slipstream-client-mac-arm64: macOS SlipStream client (Apple Silicon)
- binaries/slipstream-client-mac-intel: macOS SlipStream client (Intel)
- binaries/slipstream-client-linux: Linux SlipStream client
- binaries/slipstream-client-win.exe: Windows SlipStream client
Note: These binaries are required for the build process and should be committed to the repository.
When building, the following directories are created:
- dist/: Contains built installers (DMG for macOS, EXE for Windows)
- node_modules/: npm dependencies (excluded from git)
- Reads binaries from project root
- Uses
__dirnamefor file paths - Hot reloading available
- Binaries are in
Resources/folder (viaextraResources) - Uses
process.resourcesPathfor file paths - All dependencies bundled in app package
-
Binaries: The SlipStream client binaries must be in
binaries/for the build to work. -
Settings: User settings are stored in
settings.json(excluded from git via .gitignore). -
Build Artifacts: The
dist/folder contains build outputs and should not be committed. -
Dependencies: All npm packages are in
node_modules/(excluded from git).