表情符号工具箱

利用Unicode变体选择器将文本隐藏编码到表情符号中,实现视觉仅显示表情而隐秘传递消息和代币信息。

天轰穿

@thcjp

Install

$ openclaw skills install @thcjp/emoji-toolkit-free

表情符号工具箱(免费版)

在表情符号中隐藏消息。Unicode变体选择器让隐秘通信成为可能。

有些信息需要在公开渠道传递但不希望被一眼看到。表情符号工具箱利用Unicode变体选择器(Variation Selectors, VS1-VS256)技术,将文本编码到表情符号内部。聊天应用只显示表情符号本身,但隐藏的变体选择器字符被完整保留,接收方可以解码出原始文本.

核心理念

┌──────────────────────────────────────────────────┐
│              隐藏消息编码原理                      │
├──────────────────────────────────────────────────┤
│                                                  │
│  表面层:接收方看到的表情符号                       │
│          🥜                                        │
│                                                  │
│  隐藏层:实际携带的变体选择器序列                   │
│          🥜 + VS1VS2VS3...VS256                  │
│          (每个VS对应一个字节)                      │
│                                                  │
│  编码过程:                                        │
│    文本 → UTF-8字节 → 变体选择器映射 → 表情符号    │
│                                                  │
│  解码过程:                                        │
│    表情符号 → 提取变体选择器 → 字节还原 → 文本     │
│                                                  │
└──────────────────────────────────────────────────┘

使用流程

  1. 阅读## 核心能力章节了解skill功能
  2. 按## 依赖说明配置环境
  3. 执行所需能力对应的命令
  4. 参考## 错误处理章节处理异常
  5. 查看## 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"
# ...
# 文章末尾显示🎯,但隐藏了作者标识和时间戳
# 追溯时解码即可获取水印信息

效果:内容中嵌入不可见的版权水印,不影响阅读,但可追溯来源.

优秀实践

编码优秀实践

  1. 选择合适载体:使用不常见的表情符号(如🥜)作为载体
  2. 添加尾部文本:在表情符号后添加至少一个普通字符,提高传输可靠性
  3. 短文本优先:隐藏文本越短,变体选择器越少,传输越稳定
  4. 测试传输:编码后先测试发送,确认目标应用能保留变体选择器

解码优秀实践

  1. 复制完整消息:解码时必须复制完整的消息文本,不要只复制表情符号
  2. 检查元数据:使用--metadata参数检查代币基本信息
  3. JSON输出:程序化处理时使用--json输出
  4. 完整性检查:如果解码结果不完整或乱码,提示重新发送

安全优秀实践

  1. 代币即现金:解码出的代币字符串等同于现金,妥善保管
  2. 不信赖元数据:--metadata仅做本地预检,不证明代币有效
  3. 注意传输环境:部分聊天应用会破坏变体选择器
  4. 代码块发送:在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 APIAPI必需由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