Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/imjszhang/js-eyesnpx agentmods add skills/imjszhang/js-eyes/js-x-ops-skillWrote 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-x-ops-skill)<a href="https://agentmods.dev/skills/imjszhang/js-eyes/js-x-ops-skill"><img src="https://agentmods.dev/badge/skills/imjszhang/js-eyes/js-x-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-x-ops-skill"><img src="https://agentmods.dev/badge/skills/imjszhang/js-eyes/js-x-ops-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 298 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00112 | $0.11853 |
| Opus 5.5 | $0.00045 | $0.04741 |
| Sonnet 5.5 | $0.00022 | $0.02371 |
| Haiku 4.5 | $0.00011 | $0.01185 |
Grade A, and why
js-x-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 2mo 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 — 559 lines — stays where its author put it; the contents beside it link to each section on GitHub.
js-x-ops-skill
面向 x.com / twitter.com 的 skill。v3.0 起切到 PAGE_PROFILES + Bridges + Session 架构,参考 js-reddit-ops-skill 的设计取舍:
- 数据获取:READ 数据优先走 X.com 内部 GraphQL 同源端点(
/i/api/graphql/<queryId>/<op>),与浏览器同源、复用 cookie + bearer;DOM 解析(bridges/common.js::parseTweetArticle)保留为兜底 - safety 分级:READ + INTERACTIVE 已经落地;DESTRUCTIVE(reply / post / quote / thread)目前透传 v2.0.1 的
scripts/x-post.js,v3.1 拆 compose-bridge 后将走--confirm+ 默认--dry-run
依赖与前置
- Node.js 22+、JS Eyes 2.8.5+;JS Eyes Server 已启动(
js-eyes server start) - 浏览器扩展:已安装并连上 server
- 登录态:浏览器里已经人工登录 x.com(本 skill 不做任何登录自动化);READ 工具默认
navigateOnReuse=false / reuseAnyXTab=true,bridge 在任意 x.com / twitter.com tab 里 fetch 同源 GraphQL;用户当前 tab 不会被切走 - Raw Eval:bridge 首次注入需要宿主设置
security.allowRawEval: true;JS Eyes 2.5+ 会把该设置同步到扩展,扩展存储中的显式false仍可强制关闭 - Chrome:要求 135+;Chrome 138+ 还需开启浏览器控制的 Allow User Scripts
安全红线(READ / INTERACTIVE / DESTRUCTIVE)
本 skill 的所有工具都会被归入以下三档之一。审计界线按「是否改 X 业务数据」而非「是否触网」来划:
READ(默认档)
纯读,不改任何 DOM、不改 URL、不触发任何业务写操作。
- 走
fetchXGraphQL(opName, vars, features)调 X.com 内部 GraphQL(GET,复用浏览器同源 cookie + 写死 bearer) - DOM 路径仅作为 bridge 失败时的兜底,由
bridges/common.js::parseTweetArticle / collectTweetsFromDom提供 - 工具:
x_search_tweets/x_get_profile/x_get_post/x_get_home_feed/x_session_state
INTERACTIVE(v3.0+)
只改浏览器自己的 URL,不改 X 侧任何业务数据。实现硬约束:
- 仅
location.assign(newUrl),禁止模拟点击任何 DOM CTA - bridge 端
navigateLocation()拒绝跨域 URL(必须是*.x.com/*.twitter.com) - 调用返回
{from, to, hint},CLI 端awaitBridgeAfterNav重注 bridge + state 自校验 skill.definition.js里带interactive: true/destructive: false- 工具:
x_navigate_search/x_navigate_profile/x_navigate_post/x_navigate_home
DESTRUCTIVE(v3.0 透传 v2 行为,v3.1 拆专用工具)
x_get_post 的 schema 里仍保留 --reply / --post / --quote / --thread / --image / --thread-delay / --thread-max / --reply-style 等写参数(v2.0.1 行为,CLI 透传 scripts/x-post.js),description 标 deprecated。等 v3.1 完成后:
What ships with it
60 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.
- .env.example 854 B
- bridges/_visual-x.js 4.0 KB runs code
- bridges/common.js 42 KB runs code
- bridges/home-bridge.js 12 KB runs code
- bridges/post-bridge.js 24 KB runs code
- bridges/profile-bridge.js 20 KB runs code
- bridges/search-bridge.js 17 KB runs code
- cli/index.js 21 KB runs code
- commands/post-options.js 12 KB runs code
- docs/dev/bridges-cheatsheet.md 19 KB
- docs/dev/monitor.md 12 KB
- dom/post-read.js 2.3 KB runs code
- dom/post-write.js 31 KB runs code
- flows/post-write.js 7.8 KB runs code
- flows/post.js 24 KB runs code
- graphql/tweet-detail.js 27 KB runs code
- graphql/tweet-parser.js 6.8 KB runs code
- graphql/tweet-write.js 9.5 KB runs code
- index.js 745 B runs code
- lib/api.js 4.3 KB runs code
- lib/api/bridge-routing.js 1.2 KB runs code
- lib/api/fallback.js 7.6 KB runs code
- lib/api/home.js 8.5 KB runs code
- lib/api/post.js 9.0 KB runs code
- lib/api/profile.js 9.7 KB runs code
- lib/api/public.js 14 KB runs code
- lib/api/run-context.js 5.8 KB runs code
- lib/api/run-tool.js 13 KB runs code
- lib/api/script-loaders.js 466 B runs code
- lib/api/search.js 9.6 KB runs code
- lib/articleContentState.js 21 KB runs code
- lib/bridgeAdapter.js 15 KB runs code
- lib/cliVisualFlags.js 719 B runs code
- lib/commands.js 25 KB runs code
- lib/config.js 3.7 KB runs code
- lib/downloadMedia.js 5.5 KB runs code
- lib/media.js 4.2 KB runs code
- lib/monitor/config.js 6.3 KB runs code
- lib/monitor/daemon.js 6.6 KB runs code
- lib/monitor/dedup.js 2.5 KB runs code
- lib/monitor/dispatcher.js 17 KB runs code
- lib/monitor/fetchAccount.js 2.2 KB runs code
- lib/monitor/format.js 3.9 KB runs code
- lib/monitor/logs.js 758 B runs code
- lib/monitor/notify.js 7.1 KB runs code
- lib/monitor/paths.js 1.8 KB runs code
- lib/monitor/runCheck.js 11 KB runs code
- lib/monitor/state.js 2.0 KB runs code
- lib/official-api/articleMedia.js 4.6 KB runs code
- lib/official-api/buildSearchQuery.js 1.5 KB runs code
- lib/official-api/client.js 31 KB runs code
- lib/official-api/dispatcher.js 23 KB runs code
- lib/official-api/draftJsBuilder.js 11 KB runs code
- lib/official-api/httpFetch.js 4.3 KB runs code
- lib/official-api/index.js 976 B runs code
- lib/official-api/media.js 13 KB runs code
- lib/official-api/normalizeSearchTweet.js 3.3 KB runs code
- lib/postMediaDownload.js 2.0 KB runs code
- lib/profile-enrich.js 1.6 KB runs code
- lib/promotedDetection.js 2.0 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.
- 2mo ago First seen · 559 lines · 112 tokens per session scan A 086dad52752c
js-x-ops-skill is a skill published in the GitHub repository imjszhang/js-eyes (45 stars, last pushed 2d ago), licensed MIT. It adds 112 tokens to every session and 11,853 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.
js-x-ops-skill compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| js-x-ops-skillimjszhang/js-eyes | Skill | 45 | 2d ago | MIT | A | 112 | 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 |