dom-interaction

A workflow for inspecting and testing web-page controls through Argus DOM tools.

In plain words
What is it for?
Testing page loading, forms, buttons, inputs, and results that appear after navigation or other page actions.
Why use it?
It gives the agent a repeatable way to check elements, enter form data, click controls, and wait for pages to update.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/jmsa/argus/dom-interaction
Any agent
npx skills add Jmsa/argus --skill dom-interaction
Clone the repo
git clone --depth 1 https://github.com/Jmsa/argus

Made for: Claude Code, Codex.

Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 595 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 2d ago against content hash a46de3ab4b97, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

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.

skills/dom-interaction/SKILL.md · 73 lines

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_query before dom_click to confirm the element exists and is visible
  • dom_query_all with limit keeps results manageable for large lists
  • dom_wait_for { visible: true } is more reliable than dom_wait_for alone after animations
  • Combine with console_start + network_start_recording to capture side effects of interactions
  • If dom_click doesn't work (e.g. custom event handlers), use page_evaluate to dispatch a MouseEvent

Read the full file on GitHub · 73 lines

Changes

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.

  1. 2d ago First seen · 73 lines · 0 tokens per session scan A a46de3ab4b97

Subscribe to this mod's changes

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.

Related

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").…

browser-use/browser-use · 103 tokens

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…

actionbook/actionbook · 71 tokens

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…

automateyournetwork/netclaw · 84 tokens

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…

LambdaTest/kane-cli · 159 tokens

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…

appautomaton/webmaton · 83 tokens

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

appautomaton/webmaton · 91 tokens