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 agentmods add skills/jmsa/argus/dom-interactionnpx skills add Jmsa/argus --skill dom-interactiongit clone --depth 1 https://github.com/Jmsa/argusWhat 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 | $0.00000 | $0.00595 |
| Opus 5 | $0.00000 | $0.00298 |
| Sonnet 5 | $0.00000 | $0.00119 |
| Haiku 4.5 | $0.00000 | $0.00060 |
Grade A, and why
dom-interaction 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 2d 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 — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Argus DOM Interaction Skill
Use this workflow to interact with and test page UIs using Argus DOM tools.
Tools Available
| Tool | Purpose |
|---|---|
dom_query |
Inspect a single element (tag, text, rect, attributes, visibility) |
dom_query_all |
Inspect multiple elements matching a selector |
dom_click |
Click an element (scrolls into view first) |
dom_input_value |
Type into an input (dispatches React/Vue-compatible events) |
dom_get_value |
Read the current value of an input |
dom_wait_for |
Poll until an element exists (and optionally is visible) |
Standard Workflow
1. Open and inspect the page
tab_open { url: "https://your-app.com" }
→ note the targetId
dom_query { targetId, selector: "h1" }
→ confirms page loaded, shows title text and rect
2. Fill a form
dom_input_value { targetId, selector: "input[name=email]", text: "[email protected]", clear: true }
dom_input_value { targetId, selector: "input[name=password]", text: "secret", clear: true }
dom_click { targetId, selector: "button[type=submit]" }
3. Wait for async results
After triggering navigation or an API call, wait for the result to appear:
dom_wait_for { targetId, selector: ".results-list", timeout: 5000, visible: true }
If the wait times out, take a screenshot to diagnose:
tab_screenshot { targetId }
4. Assert content
dom_query { targetId, selector: ".success-message" }
→ check info.text matches expected value
dom_query_all { targetId, selector: "table tbody tr" }
→ check returned array length matches expected row count
5. Interact with dynamic UI
For React/Vue controlled inputs, dom_input_value uses the native input value setter and dispatches input + change events — this correctly triggers framework state updates.
For custom components that don't use native inputs, fall back to page_evaluate with custom JS.
Tips
- Use
dom_querybeforedom_clickto confirm the element exists and is visible dom_query_allwithlimitkeeps results manageable for large listsdom_wait_for { visible: true }is more reliable thandom_wait_foralone after animations- Combine with
console_start+network_start_recordingto capture side effects of interactions - If
dom_clickdoesn't work (e.g. custom event handlers), usepage_evaluateto dispatch aMouseEvent
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.
- 2d ago First seen · 73 lines · 0 tokens per session scan A a46de3ab4b97
dom-interaction is a skill published in the GitHub repository Jmsa/argus (0 stars, last pushed 5mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 595 tokens. 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-31.
Other skills, from other repositories
qa
QA-test a website or web app and return a 1-5 quality score (5 = flawless, 1 = broken) with evidence. Use when the user wants to test, QA, evaluate, score, or "check how good" a site, page, flow, or app — including a local dev server (e.g. "qa test localhost:5173", "does the checkout work?", "rate this landing page").…
actionbook-web-test
Run browser-based web tests against websites using Actionbook CLI. Activate when the user wants to test a website workflow, run smoke tests, verify a user flow, check if a web application works, run regression tests, or validate browser-based interactions. Supports test definition, execution, assertion, reporting, and…
browser-viz-verify
Verifies that a NetClaw-generated visualization HTML file (three.js, canvas, drawio, UML, markmap) actually renders correctly — screenshot, console-error check, and an optional Lighthouse audit. Use immediately after generating any browser-based visualization output, to close the QA gap that otherwise requires a human…
kane-cli
Browser automation + AI test authoring via kane-cli - run browser objectives, generate & refine test scenarios/cases from a description, design requirement-linked test suites from a PRD/spec (assurance), parse NDJSON output, inspect logs, save runnable test.md. Use for any task requiring a real browser (navigate…
playwright-skill
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to $TMPDIR (or /tmp). Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser…
playwright-cli
Use when a task needs Playwright-backed browser automation from the shell: open or attach to browser sessions, inspect snapshots and element refs, click/type/fill forms, debug Playwright tests, inspect console/network/storage, run Playwright snippets, capture screenshots/traces/videos, or generate reliable test code.…