Foundation Models On Device
affaan-m/ECC
Apple FoundationModels framework for on-device LLM — text generation, guided generation with @Generable, tool calling, and snapshot streaming in iOS 26+.
HaS (Hide and Seek) on-device text and image anonymization. An agent skill from LeoYeAI/openclaw-master-skills.
$ npx skills add LeoYeAI/openclaw-master-skills --skill has-anonymizer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills has-anonymizer --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/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/has-anonymizer .claude/skills/has-anonymizer && 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 "has-anonymizer" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizer into .claude/skills/has-anonymizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "has-anonymizer", 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/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizerType 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 LeoYeAI/openclaw-master-skills --skill has-anonymizer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills has-anonymizer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/has-anonymizer .agents/skills/has-anonymizer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "has-anonymizer" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizer into .agents/skills/has-anonymizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "has-anonymizer", 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 LeoYeAI/openclaw-master-skills --skill has-anonymizer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills has-anonymizer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/has-anonymizer .cursor/skills/has-anonymizer && 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 "has-anonymizer" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizer into .cursor/skills/has-anonymizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "has-anonymizer", 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/LeoYeAI/openclaw-master-skills.git --path skills/has-anonymizer--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 LeoYeAI/openclaw-master-skills --skill has-anonymizer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills has-anonymizer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/has-anonymizer .gemini/skills/has-anonymizer && 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 "has-anonymizer" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizer into .gemini/skills/has-anonymizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "has-anonymizer", 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 LeoYeAI/openclaw-master-skills has-anonymizerInstalls 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 LeoYeAI/openclaw-master-skills --skill has-anonymizer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/has-anonymizer .github/skills/has-anonymizer && 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 "has-anonymizer" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizer into .github/skills/has-anonymizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "has-anonymizer", 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 LeoYeAI/openclaw-master-skills --skill has-anonymizer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills has-anonymizer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/has-anonymizer .opencode/skills/has-anonymizer && 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 "has-anonymizer" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/has-anonymizer into .opencode/skills/has-anonymizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "has-anonymizer", 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.
has-anonymizerHaS (Hide and Seek) on-device text and image anonymization. An agent skill from LeoYeAI/openclaw-master-skills.
Has Anonymizer is an agent skill from LeoYeAI/openclaw-master-skills. HaS (Hide and Seek) on-device text and image anonymization. Text: 8 languages (zh/en/fr/de/es/pt/ja/ko), open-set entity types. Image: 21 privacy categories (face, fingerprint, ID card, passport, license plate, etc.). Use when: (1) anonymizing text before sending to cloud LLMs then restoring the response, (2) anonymizing documents, code, emails, or messages before sharing, (3) scanning text or images for sensitive content, (4) anonymizing logs before handing to ops/support, (5) masking faces/IDs/plates in photos…
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 39 other files, including scripts and reference files (for example `_meta.json`, `references/DESIGN.md` and `references/eval/eval.py`).
The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. 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 9 files in scripts/ (Python and Shell, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
modelscope.cnFrom 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.
Has Anonymizer loads about 4.5k tokens when it runs, and up to ~33k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 1,712 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 LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,712 words, ~4,513 tokens.
.claude/skills/has-anonymizer/SKILL.md (or your agent's skills folder). This skill also uses 34 other files; get the full folder from GitHub.HaS exposes a single umbrella CLI:
has text ... for text anonymization, restoration, and scanninghas image ... for image scanning, masking, and category discoveryUse it when you need to remove private data locally before sending content elsewhere, inspect a directory for privacy risks, or mask visual privacy targets in photos and screenshots.
has text for plaintext and has image for raster images. For mixed directories, run both and combine the results into one report.has text. For screenshots/photos where the goal is simply to hide visible carriers such as faces, screens, paper, labels, or QR codes, use has image. If the goal is to reason about the text content inside an image, run OCR first and then use has text.has text uses repeated --type; has image uses repeated --type, plus --method and --strength.scan before hide.--timing and report the elapsed result in plain language afterward.qr_code and barcode, the default mosaic strength is automatically raised based on the detection size to ensure the encoding is destroyed. The agent does not need to manually increase --strength for these categories. If a detection output includes effective_strength, report it to the user.The current CLI contract is designed for agents first:
error.code and error.message.file, output, mapping_output, and skipped[].file.skipped and skipped_count.skipped entries as unprocessed files, not as clean files.Shared command layout:
{baseDir}/scripts/has.sh <text|image> <command> [options]Shared options can be placed before or after the subcommand.
has texthas text is the plaintext namespace. It supports:
scanhiderestoreIt runs entirely on-device and uses a local llama-server plus the HaS text model when model inference is required.
Anonymized text uses semantic tags such as:
<EntityType[ID].Category.Attribute>This preserves structure better than a flat [REDACTED] token and is the reason restored downstream LLM output can remain usable.
Repeated --type flags are open-set. They are not limited to a fixed catalog. Natural language type names such as "person name", "address", "phone number", or "numeric values (transaction amounts)" are valid.
Type wording matters. For example, "personal location" is usually safer than "location" if you want to preserve public places but hide private addresses. Public/private person-name distinctions remain less stable and should not be trusted without verification.
The text model supports Chinese, English, French, German, Spanish, Portuguese, Japanese, and Korean, including mixed-language text.
Match the --type language to the source text language:
--type "人名" --type "电话号码" --type "地址"--type "person name" --type "phone number" --type "address"has text auto-starts a local llama-server when needed.
~/.openclaw/tools/has-anonymizer/models/has_text_model.ggufHAS_TEXT_MODEL_PATH=/abs/path/to/has_text_model.ggufHAS_TEXT_MAX_PARALLEL_REQUESTS{baseDir}/scripts/has.sh text [--timing] [--verbose] <scan|hide|restore> [options]Namespace options:
| Option | Description |
|---|---|
--timing | Include elapsed_ms in the JSON output |
--verbose | Emit runtime status and progress messages to stderr |
Input methods:
| Method | Description |
|---|---|
--text '<text>' | Pass text directly |
--file <path> | Read text from a file |
--dir <path> | Process immediate plaintext files in a directory |
| stdin | For single-text mode when no --text, --file, or --dir is provided |
Rules:
--text, --file, and --dir are mutually exclusive.--type values are rejected.hide requires --mapping-output.restore requires --mapping.skipped can include unprocessed files (binary, encoding, or read errors).has text scanFinds sensitive entities without replacing them.
{baseDir}/scripts/has.sh text scan --type "person name" --type "phone number" --file report.txt
{baseDir}/scripts/has.sh text scan --type "person name" --type "phone number" --dir ./reports/Parameters:
| Parameter | Required | Description |
|---|---|---|
--type | yes | Entity type to scan for; repeat to add more |
--text / --file / --dir | one input | Input source |
--max-chunk-tokens | Max tokens per chunk, default 5000 | |
--max-parallel-requests | Max scan chunks in parallel, default 4 |
Output:
{"entities": ...}{"results":[...],"count":N,"summary":{...}}skipped and skipped_counthas text hideReplaces sensitive entities with semantic tags.
{baseDir}/scripts/has.sh text hide --type "person name" --type "address" --text "John lives in Brooklyn" --mapping-output ./mapping.json
{baseDir}/scripts/has.sh text hide --type "person name" --file note.txt --output ./note.anonymized.txt --mapping-output ./note.mapping.json
{baseDir}/scripts/has.sh text hide --type "person name" --dir ./docs/Parameters:
| Parameter | Required | Description |
|---|---|---|
--type | yes | Entity type to anonymize; repeat to add more |
--text / --file / --dir | one input | Input source |
--mapping-output | single-file: yes | Output path for generated mapping JSON |
--output | single-file | Output path for anonymized text |
--mapping | single-file | Existing mapping JSON file for incremental anonymization |
--output-dir | batch | Output directory for anonymized files (default: <dir>/.has/anonymized/) |
--mapping-dir | batch | Output directory for per-file mapping JSON files (default: <output-dir>/mappings/) |
--max-chunk-tokens | Max tokens per chunk, default 3000 | |
--max-parallel-requests | Max files in parallel for --dir, default 4 | |
--no-tool-pair | Disable diff-based pair extraction; always use Model-Pair (slower but more robust) |
Behavior:
{"text":"...","mapping_output":"/abs/path/to/map.json"}{"output":"/abs/path/to/out.txt","mapping_output":"/abs/path/to/map.json"}--mapping.has text restoreRestores anonymized text using mapping JSON.
{baseDir}/scripts/has.sh text restore --mapping mapping.json --text "<person name[1].personal.name> lives in ..."
{baseDir}/scripts/has.sh text restore --mapping mapping.json --file anonymized.txt --output restored.txt
{baseDir}/scripts/has.sh text restore --dir ./.has/anonymized/ --output-dir ./.has/restored/Parameters:
| Parameter | Required | Description |
|---|---|---|
--mapping | single-file: yes | Mapping JSON file path |
--text / --file / --dir | one input | Input source |
--output | single-file | Output path for restored text |
--mapping-dir | batch | Per-file mapping directory (default: <dir>/mappings/) |
--output-dir | batch | Output directory for restored files (default: sibling restored/ under .has/, or <dir>/.has/restored/) |
--max-chunk-tokens | Max tokens per chunk when model restore is needed, default 3000 | |
--max-parallel-requests | Max model-backed restore chunks in parallel |
Behavior:
text unless --output is provided.restore --dir uses per-file mapping JSON files. It does not accept a shared --mapping.restore --dir expects mapping files at <mapping-dir>/<filename>.mapping.json (matching the naming convention produced by hide --dir).Anonymize text before sending it to a cloud LLM, then restore the answer:
hide to produce anonymized text plus mappingrestore the model response with the mappingFor multi-line text, prefer file-based intermediates over shell variables.
When forwarding anonymized text to a cloud LLM, the agent must prepend a brief explanation of the tag format so the model understands and preserves the tags. Include wording equivalent to the following (adjust language to match the conversation):
The text below has been anonymized. Sensitive entities are replaced by tags in the format
<EntityType[ID].Category.Attribute>:
- EntityType — the kind of entity (matches the
--typevalue, e.g.person name,address,phone number).- [ID] — a numeric identifier. The same type + same ID always refers to the same real-world entity (e.g. every
<person name[1]>is the same person;<person name[2]>is a different person).- .Category.Attribute — additional semantic classification of the entity.
Rules:
- Preserve every tag exactly as-is in your response — do not modify, translate, paraphrase, omit, or expand any tag.
- When referring to an anonymized entity, reuse the original tag with the correct ID.
- Do not attempt to guess the real values behind the tags.
Omitting this explanation may cause the cloud model to strip, rewrite, or misinterpret the tags, which will break the restore step.
If HuggingFace downloads fail, use these ModelScope mirrors:
https://modelscope.cn/models/TencentXuanwu/HaS_Text_0209_0.6B_Q8https://modelscope.cn/models/TencentXuanwu/HaS_Image_0209_FP32has imagehas image is the image namespace. It supports:
scanhidecategoriesIt loads the YOLO segmentation model directly and does not require llama-server.
{baseDir}/scripts/has.sh image [--timing] [--model MODEL] <scan|hide|categories> [options]Namespace options:
| Option | Applies to | Description |
|---|---|---|
--timing | all image commands | Include elapsed_ms in the JSON output |
--model PATH | scan, hide | Override the image model path |
Common categories include biometric_face, id_card, passport, license_plate, qr_code, mobile_screen, and paper.
Use has image categories when you need the full catalog of 21 supported classes.
--type accepts:
faceRules:
--type values are rejected.--type to scan or mask all supported categories.skipped can include unprocessed files.has image scanFinds privacy regions without modifying the image.
{baseDir}/scripts/has.sh image scan --image photo.jpg --type face --type id_card
{baseDir}/scripts/has.sh image scan --dir ./photos/ --type faceParameters:
| Parameter | Required | Description |
|---|---|---|
--image / --dir | one input | Single image or batch directory |
--type | Category filter; repeat to add more | |
--conf | Confidence threshold, default 0.25 | |
--model | Override image model path |
Output:
detections and summaryresults, count, summary, and optional skippedhas image hideDetects and masks privacy regions in images.
{baseDir}/scripts/has.sh image hide --image photo.jpg --type face --method blur --strength 25
{baseDir}/scripts/has.sh image hide --dir ./photos/Parameters:
| Parameter | Required | Description |
|---|---|---|
--image / --dir | one input | Single image or batch directory |
--output | single-image | Output image path |
--output-dir | batch | Output directory |
--type | Category filter; repeat to add more | |
--method | mosaic, blur, or fill; default mosaic | |
--strength | Mosaic block size or blur radius; default 15 | |
--fill-color | Fill color for fill; default #000000 | |
--conf | Confidence threshold; default 0.25 | |
--model | Override image model path |
Behavior:
--output-dir, not --output.qr_code and barcode detections with --method mosaic, the block size is automatically raised to max(strength, bbox_short_side // 10, 20) to prevent the encoding from surviving pixelation. After masking, a lightweight verification confirms the code is no longer machine-readable; if it is, the strength is escalated further (up to a fill fallback). Each affected detection includes an effective_strength field in the output.cv2.QRCodeDetector and cv2.barcode.BarcodeDetector provide additional coverage. When YOLO misclassifies a code region as a different category (e.g. monitor_screen), cv2 corrects the category before --type filtering, so --type qr_code catches all QR codes regardless of YOLO's label. Corrected detections include a "corrected_from" field; new detections include "cv2_fallback": true.has image categoriesLists all supported image privacy categories.
{baseDir}/scripts/has.sh image categories
{baseDir}/scripts/has.sh image categories --timingBehavior:
{"categories":[...]}--timingFor a mixed workspace:
has text scan ... --dir <dir> for plaintexthas image scan --dir <dir> for imagesIf the user wants masking after that, use hide on the specific files or directories you already identified.
© LeoYeAI, 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 34 other files (scripts, references) in skills/has-anonymizer of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Has Anonymizer 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 |
|---|---|---|---|---|---|---|
| Has Anonymizer this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.5k | Automated safety check: Pass | MIT | |
| Foundation Models On Deviceaffaan-m/ECC | 276k | 4 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Mdm Device Managementsickn33/agentic-awesome-skills | 47k | 1 repos | ~3k | Automated safety check: Notes | MIT | |
| Seek And Analyze Videosickn33/agentic-awesome-skills | 47k | 2 repos | ~997 | Automated safety check: Pass | MIT | |
| Element Hidingthedaviddias/Front-End-Checklist | 74k | — | ~596 | Automated safety check: Pass | MIT | |
| Foundation Models On Deviceaffaan-m/ECC | 276k | 3 repos | ~1.5k | Automated safety check: Pass | MIT |
affaan-m/ECC
Apple FoundationModels framework for on-device LLM — text generation, guided generation with @Generable, tool calling, and snapshot streaming in iOS 26+.
sickn33/agentic-awesome-skills
Manage and secure company devices with MDM solutions. An agent skill from sickn33/agentic-awesome-skills.
sickn33/agentic-awesome-skills
Seek and analyze video content using Memories.ai Large Visual Memory Model for persistent video intelligence
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing a website for layout and functionality issues caused by adblocker filter rules targeting common ad-related class names and IDs.
affaan-m/ECC
苹果FoundationModels框架用于设备上的LLM——文本生成、使用@Generable进行引导生成、工具调用,以及在iOS 26+中的快照流。
google/skills
Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP).
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
HaS (Hide and Seek) on-device text and image anonymization. An agent skill from LeoYeAI/openclaw-master-skills. Has Anonymizer is an agent skill from LeoYeAI/openclaw-master-skills. HaS (Hide and Seek) on-device text and image anonymization.
Has Anonymizer fits situations like: anonymizing text before sending to cloud LLMs then restoring the response; anonymizing documents; messages before sharing; images for sensitive content.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill has-anonymizer -a claude-code`. Or copy the skill folder (skills/has-anonymizer in LeoYeAI/openclaw-master-skills) into .claude/skills/has-anonymizer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill has-anonymizer -a codex`. Or copy the skill folder (skills/has-anonymizer in LeoYeAI/openclaw-master-skills) into .agents/skills/has-anonymizer 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 LeoYeAI/openclaw-master-skills --skill has-anonymizer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/has-anonymizer, .gemini/skills/has-anonymizer, .github/skills/has-anonymizer and .opencode/skills/has-anonymizer in your project.
Going by SKILL.md and its folder, Has Anonymizer needs Python and a shell for the scripts in its folder. Our summary lists: Python 3; A Bash shell.
SKILL.md names 1 domain. In commands or code: modelscope.cn; the agent is likely to contact it when it follows the instructions. 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.
Has Anonymizer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k 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 29k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Has Anonymizer: Foundation Models On Device (affaan-m/ECC, 276k stars), Mdm Device Management (sickn33/agentic-awesome-skills, 47k stars), Seek And Analyze Video (sickn33/agentic-awesome-skills, 47k stars) and Element Hiding (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,160 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.