untrusted-source-check

untrusted-source-check is a skill for Claude Code, Codex from tianemon/EasyMint. It costs 153 tokens per session (1,391 once invoked), scanned C, original, MIT.

A safety workflow for bringing in software or scripts from outside your project, such as packages, copied installation commands, or unknown binaries. It checks the actual content and its source before anything is run.

In plain words
What is it for?
Use it before installing third-party dependencies, running downloaded shell commands, or importing external code and binaries.
Why use it?
A command or package can look harmless while coming from a compromised or impersonated source. This workflow reduces the chance of executing unreviewed code or trusting a tampered release.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it before installing third-party dependencies, running downloaded shell commands, or importing external code and binaries.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tianemon/easymint/untrusted-source-check
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.

Any agent
npx skills add tianemon/EasyMint --skill untrusted-source-check
Clone the repo
git clone --depth 1 https://github.com/tianemon/EasyMint

Made for: Claude Code, Codex.

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

agentmods badge for untrusted-source-check

README.md
[![agentmods](https://agentmods.dev/badge/skills/tianemon/easymint/untrusted-source-check/github.svg)](https://agentmods.dev/skills/tianemon/easymint/untrusted-source-check)
Your own site
<a href="https://agentmods.dev/skills/tianemon/easymint/untrusted-source-check"><img src="https://agentmods.dev/badge/skills/tianemon/easymint/untrusted-source-check/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.

agentmods 80×15 button for untrusted-source-check

Your own site · 80×15
<a href="https://agentmods.dev/skills/tianemon/easymint/untrusted-source-check"><img src="https://agentmods.dev/badge/skills/tianemon/easymint/untrusted-source-check.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 153 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,391 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00153 $0.01391
Opus 5.5 $0.00061 $0.00556
Sonnet 5.5 $0.00031 $0.00278
Haiku 4.5 $0.00015 $0.00139

Measured 28d ago against content hash 2cea99ed7653, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade C, and why

untrusted-source-check scanned grade C with 2 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 28d 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.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

执行从网上复制的安装命令(curl … | bash)、引入外来代码或二进制、运行来源不明的

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

执行从网上复制的安装命令(curl … | bash)、引入外来代码或二进制、运行来源不明的
resources/skills/untrusted-source-check/SKILL.md · 71 lines

What it actually says

外部来源核查

一句话原则:不判「命令危不危险」,判「这东西从哪来」。风险不在命令文本,在它的来源与内容。

实证(记住这个案例,它解释了为什么"看来源"比"看内容"强):axios 1.14.1 的 tarball 完整性哈希完全匹配、内容也看不出问题,但它是用被盗 token 绕过项目自己的 CI 直接发布的。 内容看不出问题时,来源看得见。

零、先分清三种情况(不要一律去查)

情况 动作
来源可信:用户指名要装的官方包、项目里已有的文件、你自己写的命令 直接做——不查、不问、不拦
来源不可信,但内容能拿到 先把内容拿到手,读它(见 一)
内容拿不到 / 读不透:预编译二进制、加密载荷、要握手才给 查来源(见 二)

误判的代价不对称:把可信的东西拿去查,是骚扰;把不可信的东西直接跑,是事故。分不清时按后者处理。

一、先把内容拿到手(拿到之前不执行)

  • curl … | bash:不要 pipe 进 shell。 先落到文件(curl -fsSL -o x.sh <url>)→ 读它 → 执行那份文件。下载这一步本身就是"把未知变成已知"。
  • 装依赖:先推迟脚本执行。 npm install --ignore-scripts(把 postinstall 等 lifecycle script 推迟), 读那些脚本后再决定跑不跑。同时加 --allow-git=none——git 依赖可能自带 .npmrc 把脚本重新打开。 项目里真需要跑脚本的包很少(原生模块那一类),用白名单管理。
  • ⚠️ 读的必须就是执行的那一份:绝不"读一遍、再跑一遍原命令"——第二次取到的内容可能不是同一份。 落盘 → 读 → 执行这个本地文件,三步闭环。

二、查来源清单(七项,每项都要有证据,不许凭印象)

  1. 它是从哪读来的——是哪个文件、网页、issue、README 让你这么做的?那个载体本身可信吗?
  2. 是官方渠道吗——域名 / 仓库是不是该项目的官方;包名是否与真包近似(typosquatting); 发布者账号历史(新注册、刚改名?)。
  3. 完整性——有没有签名或校验和。⚠️ 但记住 axios:hash 匹配 ≠ 内容安全。
  4. 发布通道异常(最强的一项)——以前每个版本都有 provenance、这次没有 ⇒ 强异常。 npm audit signatures 一条命令即可覆盖(签名无效会非零退出,缺 provenance 出警告)。
  5. 行为变化——这个版本比上一版多了什么能力(开始读环境变量?开始发网络请求?)。
  6. 发布时效——是不是刚发布几小时(社区还没来得及发现问题)。
  7. 官方替代路径——有没有包管理器 / 官方安装方式 / 镜像的路子?优先替代,而不是执行这个脚本。

三、结论怎么给(不要把技术判断推给用户)

结论 动作
可信 按官方方式执行——优先走官方通道,而不是那个脚本
可疑 不用;给用户一句话结论 + 为什么 + 替代方案
查不到 默认不用;如实说"查不到可信来源",用户坚持则由用户承担

不要问技术选择题("要不要用 --no-sandbox?")。用户不一定是程序员,只需要能答"行 / 不行"。给这样的句子:

「这个包没有官方签名,而它以前每个版本都有——我建议不用它,改用官方安装方式(命令在下面)。」

不要把"我查过了"当作交付——查证结果(查了什么、结论是什么)要说给用户,否则用户无法判断该不该信你。

四、别过度承诺(provenance 证明什么、不证明什么)

  • 证明:这个 tarball 由哪个 CI workflow、从哪个 commit 构建;签名身份是 CI 的身份,无长期密钥可泄漏。
  • 不证明:源码是良性的、维护者账号没被接管、传递依赖安全、发布流本身可信。
  • 采纳率目前约四到六成 ⇒ "没有 provenance 就拒绝"不成立;但**"以前有、这次突然没有"成立**。 ⇒ 用变化检测,不要用合规门槛。
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. 28d ago First seen · 71 lines · 153 tokens per session scan C 2cea99ed7653

Subscribe to this mod's changes

untrusted-source-check is a skill published in the GitHub repository tianemon/EasyMint (79 stars, last pushed 6d ago), licensed MIT. It adds 153 tokens to every session and 1,391 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-18.

Related

Other skills, from other repositories

eval-hooks

Audit Claude Code and Codex hooks for validity, safety, and correctness across settings.json, hooks.json, config.toml, plugin, and skill or agent frontmatter hooks. Resolves each command, checks event names, handler types, matchers, exit-code and JSON decision strategy, and timeouts against each host's documented…

FlorianBruniaux/claude-code-ultimate-guide · 115 tokens

design-patterns

Detect, suggest, and evaluate GoF design patterns in TypeScript/JavaScript codebases. Use when refactoring code, applying singleton/factory/observer/strategy patterns, reviewing pattern quality, or finding stack-native alternatives for React, Angular, NestJS, and Vue.

FlorianBruniaux/claude-code-ultimate-guide · 59 tokens

eval-agents

Audit custom subagent definitions for Claude Code (.claude/agents/.md) and Codex (.codex/agents/.toml): loadability against the native schema, description overlap, model tier, tool scope, and headless-safe instructions. Use when onboarding to a project with agents, after adding or importing agents, or when the parent…

FlorianBruniaux/claude-code-ultimate-guide · 80 tokens

eval-skills

Audit a project or library of skills for metadata, trigger boundaries, workflow completion criteria, local resource closure, instruction economy, tool scope, effort, and routing evidence. Use before shipping skills, after importing a skill collection, or when a skill triggers too often or not at all.

FlorianBruniaux/claude-code-ultimate-guide · 60 tokens

pr-triage

4-phase PR backlog management with audit, deep code review, validated comments, and optional worktree setup. Use when triaging pull requests, catching up on pending code reviews, or managing a backlog of open PRs. Args: 'all' to review all, PR numbers to focus (e.g. '42 57'), 'en'/'fr' for language, no arg = audit…

FlorianBruniaux/claude-code-ultimate-guide · 86 tokens

source-command-audit-whitepapers

Audit version freshness, FR/EN parity, and metadata quality of all whitepapers and recap cards.

FlorianBruniaux/claude-code-ultimate-guide · 26 tokens