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
No description provided
Readme 12 MiB
Languages
HTML 52%
JavaScript 22.7%
CSS 14.4%
Shell 5.5%
PowerShell 5.1%
Other 0.3%