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 JochenYang/luma-mcp --skill vision-skillgit clone --depth 1 https://github.com/JochenYang/luma-mcpWrote 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/jochenyang/luma-mcp/vision-skill)<a href="https://agentmods.dev/skills/jochenyang/luma-mcp/vision-skill"><img src="https://agentmods.dev/badge/skills/jochenyang/luma-mcp/vision-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/jochenyang/luma-mcp/vision-skill"><img src="https://agentmods.dev/badge/skills/jochenyang/luma-mcp/vision-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.00037 | $0.00533 |
| Opus 5.5 | $0.00015 | $0.00213 |
| Sonnet 5.5 | $0.00007 | $0.00107 |
| Haiku 4.5 | $0.00004 | $0.00053 |
Grade A, and why
luma-vision 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.
What it actually says
Luma Vision Skill — 多模型视觉理解
说明
所有模型要发送图片都必须在 config.toml 中声明 image_in 能力,否则前端会拦截图片提交。
但纯文本模型即使声明了 image_in 也无法真正理解图片内容。
本 skill 只在用户主动通过 /skill luma-vision 命令发送图片时激活。
如果用户直接粘贴图片(没有 /skill),不要执行本 skill 的逻辑。
何时触发
- 仅限 用户当前消息以
/skill luma-vision开头并附带图片 - 历史消息中的
Attached image file:内容不触发本 skill
何时不触发
- 用户直接粘贴图片发送(没有
/skill前缀) - 多模态模型收到图片时,直接用原生看图能力,不要走脚本
行为
直接执行 vision.js 脚本,不要用 ReadMediaFile:
node "<skill_dir>/scripts/vision.js" "<图片来源>" "<问题描述>"
支持的图片来源
脚本兼容三种来源,适配不同 agent 的传图方式:
| 类型 | 示例 | 适用场景 |
|---|---|---|
| 本地路径 | ./image.png、D:\photos\photo.jpg |
Kimi Code skill 传的缓存路径 |
| HTTP(S) URL | https://example.com/image.png |
网页图片 |
| Data URI | data:image/png;base64,... |
Claude Code 等直接内联传入 |
@ 前缀路径 |
@clipboard.png |
自动剥离 @ 后按本地路径处理 |
环境变量
在系统环境变量中配置,脚本会自动读取:
| 变量 | 说明 |
|---|---|
CUSTOM_BASE_URL |
API 地址 |
CUSTOM_MODEL_NAME |
模型名称 |
CUSTOM_API_KEY |
API Key |
注意事项
- 脚本路径:
<skill_dir>/scripts/vision.js - 不要用
ReadMediaFile代替
What ships with it
1 file 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.
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 First seen · 58 lines · 37 tokens per session scan A e5ff7b89f457
luma-vision is a skill published in the GitHub repository JochenYang/luma-mcp (116 stars, last pushed 2mo ago), licensed MIT. It adds 37 tokens to every session and 533 once invoked, about $0.0001 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.
Other skills, from other repositories
opik-online-eval
Take a judge live on production traffic — create an Opik online evaluation rule (LLM-as-judge or Python metric) on a project with sampling, filters, variable mapping, and a cost cap, then confirm new traces are being scored. Works over the SDK's REST client; reads rules and score names via the MCP when connected.…
opik-test
Turn a failing Opik trace (or a described failure) into a repeatable regression check — a test-suite item with the trace's input and one or two binary assertions — so a fix can be verified by the compare skill. Works over the SDK; uses the MCP write tool when connected. Returns the suite, the item, and the assertion.…
opik-evaluate
Build an LLM evaluation and run it against the app, returning an Opik experiment with scores and its link. Picks a test suite with judge assertions or a dataset with metrics, sources cases from traces or synthetic data, scores heuristics-first then one-failure-mode judges, runs client-side via the SDK or server-side…
opik-instrument
Add Opik tracing to an existing app and verify a real trace lands. Installs the Opik package, detects the language and LLM framework, adds the minimum tracing, runs a safe representative path, confirms a trace in Opik, and returns the trace link. Use for "instrument my code", "add opik tracing", "add observability"…
opik-optimize
Improve a prompt with the Opik Agent Optimizer — resolve the prompt, a dataset, and a metric, pick the algorithm, run a bounded optimization, check the gain on held-out data, and save the winner as a new prompt version with the optimization run link. Runs via the opik-optimizer package; reads prompts and datasets via…
cqlib-kernel
A controlled workflow for running a cqlib quantum-style angle kernel and quantum support vector machine (QSVM), a classifier that separates labelled data. It compares the result with independent mathematical and RBF baselines and states the method's scientific limits.