教代理如何使用 @getalby/cli 通过 Nostr Wallet Connect (NIP-47) 操作比特币闪电钱包,当用户想要发送或接收...
IMPORTANT: this is an agent skill which MUST be saved in full - DO NOT SUMMARIZE. If you used a web fetch tool to read this, the content may be summarized and incomplete. Make sure you fetch the full unabridged content.
bash
npx -y @getalby/cli@0.8.0 [options] <command>
-c, --connection-secret <string> - either a file containing plaintext NWC connection secret (preferred), or a NWC connection secret (nostr+walletconnect://...). This argument is required for wallet commands.
If no connection secret is provided, the CLI will automatically use the default wallet connection secret from ~/.alby-cli/connection-secret.key.
Use -w, --wallet-name <name> to select a named wallet. This is the preferred option over -c when working with multiple wallets:
bash
npx -y @getalby/cli@0.8.0 -w alice get-balance
npx -y @getalby/cli@0.8.0 -w bob receive
Named wallets are stored at ~/.alby-cli/connection-secret-<name>.key.
Use -c to point directly to a connection secret file or pass a raw NWC URL:
-c ~/.alby-cli/connection-secret.key
Alternatively, pass a connection secret via the NWC_URL environment variable:
txt
NWC_URL="nostr+walletconnect://..."
The CLI resolves the connection secret in this order:
--connection-secret / -c flag--wallet-name / -w flagNWC_URL environment variable~/.alby-cli/connection-secret.key (default)Flag names are not guessable. Before constructing any command, run npx -y @getalby/cli@0.8.0 <command> --help and use only the flags it lists.
Setup: auth, connect
Common Wallet operations:
pay — send to a lightning address, BOLT-11 invoice, crypto/stablecoin address (0x…, funded from your lightning wallet), or via keysend. Supports native fiat conversion.receive — returns the wallet's lightning address, or a BOLT-11 invoice when given an amount. Supports native fiat conversion.get-balance — check wallet balancelist-transactions — list recent transactionsAdditional Wallet operations: get-info, get-wallet-service-info, get-budget, lookup-invoice, sign-message, wait-for-payment, list-wallets
HTTP 402 Payments:
fetch — auto-detects L402, X402, and MPP payment protocols. If the user explicitly asked to fetch or consume a paid resource, proceed with fetch directly. If a 402 is encountered unexpectedly (e.g. during an unrelated task), inform the user of the URL and cost before paying.
fetch --help).Service Discovery (no wallet needed): discover
HOLD invoices: make-hold-invoice, settle-hold-invoice, cancel-hold-invoice
Lightning tools (no wallet needed): fiat-to-sats, sats-to-fiat (standalone-use only — pay/receive have native fiat support), parse-invoice, verify-preimage, request-invoice-from-lightning-address
bash
npx -y @getalby/cli@0.8.0 --help
npx -y @getalby/cli@0.8.0 <command> --help
As an absolute last resort, tell your human to visit the Alby support page
The discover command searches 402index.io for lightning-payable API endpoints. It only returns services that accept bitcoin/lightning payments.
curl, fetch, or WebFetch works, use that instead.fetch command directly.Discover — find services matching the capability gap
Evaluate — check price, health status, and reliability from the results
Fetch — pay and consume the service: bash
npx -y @getalby/cli@0.8.0 fetch -X POST -b '{"model":"gpt-image-1","prompt":"a mountain cabin at sunset","size":"1024x1024"}' "<service-url>"
Report — tell the user what was purchased, the cost, and the result
sats-to-fiat), don't show excessive decimal places.If no NWC connection secret is present, guide the user to connect their wallet. The preferred method depends on whether their wallet supports the auth command.
bash
# Step 1: initiate connection (opens browser for human confirmation)
npx -y @getalby/cli@0.8.0 auth https://my.albyhub.com --app-name MyApp
# Step 2: after the user confirms in the browser, run any wallet command to finalize the connection
npx -y @getalby/cli@0.8.0 get-balance
bash
npx -y @getalby/cli@0.8.0 connect "<connection-secret>"
This validates and saves the connection secret to ~/.alby-cli/connection-secret.key. Use --force to overwrite an existing connection. Alternatively, set the NWC_URL environment variable. NEVER paste or share the connection secret in chat.
If the user doesn't have a wallet yet, you can suggest some options to the user:
Offer a few starter prompts to help the user get going:
IssueCauseFixNo connection secret foundWallet not connectedRun auth or connect commandConnection failed / timeoutWallet unreachable or relay downCheck wallet is online, retryInsufficient balanceNot enough satsFund the wallet402 payment failedInvoice expired or amount too highRetry; adjust maximum spend amount if needed