JB

johnconnornpc/browserland

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

10 stars 7 forks 质量 79 趋势 32MIT

Browserland is a tiled multi server terminal in browser with MCP

概览

Point a browser at one broker and you get a windowed desktop of live terminals: tile them, tab them, split them, and drag them across virtual desktops. Each terminal is a real PTY running on some machine, streamed to the browser over a WebSocket. Add your other machines as hosts (token-authenticated, e.g. over Tailscale) and their terminals appear in the same desktop — a shell on the laptop, the desktop, and the server from one menu, side by side. The shells keep running when no browser is attached. Close the tab, come back tomorrow, and each terminal's screen heals from a snapshot. Browserland also ships an , so an MCP client or AI harness can read and drive the same terminals — full-screen TUIs included — under per-window access modes you control. Browserland runs on Windows and Linux with Python 3.10 or newer. (webterm is the Python package and module name.

README

以下为原文 README 节选,完整内容请查看原文。

Browserland

A desktop of live terminals in one browser tab — on this machine and on every machine you install it on, with the AI coding agents you run inside them.

Point a browser at one broker and you get a windowed desktop of live terminals: tile them, tab them, split them, and drag them across virtual desktops. Each terminal is a real PTY running on some machine, streamed to the browser over a WebSocket. Add your other machines as hosts (token-authenticated, e.g. over Tailscale) and their terminals appear in the same desktop — a shell on the laptop, the desktop, and the server from one + menu, side by side.

The shells keep running when no browser is attached. Close the tab, come back tomorrow, and each terminal’s screen heals from a snapshot.

Browserland also ships an MCP server, so an MCP client or AI harness can read and drive the same terminals — full-screen TUIs included — under per-window access modes you control.

Browserland runs on Windows and Linux with Python 3.10 or newer. (webterm is the Python package and module name.)

Screenshots

The desktop with tiled and floating terminals

What is this?

Browserland is two small programs and a browser:

  • Agents (producers) are headless processes that own a real terminal — pty.openpty on Linux, ConPTY/WinPTY on Windows. An agent runs a command (bash, cmd.exe, an AI coding agent, anything), keeps a ring buffer of recent output, and streams the terminal over a single WebSocket.
  • The broker is a small web server. Agents register with it; browsers connect to it. It relays bytes both ways, serves the desktop UI, and can spawn new agents on demand from a list of pre-approved profiles.
  • The browser renders the desktop — a tiling window manager over xterm.js — and sends your keystrokes back to the PTY.

The wire format is a deliberately small set of JSON frames over one WebSocket, so any producer that speaks them can register with the broker — Browserland’s own agent is just the reference implementation.

┌─────────┐  binary ANSI + JSON   ┌────────┐  /ws?session=  ┌─────────┐
│  agent  │ ──────────────────▶  │ broker │ ──────────────────▶ │ browser │
│ (PTY +  │ ◀──────────────────  │        │ ◀────────────────── │ xterm.js│
│ ConPTY/ │  input/resize/       └────────┘  input/paste/resize └─────────┘
│ openpty)│  snapshot_please
└─────────┘

Because the PTY lives in the agent, not the browser, terminals survive browser

在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "browserland": { "command": "python", "args": ["-m", "webterm.mcptool"], "env": { "BROWSERLAND_MCP_TOKEN": "…", "BROWSERLAND_MCP_URL": "http://127.0.0.1:4445" } } } }