核心用法
nihao 是一款面向 Nostr 协议的轻量级身份管理 CLI,以单 Go 二进制形式分发,无需外部依赖。其核心能力分为两大模式:
1. 身份创建(Setup)
通过 nihao --name <name> --json 即可在单次调用中完成全套身份初始化:生成 Ed25519 密钥对、发布 kind 0 元数据(profile)、kind 3 关注列表、kind 10002 中继列表(含 NIP-65 读写标记)、kind 10050 DM 中继(NIP-17)、以及 NIP-60 Cashu 钱包(kind 17375/10019)。默认 Lightning 地址为 <npub>@npub.cash,并自动发布首条带 #nihao 标签的 note。
2. 健康审计(Check)nihao check <npub> 对现有身份执行 0–8 分制的多维度评分,覆盖 profile 完整性、NIP-05 验证、头像/横幅可达性、Lightning 地址 LNURL 解析、中继质量(延迟/NIP-11)、DM 中继配置、关注列表、钱包及 mint 健康状态等 12+ 项检查,输出结构化 JSON 便于自动化监控。
3. 备份导出(Backup)nihao backup <npub> 可将全部身份相关事件(profile、follows、relay lists、wallet、nutzap info)导出为 JSON,用于快照或迁移。
显著优点
- 零依赖单文件:Go 1.21+ 编译,静态二进制,无 CGO,跨平台部署极简。
- 纯非交互设计:所有参数通过 flag 传递,支持
--json --quiet管道化输出,天然适配 CI/CD 与 AI Agent 自动化。 - 安全密钥处理:默认仅打印 nsec 到 stdout,提供
--nsec-file(0600 权限)与--nsec-cmd(管道到密码管理器)两种持久化方式,避免意外落盘。 - 协议完整性:一键覆盖 Nostr 身份全要素(社交图谱、支付层、隐私中继),减少多工具拼接的碎片化配置。
潜在局限与风险
- 密钥泄露风险:若用户未使用
--nsec-file/--nsec-cmd,nsec 明文打印在终端/日志中,存在被 shell history 或进程监控窃取的风险。 - 中继信任假设:默认依赖 Damus/Primal 等公共中继,无内置中继评分或恶意中继检测机制。
- 闪电地址中心化:默认
npub.cash为第三方托管服务,若其服务中断或审查,支付层可用性受影响。 - Cashu mint 风险:默认 mint(minibits、coinos、macadamia)为第三方托管,用户无自托管选项时需承受对应对手方风险。
- 无交互式恢复:不支持助记词导入/导出,密钥丢失即身份永久不可恢复。
适合人群
- AI Agent 与自动化脚本开发者,需程序化创建/管理 Nostr 身份。
- 开发者与极客,追求轻量级、可组合、无 GUI 的协议原生工具。
- 隐私敏感用户,希望快速建立具备 Lightning + Cashu 支付能力的 Nostr 身份而不暴露于 Web 钱包。
常规风险
- 操作不可逆:密钥生成后无备份提示,用户若未主动保存 nsec 即丢失资产与身份。
- 网络指纹暴露:自动发布的多类事件(profile、relay list、wallet)向公共中继暴露完整的社交与支付图谱。
- 依赖外部服务:NIP-05、LNURL、Cashu mint 的验证依赖 HTTP 请求,存在网络断连或服务端错误导致的误判。
- Go 供应链:通过
go install直接获取最新版,虽源码公开但用户需自行审计或锁定版本哈希以防范供应链攻击。