From 6eeffc89fc143b17525d158df91c59545f04a61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Aaron?= Date: Thu, 12 Mar 2026 20:13:19 +0100 Subject: [PATCH 1/5] feat: improve help menu --- package.json | 2 +- src/index.ts | 37 ++++++++++++++++++++++++++++++------- yarn.lock | 8 ++++---- 3 files changed, 35 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 1bf13fd..fd1587a 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "dependencies": { "@getalby/lightning-tools": "^7.0.2", "@getalby/sdk": "^7.0.0", - "commander": "^13.1.0" + "commander": "^14.0.3" }, "devDependencies": { "@types/node": "^25.2.0", diff --git a/src/index.ts b/src/index.ts index a893450..226f2f4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -26,7 +26,13 @@ const program = new Command(); program .name("alby-cli") - .description("CLI for Nostr Wallet Connect (NIP-47) with lightning tools") + .description( + "CLI for Nostr Wallet Connect (NIP-47) with lightning tools\n\n" + + " Examples:\n" + + " $ alby-cli --connection-secret nostr+walletconnect://... get-balance\n" + + " $ alby-cli fiat-to-sats --currency USD --amount 5\n" + + " $ alby-cli pay-invoice --invoice lnbc...", + ) .version("0.2.4") .option( "-c, --connection-secret ", @@ -35,6 +41,11 @@ program .addHelpText( "afterAll", ` +Connection Secret Resolution (in order of priority): + 1. --connection-secret flag (value or path to file) + 2. NWC_URL environment variable + 3. ~/.alby-cli/connection-secret.key (default file location) + Security: - Do NOT print the connection secret to any logs or otherwise reveal it. - NEVER share connection secrets with anyone. @@ -42,21 +53,33 @@ Security: as this can be used to gain access to your wallet or reduce your wallet's privacy.`, ); -// Register all commands +// Register common wallet commands +program.commandsGroup("Wallet Commands (require --connection-secret):"); registerGetBalanceCommand(program); registerGetBudgetCommand(program); registerGetInfoCommand(program); -registerGetWalletServiceInfoCommand(program); registerMakeInvoiceCommand(program); -registerMakeHoldInvoiceCommand(program); -registerSettleHoldInvoiceCommand(program); -registerCancelHoldInvoiceCommand(program); registerPayInvoiceCommand(program); -registerPayKeysendCommand(program); registerLookupInvoiceCommand(program); registerListTransactionsCommand(program); + +// Register advanced wallet commands +program.commandsGroup( + "Advanced Wallet Commands (require --connection-secret):", +); +registerPayKeysendCommand(program); +registerGetWalletServiceInfoCommand(program); registerWaitForPaymentCommand(program); registerSignMessageCommand(program); + +// Register hold invoice commands +program.commandsGroup("Hold Invoice Commands (require --connection-secret):"); +registerMakeHoldInvoiceCommand(program); +registerSettleHoldInvoiceCommand(program); +registerCancelHoldInvoiceCommand(program); + +// Register lightning tool commands +program.commandsGroup("Lightning Tools (no --connection-secret required):"); registerFiatToSatsCommand(program); registerSatsToFiatCommand(program); registerParseInvoiceCommand(program); diff --git a/yarn.lock b/yarn.lock index 7c2921a..eee67de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -422,10 +422,10 @@ chai@^6.2.1: resolved "https://registry.yarnpkg.com/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== -commander@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46" - integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== +commander@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== es-module-lexer@^1.7.0: version "1.7.0" From 4ceb3c8ae0d700b2d9346f1e958c037c759160d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Aaron?= Date: Thu, 12 Mar 2026 20:17:30 +0100 Subject: [PATCH 2/5] fix: move hold invoices section to advanced --- src/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 226f2f4..5a2dfa3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -71,9 +71,6 @@ registerPayKeysendCommand(program); registerGetWalletServiceInfoCommand(program); registerWaitForPaymentCommand(program); registerSignMessageCommand(program); - -// Register hold invoice commands -program.commandsGroup("Hold Invoice Commands (require --connection-secret):"); registerMakeHoldInvoiceCommand(program); registerSettleHoldInvoiceCommand(program); registerCancelHoldInvoiceCommand(program); From 5f2e866d965bcc68080a1fb5244a7aab5dbcf802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Aaron?= <100827540+reneaaron@users.noreply.github.com> Date: Thu, 12 Mar 2026 20:31:43 +0100 Subject: [PATCH 3/5] Update src/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 5a2dfa3..ad94f16 100644 --- a/src/index.ts +++ b/src/index.ts @@ -39,7 +39,7 @@ program "NWC connection secret (nostr+walletconnect://...) or path to file containing it (preferred)", ) .addHelpText( - "afterAll", + "after", ` Connection Secret Resolution (in order of priority): 1. --connection-secret flag (value or path to file) From 46716873d3c80f4b0cd484713849989199c6be46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Aaron?= Date: Thu, 12 Mar 2026 20:32:51 +0100 Subject: [PATCH 4/5] fix: add node min version --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index fd1587a..3d41caf 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,9 @@ ], "author": "Alby contributors", "license": "MIT", + "engines": { + "node": ">=20" + }, "dependencies": { "@getalby/lightning-tools": "^7.0.2", "@getalby/sdk": "^7.0.0", @@ -44,4 +47,4 @@ "typescript": "^5.9.3", "vitest": "^4.0.18" } -} +} \ No newline at end of file From 5a4051f547c9757f1ced754a58031761a066dd94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Aaron?= Date: Thu, 12 Mar 2026 20:36:07 +0100 Subject: [PATCH 5/5] fix: change examples to file-based approach --- src/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index ad94f16..785591b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -29,7 +29,8 @@ program .description( "CLI for Nostr Wallet Connect (NIP-47) with lightning tools\n\n" + " Examples:\n" + - " $ alby-cli --connection-secret nostr+walletconnect://... get-balance\n" + + " $ alby-cli --connection-secret /path/to/secret.key get-balance\n" + + " $ alby-cli --connection-secret /path/to/secret.key pay-invoice --invoice lnbc...\n" + " $ alby-cli fiat-to-sats --currency USD --amount 5\n" + " $ alby-cli pay-invoice --invoice lnbc...", )