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 IvanYangYangXi/artclaw_bridge --skill artclaw-tool-creatorgit clone --depth 1 https://github.com/IvanYangYangXi/artclaw_bridgeWrote 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/ivanyangyangxi/artclaw_bridge/artclaw-tool-creator)<a href="https://agentmods.dev/skills/ivanyangyangxi/artclaw_bridge/artclaw-tool-creator"><img src="https://agentmods.dev/badge/skills/ivanyangyangxi/artclaw_bridge/artclaw-tool-creator/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/ivanyangyangxi/artclaw_bridge/artclaw-tool-creator"><img src="https://agentmods.dev/badge/skills/ivanyangyangxi/artclaw_bridge/artclaw-tool-creator.svg" alt="Reviewed on agentmods" width="80" 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.00041 | $0.06074 |
| Opus 5 | $0.00020 | $0.03037 |
| Sonnet 5 | $0.00008 | $0.01215 |
| Haiku 4.5 | $0.00004 | $0.00607 |
Grade A, and why
artclaw-tool-creator 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 12d 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 — 623 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ArtClaw Tool Creator
AI 引导创建自定义 DCC 工具的特殊 Skill。用户通过对话界面完成工具创建流程。
触发条件
- 命令触发:用户在 ArtClaw Tool Manager 对话面板中输入
/create tool - UI 触发:用户点击工具管理器页面的"创建工具"按钮自动发送命令
创建流程状态机
start → select_method → collect_info → generate → preview → confirm → save → complete
流程说明
- start: 初始状态,展示创建方式选择
- select_method: 用户选择创建方式(包装 Skill / 编写脚本 / 组合工具)
- collect_info: 根据选择方式收集必要信息
- generate: 生成 manifest.json 和脚本文件
- preview: 展示预览,用户确认或修改
- confirm: 用户确认保存
- save: 写入文件到
~/.artclaw/tools/user/{tool-name}/ - complete: 创建完成
三种创建方式
1. 包装 Skill (skill_wrapper)
将现有 Skill 包装为固定参数的快捷工具。
对话模板:
Agent: 选择要包装的 Skill:
[列出可用 Skills,如:comfyui-txt2img, maya-operation-rules, 等]
用户: comfyui-txt2img
Agent: 该 Skill 有以下参数:prompt, width, height, steps, sampler
暴露哪些参数给用户?其他参数的固定值?
用户: 只暴露 prompt 和 steps,width/height 固定为 1024,sampler 固定为 euler
Agent: [生成预览] 确认创建工具"快速文生图"?
[保存] [修改] [取消]
生成的 manifest.json 结构:
{
"id": "user/{tool-name}",
"implementation": {
"type": "skill_wrapper",
"skill": "comfyui-txt2img",
"fixedParams": { "width": 1024, "height": 1024, "sampler": "euler" }
},
"inputs": [
{ "id": "prompt", "name": "提示词", "type": "string", "required": true },
{ "id": "steps", "name": "采样步数", "type": "number", "default": 20 }
]
}
2. 编写脚本 (script)
使用 DCC 原生 Python API 创建自定义脚本工具。
对话模板:
Agent: 请描述工具功能:
用户: 批量导出选中模型为 FBX,支持指定导出路径和文件前缀
Agent: 需要哪些参数?
- 导出路径(必需)
- 文件前缀(可选,默认为空)
- 包含动画(可选,默认 false)
用户: 是的
Agent: [生成脚本预览] 确认创建工具?
[保存] [修改] [取消]
生成的脚本必须遵循以下规则:
"""工具名称 — 一句话描述。"""
# ── SDK 头(tool-creator 自动注入)──
import os, json
import artclaw_sdk as sdk
def _load_manifest() -> dict:
manifest_path = os.path.join(os.path.dirname(__file__), "manifest.json")
with open(manifest_path, "r", encoding="utf-8") as f:
return json.load(f)
# ── SDK 头结束 ──
def main_function(**kwargs):
"""入口函数。kwargs 由 Tool Manager 传入。"""
manifest = _load_manifest()
# ── 1. 参数解析(必须)——从 manifest inputs 读取,不在脚本里硬编码默认值 ──
parsed = sdk.params.parse_params(manifest.get("inputs", []), kwargs)
# ── 2. 对象获取 + 筛选(按需;event trigger 工具通常不需要此段)──
type_cfg = manifest.get("defaultFilters", {}).get("typeFilter", {})
types = type_cfg.get("types", []) # 来自 manifest,不硬编码
source = type_cfg.get("source", "selection")
if source == "selection":
explicit = parsed.get("target_paths", "")
if explicit:
objects = [{"path": p.strip(), "type": "", "name": p.strip().rsplit("/", 1)[-1]}
for p in explicit.split(",") if p.strip()]
else:
# 根据工具需求二选一:
# sdk.context.get_selected_assets() — Content Browser / 资源管理器
# sdk.context.get_selected_objects() — 场景 / 视口
objects = sdk.context.get_selected_assets()
if types:
objects = sdk.filters.filter_by_type(objects, types)
if not objects:
return sdk.result.fail("NO_INPUT", "未指定目标,且当前无选中对象。")
# ── 3. 业务逻辑(DCC 原生 API)──
# import unreal # UE
# import bpy # Blender
# ...
# ── 4. 结果上报(必须)──
return sdk.result.success(data={}, message="完成")
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.
- 12d ago First seen · 623 lines · 41 tokens per session scan A bf1c97228f43
artclaw-tool-creator is a skill published in the GitHub repository IvanYangYangXi/artclaw_bridge (35 stars, last pushed 4mo ago), licensed MIT. It adds 41 tokens to every session and 6,074 once invoked, about $0.0002 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.
Other skills, from other repositories
dcc-mcp-core
Foundation library for the DCC Model Context Protocol (MCP) ecosystem. Provides Rust-powered action management, skills system, IPC transport, MCP Streamable HTTP server (2025-03-26 spec, with 2025-06-18 and 2025-11-25 awareness), sandbox security, shared memory, screen capture, USD scene support, and telemetry for…
maya-pipeline
Domain skill — Maya asset pipeline orchestration: set up project directory structures, export scenes to USD, and coordinate multi-step DCC workflows. Use when initialising a Maya project or exporting assets for a downstream pipeline. Not for raw geometry editing — use maya-geometry for that. Not for low-level USD file…
imagemagick-tools
Infrastructure skill — image processing and manipulation via ImageMagick: resize, composite, convert formats, add watermarks. Use when batch-processing textures, thumbnails, or rendered images at the file level. Not for in-DCC texture or material editing — use a domain skill bound to the specific DCC for that.
asset-source
Gateway skill for cross-DCC asset import — search and resolve assets into a validated AssetDescriptor (local path + attribution). Demo source returns static catalog entries; production sources can add download or remote resolution without changing the contract.
ffmpeg-media
Infrastructure skill — media conversion and processing via FFmpeg: convert video/audio formats, extract frames, resize, and transcode. Use when manipulating raw media files (mp4, mov, wav, image sequences) regardless of DCC context. Not for DCC-specific render output handling — use a domain pipeline skill for…
maya-geometry
Domain skill — Maya geometry primitives: create spheres, cubes, cylinders; bevel, extrude, and merge polygon components. Use for individual geometry creation or editing operations inside Maya. Not for full asset export pipelines — use maya-pipeline for that. Not for USD scene inspection — use usd-tools for that.