Skip to main content
Glama
nascom-fiduciaire

assistant-vision

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-server

After 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.

  1. Open the test window, refresh the list, select Vision Test Surface, and share it.

  2. Enable Allow mouse & keyboard if the task requires input.

  3. 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.

  4. Read the response and progress checkpoint in the controller. The preview updates automatically.

  5. 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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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