diff --git a/README.md b/README.md new file mode 100644 index 0000000..891f588 --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +# 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.