MCPInstall
webterm logo

webterm

by zoid-archive 2 stars zoid-archive/webterm

Expose terminal via browser for AI to interact with CLI commands using playwright MCP

READMEmain

Webterm

A web-based terminal application built with React, TypeScript, and Xterm.js. The project consists of a UI package (using Vite and React) and a server package (using WebSockets and Node.js).

Project Structure

/
├── packages/
│   ├── ui/        # React frontend with Xterm.js terminal
│   └── server/    # Node.js WebSocket server with node-pty

Getting Started

Prerequisites

  • Node.js
  • Bun (for package management and UI development)

Installation

bun install

Running the Application

To run both the UI and server concurrently:

bun run dev

This will start:

Individual Package Commands

UI Package

bun run --filter '@webterm/ui' dev

Server Package

bun run --filter '@webterm/server' dev

Note on Server Runtime

The server is running with Node.js and not Bun due to a known issue with Bun causing crashes when using node-pty. This is related to an open issue: https://github.com/oven-sh/bun/issues/19688

Features

  • Interactive web-based terminal
  • WebSocket-based real-time communication
  • Cross-platform support (Windows, macOS, Linux)
  • Automatic terminal resizing
  • Connection status indicator
  • Custom working directory via URL parameter (cwd)

Using Custom Working Directory

You can specify a custom working directory for the terminal by using the cwd URL parameter:

http://localhost:5173?cwd=/absolute/path/to/your/project

This allows you to start the terminal in any directory on your system, making it convenient for working with specific projects.

License

MIT