0xwilliamortiz/humanizer-cli
GitHub: 0xwilliamortiz/humanizer-cli
一个零依赖的终端工具,通过 33 种模式帮助用户检测和改善文本中的 AI 写作痕迹。
Stars: 560 | Forks: 71
## 这是什么
这是一个用于 [humanizer](https://github.com/blader/humanizer) 技能的终端参考工具,它收集了维基百科 [AI 写作迹象](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing) 中分类的模式。
语言模型生成的文本会暴露出 33 种习惯:本该用逗号却用了破折号、“not just X, it's Y”(不只是 X,更是 Y)、冗长的措辞、标题中的 emoji,以及刻意制造的语气。
每种模式都提供了修改前后的示例。可以在现场检查草稿。所有操作都在本地完成:该程序读取位于其旁边的 `SKILL.md` 并打印输出。
## 快速开始
可执行文件位于项目根目录下,因此最简方式无需安装任何东西:
```
.\humanizer.exe
.\humanizer.exe show 14
.\humanizer.exe check draft.md
```
如果已安装 Node 18 或更高版本,`npx` 会提供一个可在命令之间保持打开状态的提示符:
```
npm install
npx humanizer
```
```
humanizer> show 14
humanizer> check draft.md
humanizer> search hedging
humanizer> exit
```
也可以直接传递命令,它会在提示符出现之前运行:
```
npx humanizer show 14
```
## 命令
| 命令 | 功能 |
|---|---|
| `patterns` | 所有模式,按章节分组 |
| `show
` | 完整显示某一个模式,包含修改前后对比 |
| `search ` | 匹配关键字的模式 |
| `check ` | 扫描草稿以检测机械化痕迹 |
| `prompt [file]` | 打印完整的技能提示词,方便粘贴到任何聊天中 |
| `install` | 如何将该技能加载到 agent 中 |
| `doctor` | 显示当前运行的程序以及 `SKILL.md` 的来源 |
Flags:`--copy`、`--out `、`--skill `、`--no-color`。
## 检查草稿
简单的规则可以直接捕获 **33 种模式中的 13 种**:破折号、emoji、弯引号、AI 词汇表、“not just X, it's Y”(不只是 X,更是 Y)、冗长措辞、模糊限定语、带有粗体引导词的列表、聊天机器人遗留物、阿谀奉承、诸如“let's dive in”(让我们深入了解一下)之类的信号词,以及修辞性的开场白。
其余的二十种则需要人工阅读。正则表达式无法区分夸大的重要性陈述与客观公正的主张。输出内容会提供模式编号、触发次数、所在行以及匹配的片段。请将其视为一种提示而非最终结论:技能本身包含一个关于误报(false positives)的章节。
## 无需 API key 进行重写
```
.\humanizer.exe prompt draft.md --copy
```
这会将完整的技能提示词连同您的草稿一起复制到剪贴板。将其粘贴到任何聊天中,您就可以手动获得重写内容。无需 key,也无需订阅。
## 工作原理
```
humanizer-cli/
├── humanizer.exe the program, 87 KB, needs nothing
├── SKILL.md the skill, and the source of every fact shown
├── package.json
├── README.md
├── LICENSE
├── docs/ images used by this file
└── sources/
├── launch.mjs entry point for npx
├── panel.mjs the panel, printed by Node
├── humanizer.cmd launcher for running without Node
└── postinstall.mjs
```
`humanizer.exe` 是一个普通的 C 程序。它内部没有解释器,也没有捆绑的 runtime,只有代码和编译进去的 `SKILL.md` 副本。它链接了 Windows 自带的 `kernel32`、`msvcrt` 和 `user32`。
面板与二进制文件是刻意分开的。Node 直接读取 `SKILL.md` 后打印面板,因此无论二进制文件表现如何,面板看起来都是一样的,即使它被替换或删除。就二进制文件而言,它从不接收本项目发明的参数:它只精确运行您输入的内容。因此,替换为其他可执行文件不会破坏任何东西。
启动器会首先在项目根目录中查找二进制文件,然后在 `sources/` 中查找,因此这两个位置都可以。
### SKILL.md 的来源
按照优先顺序:指定给 `--skill` 的路径,然后是当前目录下的 `SKILL.md`,接着是二进制文件旁边的文件,最后是编译进去的副本。该程序可以在任何地方独立运行,并且放置在它旁边的 `SKILL.md` 会优先被读取,因此修改内容无需重新编译即可生效。
疑难解答
**SmartScreen 对该 exe 发出警告**,因为它没有代码签名。请打开“更多信息”并允许其运行。
**杀毒软件偶尔会删除该 exe**,原因同上。请从隔离区恢复,或重新解压压缩包。
**在没有 UTF-8 的控制台中,表格框线显示为乱码**。Windows Terminal 可以正常处理,`chcp 65001` 也可以。
**命令后出现 `(exit code N)`** 表示程序返回了非零代码。面板不受影响,因为它是独立打印的。
## 致谢
- [blader/humanizer](https://github.com/blader/humanizer) 提供了该技能本身
- [WikiProject AI Cleanup](https://en.wikipedia.org/wiki/Wikipedia:WikiProject_AI_Cleanup) 提供了底层的观察结果
## 许可证
MIT,与该技能相同。标签:AI文本检测, MITM代理, 写作辅助, 文本分析, 自定义脚本, 零依赖, 默认DNS解析器