Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add hyqibot/token-free-openclaw --skill native_window_controlgit clone --depth 1 https://github.com/hyqibot/token-free-openclawWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hyqibot/token-free-openclaw/native_window_control)<a href="https://agentmods.dev/skills/hyqibot/token-free-openclaw/native_window_control"><img src="https://agentmods.dev/badge/skills/hyqibot/token-free-openclaw/native_window_control/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hyqibot/token-free-openclaw/native_window_control"><img src="https://agentmods.dev/badge/skills/hyqibot/token-free-openclaw/native_window_control.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00095 | $0.00687 |
| Opus 5.5 | $0.00038 | $0.00275 |
| Sonnet 5.5 | $0.00019 | $0.00137 |
| Haiku 4.5 | $0.00010 | $0.00069 |
Grade A, and why
native_window_control scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Native Window Control (Windows UI Automation)
For already-open native desktop app windows: list windows, snapshot controls, click buttons/tabs, type into edit controls. Unlike browser tooling, this operates native desktop windows (exe, desktop apps), not web pages.
When to use
- User says: "Click the Start button in XX app", "Click the second tab in XX window", "Type 123 into the input in XX window"
- User wants the agent to operate an already-open desktop app UI (exe window with tabs/buttons)
- Combine with screenshot tool: capture the window first, then use this skill to click or type
Prerequisites
- OS: Windows only.
- Dependencies:
pip install pywinauto. Run the script from the skill'sscripts/directory with Python.
How to run (script in this skill)
This skill provides a Python script scripts/native_window.py. Run it from the skill directory (or with the script path pointing at this skill's scripts folder). Working directory should be the skill root or the folder containing native_window.py.
Usage:
python scripts/native_window.py <action> [window_title] [ref] [text]
-
list_windows — List visible windows (title, PID). No extra args.
Example:python scripts/native_window.py list_windows -
snapshot — Get control tree for a window (substring match on title).
Example:python scripts/native_window.py snapshot "Notepad"
Returns JSON withcontrolsarray; each hasref,control_type,name. Usereffor click/type_text. -
click — Click a control by window title substring and ref.
Example:python scripts/native_window.py click "Notepad" "2" -
type_text — Type into a control.
Example:python scripts/native_window.py type_text "Notepad" "1" "hello"
Recommended flow
- list_windows → identify the target window title.
- snapshot with that title substring → get controls and refs.
- click or type_text with the same title and the chosen ref (and text for type_text).
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 61 lines · 95 tokens per session scan A 004be19ceeb8
native_window_control is a skill published in the GitHub repository hyqibot/token-free-openclaw (134 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 95 tokens to every session and 687 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
tmux
Use when a CLI task needs an interactive terminal or control of a tmux session.
add-matrix
Add Matrix channel integration via Chat SDK. Works with any Matrix homeserver.
add-resend
Add Resend (email) channel integration via Chat SDK.
add-macos-statusbar
Add a macOS menu bar status indicator for NanoClaw. Shows a bolt icon with a green/red dot indicating whether NanoClaw is running, with Start, Stop, and Restart controls. macOS only.
sandbase
Access 2,000+ AI models and API tools through one MCP interface for inference, media generation, search, scraping, embeddings, social data, and structured retrieval. Use sandbasediscover before building custom integrations or declaring external data inaccessible; prefer an existing dedicated tool or API key when the…
communication
Use before sending @mentions, deciding whether to reply, TASKCOMPLETED, BLOCKED, QUESTION, direct answers, loop prevention, or suppressing low-information acknowledgements.