Skip to content

page-as-data

Install as an agent skill

One command teaches the coding agents in a project to read screens with page-as-data instead of taking screenshots:

npx @keenskills/page-as-data init

In a terminal it runs a short wizard. It checks Node and Chrome, asks which agents to set up (the ones found in the project are ticked), shows the files before writing them, offers to read your app once, and ends with commands to copy. In scripts, CI and agents, or with --yes, it asks nothing.

It finds the agents the project already uses and writes each one's own file:

Agent File
Claude Code .claude/skills/page-as-data/SKILL.md
Codex, opencode, Amp and other AGENTS.md readers a block in AGENTS.md
Gemini CLI a block in GEMINI.md
Cursor .cursor/rules/page-as-data.mdc
Windsurf .windsurf/rules/page-as-data.md
Cline .clinerules/page-as-data.md (a block, when .clinerules is one file)
GitHub Copilot .github/instructions/page-as-data.instructions.md

When it finds none, it installs for Claude Code and AGENTS.md. Run it again to update. It changes only what it wrote: in AGENTS.md and GEMINI.md, only the text between <!-- page-as-data:start --> and <!-- page-as-data:end -->.

Option What it does
--yes Ask nothing; use the agents found in the project.
--agent claude,cursor Choose agents: claude, agents, gemini, cursor, windsurf, cline, copilot, or all.
--global Install the Claude Code skill for every project, in ~/.claude/skills.
--force Replace a same-named file that page-as-data did not write.
--dry-run Show what would change, and write nothing.
--dir path The project folder. Default: the current folder.

npx @keenskills/page-as-data uninstall removes what init wrote, and nothing else.

As a Claude Code plugin

/plugin marketplace add keenskills/skills
/plugin install page-as-data@keenskills