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 agentmods add skills/darellchua2/opencode-config-template/cad-viewer-skillnpx skills add darellchua2/opencode-config-template --skill cad-viewer-skillgit clone --depth 1 https://github.com/darellchua2/opencode-config-templateWrote 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/darellchua2/opencode-config-template/cad-viewer-skill)<a href="https://agentmods.dev/skills/darellchua2/opencode-config-template/cad-viewer-skill"><img src="https://agentmods.dev/badge/skills/darellchua2/opencode-config-template/cad-viewer-skill.svg" alt="Measured on agentmods" height="20"></a>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.00062 | $0.01089 |
| Opus 5 | $0.00031 | $0.00544 |
| Sonnet 5 | $0.00012 | $0.00218 |
| Haiku 4.5 | $0.00006 | $0.00109 |
Grade A, and why
cad-viewer-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 2d 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 — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CAD Viewer
Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files as the runtime source of truth; the repository link is only for provenance and release review.
Use this skill to open existing or newly generated CAD, implicit CAD, robot-description, DXF, or plain FDM G-code files in CAD Viewer and hand back live review links. The expected input is one or more explicit file paths.
Start Viewer
Start or reuse one local CAD Viewer with npm run agent:start, passing the
absolute artifact directory as --dir. The agent:start launcher owns port
selection, compatible-server reuse, directory activation, and the ?dir= query
parameter. Dev-mode viewers are reused only for matching git identities; dist
bundle viewers can be reused across git branches when their viewer versions
match. It activates reused servers through the Viewer's lightweight directory
activation API, without requiring agents to probe ports or trigger catalog
scans manually. Use the Viewer URL printed by agent:start as-is, then add only
a file= query value for the artifact you want to review.
Choose --dir as the absolute directory that contains the model
artifacts and sidecars, commonly <repo>/models or the consuming project's
equivalent model directory. The file= value must be relative to that --dir.
Do not manually choose ports, probe servers, rewrite ?dir=, or start a
separate Viewer just to change directories.
Run from this skill directory:
npm --prefix scripts/viewer run agent:start -- --host 127.0.0.1 --dir <absolute-model-root>
Use the printed Viewer URL and append file=:
http://127.0.0.1:<printed-port>/?dir=/absolute/project/models&file=path/to/model.step
If a non-Viewer process or another worktree's Viewer occupies the candidate
port, the launcher will continue automatically. In sandboxed agent environments,
local binding or probe failures such as EPERM or EACCES can be expected;
rerun the same command with the needed permission/escalation.
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.
- LICENSE 1.0 KB
- references/development.md 486 B
- references/moveit2-server.md 1.2 KB
- references/viewer-features.md 2.5 KB
- requirements.txt 43 B
- scripts/viewer/.gitignore 111 B
- scripts/viewer/backend/server.mjs 1109 KB runs code
- scripts/viewer/dist/assets/BufferGeometryUtils-xu92ooFc.js 13 KB runs code
- scripts/viewer/dist/assets/BufferGeometryUtils-xu92ooFc.js.map 53 KB
- scripts/viewer/dist/assets/favicon-DLqji3p4.ico 96 KB
- scripts/viewer/dist/assets/glbMeshWorker-iyKraBym.js 7.9 KB runs code
- scripts/viewer/dist/assets/glbMeshWorker-iyKraBym.js.map 32 KB
- scripts/viewer/dist/assets/GLTFLoader-B3ztFMBW.js 45 KB runs code
- scripts/viewer/dist/assets/GLTFLoader-B3ztFMBW.js.map 211 KB
- scripts/viewer/dist/assets/index-DfeaJkHf.js 989 KB runs code
- scripts/viewer/dist/assets/index-DfeaJkHf.js.map 3944 KB
- scripts/viewer/dist/assets/index-vRirKMey.css 96 KB
- scripts/viewer/dist/assets/parseSdf-pv1vr-Ge.js 15 KB runs code
- scripts/viewer/dist/assets/parseSdf-pv1vr-Ge.js.map 54 KB
- scripts/viewer/dist/assets/parseSrdf-5nF_MoHR.js 9.9 KB runs code
- scripts/viewer/dist/assets/parseSrdf-5nF_MoHR.js.map 33 KB
- scripts/viewer/dist/assets/parseUrdf-D-Mv6fs2.js 8.3 KB runs code
- scripts/viewer/dist/assets/parseUrdf-D-Mv6fs2.js.map 31 KB
- scripts/viewer/dist/assets/STLLoader-C7hGonJR.js 2.9 KB runs code
- scripts/viewer/dist/assets/STLLoader-C7hGonJR.js.map 16 KB
- scripts/viewer/dist/assets/stlMeshWorker-0yVf-FuZ.js 2.3 KB runs code
- scripts/viewer/dist/assets/stlMeshWorker-0yVf-FuZ.js.map 8.6 KB
- scripts/viewer/dist/assets/three.module-BB51Dq4E.js 89 KB runs code
- scripts/viewer/dist/assets/three.module-BB51Dq4E.js.map 1509 KB
- scripts/viewer/dist/assets/three.module-DJHaYUcg.js 652 KB runs code
- scripts/viewer/dist/assets/three.module-DJHaYUcg.js.map 2121 KB
- scripts/viewer/dist/assets/vendor-icons-FFp724MI.js 14 KB runs code
- scripts/viewer/dist/assets/vendor-icons-FFp724MI.js.map 63 KB
- scripts/viewer/dist/assets/vendor-react-7jnMmQ9s.js 162 KB runs code
- scripts/viewer/dist/assets/vendor-react-7jnMmQ9s.js.map 468 KB
- scripts/viewer/dist/assets/vendor-three-SYzIooV9.js 780 KB runs code
- scripts/viewer/dist/assets/vendor-three-SYzIooV9.js.map 2663 KB
- scripts/viewer/dist/assets/vendor-ui-CtsphK4U.js 123 KB runs code
- scripts/viewer/dist/assets/vendor-ui-CtsphK4U.js.map 593 KB
- scripts/viewer/dist/index.html 1.7 KB
- scripts/viewer/moveit2_server/__init__.py 99 B runs code
- scripts/viewer/moveit2_server/check-moveit2-server.sh 501 B runs code
- scripts/viewer/moveit2_server/conda-common.sh 1.5 KB runs code
- scripts/viewer/moveit2_server/environment.yml 283 B
- scripts/viewer/moveit2_server/moveit2_server/__init__.py 51 B runs code
- scripts/viewer/moveit2_server/moveit2_server/context.py 37 KB runs code
- scripts/viewer/moveit2_server/moveit2_server/dispatcher.py 930 B runs code
- scripts/viewer/moveit2_server/moveit2_server/joint_state_seed.py 2.0 KB runs code
- scripts/viewer/moveit2_server/moveit2_server/moveit_py.py 25 KB runs code
- scripts/viewer/moveit2_server/moveit2_server/protocol.py 7.2 KB runs code
- scripts/viewer/moveit2_server/moveit2_server/server.py 3.8 KB runs code
- scripts/viewer/moveit2_server/moveit2_server/srdf_source.py 9.4 KB runs code
- scripts/viewer/moveit2_server/pyproject.toml 468 B
- scripts/viewer/moveit2_server/run-moveit2-server.sh 604 B runs code
- scripts/viewer/moveit2_server/setup.sh 684 B runs code
- scripts/viewer/package.json 367 B
- scripts/viewer/packages/cadjs/package-lock.json 816 B
- scripts/viewer/packages/cadjs/package.json 542 B
- scripts/viewer/packages/cadjs/scripts/run-tests.mjs 1.5 KB runs code
- scripts/viewer/packages/cadjs/src/common/cadScene.js 77 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.
- 2d ago First seen · 102 lines · 62 tokens per session scan A fefddd0452f5
cad-viewer-skill is a skill published in the GitHub repository darellchua2/opencode-config-template (6 stars, last pushed 5d ago), licensed Apache-2.0. It adds 62 tokens to every session and 1,089 once invoked, about $0.0003 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-09-03.
Other skills, from other repositories
screen-recording-on-chromebook
Records screen video on ChromeOS devices, Chromebooks, and CrOS DUTs over SSH using ffmpeg KMS grab, and transcodes the video to MP4 on the host workstation. Use when recording the screen of a Chromebook, ChromeOS device, cros DUT, or CrOS test hardware, capturing visual bug reproductions or feature demonstrations on…
physical-chromebook-debugging
Build and deploy Chrome to a physical ChromeOS device, monitor logs, and take screenshots over SSH. Use when working with remote Chromebook testing hardware, deploying new builds of Chrome or ChromeOS, reading specific log files via SSH, or taking screenshots of a connected test endpoint.
go2rtc-cameras
Multi-camera RTSP to WebRTC streaming via go2rtc.
lichtblick
Use when deploying, launching, or reviewing the Lichtblick web viewer — an open-source, Foxglove-compatible MCAP / ROS-bag / robotics log viewer served from S3 artifacts.
qualcomm-ai-assistant
高通文档网站 AI 助手交互 Skill。通过浏览器自动化访问 Qualcomm 文档网站的 AI Assistant, 向其提问并获取基于高通官方文档的 AI 回复。 触发场景:向高通AI提问、询问高通芯片信息、查询Qualcomm文档、问高通AI助手、 高通文档AI、Qualcomm AI Assistant、IQ-9075相关问题、QCS系列芯片查询、 高通开发板问题、Qualcomm芯片规格查询。 适用产品:IQ-9075、QCS9075、QCS6490、QCS8250 等 Qualcomm IoT 产品线。.
digikey
Proven scraping playbook for digikey.com /en/products/category/ listings. Cloudflare challenge (cf-mitigated: challenge) blocks bare curl with HTTP 403, but a puppeteer connection to the user's real Chrome via the real Chrome debug port walks straight through with zero stealth, no captcha, no proxy, no auth. Listings…