关于 termlog
termlog 将原始终端会话文本转换为便于分享的 Markdown,适合记录或分享命令输出的开发者。它会清除终端控制序列和进度重绘,并默认在本地处理时遮盖常见机密模式。
主要功能
- 01移除 ANSI 转义序列
- 02折叠回车覆盖的进度输出
- 03清理行尾空白与多余空行
- 04遮盖常见机密模式
- 05报告遮盖数量和行统计
适用场景
- 01整理终端输出以便用于聊天
- 02将清洁的命令日志加入文档
- 03分享日志时隐藏凭据
MCP 相关
MCP 服务提供 `clean_terminal_log`,接收终端文本和可选的遮盖设置,并返回清理后的 Markdown、数量及统计信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | string | 是 | 原始终端会话文本 |
| redact | boolean | 否 | 应用机密信息脱敏(默认值为 true) |
详细介绍
termlog
将终端会话粘贴到聊天或文档中时,粘贴的内容会包含所有内容:颜色代码、反复重绘了上百次的进度条,还有——最常见的是——滚动过程中出现的 API 密钥。termlog 只需在本地处理一次,就能将原始会话整理成便于分享的 Markdown:
- 移除 ANSI 序列 — 移除 CSI、OSC 和双字符转义序列,并统计每次移除
- 回车符 — 每行只保留最后一个
\r之后的内容,让进度条折叠为最终状态 - 尾随空白 — 移除末尾的空格和制表符
- 脱敏(默认开启)— 将私钥块、AWS 访问密钥 ID、GitHub 令牌、Bearer 凭据以及
key = value格式的密钥替换为[REDACTED:<kind>]标记,按上述模式顺序应用,并按类别统计 - 空行 — 将连续 3 个或更多换行符合并为恰好 2 个,并移除首尾的空行
结果包含放在 ```console 围栏中的清理后文本、脱敏计数和行数统计。这是纯本地文本转换:不联网,也无需配置。
CLI
npx @reneturcios/termlog clean --input session.log
npx @reneturcios/termlog clean --input session.log --no-redact
npx @reneturcios/termlog --version
输入文件以 UTF-8 格式读取,输出对象以 JSON 格式打印。退出代码:成功时为 0,运行时出错时为 1(包括输入文件不可读),用法错误时为 2。
MCP 服务
npx -y @reneturcios/termlog mcp
MCP 客户端配置:
{
"mcpServers": {
"termlog": {
"command": "npx",
"args": ["-y", "@reneturcios/termlog", "mcp"]
}
}
}
工具
-
clean_terminal_log— 将原始终端会话转换为整洁、便于分享的 Markdown。text(字符串,必填)— 原始终端会话文本redact(布尔值,可选,默认值为 true)— 是否对密钥进行脱敏
返回
{markdown, redactions, stats}:带围栏的清理后文本、按类别统计的脱敏数量(仅包含计数大于零的类别,顺序与模式应用顺序一致),以及{input_lines, output_lines, ansi_sequences_removed, total_redactions}。
Docker
docker run -i ghcr.io/cloudcorprecords/termlog
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/termlog clean --input /w/session.log
开发
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
许可证
MIT — 版权所有 (c) 2026 Rene Turcios
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。