73 lines
1.5 KiB
Markdown
73 lines
1.5 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
### Build
|
|
|
|
```bash
|
|
npm run electron:build
|
|
```
|
|
|
|
The built executable will be at `release/XCTerminal.exe`.
|
|
|
|
### Usage
|
|
|
|
```bash
|
|
# 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.
|