windows_computer_use
Skill1.6k starsChanged 4 months agoMITView on GitHub
Windows desktop reading and element actions through the UI Automation text tree (roles, labels, states, coordinates) - no screenshots, no coordinate clicks.
2 other projects use a version of this.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about razzant/ouroboros
- razzant/OuroborosHub“a2a: keep a host-terminal "lost" operation terminal (1.5.1)”GitHub · Nov 6, 2026
- razzant/OuroborosHub“Chrome: use Connect tools instead of manual MCP JSON setup”GitHub · Nov 6, 2026
- gmkurtzer/ginux“Ginux: "S for Security"”GitHub · Nov 3, 2026
- razzant/claudexor“Idle runtime-replacement stop can admit commands while retention drains”GitHub · Nov 2, 2026
- razzant/OuroborosHub“Memory Atlas 0.3.0: rooms beside a canonical memory reader”GitHub · Oct 29, 2026
The biggest 5 of 33 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 33
Talked about on GitHub (33 times).
On GitHub · 33
- Nov 6, 2026a2a: keep a host-terminal "lost" operation terminal (1.5.1) — razzant/OuroborosHub0 reactions
- Nov 6, 2026Chrome: use Connect tools instead of manual MCP JSON setup — razzant/OuroborosHub0 reactions · 1 comment
- Nov 3, 2026Ginux: "S for Security" — gmkurtzer/ginux0 reactions · 1 comment
- Nov 2, 2026Idle runtime-replacement stop can admit commands while retention drains — razzant/claudexor0 reactions · 1 comment
- Oct 29, 2026Memory Atlas 0.3.0: rooms beside a canonical memory reader — razzant/OuroborosHub0 reactions
28 more on GitHub
- Oct 21, 2026Place connectors: Slack, Telegram, email, A2A and AgentRQ become places — razzant/OuroborosHub0 reactions
- Oct 21, 2026Streaming: two signed reasoning.text blocks of one Claude answer are merged, so the replay fails with "Invalid signature in thinking block" — OpenRouterTeam/ai-sdk-provider0 reactions
- Oct 15, 2026Deliver Slack mentions with current thread context — razzant/OuroborosHub0 reactions
- Oct 14, 2026Release Presence input queues while retaining unresolved work — razzant/OuroborosHub0 reactions
- Oct 12, 2026Add harness: Ouroboros (razzant) — auron-labs/harness-detect0 reactions
- Oct 6, 2026feat: opt-in Check-in agreements with Glassscale attribution — razzant/OuroborosHub0 reactions
- Sep 21, 2026[Experiment] Ouroboros S fixture — frozen independent-review packet — opensiro/vsm-harness-index0 reactions
- Sep 14, 2026Preserve Codex failure evidence and known terminal outcomes — razzant/claudexor0 reactions · 6 comments
- Sep 12, 2026Advisory processing preferences for model calls and agent sessions — razzant/claudexor0 reactions · 1 comment
- Aug 30, 2026Render typed quota absence reasons in the Claudexor Quotas widget — razzant/OuroborosHub0 reactions
- Aug 30, 2026Classify refreshable Claude quota failures honestly — razzant/claudexor0 reactions
- Aug 11, 2026Add Ouroboros to self-modifying harnesses — leezythu/Awesome-Harness-Self-Improvement0 reactions
- Aug 11, 2026Add Ouroboros to Harness and Runtime Architecture — FrontisAI/Awesome-Self-Improving-Agents0 reactions
- Aug 11, 2026Add Ouroboros to Harnesses and Orchestration — js-lee-AI/awesome-agent-loop-papers0 reactions · 1 comment
- Aug 11, 2026Add Ouroboros to Agent Architecture Self-Evolution — iSEngLab/Awesome-Self-Evolving-Coding-Agents0 reactions · 1 comment
- Aug 2, 2026Add Ouroboros to Autonomous Agent Task Solver Projects — Jenqyang/Awesome-AI-Agents0 reactions · 1 comment
- Aug 2, 2026Add Ouroboros to Harness Architecture and Orchestration — Picrew/awesome-agent-harness0 reactions · 3 comments
- Aug 2, 2026Add Ouroboros to Single-Agent Frameworks — alvinreal/awesome-opensource-ai0 reactions · 1 comment
- Aug 2, 2026Add Ouroboros to Self-Hosted Agents and UIs — caramaschiHG/awesome-ai-agents-20260 reactions · 1 comment
- Aug 2, 2026Add Ouroboros — kaushikb11/awesome-llm-agents0 reactions · 3 comments
- Aug 2, 2026Scope check: Ouroboros, reviewed self-modifying agent runtime — ANative-Lab/Awesome-Self-Evolving-Agents0 reactions
- Aug 2, 2026Add razzant/ouroboros — vince-lam/awesome-local-llms0 reactions · 1 comment
- Aug 2, 2026Add project: Ouroboros — mahmoud/awesome-python-applications0 reactions
- Aug 2, 2026Add project: Ouroboros — RyanAlberts/best-of-Agent-Harnesses0 reactions · 4 comments
- Aug 1, 2026Take a look at another self-evolving harness — yologdev/yoyo-evolve0 reactions · 3 comments
- Jul 29, 2026Add Ouroboros system + full default run (claude-sonnet-4.6): normalized reward 0.2301 — pgasawa/continual-learning-bench0 reactions · 3 comments
- Jun 9, 2026Добавить агента дейва на сайт — minsk-hackerspace/hackerspace.by0 reactions · 2 comments
- May 27, 2026feat(transport): add send_video tool and chat.video transport ax — joi-lab/ouroboros-desktop0 reactions
Other versions2 projects use a version of this.
Word for word · 2
- joi-lab/ouroboros★ 897100% same
- joi-lab/ouroboros-desktop★ 209100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- docs/llms.txtllms.txt
- Browser speechSkill
- Device voiceSkill
- gemini_liveSkill
- grok_realtimeSkill
- live_conversationSkill
- openai_realtimeSkill
- telegramSkill
- TemplatesSkill
- ui_designSkill
- unix_computer_useSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 64
All given fields must match at once ("and", not "or").
- Very specific: line 93
All four tools fit the host's JSON-string relay.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Windows Computer Use (UI Automation)
Reads a Windows window as text - roles, labels, values, states, rectangles -
through UI Automation, and performs actions on named elements through their
UIA patterns. It ships with Ouroboros and is on by default on Windows only
(os: win32); macOS and Linux use the bundled unix_computer_use. It
deliberately does not take screenshots, click at coordinates or send general
keystrokes, so surfaces that expose no UI Automation elements (canvas-drawn
apps, remote desktops, some games) read as empty or partial.
Ported from Yegor Kosyrev's Praxis/Hélène uia.rs/element.rs, keeping
its contracts. See NOTICE for source links, the upstream Apache-2.0
licence and attribution; the contribution's licensing is a separate matter.
Tools
window_list- visible top-level windows that have a title (hwnd, title, class, pid, rect, foreground flag), front to back; untitled windows are left out. It stops atlimit(default 100, at most 500, echoed back); a listing cut there saystruncated_by: [limit]andtotal_known: false. Use it to pick anhwndfor the other tools.window_read- the whole window (or the onehwndnames) as a tree/flat list of elements:role,name,value,automation_id,class,rectwithcenter, and astateblock whose missing keys mean the element does not expose them - not false. Limits (max_nodes,max_depth,max_children_per_node,max_text_chars,timeout_ms) come back in the answer with their ceilings; every cut is named intruncated_byandnotes, includingresult_sizewhen a large reading is cut to what the host relays.backend=win32forces the plain Win32 reader (classic child windows only);autouses UIA then Win32, namingfallback_reason. Each reader has itstimeout_msbudget; the host allows 50 seconds for both plus setup.element_find- search the tree by selector (automation_id,role,name,name_contains,value_contains; AND semantics), returning every match up tolimit.timeout_ms=0(default) means "look now"; a positive value waits for the first match.element_act- do something to the element a selector names:invoke | set_value | toggle | expand | collapse | select | scroll_into_view | focus. The action goes through the element's UIA pattern - there is no fallback to clicking at coordinates; if the element lacks the pattern the refusal lists the patterns it does support.set_valueneedstextas a string:""clears the field, null is refused.
Selector contract (the important part)
- All given fields must match at once ("and", not "or").
automation_idis exact and case-sensitive;role/namefold case (Cyrillic included). - Two matches without
select.nthis a refusal with the match count and candidates (a display prefix if too large); the tool never picks for you. - Supplied selector text fields must be non-blank strings. A number or null is rejected, not dropped; matching keeps the full original strings and whitespace.
- "Not found", "didn't finish reading the window" and "an element did not
answer a field the selector names" are different answers
(
searched_whole_window,reason,unreadable_candidates) and are never confused: an unreadable candidate makeselement_actrefuse. Onelement_act,stopped_before_timeout_msandlast_walk_msdisclose an early wait stop. - Ids index one answer only; re-find elements by
automation_id/hwnd.
Honesty rules
- Receipts say what was invoked and what the element looks like after;
whether the goal was achieved stays your judgment.
action_outcome=completedmeans the call returned, not that the goal succeeded. Failed after-reads retain that outcome withafter_read=partial|unavailableand named unread fields. An exception inside an action isaction_outcome=unknown, distinct from a pre-call refusal; a worker that did not answer in time also leavesaction_call_made=unknown. A host timeout/kill may prevent that receipt entirely; it proves no outcome. Check the window before retrying, never retry blindly. - A completed mutating act (all but
focusandscroll_into_view) carriesobserved_effect: true: its pattern call returned on that window, which is not proof that the goal was met; unknown outcomes and refusals never carry it.delivered_tonames that window (hwnd,title,pid) whenever the call was made. - A field the window failed to report is listed in the node's
unread, not shown as missing. - All four tools fit the host's JSON-string relay. Oversized displays name
result_size, listshown/omittedcounts and per-objectclipped_fields(original/shown UTF-16 units); these are display cuts, not unread fields. Text is capped at 4000 UTF-16 units only when the answer is too large, then lists keep a fitting prefix. A document's text in receipts and candidates shows its first 4000 units (text_truncatedwhen longer);value_containsmatches the whole text. Narrow the selector or read/filter an inner window for more; action facts and original match counts are never discarded. - A hung window normally produces a partial answer or named fallback; a slow
child setup or host stop can instead return a host error. The skill runs as an
isolated-dependency extension: every call executes in a short-lived child
process the host can kill. The host installs tested
comtypes==1.4.17into the skill's own environment while the skill is on (at boot, or when it is turned on); a failed install stays the skill's dependency state and is retried at boot.
Scope and safety
Windows-only, in the interactive session Ouroboros runs in: windows of
elevated processes may refuse an unelevated Ouroboros, and the secure desktop
is out of reach. All actions are meant for supervised, low-risk workflows under
human observation; prefer semantic application APIs when they exist, and ask
before destructive or sensitive UI actions. focus and scroll_into_view are
view-only (non-mutating); the rest change the target window. The owner can
turn the skill off on the Skills page; updates keep that choice.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

