mirror of
https://github.com/open-webui/open-terminal.git
synced 2026-11-05 01:27:28 +00:00
[PR #100] Feature: Virtual Desktop & noVNC Integration for GUI-based "Computer Use" capabilities. #124
Labels
No labels
bug
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/open-terminal#124
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-terminal/pull/100
Author: @volkermauel
Created: 3/31/2026
Status: 🔄 Open
Base:
main← Head:desktop📝 Commits (4)
5f12f9dfeat: add virtual desktop & noVNC integration for GUI-based computer use (#44)eee0abdfeat: add human-like randomized delay between keystrokes in desktop type endpointb8d74cafixed chrome not launchingd2bf9b8feat: add window management, cursor overlay, grounding support for computer use desktop📊 Changes
6 files changed (+1759 additions, -458 deletions)
View changed files
📝
Dockerfile(+20 -1)📝
entrypoint.sh(+26 -0)📝
open_terminal/env.py(+33 -0)📝
open_terminal/main.py(+779 -457)➕
open_terminal/utils/desktop.py(+701 -0)➕
test_desktop.sh(+200 -0)📄 Description
Summary
Implements #44 — Virtual Desktop & noVNC Integration for GUI-based "Computer Use" capabilities.
Adds an optional virtual desktop environment (Xvfb + x11vnc + noVNC + openbox) that enables programmatic GUI interaction via screenshot, mouse, and keyboard APIs. Feature-gated behind
OPEN_TERMINAL_ENABLE_DESKTOP(defaultfalse) so existing deployments are unaffected.Changes
open_terminal/utils/desktop.py(new) —DesktopManagerclass managing Xvfb, x11vnc, noVNC, and openbox lifecycle, with screenshot (scrot), mouse (xdotool), and keyboard input methodsopen_terminal/env.py— Added 5 config vars:ENABLE_DESKTOP,DESKTOP_DISPLAY,DESKTOP_SCREEN_SIZE,DESKTOP_VNC_PORT,DESKTOP_NOVNC_PORTopen_terminal/main.py— 10 new API endpoints, desktop info in system prompt and/api/configDockerfile— Added xvfb, x11vnc, novnc, openbox, xdotool, scrot, chromium, fonts; exposed port 6080entrypoint.sh— DISPLAY setup and stale X11 lock file cleanup when desktop is enabledtest_desktop.sh(new) — 27 integration tests covering full desktop lifecycleAPI Endpoints
/desktop/desktop/start/desktop/stop/desktop/screenshot/desktop/click/desktop/mouse_move/desktop/drag/desktop/type/desktop/keyctrl+c)/desktop/scrollUsage
http://localhost:8000http://localhost:6080/vnc.htmlTest Results
All 27 integration tests pass against a locally built container.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.