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 imjszhang/js-eyes --skill js-google-ops-skillgit clone --depth 1 https://github.com/imjszhang/js-eyesWrote 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/imjszhang/js-eyes/js-google-ops-skill)<a href="https://agentmods.dev/skills/imjszhang/js-eyes/js-google-ops-skill"><img src="https://agentmods.dev/badge/skills/imjszhang/js-eyes/js-google-ops-skill/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/imjszhang/js-eyes/js-google-ops-skill"><img src="https://agentmods.dev/badge/skills/imjszhang/js-eyes/js-google-ops-skill.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.00044 | $0.01052 |
| Opus 5.5 | $0.00018 | $0.00421 |
| Sonnet 5.5 | $0.00009 | $0.00210 |
| Haiku 4.5 | $0.00004 | $0.00105 |
Grade A, and why
js-google-ops-skill 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 — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
js-google-ops-skill
面向 Google Search 与 Google Scholar 的只读 + 仅改自身浏览器 URL skill。架构对齐 js-hn-ops-skill / js-reddit-ops-skill:
- 数据获取:READ 只解析当前浏览器页面 DOM,不接 Custom Search API,不访问结果外链
- 标签页:READ 搜索默认开临时标签页,结束后关闭;不会切走或关闭用户已有 Google 标签页
- 安全分级:READ + INTERACTIVE;永不 DESTRUCTIVE,不登录自动化,不点同意按钮,不处理验证码
依赖与前置
- Node.js 22+、JS Eyes 2.8.5+;JS Eyes Server 已启动且浏览器扩展已连接
- 宿主设置
security.allowRawEval: true以允许 bridge 注入 - Chrome 要求 135+;Chrome 138+ 还需开启 Allow User Scripts
- 公开搜索无需登录;本 skill 只读取已有登录态,不执行登录
AI 工具
| 档位 | 工具 | 说明 |
|---|---|---|
| READ | google_search |
网页搜索(udm=14) |
| READ | google_search_news |
新闻;可选 timeRange=h|d|w|m|y |
| READ | google_search_images |
图片;只返回可见缩略图与来源页 |
| READ | google_search_scholar |
Scholar;可选 yearFrom / yearTo / sortBy |
| READ | google_session_state |
是否已登录(不返回邮箱 / cookie) |
| INTERACTIVE | google_navigate_search |
仅 location.assign,vertical=web|news|images|scholar |
公共参数:query、limit(默认 10,最大 50)、maxPages(默认 1,最大 5)、language、region、safeSearch。
统一返回:platform / toolName / vertical / query / items / pageInfo / blocker / run / ok。
命中同意页或 /sorry/ / reCAPTCHA 时立即停止。已有部分结果则 ok: true 并带 blocker;否则失败。不要重试或绕过。
CLI
cd /path/to/js-eyes/skills/js-google-ops-skill
npm install
node index.js doctor
node index.js search "nodejs" --limit 5 --pretty
node index.js news "openai" --time-range d
node index.js images "cat" --limit 8
node index.js scholar "attention is all you need" --year-from 2017
node index.js navigate-search "nodejs" --vertical web
内部踩点:node index.js dom-dump(截断 outline,不含整页 HTML)。
启用
js-eyes skills link /path/to/js-eyes/skills/js-google-ops-skill
js-eyes skills reload
Page profiles
| profile | host | bridge |
|---|---|---|
search |
www.google.com/search |
__jse_google_search__ |
scholar |
scholar.google.com/scholar |
__jse_google_scholar__ |
What ships with it
39 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.
- bridges/common.js 4.4 KB runs code
- bridges/scholar-bridge.js 2.9 KB runs code
- bridges/search-bridge.js 4.4 KB runs code
- CHANGELOG.md 482 B
- cli/index.js 9.8 KB runs code
- docs/dev/serp-contract.md 2.5 KB
- index.js 390 B runs code
- lib/commands.js 9.2 KB runs code
- lib/config.js 2.5 KB runs code
- lib/debug.js 121 B runs code
- lib/history.js 155 B runs code
- lib/runContext.js 719 B runs code
- lib/runtimeConfig.js 993 B runs code
- lib/runTool.js 6.5 KB runs code
- lib/sanitize.js 836 B runs code
- lib/searchRunner.js 5.1 KB runs code
- lib/serp/pageAdapters.js 1.5 KB runs code
- lib/serp/parsers.js 15 KB runs code
- lib/session.js 11 KB runs code
- lib/toolTargets.js 4.0 KB runs code
- package.json 930 B
- scripts/smoke-browser.js 898 B runs code
- skill.definition.js 10 KB runs code
- skill.entry.js 194 B runs code
- skill.manifest.json 9.2 KB
- tests/blockers.test.js 1.6 KB runs code
- tests/commands.test.js 1.5 KB runs code
- tests/contract.test.js 1.6 KB runs code
- tests/fixtures/captcha.html 263 B
- tests/fixtures/consent.html 266 B
- tests/fixtures/empty.html 218 B
- tests/fixtures/images.html 668 B
- tests/fixtures/news.html 633 B
- tests/fixtures/scholar.html 914 B
- tests/fixtures/web.html 736 B
- tests/parsers.test.js 5.2 KB runs code
- tests/search-runner.test.js 3.0 KB runs code
- tests/session.test.js 4.6 KB runs code
- tests/targets.test.js 2.1 KB runs code
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 Changed · +4 lines 1d82e613d4c7
- 2mo ago First seen · 89 lines · 44 tokens per session scan A 21bda9522973
js-google-ops-skill is a skill published in the GitHub repository imjszhang/js-eyes (45 stars, last pushed 2d ago), licensed MIT. It adds 44 tokens to every session and 1,052 once invoked, about $0.0002 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-09-04.
js-google-ops-skill compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| js-google-ops-skillimjszhang/js-eyes | Skill | 45 | 2d ago | MIT | A | 44 | Claude Code, Codex |
| interactive-loginyc-software/qm | Skill | 16k | yesterday | MIT | A | 46 | Claude Code, Codex |
| pinchtab-mcppinchtab/pinchtab | Skill | 11k | 10d ago | MIT | A | 52 | Claude Code, Codex |
| azure-messaging-webpubsub-javamicrosoft/skills | Skill | 3.2k | yesterday | MIT | A | 43 | Claude Code |
| cua-driverdavidondrej/skills | Skill | 4.3k | 3d ago | MIT | A | 68 | Claude Code, Codex |
| open-design-browsercompozy/compozy | Skill | 2.8k | yesterday | MIT | A | 56 | Claude Code, Codex |
| southwestborski/travel-hacking-toolkit | Skill | 895 | yesterday | MIT | A | 40 | Claude Code |