Nostr Nak

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

使用 Nostr Army Knife CLI 查询和发布 Nostr 协议事件,需强制伪 TTY 环境运行,支持多中继灵活切换

收藏
6k
安装
1.5k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

nostr-nak 是一个包装 Nostr Army Knife (nak) CLI 工具的通用技能,用于在 Nostr 去中心化社交网络协议上进行事件查询与发布操作。

关键执行模式:由于 nak 在非交互式环境中存在 stdout 缓冲挂起问题,必须使用 script -q -c "..." /dev/null | cat 包装所有命令以强制伪 TTY 分配。

查询操作(`nak req`)

  • 按作者筛选:-a <npub/hex_pubkey>
  • 按类型筛选:-k <kind_number>(如 Kind 1 为文本笔记)
  • 限制返回数量:-l <count>
  • 默认中继:wss://relay.damus.io, wss://relay.primal.net, wss://relay.nostr.band

发布操作(`nak event`)

  • 通过管道输入内容:echo 'text' | nak event --sec <nsec/hex_privkey> <relays>
  • 支持多中继目标,用户指定时覆盖默认值

身份管理

  • 公钥查询:使用 npub... 或十六进制公钥
  • 私钥发布:使用 nsec... 或十六进制私钥,严禁日志记录或共享内存存储

显著优点

1. 协议原生:直接操作 Nostr 事件结构,无抽象层损耗
2. 中继灵活:自动回退到发现中继,同时支持用户自定义中继池

3. Kind 通用:通过 -k 参数支持任意 NIP 定义的事件类型

4. 轻量依赖:单二进制 CLI 工具,无重型运行时

潜在缺点与局限性

| 问题 | 影响 |
|------|------|
| PTY 强制要求 | 所有调用必须嵌套 `script` 命令,增加模板复杂度 |
| 无内置缓存 | 重复查询无法避免中继往返延迟 |
| 原始 JSON 输出 | 需额外解析管道,无结构化返回 |
| 密钥管理风险 | `--sec` 参数暴露私钥至命令历史和环境 |
| Kind 语义不明 | 需外部查询 NIPs 仓库确认事件类型定义 |

适合人群

  • Nostr 协议开发者调试中继交互
  • 需要程序化发布/查询笔记的自动化工作流
  • 理解 nsec/npub 密钥体系的技术用户
  • 熟悉 shell 管道和 JSON 处理的运维人员

常规风险

  • 密钥泄露:命令历史、进程列表、script 回滚文件可能捕获私钥
  • 中继不可信:默认中继为公共基础设施,敏感操作应使用私有中继
  • 协议漂移:NIP 规范持续演进,硬编码 Kind 解析可能失效
  • 网络暴露:所有事件明文传输,元数据(时间戳、中继路径)公开可分析

Nostr Nak 内容

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