yoji-extensions

yoji-extensions is a skill for Claude Code from wangxijie001/yoji. It costs 85 tokens per session (736 once invoked), scanned A, original, MIT.

A set of instructions for creating small HTML and JavaScript tools and showing them in an in-app preview. HTML structures a web page, while JavaScript adds behavior such as calculations or timers.

In plain words
What is it for?
It helps make previews for videos, images, documents, comics, charts, countdowns, calculators, and other browser-based interactive tools.
Why use it?
It provides a defined way to handle requests that need a visual or interactive result instead of a text explanation. It also specifies where these tools should be stored and how existing ones are tracked.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/wangxijie/Library/Application.

Good fit It helps make previews for videos, images, documents, comics, charts, countdowns, calculators, and other browser-based interactive tools.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.

Made for: Claude Code.

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 yoji-extensions

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

Your own site · 80×15
<a href="https://agentmods.dev/skills/wangxijie001/yoji/yoji-extensions"><img src="https://agentmods.dev/badge/skills/wangxijie001/yoji/yoji-extensions.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 85 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 736 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 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.00085 $0.00736
Opus 5 $0.00043 $0.00368
Sonnet 5 $0.00017 $0.00147
Haiku 4.5 $0.00009 $0.00074

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

Security

Grade A, and why

yoji-extensions 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 10d 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.

src/main/agent/skills/builtin/yoji-extensions/SKILL.md · 53 lines

What it actually says

yoji-extensions — 优姬的外挂工具箱

什么时候用

以下场景写 HTML + preview_html,不要用文字回复:

场景 用户说什么 做法
🎬 播放视频 "帮我播这个视频"、"放一下xxx" HTML <video> + preview_html
🖼️ 展示图片 "展示这几张截图"、"看一下这些图" HTML <img> 画廊 + preview_html
📊 数据可视化 "画个柱状图"、"对比一下数据" HTML + Chart.js CDN + preview_html
📄 文档预览 "预览这个 Markdown"、"看看这个 PDF" HTML + marked.js + preview_html
🎨 漫画/画册 "生成漫画预览"、"做个相册" HTML 分页 + preview_html
🔧 交互工具 "做个倒计时"、"弄个计算器" HTML + JS + preview_html

不需要 preview_html:纯文字问答、文件读写、执行命令、网页搜索。

工作流程

  1. 判断场景:用户需要可视化展示 → 走本 Skill;文字回复 → 直接答
  2. 编写 HTML:用 write_file 在沙箱 /extensions/ 目录创建 HTML 文件
  3. 打开预览:调用 preview_htmlpath 传磁盘绝对路径,title 传窗口标题
  4. 后续修改:用户反馈后用 edit_file 修改沙箱中的文件,重新 preview_html

文件存放位置

所有外挂 HTML 工具统一放在沙箱 /extensions/ 目录,映射到磁盘:

/Users/wangxijie/Library/Application Support/yoji/companion/extensions/

已有工具清单记录在 extensions/index.md 中,每次新增工具后同步更新。

HTML 编写规范

  • <html><head><body> 完整结构,CSS 在 <style>,JS 在 <script>
  • 外部库用 CDN(Chart.js、D3.js、marked.js 等)
  • 本地视频/图片用绝对路径
  • 背景深色,字体舒适,适配窗口
  • 播放器场景默认 controls

注意事项

  • path 必须是磁盘绝对路径,禁止使用沙箱虚拟路径(如 /xxx.html
  • 磁盘绝对路径 = 沙箱路径映射:/extensions/xxx.html/Users/wangxijie/Library/Application Support/yoji/companion/extensions/xxx.html
  • 用户关闭窗口后重新调 preview_html 即可恢复
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. 10d ago First seen · 53 lines · 85 tokens per session scan A e1ed7c768b24

Subscribe to this mod's changes

yoji-extensions is a skill published in the GitHub repository wangxijie001/yoji (787 stars, last pushed 28d ago), licensed MIT. It adds 85 tokens to every session and 736 once invoked, about $0.0004 per session on Opus 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.