f64fa0e674fee1d33e4b7ab2b4c0170252d0547e
XCTerminal
A headless Electron terminal application with a web-based UI. Run terminal sessions in the browser with a 3x2 grid layout.
Features
- Multiple terminal panels in a grid layout (3 columns x 2 rows)
- Real-time terminal output with PowerShell support
- WebSocket and HTTP input support
- Automatic port selection
- Cross-platform (Windows, macOS, Linux)
Quick Start
Development
npm install
npm run dev
Build
npm run electron:build
The built executable will be at release/XCTerminal.exe.
Usage
# Run with default port (3002)
./release/XCTerminal.exe
# Specify port
./release/XCTerminal.exe --port=8080
# Or use environment variable
PORT=8080 ./release/XCTerminal.exe
Then open http://localhost:3002 (or your specified port) in your browser.
Project Structure
XCTerminal/
├── electron/ # Electron main process
│ ├── main.js # Main entry point
│ └── preload.js # Preload script
├── src/ # React frontend
│ ├── App.tsx # Main app component
│ └── components/ # UI components
├── server/ # Standalone server (optional)
│ └── index.js # Server entry point
└── release/ # Built executables
Tech Stack
- Electron (headless mode)
- React 19
- Vite
- Ghostty Web (terminal emulation)
- node-pty (PTY management)
- Express (HTTP server)
- WebSocket (real-time I/O)
License
Private - All rights reserved.
Description
Languages
HTML
52%
JavaScript
22.7%
CSS
14.4%
Shell
5.5%
PowerShell
5.1%
Other
0.3%