Crawl4AI Web Scraping
smallnest/goclaw
Scrapes sites, handles JavaScript-heavy pages and extracts structured data with Crawl4AI, through its crwl CLI or Python SDK, including schema-based extraction without an LLM.
A skill your agent uses when automating ZBrush 2026: batch processing a folder of OBJ or ZTL files, a ZBrush Python script or ZScript, recording a macro to learn a palette path, the ZBrush -script…
$ npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-automation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dcc/zbrush/scenario-zbrush-automation .claude/skills/scenario-zbrush-automation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "scenario-zbrush-automation" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automation into .claude/skills/scenario-zbrush-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-automation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-automation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dcc/zbrush/scenario-zbrush-automation .agents/skills/scenario-zbrush-automation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scenario-zbrush-automation" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automation into .agents/skills/scenario-zbrush-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-automation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-automation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dcc/zbrush/scenario-zbrush-automation .cursor/skills/scenario-zbrush-automation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scenario-zbrush-automation" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automation into .cursor/skills/scenario-zbrush-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-automation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scenario-labs/skills.git --path skills/dcc/zbrush/scenario-zbrush-automation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-automation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dcc/zbrush/scenario-zbrush-automation .gemini/skills/scenario-zbrush-automation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scenario-zbrush-automation" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automation into .gemini/skills/scenario-zbrush-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-automation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scenario-labs/skills scenario-zbrush-automationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dcc/zbrush/scenario-zbrush-automation .github/skills/scenario-zbrush-automation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scenario-zbrush-automation" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automation into .github/skills/scenario-zbrush-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-automation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scenario-labs/skills scenario-zbrush-automation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dcc/zbrush/scenario-zbrush-automation .opencode/skills/scenario-zbrush-automation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scenario-zbrush-automation" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/dcc/zbrush/scenario-zbrush-automation into .opencode/skills/scenario-zbrush-automation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-zbrush-automation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scenario-zbrush-automationA skill your agent uses when automating ZBrush 2026: batch processing a folder of OBJ or ZTL files, a ZBrush Python script or ZScript, recording a macro to learn a palette path, the ZBrush -script…
Scenario Zbrush Automation is an agent skill from scenario-labs/skills. Use when automating ZBrush 2026: batch processing a folder of OBJ or ZTL files, a ZBrush Python script or ZScript, recording a macro to learn a palette path, the ZBrush -script command line, scripting UV Master, Decimation Master or Multi Map Exporter, exporting every SubTool, GoZ or GoB round trips with Maya or Blender, renaming SubTools, or batch reports. Also when a plugin press never returns, a dialog stalls a batch, one file kills the whole run, or GoZ updates the wrong SubTool.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `references/critique.md`, `references/expert-notes.md` and `references/gui-paths.md`).
It sits in Data & Analytics, covering Data pipelines and ETL. It works with Python and Blender. The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f6f8ab7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 4 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scenario Zbrush Automation loads about 4.7k tokens when it runs, and up to ~25k if it reads all its reference files. Until then it costs about 129 tokens; SKILL.md has 1,958 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 1,958 words, ~4,705 tokens.
.claude/skills/scenario-zbrush-automation/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.An expert ZBrush TD automates with contracts and proof: every file is its own tool, every step is a separate call with a time limit, every output is read back from disk, and a hung plugin costs one file, never the batch. ZBrush has no timeout, no undo control from Python and dialogs that code cannot answer, so the safety lives on the agent side: the runner, the checkpoints, the report. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
REQUIRED BACKGROUND: scenario-zbrush-expert (bridge, zb_launch, zb_ops, zb_audit, review loop, 2026 traps).
Status (2026-09-24, refactor pass 2): every ZBrush call here is not yet run in ZBrush (no session assigned; the README's startup stall is still open). Offline: 56 tests pass (tests/code/zbrush-automation/run_offline.py), including a GoZ reader and writer matching ZBrush's own ZResources/DXFStar.GoZ byte for byte. Live suite: tests/code/zbrush-automation/run_live.sh.
zb_batch.run_folder) that sends each step as its own bridge call with its own timeout, pings after a timeout, and restarts ZBrush after a hang. One long in-ZBrush script dies with its first stuck plugin. [added design]zb_ops.project_all refuses to run without a versioned save and the recipe's project step passes one ({stem}_preproject.ztl), even with save_ztl off. Decimation Master runs last, after every valuable output is on disk, so a hang there leaves a partial file, not a lost one. [added]sys.path (Maxon Style Guide). Send code only through remote_call/zb_launch.run: modules are imported by path, then sys.path, sys.modules, stdout and the working directory are restored, also after an error. End a batch with zb_launch.hygiene() (empty lists).set_next_filename feeds built-in buttons only: FBX ExportImport shows options "You cannot escape" (ferdinand, Maxon 2025) and USD Format ignores the preset (usd-portal). Unattended exports are OBJ or .GoZ by path; has_next_filename() still true after a press means a dialog is probably waiting [added].stage_input); on this Mac's case-insensitive disk rock.obj and Rock.OBJ are one file [added].zb_batch.ActivityWatch; proven by the 05:20 log). Then zb_plugin_ops.probe() confirms exists, range and title.for_each_subtool..GoZ or OBJ files plus a manifest and lets the other app's agent import them.| Input | Changes | Default when silent |
|---|---|---|
| Inputs: count, format, faces per file | timeouts, DynaMesh resolution, restart cadence | OBJ, audited first with zb_audit |
| Outputs: low count, map size and space, preview count | recipe params | brief's numbers; else DEFAULT_PARAMS [added] |
| Parts per file, meaningful polygroups | ZRemesher grouping | cgside: Auto Groups then ZRemesher Keep Groups on the copy, so the low follows the parts (MyhwQvkcnwI [00:08:38]); zr_auto_groups=False when the input's groups matter |
| Target app: Maya, Blender, Unreal, Unity | flip V, green channel, axes, format | Maya: OBJ + tangent PNG flipped V, OpenGL green [added] |
| Whose ZBrush | restart rights | a ZBrush the batch did not start is never restarted or quit |
| Watched or unattended | pilot size, screenshot use | pilot of one file, watched |
| Shared config allowed (GoZ folder, Macro palette) | GoZ push, key-answer macros | no: ask first |
zb_launch.start() or reuse a running bridge; zb_plugin_ops.probe() on every path the recipe uses; memory(). GATE: ping returns 2026.2, every recipe path exists, plugins present.zb_batch.plan(files, out, params) resolves every file's steps, paths and timeouts without ZBrush. GATE: outputs outside the install (read-only since 2026.1), unique stems, no FBX or USD step.run_folder([f], out, params); open sheet.png and the normal map; import the low and map in the target app (scenario-maya-pipeline-scripting or a Blender skill). GATE: file ok, step timings recorded, map orientation confirmed in the target app (flip V and green are [verify] until then).mode="script" (one ZBrush -script process per file) once live_a05 has shown how ZBrush exits. Drop a STOP file in the output folder to end between files; rerun to resume (sha1 and recipe hash). GATE: report.json written after every file.failed or partial: read steps[].outcome (error, timeout_recovered, hang), the hang evidence (screenshot when the screen is unlocked; ZBrush Notes are drawn in the canvas, only the screenshot shows them), and batch.blocked. Fix params or paths, rerun: finished files are skipped. GATE: every non-ok file has a cause in the report.low_audit, preview_audit, normal_stats; write the handoff manifest. GATE: numbers pass, sheet looked at, report and manifest delivered.| Value | Relative to | Source |
|---|---|---|
| UV Master: 100k to 150k faces max; seconds at 3k, up to 5 min at 150k | faces of the SubTool unwrapped | UV Master doc |
| Divide multiplies faces by 4; levels = smallest n with low x 4^n >= source faces, top capped at 8M | projection stack | Pablo Logic Part 7; cap [added] |
Decimation % of decimation is kept percent of points; 100 none, 0.01 max | points; about 2 triangles per point, so % = 100 x target_faces / 2 / points | DM doc; ijacobs 2013; Euler [added] |
| DM quality: 40 to 100 % looks the same, 2 % still good, 1 % degrades | original model | DM doc |
| ZRemesher target in thousands, approximate (5 gave 4,963) | target polygons | Pablo Logic Part 7 |
| Project All Dist 0.1, set explicitly | same shape, new topology | Drust nxMYYsyJt3o [00:02:19]; toolkit default |
create_normal_map(..., local_coordinates=True) = tangent; default False = world | map space | SDK stub |
| Macro file name 8+ characters, in a subfolder; new folder needs a restart | <Asset Dir>/ZStartup/Macros/ | Maxon interfaces doc |
| Step timeouts 30 to 1,800 s, raised to 4 x slowest observed, 10 x base max; restart every 10 files | per step, per session | [added] |
| Tangent map sanity: blue >= 128 on 90 % of pixels | final PNG | [added] |
| Maya GoZ flips Y and Z both ways and flips normal maps vertically | GoZ_Info.txt | local file 2026-09-24 |
| Blender FBX import from ZBrush: scale 1000 | FBX | FlippedNormals [00:11:21] |
import_mesh warnings); DynaMesh remeshed; ZRemesher ratio to target 0.5 to 1.5 [added]; UV bbox inside 0..1; Divide ratio 4 per level; every output file exists and is non-empty. Each zb_ops gate (volume from get_polymesh3d_volume, watertight from is_polymesh3d_solid, projection spikes) feeds check_step: a collapsed or exploded DynaMesh or a spike fails the file.zb_audit.verdict(..., "game") (UVs, no n-gons); low bbox equals the input bbox within 2 % (an OBJ import sets Export Scale: Outgang [00:24:03]) [added tolerance]; normal map at the asked size, not uniform, tangent-like; preview faces near target.counts, restarts, blocked, aborted in report.json; report.csv for humans.sheet.png (one canvas snapshot per file, MatCap Gray): melted thin parts from a low DynaMesh, projection spikes, missing parts. The normal map applied in the target app, lit from the side: seams, upside-down or inverted detail.| Mistake | What it looks like | Fix |
|---|---|---|
| One in-ZBrush loop over all files | first stuck plugin freezes everything, no report | run_folder: one call per step, report per file |
| Pressing a plugin with no timeout | bridge silent for minutes | plugin steps are separate calls; wait_recovery, then restart |
| Importing onto the active tool | the active SubTool is replaced | import_mesh: PolyMesh3D star first (usd-portal) |
| Same-named inputs or tools | stale Decimation cache, GoZ updates the wrong SubTool | unique_stems + stage_input |
| FBX or USD in an unattended run | options window, batch stuck | OBJ or .GoZ by path |
| Decimating the master | sculpt gone, no undo from Python | checkpoint ZTL, decimate last or on a duplicate |
| Normal map from two SubTools | no detail in the map | the map compares levels of one SubTool (AskZBrush n0qqpwvn-jA [00:01:14]) |
| World-space map by default | rainbow-colored map, wrong shading in engines | local_coordinates=True |
| Restarting the user's ZBrush | unsaved work lost | BridgeSession.owned; abort instead |
Trusting set() | slider unchanged, no error | exists() then read back (zb_ops.set_checked) |
for_each_subtool, recipes built with zb_batch.step), inventories before GoZ or export, path discovery. Receives their procedure and params; delivers report.json, report.csv, sheet.png and per-file outputs..GoZ files plus a manifest (names, units, which SubTool each updates). Names are checked with zb_goz.check_names before import.press_key "Does not work" and merge_undo is "Not implemented" (2026.1 stub): key-held presses and one-undo sequences need a ZScript macro pressed from Python [verify].freeze(fn) and show_actions(0) (SDK GUI reference) through zb_ops.sequence, frozen, quiet, or for_each_subtool(..., freeze=True); never around a plugin press or a canvas export [added].Python/init.py go in the Asset Directory, here ~/Library/Preferences/Maxon/ZBrush_03C27D49/.zb_goz.app_info).kill -9 at 05:29 (README, cause unknown): a restart after a hang may stall too. The runner then aborts with a resumable report.references/procedures.md: full code for each procedure (session, probe, import, per-file recipe, folder batch, -script, plugins, maps, SubTool loops, names, GoZ, Maya and Blender round trips, macros, file-drop, reports, interpreter hygiene). Load before writing any batch.references/expert-notes.md: the sources' principles with timestamps, and the choices where they disagree. Load when a design decision is not covered here.references/critique.md: the rubric for judging a batch, a script or a round trip. Load before reporting.references/gui-paths.md: the same operations by palette and hotkey, for a human or computer-use agent. Load when a step needs the GUI.references/sources.md: every source with credentials and URLs.scripts/zb_batch.py (agent side: runner, sessions, reports, -script, Activity oracle, ZScript generators), scripts/zb_plugin_ops.py (inside ZBrush: per-file steps and plugins), scripts/zb_batch_job.py (-script entry), scripts/zb_goz.py (GoZ files and folder, any Python).© scenario-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (scripts, references) in skills/dcc/zbrush/scenario-zbrush-automation of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Zbrush Automation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scenario Zbrush Automation this skillscenario-labs/skills | 946 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Crawl4AI Web Scrapingsmallnest/goclaw | 599 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Monitor With HaolemeHaolemeApp/Haoleme | 157 | — | ~1.3k | Automated safety check: Pass | AGPL-3.0 | |
| Tushare Plugin BuilderYourdaylight/stock_datasource | 189 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Credit Risk Data Cleaninggithub/awesome-copilot | 40k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Dbt Parser Refreshyu-iskw/dbt-artifacts-parser | 118 | — | ~716 | Automated safety check: Pass | Apache-2.0 |
smallnest/goclaw
Scrapes sites, handles JavaScript-heavy pages and extracts structured data with Crawl4AI, through its crwl CLI or Python SDK, including schema-based extraction without an LLM.
HaolemeApp/Haoleme
Selectively monitor important long-running or resource-intensive commands with Haoleme by prefixing them with hao, so status, output, and completion notifications sync to the mobile app.
Yourdaylight/stock_datasource
Turns a Tushare API doc URL into a full data plugin for the stock_datasource repo: extractor, ClickHouse schema, query service, config and curl examples.
github/awesome-copilot
Cleans raw credit data and screens variables before loan modeling, dropping unstable, noisy or redundant features and writing an Excel report of every step.
yu-iskw/dbt-artifacts-parser
Refreshes dbt artifact schemas from dbt-labs/dbt-core and regenerates Pydantic parser classes.
godatadriven/dbt-bouncer
Analyzes a dbt project and suggests dbt-bouncer checks that already pass (for existing projects) or a sensible starter config (for greenfield projects).
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
scenario-labs/skills
A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.
scenario-labs/skills
A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…
scenario-labs/skills
A skill your agent uses when creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…
scenario-labs/skills
A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…
scenario-labs/skills
A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…
Categories
A skill your agent uses when automating ZBrush 2026: batch processing a folder of OBJ or ZTL files, a ZBrush Python script or ZScript, recording a macro to learn a palette path, the ZBrush -script…. Scenario Zbrush Automation is an agent skill from scenario-labs/skills. Use when automating ZBrush 2026: batch processing a folder of OBJ or ZTL files, a ZBrush Python script or ZScript, recording a macro to learn a palette path, the ZBrush -script command line, scripting UV Master, Decimation Master or Multi Map Exporter, exporting every SubTool, GoZ or GoB round trips with Maya or Blender, renaming SubTools, or batch reports.
Scenario Zbrush Automation fits situations like: automating ZBrush 2026: batch processing a folder of OBJ; A ZBrush Python script; recording a macro to learn a palette path; the ZBrush -script command line.
Run `npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a claude-code`. Or copy the skill folder (skills/dcc/zbrush/scenario-zbrush-automation in scenario-labs/skills) into .claude/skills/scenario-zbrush-automation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a codex`. Or copy the skill folder (skills/dcc/zbrush/scenario-zbrush-automation in scenario-labs/skills) into .agents/skills/scenario-zbrush-automation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scenario-labs/skills --skill scenario-zbrush-automation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scenario-zbrush-automation, .gemini/skills/scenario-zbrush-automation, .github/skills/scenario-zbrush-automation and .opencode/skills/scenario-zbrush-automation in your project.
Going by SKILL.md and its folder, Scenario Zbrush Automation needs Python for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Scenario Zbrush Automation is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 20k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scenario Zbrush Automation: Crawl4AI Web Scraping (smallnest/goclaw, 599 stars), Monitor With Haoleme (HaolemeApp/Haoleme, 157 stars), Tushare Plugin Builder (Yourdaylight/stock_datasource, 189 stars) and Credit Risk Data Cleaning (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 2026.
Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.