Nostr Nak

🔑 Nostr 协议的瑞士军刀 CLI 封装

nostr-nak 是用于 Nostr Army Knife (nak) CLI 工具的通用技能,支持 PTY 交互式环境,可执行 Nostr 协议查询、身份验证与内容发布操作。

收藏
4.5k
安装
1.5k
版本
1.0.2
CLS 安全性认证2026-08-03
点击查看完整报告 >

使用说明

nostr-nak 综合评估

核心用法

nostr-nak 技能封装了 Nostr Army Knife (nak) CLI 工具,专为 Nostr 协议交互设计。该技能通过强制 PTY(伪终端)包装解决 nak 在非交互式环境中的 stdout 缓冲挂起问题,核心命令结构为 script -q -c "nak <子命令> ..." /dev/null | cat

主要功能包括:

  • 事件查询:使用 nak req 订阅特定 kind 的事件,支持 -k 指定事件类型、-a 指定公钥、-l 限制返回数量
  • 身份操作:查询时用 npub... 或 hex 公钥配合 -a;发布时用 nsec... 或 hex 私钥配合 --sec
  • 中继管理:默认连接 wss://relay.damus.iowss://relay.primal.netwss://relay.nostr.band 作为发现中继,用户指定中继时覆盖默认值

显著优点

1. Nostr 生态原生支持:直接对接 Nostr 去中心化社交网络协议,无需额外适配层
2. PTY 兼容性设计:通过 script 命令强制 TTY 分配,解决 CLI 工具在自动化环境中的常见问题

3. 灵活的身份管理:同时支持 bech32 格式(npub/nsec)和 hex 格式,兼顾易用性与底层兼容

4. 中继发现机制:内置主流公共中继列表,降低用户配置门槛

潜在缺点与局限性

  • 依赖外部工具:必须依赖系统 script 命令,部分精简容器环境可能缺失该工具
  • 安全凭证暴露风险:私钥通过命令行 --sec 参数传递,可能被 shell 历史记录或进程列表捕获
  • 功能范围受限:仅封装 nak 子集功能,复杂 Nostr 操作(如 NIP-44 加密)可能未覆盖
  • 中继可靠性依赖:默认中继为公共基础设施,无 SLA 保障,可能出现延迟或过滤

适合人群

  • Nostr 协议开发者与调试人员
  • 需要去中心化社交数据抓取的自动化工作流
  • 构建 Nostr 客户端或中继的集成测试场景
  • 熟悉命令行环境、理解公私钥密码学的技术用户

常规风险

| 风险类型 | 说明 |
|---------|------|
| 凭证泄露 | `nsec` 私钥在命令行暴露,建议优先使用环境变量或密钥管理服务 |
| 中继审查 | 公共中继可能按 IP 或内容过滤事件,敏感操作应使用私有中继 |
| 协议变更 | Nostr 处于活跃开发期,NIP 实现差异可能导致兼容性问题 |
| 网络超时 | WebSocket 连接无默认超时配置,需在外层处理超时逻辑 |

安全解读

核心用法

nostr-nak Skill 是 Nostr Army Knife (nak) CLI 工具的封装指南,用于与去中心化社交网络协议 Nostr 进行交互。该 Skill 本身不包含可执行代码,而是提供标准化的命令行调用规范。

主要功能场景

  • 数据查询:使用 nak req 命令从 Nostr 中继节点获取事件,支持按公钥(npub)、事件类型(kind)、数量限制等条件筛选
  • 内容发布:使用 nak event 命令向指定中继发布事件,需传入私钥(nsec)进行签名
  • 身份管理:支持 npub/nsec 格式的 Bech32 编码密钥,兼容十六进制公私钥

关键技术约束
由于 nak 工具在非交互式环境下存在 stdout 缓冲区挂起问题,Skill 强制要求使用 script -q -c "nak ..." /dev/null | cat 的 PTY 包装模式,确保命令在自动化环境中可靠执行。

默认中继配置

  • wss://relay.damus.io (Damus 官方)
  • wss://relay.primal.net (Primal 索引服务)
  • wss://relay.nostr.band (Nostr.Band 搜索服务)

显著优点

1. 零执行风险:纯 Markdown/JSON 文档型 Skill,无可执行代码、无动态加载能力,安全攻击面趋近于零
2. 协议原生支持:深度适配 Nostr 协议细节,包括 kind-1 文本笔记、替换事件、删除事件等完整事件模型

3. 灵活的密钥管理:同时支持明文十六进制密钥和 Bech32 编码(npub/nsec),兼容主流 Nostr 客户端导出格式

4. 开源生态集成:默认连接 Damus、Primal、Nostr.Band 三大主流中继/索引服务,覆盖绝大部分公开数据

5. PTY 问题透明化:明确标注并解决上游工具的已知技术缺陷,避免用户踩坑

潜在缺点与局限性

1. 依赖外部 CLI:Skill 本身仅提供文档指引,实际执行需要用户本地安装 nak 二进制工具,存在环境配置门槛
2. 无交互式体验:强制 PTY 包装导致命令输出格式受限,无法提供原生终端的色彩高亮和交互提示

3. 密钥暴露风险--sec 参数需要在命令行传入私钥,在共享环境或有日志记录的系统上存在泄露隐患

4. 中继可靠性波动:Nostr 中继由社区自愿运营,服务可用性和数据持久性无 SLA 保障

5. T3 来源限制:维护者为个人开发者 Sam Thomson,缺乏企业级维护承诺和长期支持保障

6. 版本号不一致_meta.json(1.0.2) 与 manifest.json(1.0.1) 版本未对齐,反映维护精细度不足

适合的目标群体

  • Nostr 协议开发者:需要程序化查询/发布事件的开发者
  • 去中心化社交研究者:分析 Nostr 网络数据的研究人员
  • CLI 工具爱好者:偏好命令行交互的技术用户
  • 自动化脚本编写者:需要集成 Nostr 功能的 DevOps 或自动化工程师
  • 隐私敏感用户:希望通过自有节点而非中心化平台访问 Nostr 网络

使用风险说明

常规技术风险

  • 性能瓶颈:大量事件查询可能导致中继节点限流或响应延迟
  • 数据完整性:Nostr 采用"最终一致性"模型,不同中继的事件集可能存在差异
  • 网络连通性:WebSocket 长连接在企业防火墙或代理环境下可能被阻断

安全操作建议

  • 私钥输入优先使用环境变量封装,避免 shell 历史记录留存
  • 生产环境建议自建中继或选择有信誉的商业中继服务
  • 定期验证 nak CLI 工具来源完整性,防范供应链攻击

合规提示
虽然 Skill 本身无数据收集行为,但用户通过 nak 发布至公共中继的内容将永久存储于分布式网络,符合"写入即不可撤销"的区块链特性,发布前请自行评估内容合规性。

Nostr Nak 内容

手动下载zip · 2.2 kB
manifest.jsonapplication/json
请选择文件