Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

agent-reach

skill:panniantong/agent-reach#skill

只读读取各平台内容:搜索、读帖、看评论、取字幕、查行情和职位。 Use when 用户提到或贴出链接:小红书/xiaohongshu、B站/bilibili、Twitter/X、Reddit、 YouTube(字幕、转录)、GitHub、V2EX、雪球/股票行情、LinkedIn/Boss直聘 职位、 Instagram、Facebook、小宇宙播客;或说"帮我搜/看看/读一下这个链接"而自带网页搜索/读取不可用、失败或拿不到正文; 或要安装、加上/去掉某个平台、登录/退出、看状态、更新、卸载 Agent Reach。 不做:发帖、评论、点赞、私信等任何写操作;不替用户登录、不索要密码。 公开内容优先用 Agent 自带工具,Reach 补缺口。

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 22:31 UTC at 14c2134

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

8
findings
critical
highest severity
4
threat classes
118
files scanned
77/77
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/SKILL.md:36:CRED
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/SKILL.md:36:HIJACK
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/SKILL_en.md:82:SUPPLY
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/references/maintenance.md:5:SUPPLY
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/references/maintenance.md:7:EXEC
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/references/sessions.md:15:CRED
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/references/sessions.md:5:EXEC
  • suspicious: finding skill:agent_reach/skill:agent_reach/skill/references/sessions.md:9:SUPPLY

Security findings 8

Credential access

criticalContextual riskmedium confidence

On first use of a site the program automatically copies that site's session cookies from the user's Chrome into the tool's own dedicated-browser profile without per-copy confirmation; the copy is explicitly scoped to one site and stored locally, but it is a real credential-access capability over the user's browser session store.

程序把该站的登录(只限该站 Cookie)复制一次到专用浏览器
trigger:conditionalvector:codevector:instructionvector:mixed
Counter-argument considered

The one-time automatic copy of a site's cookies from the user's Chrome into the tool's own profile runs without per-copy confirmation, and the agent-triggered `--import-existing` re-copy (flagged as contradicting the declared read-only claims) is a genuine credential-access capability; single-site scoping limits severity but does not remove it.

Code execution

highContextual riskmedium confidence

Maintenance instructions direct the agent to run `agent-reach browser setup`, which downloads and installs a browser kernel and browser extension (retried via `browser setup --retry-cloak` for 'CloakBrowser'), staging and executing fetched binaries on the host from undisclosed sources.

准备内核和扩展,`browser stop` 关闭;CloakBrowser 下载失败后修好网络可 `browser setup --retry-cloak`
vector:instruction
Counter-argument considered

`browser setup` stages and launches a downloaded CloakBrowser kernel and extension; no unit names the download source, and the local-Chrome fallback applies only when the download fails, so fetched binaries execute on success — a fetch-and-execute chain no carve-out covers.

Code execution

highContextual risklow confidence

SKILL.md instructs the agent to run `agent-reach add <channel>`, which auto-installs dependencies (Node, OpenCLI, browser kernel, extension) fetched at runtime from destinations not stated in the shown text.

`agent-reach add <渠道>` 自动准备 Node、OpenCLI、内核和扩展。
vector:instruction
Counter-argument considered

`agent-reach add` fetches Node, OpenCLI, kernel and extension at runtime; the only qualification in the units is that tools install at versions tested with the release, and no download destination is stated, so the fetch-and-execute chain remains unverifiable and no carve-out applies.

Credential access

highContextual risklow confidence

SKILL.md instructs the agent to have the user hand over a secret key and then relay it as a command-line argument to `agent-reach configure <key>`, placing the credential on the process command line where shells and process listings can expose it.

要密钥时请用户本人提供,再 `agent-reach configure <key>`
vector:instruction
Counter-argument considered

The instruction is genuine: the agent relays a user-supplied secret as a command-line argument to configure the tool, which the env-key carve-out does not cover (argv, not env) and no unit mitigates; the key is user-provided for the wrapped service itself, so this stands as a low-severity contextual risk.

Supply chain

mediumContextual risklow confidence

The skill instructs the agent to run `agent-reach update`, which upgrades Agent Reach, the tools of added channels, and the skill itself, replacing installed code with unpinned content from an update source the units do not disclose beyond the GitHub homepage metadata.

升级 Agent Reach、已加渠道的工具和 skill
vector:instruction
Counter-argument considered

User consent gates the update, but the units name no update endpoint or pinning while `agent-reach update` replaces the tool, the channel tools and the skill itself; consent is not source verification, so the self-replacement supply chain stands.

Supply chain

mediumContextual risklow confidence

SKILL.md and maintenance.md instruct the agent to run `agent-reach add`, `browser setup` and `agent-reach update`, which auto-download and install Node, OpenCLI, the CloakBrowser kernel and a browser extension and self-update the tool and skill from sources absent from the repository, so endpoints and version pinning cannot be verified by any reviewer.

自动准备 Node、OpenCLI、内核和扩展
vector:instruction
Counter-argument considered

Across add, browser setup and update the units never state an endpoint or a verifiable pin, while the commands download Node, OpenCLI, the CloakBrowser kernel and an extension and replace the tool and skill themselves, so neither agent nor reviewer can verify what executes; the consolidated supply finding stands.

Supply chain

mediumContextual risklow confidence

The skill instructs the agent to run `agent-reach add <channel>` in response to a user add request, where dependencies install automatically, triggering a dependency installation chain whose registry, versions, and install scripts are not disclosed in the shown units.

dependencies install automatically
vector:instruction
Counter-argument considered

Auto-install on `add` executes fetched code, and the shown units disclose no registry, version list or install scripts beyond the phrase that dependencies install automatically, so the pinned-official-registry carve-out cannot apply and the supply-chain opacity stands.

Agent hijacking

mediumContextual risklow confidence

SKILL.md directs the agent to describe upstream outages to the user without naming the tool responsible (不说工具名), shaping what the user is told about the cause of failures.

用平台名告诉用户哪个平台暂时用不了、大概是什么原因,不说工具名
vector:instruction
Counter-argument considered

The skill scripts the agent's user-facing outage explanation to name only the platform and withhold the tool, steering attribution of failures away from agent-reach; no carve-out or mitigation in the units neutralizes this narrative control, so the finding stands at low severity.

Open questions 5

What the analysis could not settle from the code alone.

The {{CHANNEL_TABLE}} and {{VERSION}} placeholders are substituted at install time, so the actual channel list and version text the agent will read is not present in the shown content; do the substituted values stay within the declared read-only scope?
Where does `agent-reach browser setup` download the CloakBrowser kernel and extensions from, and are those downloads pinned and integrity-checked?
Supply chain
By what mechanism does the OpenCLI extension expose the user's Chrome login cookies to the program, and is the copy verifiably limited to the single visited site's cookies without reading other browser data?
Credential access
The PY-CLAIM-CONTRADICTION leads report a CLI docstring claim 'Read-only; prints one JSON object by default.' contradicted by file writes; the CLI source is not among the shown units, so which writes the binary actually performs (versus the spurious `[参数]`/`--text`/`[args]`/`--sync` token matches, which I could not confirm as file writes) is unverified.
Persistence
Whether the OpenCLI extension connection enabling the site-cookie copy is installed with explicit user consent and whether the program's cookie read is technically restricted to the requested site, as the reference doc claims.
Credential access
Refuted findings 2

Candidates the review stage examined and rejected, kept for transparency.

Persistence

criticalRefutedlow confidence

The management table has the agent write the skill into another AI's skills folder via `agent-reach skill link`, a control-plane write outside the invoking agent that is user-initiated and declared in the command table but whose destination content cannot be verified from the skill itself.

`agent-reach skill link <that AI's skills folder>`
Why it was refuted

Like the Chinese twin, this is a user-initiated management row: the user asks for another AI to use the tool and supplies the destination folder, and the written content is this same reviewed skill, so the write is the declared install capability rather than persistence beyond user intent.

Persistence

criticalRefutedlow confidence

SKILL.md instructs the agent to run `agent-reach skill link <dir>`, which installs this skill into another AI's skill directory, writing into that agent's configuration.

`agent-reach skill link <那个 AI 的 skill 目录>`
Why it was refuted

The link command runs only when the user asks to let another AI use the tool and writes the same reviewed skill into a user-supplied directory, which is the declared install/manage capability and reversible via the documented uninstall; the covert/agent-initiated persistence premise fails.