Has Anonymizer
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... Skill: Has Anonymizer Owner: xuanwuskill Summary: 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... Tags: latest:1.0.3 Version history: v1.0.3 | 2026-03-25T06:51:21.641Z | user fix(image): adaptive mosaic for QR codes and barcodes. Default mosaic strength aligned with QR module size, leaving codes machine-rea
Rank
62
Safety
84
Downloads
2.3k
Updated
Oct 9, 2026
Version
1.0.3
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 2.3K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 2.3K downloadsadoption · observed Oct 9, 2026
- Latest release
- 1.0.3release · observed Mar 25, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s1769xmmkh0yjtvkc71t3m3wh983hjyd:has-anonymizer- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-xuanwuskill-has-anonymizer/snapshot"
Documentation
CLAWHUB
147,848 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: has-anonymizer
description: "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 before publishing or sharing."
metadata:
{
"openclaw":
{
"emoji": "🔒",
"requires": {
"bins": ["llama-server", "uv"],
"env": {
"HAS_TEXT_MODEL_PATH": {
"description": "Absolute path to the HaS text GGUF model (default: ~/.openclaw/tools/has-anonymizer/models/has_text_model.gguf)",
"required": false
},
"HAS_IMAGE_MODEL": {
"description": "Absolute path to the HaS image YOLO model (default: ~/.openclaw/tools/has-anonymizer/models/sensitive_seg_best.pt)",
"required": false
},
"HAS_TEXT_MAX_PARALLEL_REQUESTS": {
"description": "Maximum parallel inference requests for scan/hide/restore batch operations (default: 4, max: 4)",
"required": false
}
}
},
"install":
[
{
"id": "brew-uv",
"kind": "brew",
"os": ["darwin"],
"formula": "uv",
"bins": ["uv"],
"label": "Install uv (brew)",
},
{
"id": "brew-llama",
"kind": "brew",
"os": ["darwin"],
"formula": "llama.cpp",
"bins": ["llama-server"],
"label": "Install llama.cpp (brew)",
},
{
"id": "download-model",
"kind": "download",
"url": "https://huggingface.co/xuanwulab/HaS_Text_0209_0.6B_Q8/resolve/main/has_text_model.gguf",
"targetDir": "models",
"label": "Download HaS text model Q8 (639 MB)",
},
{
"id": "download-image-model",
"kind": "download",
"url": "https://huggingface.co/xuanwulab/HaS_Image_0209_FP32/resolve/main/sensitive_seg_best.pt",
"targetDir": "models",
"label": "Download HaS image model FP32 (119 MB)",
},
],
},
}
---
# HaS Privacy
HaS exposes a single umbrella CLI:
- `has text ...` for text anonymization, restoration, and scanning
- `has image ...` for image scanning, masking, and category discovery
Use 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.
## Agent Decision G_meta.json
{
"ownerId": "kn7dxedpkrcpgkjtfsxm4mstvs82c6w3",
"slug": "has-anonymizer",
"version": "1.0.3",
"publishedAt": 1774421481641
}references/eval/test_case/text_long_cases.json
{
"cases": [
{
"id": "zh-long-01",
"language": "zh-CN",
"types": [
"人名",
"电话号码",
"工号",
"地址",
"邮箱"
],
"text": "【机密】天远信息技术有限公司2025年度内部审计专项报告\n报告编号:IA-2025-Q4-017\n审计领域:供应商管理与采购合规性\n\n一、审计背景与范围\n\n根据公司2025年度审计工作计划的安排,内部审计部于第四季度对公司采购中心执行了一次专项审计。本次审计的重点在于审查过去十八个月内涉及信息技术基础设施类采购项目的合规性,评估采购流程中的内部控制设计和执行效果。审计组由内审部高级审计师周建华担任组长,成员包括两名审计专员和一名外聘的信息技术顾问。审计工作于2025年10月15日正式启动,历时八周,于12月10日完成现场审计程序和初步报告撰写。\n\n审计的范围覆盖了从供应商准入审查、报价评审和比选、合同签署与履约管理到验收结算与付款的完整采购业务循环。此外,审计组还对采购项目中涉及的资产登记和信息安全管理事项进行了延伸测试。在整个审计过程中,审计组共审阅了采购档案147份、供应商评审资料53份、合同文本39份、付款凭证216笔。为了全面了解业务操作流程的实际执行情况,审计组还对采购中心全部12名岗位人员进行了面对面访谈,每次访谈时长约45分钟至一小时不等。所有访谈均按照标准化的审计访谈模板进行,访谈记录经被访谈人签字确认后归入审计底稿。\n\n二、关键审计发现\n\n(一)供应商准入审查中存在的不足\n\n在对53份新供应商准入评审资料的系统性复核中,审计组发现有7份资料存在不同程度的文件瑕疵。详细分析如下:\n\n其中3份供应商准入卷宗中缺少资质证书有效期的交叉验证记录。公司采购管理制度明确要求,在供应商注册登记时,经办人员应当通过国家企业信用信息公示系统或行业主管部门网站对供应商提交的营业执照、资质证书和安全许可证的有效期进行独立验证,并将验证截屏保存在审批卷宗中。审计组在复核这三份卷宗时发现,经办人员只是将供应商自行提供的证照扫描件归档,但没有附上独立验证的截屏记录。虽然事后审计组通过独立查询确认了这三家供应商的资质均在有效期内,但文件记录的缺失意味着审批时的控制活动没有得到有效执行。\n\n另有2份卷宗缺少实地考察报告或替代的远程视频验证记录。公司制度允许对于年采购额预计低于50万元的新供应商采用视频验证代替现场考察,但这两份卷宗既没有现场考察报告也没有视频验证记录。经办人员在访谈中解释说,当时因为出差行程冲突,原计划的考察被推迟了,但后续没有跟进安排补充验证。审计组注意到,这两家供应商目前仍在公司的合格供应商名录中并有在途的采购业务。\n\n还有2份卷宗的信用评估报告引用了超过两年前的征信数据而未注明数据的时效性及其局限。公司信用评估指引要求引用的征信数据原则上不应超过最近12个月,如因特殊原因使用较早期的数据,应在评估报告中注明理由和相关风险提示。审计组认为,使用过期征信数据而不加说明可能影响信用评估结论的可靠性,特别是在当前经济环境下企业的信用状况变化较为频繁。\n\n需要特别说明的是,上述7家存在文件瑕疵的供应商中,有4家属于公司的长期合作伙伴,在准入评审时采用了针对老供应商续约的简化流程。内审部理解提高业务效率的考量,但认为即便是续约评审也应当保留关键控制节点的验证记录,以满足监管合规和内部治理的基本要求。审计组建议采购中心在2026年第一季度内完成对简化流程适用条件的重新评估,并更新相关操作指引。\n\n(一之一)供应商管理制度的演进历史\n\n为了更全面地理解当前供应商准入评审中存在的问题,审计组回顾了公司供应商管理制度的历史沿革。天远信息的第一版《供应商管理制度》制定于2018年,当时公司的年采购规模约为4500万元,在册供应商不超过30家。这一版本的制度对供应商准入评审的要求相对简单,主要包括营业执照验证、法人代表身份确认和基本的财务状况审查三个步骤。\n\n2020年,随着公司业务规模的扩大和信息技术采购需求的快速增长,采购中心对制度进行了第一次重大修订。修订后的版本增加了资质证书独立验证、实地考察或视频验证、信用评估报告和行业口碑调查四个新的审查环节。同时引入了供应商分级管理的概念:将供应商按年采购额和业务关键性分为战略级、重要级和一般级三个层级,不同层级适用不同深度的审查要求。\n\n2022年底,公司在引入新的企业资源管理系统后,对供应商管理流程进行了数字化改造。所有的准入评审环节被集成到系统中的电子化审批流程中,要求每个审查步骤都在系统中留下操作记录和附件。这次系统化改造本应显著提升文件记录的完整性,但审计组在本次审计中发现,系统设计中存在一个疏漏:系统虽然设置了审批节点,但各节点的附件上传被设计为非强制性,即经办人员可以在不上传验证截屏的情况下完成审批流转。这一系统设计上的缺陷直接导致了前述7份卷宗中文件记录缺失的问题。\n\n审计组建议信息技术部门在下一次系统维护窗口中,将供应商准入审批流程中所有涉及独立验证环节的附件上传设置为强制性必填项。在技术实现上,这一修改的工作量较小(预计开发和测试时间约一周),但在合规效果上可以从根本上避免文件记录缺失的问题复发。\n\n(二)报价评审与竞争性采购方面的问题\n\n在审阅的147份采购档案中,有23份涉及单一来源采购方式,占全部采购项目的比例约为15.6%。按照公司《采购管理制度》第十四条的规定,单一来源采购应当由采购经理提出书面申请,说明选择单一来源的理由和依据,经采购总监审批后方可执行。审计组逐一核对后发现,有8份单一来源采购缺少完整的审批记录。具体表现为:4份缺少采购总监的签字批准,2份有审批签字但缺少详细的理由说明,另有2份的审批表格中仅填写了\"技术需要\"四个字作为全部理由,缺乏具体的技术分析和市场调查说明。\n\n审计组选取了其中一个典型案例进行了深入调查。该案例涉及采购中心经理方志远主导的一次网络安全设备的完整采购项目。方志远的工号为EMP-2024-0731,于2024年7月入职公司,在加入天远信息之前有八年的IT采购工作经验。该采购项目的标的金额为人民币187万元,合同对手方为鼎创科技有限公司。鼎创科技是一家成立于2019年的网络安全解决方案提供商,注册地址位于深圳市南山区科技园路88号鼎创大厦12层,主要业务包括企业级防火墙、入侵检测系统和终端安全管理平台的研发与销售。\n\n方志远在采购审批表的单一来源理由栏中注明该供应商为\"唯一满足技术规格要求的厂商\"。然而,审计组在调阅该项目的技术评审记录时发现,评审委员会实际上曾收到过另外两家供应商提交的技术方案。在技术评审评分表上,三家供应商在八项核心指标中的得分如下:鼎创科技总分82.5分(满分100分),第二名供应商的总分为79分,第三名供应商的总分为71分。特别值得注意的是,排名第二的供应商在其中三项核心指标的得分与鼎创科技的差距均在5分以内。审计组因references/eval/test_case/text_medium_cases.json
{
"cases": [
{
"id": "zh-medium-01",
"language": "zh-CN",
"text": "上周三下午,客服二组在处理退款工单 TK-20260315-042 时发现该工单被反复转派了三次但始终没有最终归口。根据系统备注,最初的投诉由用户在 APP 端提交,原因是签收当天蓝牙耳机出现充电异常,连续三次充满后仅能使用不到两小时。一组的同事尝试过远程指导恢复出厂设置,但问题并未解决,随后建议走换货流程。组长在内部沟通群里确认情况后,将该工单重新指派给售后专员李明负责后续跟进。工单附件中记录了李明的直拨手机号 13912345678,用户备注希望在下午三点以后再联系,因为上午通常在开会,短信回复也比较慢。由于距首次投诉已超过 72 小时,按照服务承诺应优先在次日上午安排电话确认,并将处理进展同步更新到工单备注栏。主管要求本周五之前完成闭环,如果涉及产品质量问题还需同步通知供应链团队做批次排查。",
"types": [
"人名",
"电话号码"
],
"expected_entities": {
"人名": [
"李明"
],
"电话号码": [
"13912345678"
]
}
},
{
"id": "zh-medium-02",
"language": "zh-CN",
"text": "本季度产品改版计划已经进入设计评审阶段。上周五的跨部门会议上,前端组提出希望在四月底之前完成首页信息流的改版上线,但设计侧目前只完成了移动端的视觉定稿,桌面端的交互方案还在迭代中。会上确定由产品经理张婷负责协调排期冲突,她会在本周内把修订后的里程碑计划发给各方确认。如果需要提前获取高保真原型图或组件标注文件,可以发邮件到 [email protected] 申请权限,张婷会在收到后一个工作日内回复。后端接口方面,用户画像和推荐模块的联调窗口目前排在五月第二周,如果前端进度提前,需要在四月中旬就启动联调环境搭建。设计团队建议在正式上线前安排两轮用户可用性测试,测试人群从内部灰度用户中抽取,每轮不少于 20 人。会议结论已整理到飞书文档中,各组本周内完成响应。",
"types": [
"人名",
"邮箱"
],
"expected_entities": {
"人名": [
"张婷"
],
"邮箱": [
"[email protected]"
]
}
},
{
"id": "zh-medium-03",
"language": "zh-CN",
"text": "法务部本周需要将劳动仲裁答辩状的正式文本和相关证据材料寄出。这批材料总共有三份,分别对应三位前员工提出的加班工资争议。其中第一份材料涉及的争议金额最大,证据附件也最多,需要额外准备两套副本供仲裁庭存档。行政助理已经确认了快递账号和发件流程,但收件信息还差一位当事人的最新地址。经过人事核实后确认,王磊目前的收件地址已更新为上海市浦东新区丁香路88号,旧办公室那边已经没有人代收个人快件了。法务同事提醒,所有寄出材料的封面页上不应出现非当事人的个人信息,回执单据需要单独扫描归档到案件文件夹中。快递建议选择当日达或次日达的方式,并要求签收时拍照留底,以便在仲裁庭上作为送达回证使用。寄出前请再次核对材料清单和收件信息,避免遗漏或寄错地址。",
"types": [
"人名",
"地址"
],
"expected_entities": {
"人名": [
"王磊"
],
"地址": [
"上海市浦东新区丁香路88号"
]
}
},
{
"id": "zh-medium-04",
"language": "zh-CN",
"text": "研发区的门禁权限调整申请本周二开始集中批处理。物业管理系统里累积了十二条待审批记录,其中大部分是新入职员工的初始权限开通,还有几条是跨楼层访问权限的临时追加。安全运维在逐条复核时注意到,有一条记录的申请描述不够完整——只写了「恢复权限」,没有说明原因和范围。经过与人事确认,这条记录对应的是星河科技派驻到联合实验室的陈雪,工号 EMP-2048。她之前因为项目阶段调整被临时冻结了研发区和机房的通行权限,现在项目重新启动,需要恢复原有的全部区域访问。安全运维要求补充申请表中的审批人和有效期字段,并在通行记录里标注本次恢复的原因编码。权限变更生效后还需要回邮件给人事确认,确保门禁卡的物理状态与系统记录一致。整批权限申请预计在本周四之前全部处理完毕。",
"types": [
"人名",
"组织机构",
"工号"
],
"expected_entities": {
"人名": [
"陈雪"
],
"组织机构": [
"星河科技"
],
"工号": [
"EMP-2048"
]
}
},
{
"id": "zh-medium-05",
"language": "zh-CN",
"text": "仓库管理组在上午的分拣会上通报了本周的出库异常情况。三月以来,B 区仓库的订单拣货准确率从 99.2% 下降到了 97.8%,主要集中在生鲜品类的温控标签缺失问题上。运营负责人要求从本周起对所有生鲜订单在封箱前增加一道核验步骤,逐件扫码确认温控标签是否粘贴到位。在此过程中还发现一笔优先级较高的订单需要特别处理——订单号 ORD-20260320-018 是一批实验设备的紧急调拨件,收货方指定由赵敏签收,不接受代签。仓库调度已联系承运方确认到站时间预计在明天下午两点左右,如果赵敏当时不在场需要提前改约。司机到站前应先确认交付窗口是否仍然有效,避免到了之后无人接收又要返回站点重新安排第二天派送。出库异常的整改报告需要在本月底之前提交给运营总监。",
"types": [
"人名",
"订单号"
],
"expected_entities": {
"人名": [
references/eval/test_case/text_short_cases.json
{
"cases": [
{
"id": "zh-01",
"language": "zh-CN",
"text": "张伟的手机号是13866667777,有事请在工作时间联系。",
"types": [
"人名",
"电话号码"
],
"expected_entities": {
"人名": [
"张伟"
],
"电话号码": [
"13866667777"
]
}
},
{
"id": "zh-02",
"language": "zh-CN",
"text": "请将合同初稿发送到林芳的邮箱 [email protected]。",
"types": [
"人名",
"邮箱"
],
"expected_entities": {
"人名": [
"林芳"
],
"邮箱": [
"[email protected]"
]
}
},
{
"id": "zh-03",
"language": "zh-CN",
"text": "入职登记表显示,陈磊的身份证号为310101199503156718。",
"types": [
"人名",
"身份证号"
],
"expected_entities": {
"人名": [
"陈磊"
],
"身份证号": [
"310101199503156718"
]
}
},
{
"id": "zh-04",
"language": "zh-CN",
"text": "请将样品寄到黄丽的地址:深圳市南山区科技园路22号。",
"types": [
"人名",
"地址"
],
"expected_entities": {
"人名": [
"黄丽"
],
"地址": [
"深圳市南山区科技园路22号"
]
}
},
{
"id": "zh-05",
"language": "zh-CN",
"text": "订单 ORD-20260315-007 需要杨帅签收,联系电话15011223344。",
"types": [
"订单号",
"人名",
"电话号码"
],
"expected_entities": {
"订单号": [
"ORD-20260315-007"
],
"人名": [
"杨帅"
],
"电话号码": [
"15011223344"
]
}
},
{
"id": "zh-06",
"language": "zh-CN",
"text": "报销单上的收款账户是周琳的银行卡6228480321456789012。",
"types": [
"人名",
"银行卡号"
],
"expected_entities": {
"人名": [
"周琳"
],
"银行卡号": [
"6228480321456789012"
]
}
},
{
"id": "zh-07",
"language": "zh-CN",
"text": "孙鹏在华创软件的工号是 EMP-3156,请核实门禁权限。",
"types": [
"人名",
"组织机构",
"工号"
],
"expected_entities": {
"人名": [
"孙鹏"
],
"组织机构": [
"华创软件"
],
"工号": [
"EMP-3156"
]
}
},
{
"id": "zh-08",
"language": "zh-CN",
"text": "访客车辆登记:郑凯,车牌号沪B56789。",
"types": [
"人名",
"车牌号"
],
"expected_entities": {
"人名": [
"郑凯"
],
"车牌号": [
"沪B56789"
]
}
},
{
"id": "zh-09",
"language": "zh-CN",
"text": "患者吴芳的腕带编号是 PT-70214,请核对用药记录。",
"types": [
"人名",
"患者编号"
],
"expected_entities": {
"人名": [
"吴芳"
],
"患者编号": [
"PT-70214"
]
}
},
{
"id": "zh-10",
"language": "zh-CN",
"text": "本周末市图书馆将举办免费阅读分享会,欢迎市民报名参加。",
"types": [
"人名",
"电话号码"
],
"expected_entities":AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/xuanwuskill/skills/has-anonymizer",
"sourceUrl": "https://clawhub.ai/xuanwuskill/skills/has-anonymizer",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T16:25:02.956Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-xuanwuskill-has-anonymizer/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-xuanwuskill-has-anonymizer/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T16:25:02.956Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2.3K downloads",
"href": "https://clawhub.ai/xuanwuskill/has-anonymizer",
"sourceUrl": "https://clawhub.ai/xuanwuskill/has-anonymizer",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T16:25:02.956Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.3",
"href": "https://clawhub.ai/xuanwuskill/has-anonymizer",
"sourceUrl": "https://clawhub.ai/xuanwuskill/has-anonymizer",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-03-25T06:51:21.641Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-xuanwuskill-has-anonymizer/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-xuanwuskill-has-anonymizer/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.3",
"description": "fix(image): adaptive mosaic for QR codes and barcodes. Default mosaic strength aligned with QR module size, leaving codes machine-readable. Added adaptive strength, cv2 post-masking verification with escalation fallback, cv2 supplementary scan for missed codes, and cv2 type correction for YOLO misclassifications. Refactored detect-correct-filter-mask pipeline.",
"href": "https://clawhub.ai/xuanwuskill/has-anonymizer",
"sourceUrl": "https://clawhub.ai/xuanwuskill/has-anonymizer",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-03-25T06:51:21.641Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
