assistant-vision
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@assistant-visionLook at the main window and click the Run button."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Assistant Vision
A light Windows desktop application that gives an assistant fresh visual feedback from one selected window, including the results of its mouse and keyboard actions.
Preview, not a production automation guarantee. The working implementation combines Tauri/Rust capture with either MCP or a separate Codex App Server session. It does not attach a live feed to an existing Codex desktop conversation.
Try it
Prerequisites: Node.js 22+, stable Rust, Tauri platform prerequisites, and an installed, signed-in Codex CLI for App Server mode.
npm ci
npm test
cargo test --manifest-path src-tauri/Cargo.toml
npm run build
npm run app-serverAfter building on Windows, double-click Start Assistant Vision.cmd instead of typing the last command. This is a repository launcher, not an installer; it needs the repository's dependencies and compiled executable.
Open the test window, refresh the list, select Vision Test Surface, and share it.
Enable Allow mouse & keyboard if the task requires input.
Enter a task in Work with Codex and click Start task. On Windows, this attempts to bring the selected target forward. Keep that window in the foreground.
Read the response and progress checkpoint in the controller. The preview updates automatically.
Use Stop sharing & control to revoke capture/input. Closing the controller also closes its connected session.
No refresh button is needed after clicks or typing. The refresh-list button only refreshes available window titles.
Related MCP server: vision-input
How the assistant sees
Every task starts with a fresh image. During an active task, changed images are delivered automatically at most once per second, keeping the newest change instead of building a queue. Each input tool also returns a fresh image for verification.
Codex is instructed to report the sequence it inspected using vision_checkpoint, along with completed work, uncertainties and the next step. Automatic delivery waits for that report before sending more. This acknowledgement is a model report, not proof of comprehension or successful business processing.
Near the visual budget, further observation/input is refused until the assistant checkpoints and finishes its turn. If it requests continuation, the controller asks App Server to compact the conversation, waits for actual completion, then starts again with the original task, checkpoint and a fresh image. A stopped or changed target prevents automatic continuation. Reduce context also requests compaction while idle. A checkpoint survives compaction but is labelled as previous until reverified.
Bounded storage
Area | Limit |
Local compressed screenshot history | 4 images and 12 MiB of base64 payload |
One capture | 16 megapixels; encoded PNG at most 6 MiB |
Images delivered between confirmed compactions | 64 images and 32 MiB of base64 payload, including initial/tool/automatic images |
Progress checkpoint | 1,500 characters plus 500 for the next step |
Displayed reply | Last 8,000 characters |
Automatic compactions | At most 20 per session |
The app does not save screenshots to disk. Unchanged pixels are deduplicated before encoding; current and delivered raw pixels share buffers where possible. Stop clears local caches as pending operations finish.
These are not total RAM limits: raw pixels, temporary encoding/JSON buffers, WebView, Node and Codex use additional memory. Compaction reduces model context; it does not delete images already received by a client/provider. The app does not control provider retention or diagnostics.
Four screenshots are only the recent visual buffer. The textual checkpoint and original task carry progress across compaction; they can contain model mistakes and must be checked against the current screen.
MCP connection
Configure an MCP client to run Node with the absolute path to connector/server.mjs. It launches its own controller and permissions. MCP returns images on tool calls; automatic App Server steering and vision_checkpoint are specific to App Server mode.
Tool | Purpose |
vision_status | Sharing/control state |
vision_changes | Recent images, sequence and history_gap |
vision_observe | Fresh image and action token |
vision_click | One left click, then image |
vision_type | Up to 256 text characters, then image |
vision_key | One supported navigation/editing key, then image |
vision_stop | Revoke sharing and input |
Only the controller can grant sharing/control. Actions require a fresh, unconsumed frame token, identical pixels/geometry and the selected foreground window. The preview does not replace action tokens. A failed post-action observation means the result is uncertain; never repeat the input blindly.
Escape or three middle-button presses within one second request emergency stop on Windows. Already sent input cannot be undone. Stop cannot recall images already transmitted.
Scope and limitations
App Server owns a separate ephemeral thread, with a read-only Codex sandbox. Unsupported approval requests are refused. This does not remove all Codex built-in capabilities; selected-window controls apply to Assistant Vision tools.
Sampling targets 200 ms locally; model delivery and reasoning are slower. Brief transitions may be missed. Blinking cursors/animations count as changes and may cause conservative action refusals.
Keyboard supports text, Tab, Enter, Backspace, Delete, arrows, Home, End, PageUp and PageDown. No modifier shortcuts, scrolling, dragging or input batches.
A post-action image is captured after 120 ms; it does not prove the application has settled. OS focus checks and input are not atomic.
Long-running real workloads, CPU/battery use, DPI changes, overlays and elevated/protected apps need broader validation.
macOS compilation is checked in CI, but native capture/permissions are unverified and input is disabled outside Windows.
No signed installer, auto-update, OCR or accessibility-tree extraction is supplied.
A real Windows demonstration completed two clicks, typed VISION TEST, pressed Tab and verified the result using 11 transmitted images (about 0.74 MiB). This is a bounded smoke test, not evidence of reliability for arbitrary applications.
See architecture and verification. MIT licensed. Use synthetic data in contributions; never commit private captures or credentials.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Turns a phone into a camera+Bluetooth remote so AI assistants can see and control any PC.
Desktop and mobile website screenshots plus page context for AI agents and automation workflows.
Run multi-step tasks in a real Chrome browser: persistent environments, live view, human takeover.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to capture screenshots and control desktop input (mouse, keyboard) to see and interact with your screen. Features user-first safety controls including automatic pause on user activity and app allowlists to restrict interactions to approved applications only.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI to capture screenshots and control mouse and keyboard for automated desktop interaction.-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to control Windows GUI by listing and focusing windows, capturing element snapshots via UIA/OCR/CDP, performing clicks/inputs/scrolls, verifying changes, waiting for screen updates, taking screenshots, and obtaining visual descriptions.2-
- AlicenseNot gradedqualityCmaintenanceEnables the model to observe and control the live desktop via accessibility trees and screenshots, performing actions like clicking, typing, scrolling, dragging, and setting values.MIT