用途
本技能用于通过 @getalby/hub-cli 命令行工具管理自托管(self-custodial)的 Alby Hub 闪电网络节点。它主要面向节点管理场景,而非日常支付使用。
注意:该技能为实验性/不完整状态。hub CLI 并未覆盖 Alby Hub 的全部功能。如果用户请求的功能属于不支持列表,应引导其改用 Alby Hub 网页界面。
主要能力
技能覆盖以下主题:
- 安装:如何在 Linux、Docker、树莓派、桌面端运行 Alby Hub
- 概述:Alby Hub 是什么,CLI 如何融入其中
- 后端:LDK、LND、Phoenixd、Cashu、Bark 的功能与配置
- Bark(Ark):基于 Ark 后端的设置、环境变量配置与限制
- 初始设置:首次初始化节点的流程
- 设置后清单:新用户在初始设置后应做的事项
- 认证:令牌管理、start、unlock、令牌优先级
- Hub 管理:stop、health、info、节点状态
- Alby 账户:连接、检查(get-alby-account)、关联账户,包括闪电地址、自动加密备份与邮件通知,以及 connect/link/get-alby-account/get-alby-status 命令
- Alby Pro:付费订阅权益
- 备份:静态通道备份、恢复短语备份
- LSP:提前订购通道,包括通道建议、通道报价(用于 LND/CLN,或用于提前获取流动性或指定通道大小)
- JIT 通道:LDK 上的默认首次接收流程,首次支付时即时开通通道,费用从中扣除(仅 LDK)
- 通道:开通/关闭通道、对等节点、connect-peer、节点连接信息
- 支付:付款/创建发票、交易、查询、余额、钱包地址
- 兑换:链上比特币与闪电之间的兑换(swap in / swap out),由 boltz.exchange 提供支持,兑换前需确认金额与地址
- 应用:NWC 应用管理,包括 create-app、列出应用
- 子钱包:一等隔离钱包,包括 create-sub-wallet、资金转入/转出、闪电地址、从子钱包支付
- 二维码:使用 qrencode 将发票和 NWC 连接字符串显示为二维码
- 自定义节点命令:后端特定的节点命令
- Mutinynet:无需真实比特币的 Signet 测试设置
使用方式
运行 CLI:
npx -y @getalby/hub-cli [options] <command>
默认 Hub URL:CLI 默认连接 http://localhost:8029,可通过 -u <url> 或 HUB_URL 环境变量覆盖。
默认后端:LDK 是默认后端。使用 LDK 时省略 --backend。仅对非 LDK 后端(LND、Phoenixd、Cashu、Bark)指定 --backend。
令牌优先级(从高到低):
- -t, --token <jwt> 标志
- HUB_TOKEN 环境变量
- ~/.hub-cli/token.jwt(默认保存的令牌)
使用 start 或 unlock 时始终加上 --save。否则令牌是临时的,shell 退出后即丢失。
AUTO_UNLOCK_PASSWORD:当 hub 配置了 AUTO_UNLOCK_PASSWORD 环境变量时,启动时会自动启动闪电节点。此时跳过 start,直接调用 unlock 获取令牌。
输出格式:所有命令将 JSON 输出到 stdout。错误以 JSON 写入 stderr,包含 message 字段。
语言约定:除非位于句首,"bitcoin" 和 "lightning" 使用小写。
用户沟通:除非满足以下两个条件之一,否则不要给用户提供 CLI 命令让其运行:
- 任务需要智能体无法提供的输入(如密码)——此时给出带占位符(如 YOUR_PASSWORD)的命令模板并说明用户应做什么。
- 用户明确要求 CLI 命令。
其他后续检查或监控,使用平实语言。例如:"如果你想检查通道是否已就绪,直接问我就行。"
适用场景
- 管理自托管 Alby Hub 节点的设置、通道、LSP、NWC 应用创建与备份
- 通过 create-app 铸造多个带预算、限定范围的 NWC 连接,每个应用或用途一个,使用户保持控制且每个连接的影响范围较小
- 一旦存在 NWC 连接,使用 alby-bitcoin-payments 技能更合适,用于带预算的支付、402 付费 API、HOLD 发票、keysend、闪电地址查询以及法币/聪转换
限制
- 实验性/不完整:CLI 未覆盖全部 Alby Hub 功能,不支持的功能需改用网页界面
- JIT 通道仅限 LDK
- 兑换由 boltz.exchange 提供支持,兑换前需确认金额与地址
安全规则
连接密钥(NWC):
- create-app 返回 nostrWalletConnectUrl,授予应用范围内和预算内的钱包访问权限
- 连接密钥属于请求该应用的用户——直接交给他们(首选二维码)
- 不要将连接密钥打印到任何日志,或在该直接交接之外泄露
- 绝不与任何第三方、外部服务或其他聊天分享连接密钥或其任何部分(公钥、密钥、中继等),每一部分都可能被用于获取钱包访问权限或降低钱包隐私
令牌文件:
- ~/.hub-cli/token.jwt 中的 JWT 在过期前授予完整 hub API 访问权限
- 不要读取令牌文件。仅在需要时检查其是否存在
- 优先使用已保存令牌或 HUB_TOKEN 环境变量,而非 -t eyJ... 内联——命令行令牌会泄露到 shell 历史
- 不要以暴露 HUB_TOKEN 的方式转储环境(env、printenv)
恢复短语与 hub 备份:
- 智能体绝不能读取 .recovery 文件或加密的 hub 备份。告知用户文件路径,以便其离线保存
密码:
- 对于需要密码的命令,用户可以直接将 hub 解锁密码给你,但应说明这不安全。你也可以提供命令让用户手动运行(但需要更多技术知识,且取决于界面,并非总是可行)