NexusWindows for Claude
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PYTHONUTF8 | No | Set to 1 in the env of the MCP server configuration, as shown in the Claude Code and Claude Desktop examples. | 1 |
| NEXUS_WINDOWS_HOME | No | Set to use another folder for local state (logs, routines) instead of %USERPROFILE%\.claude\nexus-claude\. | |
| NEXUS_ROUTINES_MIRROR | No | Optional mirror folder to share routine definitions between PCs; typed text is never mirrored in clear. | |
| UV_PROJECT_ENVIRONMENT | No | Optional: venv location outside the clone (e.g. $env:LOCALAPPDATA\claude-windows-computer-use\venv), passed as an environment variable when registering the server from a clone. | |
| NEXUS_WINDOWS_DEBUG_IMAGES | No | Set to 1 to write images to the debug log. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| windowsA | List application windows (front to back): hwnd, title, process, UI framework (Win32, WPF, Chromium…), size; [dialog of N "title"] = dialog or other window owned by window N (file picker, "Open", "Save as"); [hidden] = Store app Windows never shows (launched in the background), readable and drivable all the same. Then Windows itself: window="taskbar" and window="desktop" (icons). filter: part of a title or process name. |
| lookA | See a window without bringing it to the front: numbered elements [N] (role, name, value, states, position @x,y), and an image when the text is not enough. window: title (part of it), process ("notepad"), hwnd, or Windows itself: "taskbar" (buttons, tray, clock), "desktop" (icons), "screen" (whole screen as the user sees it, with the windows' places: overview only); omitted = current window. show: auto (default: the list, plus the image only when the tree is too thin to act on — canvas, game, page that publishes nothing — or after an unverified action), both (list and image), image, elements, changes (only what changed since the last list: added "+", changed "~", removed "-", the others keep their [N]), text (text of documents, no image), none. query: list only the elements containing this text. region [x1,y1,x2,y2]: zoom on an area of the image (fine reading; coordinates stay those of the full image). Images: WebP, at most 2000 px and 2.56 Mpx (detail=high gives the same size: zoom with region to read small text); an image identical to the last one sent for this window is not attached again (show=image always attaches it). marks: numbers drawn on the image (auto = unnamed elements; all; none). |
| actA | Act in the background: steps run in order (stops at the first error or unknown outcome), then the updated state (then: auto = list + image if a step is not verified; both, image, elements, changes, none). Per-step report: ✓ invoked or effect read, = already done (nothing sent), ~ unknown outcome (batch stopped: inspect the state), ✗ failed or not reached; then the summary. Steps (do): click, double_click, right_click, type (appends text; no target = focused element), set (replaces the text), clear, key (keys "ctrl+s", "enter", "alt+f4"), select (option in a list), check, uncheck, toggle, expand, collapse, scroll (direction, amount), focus, menu (path "File > Open"), wait (text appeared, or gone=true; timeout), drag (target → to), hover. expect: text expected after the step. check: wanted state of an element ({"target":"Name","value":"Alice"}; also contains, checked, selected, expanded, focused, enabled, exists): already true → step skipped, read back after → ✓, otherwise ✗ not reached. confirm=true: paying, sending, publishing, permanent deletion… (refused otherwise, before any input); only on the user's explicit order or "yes" for THIS action. Outward ones (send, pay, publish…) also need accord: the token from the refusal, after the user's own yes. target: [N] from the last look, visible name ("Save", "button:OK", "edit:Name") or "x,y" in image pixels. Example: steps=[{"do":"set","target":"Name","text":"Alice"},{"do":"click","target":"OK"}]. Routines: remember="name" saves the batch if it is verified (✓/=, targets by name; {{x}} = variable text, only in text and check.value/contains; typed text made only of {{x}}); routine="name" (without steps) replays it, params={"x": "…"}; remember="name" with steps=[] forgets it; look lists them. foreground=true: window kept in front for the whole batch, real mouse/keyboard when the background is impossible or ignored (drag, hover, WPF/UWP/Chromium shortcuts, Tk); only with the user's consent. Panels window="quick settings", "notifications", "start": foreground=true only. |
| launchA | Open an application in the background (without giving it the foreground) and see it. app: Start menu name ("Calculator", "Notepad"), executable ("notepad.exe") or path. args: arguments. app = path of a FOLDER or a DOCUMENT: opened by its file association (Explorer, default application), opening verified (displayed folder read back, or title carrying the file name). app = ADDRESS: ms-settings: opens that Settings page behind the user's window (Windows flashes it ~1 s; foreground given back); any other scheme (mailto:, https:, tel:…) by its app. Calling or sending stays a click, guarded in act (confirm + accord). devtools=true (Chromium/Electron/Edge only, application not already open): opens a local DevTools port for more reliable clicks, typing and shortcuts. The window becomes the current window. Steam: always launched readable even when covered; devtools=true opens its DevTools port (127.0.0.1:8080, its own session); when already open, restart=true closes and relaunches it (refused while a game runs). Both: only with the user's consent. |
| windowA | Manage a window without bringing it to the front: restore (restore behind the others), minimize, maximize, close (polite request: the application may offer to save), bottom (bottom of the z-order), move (x, y) / resize (width, height) in screen pixels. front: bring it to the front (foreground=true, only with the user's consent). |
| notificationsA | Notifications shown by Windows (notification center), most recent first: app, time, texts; read without opening anything on screen; security codes masked. app: part of the app name. |
| logsB | Log of the latest calls (debugging): tool, arguments, techniques tried per step, durations, errors. Full files: ~/.claude/nexus-claude/logs/YYYY-MM-DD.jsonl. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
The set is mostly distinct: launch opens apps, look inspects contents, act performs UI steps, window manages a window, notifications and logs are separate. The main confusion is between 'windows' (list windows) and 'window' (manage a window), plus some overlap between look and windows for inspection/listing.
Names are all lowercase single words, but conventions are mixed: some are verbs (act, look, launch), others are nouns (windows, notifications, logs, window). The singular/plural pair 'window'/'windows' is particularly easy to misread, though the set remains readable.
Seven tools are well scoped for a desktop automation server. Each tool has a clear role and the count is comfortably within a practical range.
The surface covers the core desktop automation lifecycle: launch, list windows, inspect, act, manage window state, read notifications, and debug via logs. Minor gaps like clipboard operations or explicit process management are not central, so agents can work around them.