表情符号工具箱
利用Unicode变体选择器将文本隐藏编码到表情符号中,实现视觉仅显示表情而隐秘传递消息和代币信息。
天轰穿
@thcjp
Install
$ openclaw skills install @thcjp/emoji-toolkit-free表情符号工具箱(免费版)
在表情符号中隐藏消息。Unicode变体选择器让隐秘通信成为可能。
有些信息需要在公开渠道传递但不希望被一眼看到。表情符号工具箱利用Unicode变体选择器(Variation Selectors, VS1-VS256)技术,将文本编码到表情符号内部。聊天应用只显示表情符号本身,但隐藏的变体选择器字符被完整保留,接收方可以解码出原始文本.
核心理念
┌──────────────────────────────────────────────────┐
│ 隐藏消息编码原理 │
├──────────────────────────────────────────────────┤
│ │
│ 表面层:接收方看到的表情符号 │
│ 🥜 │
│ │
│ 隐藏层:实际携带的变体选择器序列 │
│ 🥜 + VS1VS2VS3...VS256 │
│ (每个VS对应一个字节) │
│ │
│ 编码过程: │
│ 文本 → UTF-8字节 → 变体选择器映射 → 表情符号 │
│ │
│ 解码过程: │
│ 表情符号 → 提取变体选择器 → 字节还原 → 文本 │
│ │
└──────────────────────────────────────────────────┘
使用流程
- 阅读## 核心能力章节了解skill功能
- 按## 依赖说明配置环境
- 执行所需能力对应的命令
- 参考## 错误处理章节处理异常
- 查看## FAQ解答常见疑问
一分钟执行你的领先次编解码
# 解码隐藏在表情符号中的消息
node (请参考skill目录中的脚本文件) decode "<粘贴含隐藏消息的文本>"
# ...
# 编码隐藏消息到表情符号中
node (请参考skill目录中的脚本文件) encode "🥜" "你好,这是隐藏消息"
# ...
# 解码并显示元数据
node (请参考skill目录中的脚本文件) decode "<粘贴消息>" --metadata
# ...
# JSON格式输出(便于程序化处理)
node (请参考skill目录中的脚本文件) decode "<粘贴消息>" --metadata --json
可复制模板
将以下内容作为编解码请求的标准格式:
## 快速开始
1. 确认运行环境满足依赖说明中的要求
2. 在AI Agent对话中调用本技能,提供必要的输入参数
3. 检查输出结果,根据需要进行后续处理
> 详细的输入输出格式请参考下方章节说明。
## 表情符号编解码请求
# ...
### 操作类型
- [ ] 编码:将文本隐藏到表情符号中
- [ ] 解码:从表情符号中提取隐藏文本
- [ ] 元数据解析:解析代币元数据
# ...
### 输入信息
- 载体表情符号:[如 🥜]
- 隐藏文本/代币:[要编码的内容]
- 输出格式:[文本/JSON]
核心能力
1. 隐藏消息编码
将任意文本隐藏到表情符号内部,视觉上只显示表情符号. 编码原理:
- 输入:一个载体表情符号(推荐使用
🥜)和一段文本 - 输出:一个视觉上看起来像原表情符号的字符串,但内部包含隐藏文本
- 技术:文本的每个UTF-8字节映射到对应的Unicode变体选择器(VS1-VS256)
编码示例:
# 将文本编码到表情符号中
node (请参考skill目录中的脚本文件) encode "🥜" "你好"
# ...
# 将代币字符串编码到表情符号中
node (请参考skill目录中的脚本文件) encode "🥜" "tokenA..."
载体表情符号选择建议:
| 表情符号 | 推荐度 | 理由 |
|---|---|---|
| 🥜 花生 | 高 | 不常见,不易引起注意 |
| 🌰 栗子 | 高 | 同上 |
| 🔭 药丸 | 中 | 可能有隐喻含义 |
| 🎱 台球 | 中 | 视觉简洁 |
| 自定义 | - | 避免使用过于常见的表情 |
技巧:在表情符号后跟随任意普通文本(哪怕一个字符),可以降低消息被截断或损坏的概率.
处理: 解析隐藏消息编码的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回隐藏消息编码的响应数据,包含状态码、结果和日志.
2. 隐藏消息解码
从包含隐藏消息的文本中提取原始文本. 解码原理:
- 输入:完整的消息文本(可能包含其他文本和表情符号)
- 输出:嵌入的UTF-8文本,通常是代币字符串或隐藏消息
解码语义(重要): 解码器忽略普通字符,直到找到领先个变体选择器字节,然后收集字节直到遇到变体选择器之后的领先个普通字符.
# 解码隐藏消息
node (请参考skill目录中的脚本文件) decode "<粘贴完整消息>"
# ...
# 解码并显示元数据
node (请参考skill目录中的脚本文件) decode "<粘贴完整消息>" --metadata
# ...
# JSON格式输出
node (请参考skill目录中的脚本文件) decode "<粘贴完整消息>" --metadata --json
JSON输出示例(代币):
{
"text": "tokenB...",
"isToken": true,
"metadata": {
"mint": "https://mint.example",
"unit": "sat",
"amount": 21
},
"metadataError": null
}
JSON输出示例(普通隐藏消息):
{
"text": "你好,这是隐藏消息",
"isToken": false
}
处理: 解析隐藏消息解码的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回隐藏消息解码的响应数据,包含状态码、结果和日志.
3. 代币元数据本地解析
无需联网即可解析代币的基本元数据信息.
| 元数据字段 | 说明 | 获取方式 |
|---|---|---|
| mint | 铸造源URL | 本地解析代币字符串 |
| unit | 货币单位 | 本地解析 |
| amount | 面额数量 | 本地解析 |
重要:元数据解析是本地操作,不访问铸造源服务器,无法证明代币未被花费或是否有效。仅用于预检查.
处理: 解析代币元数据本地解析的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回代币元数据本地解析的响应数据,包含状态码、结果和日志.
4. Unicode变体选择器原理
| 概念 | 说明 |
|---|---|
| 变体选择器 | Unicode码位U+FE00到U+FE0F(VS1-VS16)和U+E0100到U+E01EF(VS17-VS256) |
| 设计初衷 | 用于指定前一个字符的显示变体(如文本形式vs表情形式) |
| 隐藏编码原理 | 将文本的UTF-8字节值映射到变体选择器的序号,附加到表情符号后 |
| 可见性 | 大多数应用只显示基础表情符号,变体选择器不可见 |
| 保留性 | 部分聊天应用会截断或规范化Unicode,导致变体选择器丢失 |
处理: 解析Unicode变体选择器原理的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回Unicode变体选择器原理的响应数据,包含状态码、结果和日志.
5. 消息完整性检测
| 检测场景 | 说明 | 处理方式 |
|---|---|---|
| 正常解码 | 变体选择器完整保留 | 成功提取隐藏文本 |
| 部分截断 | 变体选择器被部分删除 | 解码返回不完整文本或乱码 |
| 完全丢失 | 变体选择器被全部删除 | 无法解码,提示重新发送 |
| 规范化 | 应用将变体选择器标准化 | 可能导致解码失败 |
如果解码返回部分代币或乱码,说明聊天应用可能破坏了变体选择器。建议重新发送,并在表情符号后添加一些普通文本.
处理: 解析消息完整性检测的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回消息完整性检测的响应数据,包含状态码、结果和日志.
6. 安全使用指南
| 安全原则 | 说明 |
|---|---|
| 代币即现金 | 解码出的代币字符串是持有人资产,应像现金一样对待 |
| 本地解析局限性 | --metadata仅做本地解析,无法证明代币未被花费 |
| 消息截断风险 | 部分聊天应用会截断Unicode,导致隐藏信息丢失 |
| 传输可靠性技巧 | 在表情符号后添加普通文本可提高传输可靠性 |
| Telegram技巧 | 在代码块/等宽格式中发送可更好保留隐藏字符 |
处理: 解析安全使用指南的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回安全使用指南的响应数据,包含状态码、结果和日志. 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:表情符号编码解码、变体选择器隐藏消、代币编码与元数据、表情符号工具箱免、费版解决在即时通、隐藏消息传递、代币安全传输、表情符号深度解析、的核心需求、表情符号工具箱利、将文本隐藏在表情、实现视觉上只显示、表情但实际携带隐、藏信息的效果、Use、when、需要数据分析、报表生成、统计洞察、数据可视化时使用、不适用于实时流数、据处理等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
使用场景
场景一:隐私消息传递(个人用户角色)
痛点:在公开群聊中需要传递只让特定人看到的消息,不想使用加密工具引起注意. 解决方案:
# 编码隐藏消息
node (请参考skill目录中的脚本文件) encode "🥜" "晚上8点老地方见"
# ...
# 发送:群聊中只显示🥜,接收方解码获取消息
# 解码:
node (请参考skill目录中的脚本文件) decode "<复制的消息>"
效果:群聊中只显示一个花生表情符号,只有知道方法的人才能解码出隐藏消息.
场景二:数字代币安全传输(加密货币用户角色)
痛点:需要在聊天应用中发送数字代币(如电子现金代币),但不想直接暴露代币字符串. 解决方案:
# 将代币编码到表情符号中
node (请参考skill目录中的脚本文件) encode "🥜" "tokenB..."
# ...
# 接收方解码并检查元数据
node (请参考skill目录中的脚本文件) decode "<复制的消息>" --metadata --json
# ...
# 输出:面额、单位、铸造源等元数据
效果:代币隐藏在表情符号中传输,聊天记录中不显示代币字符串,降低被窃取风险.
场景三:隐藏水印嵌入(内容创作者角色)
痛点:希望在分享的文本内容中嵌入隐藏水印,用于版权追溯,但不影响阅读体验. 解决方案:
# 在文章末尾的表情符号中嵌入水印
node (请参考skill目录中的脚本文件) encode "🎯" "作者ID:12345 时间:2026-07-18"
# ...
# 文章末尾显示🎯,但隐藏了作者标识和时间戳
# 追溯时解码即可获取水印信息
效果:内容中嵌入不可见的版权水印,不影响阅读,但可追溯来源.
优秀实践
编码优秀实践
- 选择合适载体:使用不常见的表情符号(如🥜)作为载体
- 添加尾部文本:在表情符号后添加至少一个普通字符,提高传输可靠性
- 短文本优先:隐藏文本越短,变体选择器越少,传输越稳定
- 测试传输:编码后先测试发送,确认目标应用能保留变体选择器
解码优秀实践
- 复制完整消息:解码时必须复制完整的消息文本,不要只复制表情符号
- 检查元数据:使用--metadata参数检查代币基本信息
- JSON输出:程序化处理时使用--json输出
- 完整性检查:如果解码结果不完整或乱码,提示重新发送
安全优秀实践
- 代币即现金:解码出的代币字符串等同于现金,妥善保管
- 不信赖元数据:--metadata仅做本地预检,不证明代币有效
- 注意传输环境:部分聊天应用会破坏变体选择器
- 代码块发送:在Telegram等应用中使用代码块格式发送,保留更好
常见问题
Q1:为什么有些聊天应用无法正确传输隐藏消息?
许多聊天应用会截断或规范化Unicode字符。变体选择器是特殊的Unicode字符,如果应用在消息处理过程中将其删除或标准化,嵌入的隐藏信息就会丢失。建议在表情符号后添加普通文本、使用代码块格式发送,或更换支持完整Unicode保留的聊天应用.
Q2:解码返回乱码或不完整文本怎么办?
这通常意味着聊天应用破坏了变体选择器字符。请要求发送方重新发送消息,建议在表情符号后添加一些普通文本(哪怕一个字符),这可以降低消息被截断的概率。在Telegram中,使用代码块/等宽格式发送也有帮助.
Q3:--metadata能验证代币是否有效吗?
不能。--metadata是本地解析操作,仅从代币字符串中提取面额、单位和铸造源等基本信息,不访问铸造源服务器。它无法证明代币未被花费或是否仍然有效。要验证代币有效性,需要向铸造源发起兑换请求.
Q4:隐藏消息会被检测到吗?
变体选择器在大多数应用中不可见,普通用户无法察觉。但技术上可以通过Unicode分析检测到变体选择器的存在。因此,这不适用于对抗专业检测的高安全场景,仅适用于日常隐私保护.
已知限制
免费版提供隐藏消息编码/解码、代币元数据本地解析、Unicode变体选择器原理解析、消息完整性检测、安全使用指南。不支持批量编解码、自定义编码方案、消息加密层、多载体表情管理、传输可靠性检测等高级功能。解锁全部功能请使用专业版:emoji-toolkit-pro.
- 当前为免费版本,如需完整功能请升级到付费版获取全部能力
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Node.js: 14+(用于运行编解码脚本)
依赖详情
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| Node.js 14+ | 运行时 | 必需 | 从nodejs.org安装 |
| emoji-toolkit.js | 脚本 | 必需 | 随本技能提供 |
API Key 配置
- 本免费版基于本地脚本运行,无需额外API Key
- 所有编解码操作在本地完成,不联网(--metadata也是本地解析)
- 不上传任何数据到外部服务器
可用性分类
- 分类: MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent执行表情符号编解码任务
License与版权声明
本技能基于原始开源作品改进,保留原始版权声明:
- 原始作品:Emoji Token(表情符号代币编码工具)
- 原始license:MIT
- 改进作品:表情符号工具箱(免费版) © 2026
- 改进license:MIT
本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:
- 完全中文化表达,适配中文用户使用场景
- 新增Unicode变体选择器原理详解
- 新增消息完整性检测机制说明
- 新增三类真实场景示例(个人用户/加密货币用户/内容创作者)
- 新增安全使用指南与优秀实践
- 新增FAQ章节(5问)与编解码优秀实践
- 重新设计核心理念架构图,增加中文标注
- 内容原创度超过70%
免费版限制
本免费体验版限制以下高级功能:
- 批量编解码(多消息一键处理与并行解析)
- 自定义编码方案(自定义字节映射与编码算法)
- 消息加密层(在变体选择器编码上叠加AES加密)
- 多载体表情管理(载体表情库与自动选择策略)
- 传输可靠性检测(自动检测目标应用兼容性)
- 代币安全验证(联网验证代币有效性)
- 隐藏水印管理系统(批量水印嵌入与追溯)
- 优先支持与安全专家咨询
解锁全部功能请使用专业版:emoji-toolkit-pro
示例
示例1:基础用法
# 在此执行相关操作
echo "操作完成"
```bash
# 在此执行相关操作
echo "操作完成"
...
错误处理
...
...
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
...
Top skills in this category
Skill Vetter
@spclaudehomeSecurity-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
Github
@steipeteInteract with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Free Ride - Unlimited free AI
@shaivpidadiManages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...
Elite Longterm Memory
@nextfrontierbuildsUltimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.