lightning-wallet-mcp 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # Lightning Wallet MCP Server
1
+ # Lightning Wallet
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/lightning-wallet-mcp.svg)](https://www.npmjs.com/package/lightning-wallet-mcp)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- **Give your AI agent a Bitcoin wallet.** This MCP server enables AI agents to send and receive Bitcoin via the Lightning Network. The first step toward true AI economic autonomy.
6
+ **Give your AI agent a Bitcoin wallet.** MCP server + CLI. Works with Claude Code, OpenClaw, Cursor, and any agent framework.
7
7
 
8
8
  > **Note:** This package was previously published as `lightning-faucet-mcp`. The functionality is identical.
9
9
 
@@ -33,11 +33,45 @@
33
33
  - **Webhook Notifications** - Get notified instantly when payments arrive
34
34
  - **Full Observability** - Analytics, exports, and detailed status tracking
35
35
 
36
- ## Quick Start
36
+ ## Two Ways to Use
37
37
 
38
- ### Option 1: Self-Registration (No Account Needed)
38
+ ### CLI (Any Agent Framework)
39
39
 
40
- The MCP server can register itself! Just configure Claude Code without an API key:
40
+ For CLI-first agents (OpenClaw, Pi, KiloCode, or any agent with Bash access):
41
+
42
+ ```bash
43
+ npm install -g lightning-wallet-mcp
44
+ ```
45
+
46
+ This installs the `lw` command:
47
+
48
+ ```bash
49
+ # Register and save your API key
50
+ export LIGHTNING_WALLET_API_KEY=$(lw register --name "My Bot" | jq -r '.api_key')
51
+
52
+ # Check balance
53
+ lw balance | jq '.balance_sats'
54
+
55
+ # Pay an L402 API
56
+ lw pay-api "https://lightningfaucet.com/api/l402/fortune"
57
+
58
+ # Create and fund an agent
59
+ lw create-agent "Research Bot" --budget 5000
60
+ lw fund-agent 1 1000
61
+
62
+ # Check identity
63
+ lw whoami
64
+ ```
65
+
66
+ Output is JSON by default (pipe to `jq`). Use `--human` for readable output.
67
+
68
+ Run `lw help` for all commands.
69
+
70
+ ### MCP Server (Claude Code, Cursor, Windsurf)
71
+
72
+ For MCP-native clients, configure as an MCP server:
73
+
74
+ **Option A: Self-Registration**
41
75
 
42
76
  ```json
43
77
  {
@@ -52,9 +86,7 @@ The MCP server can register itself! Just configure Claude Code without an API ke
52
86
 
53
87
  Then ask Claude: *"Register a new Lightning Wallet operator account"*
54
88
 
55
- Claude will use `register_operator` to create an account, then `set_operator_key` to activate it.
56
-
57
- ### Option 2: Pre-configured API Key
89
+ **Option B: Pre-configured API Key**
58
90
 
59
91
  1. Get an API key at [lightningfaucet.com/ai-agents](https://lightningfaucet.com/ai-agents/)
60
92
  2. Configure Claude Code (`~/.claude/settings.json`):
@@ -155,6 +187,52 @@ Claude will use `register_operator` to create an account, then `set_operator_key
155
187
  - `budget_warning` - 80% of budget consumed
156
188
  - `test` - Manual test event
157
189
 
190
+ ## CLI Reference
191
+
192
+ All commands output JSON to stdout. Errors go to stderr with exit code 1.
193
+
194
+ | Command | Description |
195
+ |---------|-------------|
196
+ | `lw register [--name "name"]` | Create operator account, prints API key |
197
+ | `lw whoami` | Current identity (operator or agent) |
198
+ | `lw balance` | Balance in satoshis |
199
+ | `lw info` | Service status and capabilities |
200
+ | `lw deposit <amount>` | Generate deposit invoice |
201
+ | `lw withdraw <invoice>` | Withdraw to external wallet |
202
+ | `lw pay <invoice>` | Pay BOLT11 invoice `[--max-fee <sats>]` |
203
+ | `lw pay-api <url>` | Pay L402/X402 API `[--method GET] [--body "{}"] [--max-sats 1000]` |
204
+ | `lw decode <invoice>` | Decode BOLT11 invoice |
205
+ | `lw create-agent <name>` | Create agent `[--budget <sats>]` |
206
+ | `lw fund-agent <id> <amount>` | Transfer sats to agent |
207
+ | `lw list-agents` | List all agents |
208
+ | `lw transactions` | Recent transactions `[--limit 10] [--offset 0]` |
209
+ | `lw help` | Show all commands |
210
+
211
+ ### Agent Workflow Example (Bash)
212
+
213
+ ```bash
214
+ # 1. Register (one-time)
215
+ export LIGHTNING_WALLET_API_KEY=$(lw register --name "My Agent" | jq -r '.api_key')
216
+
217
+ # 2. Fund the account (pay the invoice with any Lightning wallet)
218
+ lw deposit 10000 | jq -r '.bolt11'
219
+
220
+ # 3. Create an agent with a budget
221
+ AGENT=$(lw create-agent "Worker" --budget 5000)
222
+ AGENT_ID=$(echo $AGENT | jq -r '.agent_id')
223
+ AGENT_KEY=$(echo $AGENT | jq -r '.agent_api_key')
224
+
225
+ # 4. Fund the agent
226
+ lw fund-agent $AGENT_ID 2000
227
+
228
+ # 5. Switch to agent context and make payments
229
+ export LIGHTNING_WALLET_API_KEY=$AGENT_KEY
230
+ lw pay-api "https://api.example.com/data" --max-sats 100
231
+
232
+ # 6. Check what happened
233
+ lw transactions --limit 5
234
+ ```
235
+
158
236
  ## Paid API Protocols: L402 + X402
159
237
 
160
238
  Lightning Wallet MCP supports two HTTP 402 payment protocols:
@@ -448,7 +526,10 @@ All payment responses include `platform_fee_sats`, `routing_fee_sats`, and `tota
448
526
 
449
527
  ## Changelog
450
528
 
451
- ### v1.1.0 (2026-02-06)
529
+ ### v1.1.0 (2026-02-16)
530
+ - **CLI interface:** New `lw` command for CLI-first agents (OpenClaw, Pi, KiloCode, any Bash agent)
531
+ - **Same package, two interfaces:** `npm install -g lightning-wallet-mcp` gives you both MCP server and CLI
532
+ - **JSON-first output:** All CLI commands output JSON to stdout, errors to stderr
452
533
  - **X402 support:** Automatic fallback to X402 (USDC on Base) when L402 is not available
453
534
  - **Protocol auto-detection:** `pay_l402_api` detects L402 or X402 from 402 response headers
454
535
  - **Response fields:** `payment_protocol` and `usdc_amount` included when X402 is used
package/dist/cli.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Lightning Wallet CLI
4
+ *
5
+ * CLI interface for AI agents that extend themselves via Bash.
6
+ * Same API, same backend as the MCP server — just a different interface.
7
+ *
8
+ * Usage: lw <command> [options]
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG"}
package/dist/cli.js ADDED
@@ -0,0 +1,397 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Lightning Wallet CLI
5
+ *
6
+ * CLI interface for AI agents that extend themselves via Bash.
7
+ * Same API, same backend as the MCP server — just a different interface.
8
+ *
9
+ * Usage: lw <command> [options]
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const lightning_faucet_js_1 = require("./lightning-faucet.js");
13
+ const VERSION = '1.1.0';
14
+ // --- Helpers ---
15
+ function getApiKey() {
16
+ const key = process.env.LIGHTNING_WALLET_API_KEY || process.env.LIGHTNING_FAUCET_API_KEY;
17
+ if (!key) {
18
+ error('No API key found. Set LIGHTNING_WALLET_API_KEY or run: lw register');
19
+ }
20
+ return key;
21
+ }
22
+ function getClient() {
23
+ return new lightning_faucet_js_1.LightningFaucetClient(getApiKey());
24
+ }
25
+ function error(message) {
26
+ const out = JSON.stringify({ error: message });
27
+ process.stderr.write(message + '\n');
28
+ process.stdout.write(out + '\n');
29
+ process.exit(1);
30
+ }
31
+ function output(data, human) {
32
+ if (human) {
33
+ process.stdout.write(formatHuman(data) + '\n');
34
+ }
35
+ else {
36
+ process.stdout.write(JSON.stringify(data, null, 2) + '\n');
37
+ }
38
+ }
39
+ function formatHuman(data, indent = 0) {
40
+ if (data === null || data === undefined)
41
+ return 'null';
42
+ if (typeof data !== 'object')
43
+ return String(data);
44
+ const prefix = ' '.repeat(indent);
45
+ if (Array.isArray(data)) {
46
+ if (data.length === 0)
47
+ return '(none)';
48
+ return data.map((item, i) => `${prefix}[${i}] ${formatHuman(item, indent + 1)}`).join('\n');
49
+ }
50
+ const obj = data;
51
+ const lines = [];
52
+ for (const [key, val] of Object.entries(obj)) {
53
+ if (typeof val === 'object' && val !== null) {
54
+ lines.push(`${prefix}${key}:`);
55
+ lines.push(formatHuman(val, indent + 1));
56
+ }
57
+ else {
58
+ lines.push(`${prefix}${key}: ${val}`);
59
+ }
60
+ }
61
+ return lines.join('\n');
62
+ }
63
+ function parseArgs(argv) {
64
+ const command = argv[0] || 'help';
65
+ const positional = [];
66
+ const flags = {};
67
+ for (let i = 1; i < argv.length; i++) {
68
+ const arg = argv[i];
69
+ if (arg.startsWith('--')) {
70
+ const key = arg.slice(2);
71
+ const next = argv[i + 1];
72
+ if (next && !next.startsWith('--')) {
73
+ flags[key] = next;
74
+ i++;
75
+ }
76
+ else {
77
+ flags[key] = true;
78
+ }
79
+ }
80
+ else {
81
+ positional.push(arg);
82
+ }
83
+ }
84
+ return { command, positional, flags };
85
+ }
86
+ // --- Commands ---
87
+ async function cmdRegister(positional, flags) {
88
+ const name = flags.name || positional[0] || undefined;
89
+ const result = await (0, lightning_faucet_js_1.registerOperator)(name);
90
+ return {
91
+ operator_id: result.operatorId,
92
+ api_key: result.apiKey,
93
+ recovery_code: result.recoveryCode,
94
+ hint: `export LIGHTNING_WALLET_API_KEY=${result.apiKey}`,
95
+ };
96
+ }
97
+ async function cmdWhoami() {
98
+ const client = getClient();
99
+ const result = await client.whoami();
100
+ const out = {
101
+ type: result.type,
102
+ id: result.id,
103
+ name: result.name,
104
+ balance_sats: result.balanceSats,
105
+ };
106
+ if (result.agentCount !== undefined)
107
+ out.agent_count = result.agentCount;
108
+ if (result.budgetLimitSats !== undefined)
109
+ out.budget_limit_sats = result.budgetLimitSats;
110
+ if (result.operatorId !== undefined)
111
+ out.operator_id = result.operatorId;
112
+ return out;
113
+ }
114
+ async function cmdBalance() {
115
+ const client = getClient();
116
+ const result = await client.checkBalance();
117
+ return { balance_sats: result.balanceSats };
118
+ }
119
+ async function cmdPay(positional, flags) {
120
+ const invoice = positional[0];
121
+ if (!invoice)
122
+ error('Usage: lw pay <bolt11_invoice>');
123
+ const client = getClient();
124
+ const maxFee = flags['max-fee'] ? parseInt(flags['max-fee'], 10) : undefined;
125
+ const result = await client.payInvoice(invoice, maxFee);
126
+ return {
127
+ preimage: result.preimage,
128
+ amount_sats: result.amountSats,
129
+ routing_fee_sats: result.routingFeeSats,
130
+ platform_fee_sats: result.platformFeeSats,
131
+ total_cost: result.totalCost,
132
+ payment_hash: result.paymentHash,
133
+ new_balance: result.newBalance,
134
+ };
135
+ }
136
+ async function cmdPayApi(positional, flags) {
137
+ const url = positional[0];
138
+ if (!url)
139
+ error('Usage: lw pay-api <url> [--method GET] [--body "{}"] [--max-sats 1000]');
140
+ const client = getClient();
141
+ const method = flags.method || 'GET';
142
+ const body = flags.body;
143
+ const maxSats = flags['max-sats'] ? parseInt(flags['max-sats'], 10) : 1000;
144
+ const result = await client.l402Pay(url, method, body === undefined ? undefined : body, maxSats);
145
+ const out = {
146
+ data: result.data,
147
+ status_code: result.statusCode,
148
+ amount_paid: result.amountPaid,
149
+ fee: result.fee,
150
+ payment_hash: result.paymentHash,
151
+ };
152
+ if (result.paymentProtocol)
153
+ out.payment_protocol = result.paymentProtocol;
154
+ if (result.usdcAmount)
155
+ out.usdc_amount = result.usdcAmount;
156
+ return out;
157
+ }
158
+ async function cmdCreateAgent(positional, flags) {
159
+ const name = positional[0] || flags.name;
160
+ if (!name)
161
+ error('Usage: lw create-agent <name> [--budget <sats>]');
162
+ const client = getClient();
163
+ const budget = flags.budget ? parseInt(flags.budget, 10) : undefined;
164
+ const result = await client.createAgent(name, undefined, budget);
165
+ return {
166
+ agent_id: result.agentId,
167
+ agent_api_key: result.agentApiKey,
168
+ name: result.name,
169
+ };
170
+ }
171
+ async function cmdFundAgent(positional) {
172
+ const agentId = positional[0];
173
+ const amount = positional[1];
174
+ if (!agentId || !amount)
175
+ error('Usage: lw fund-agent <agent_id> <amount_sats>');
176
+ const client = getClient();
177
+ const result = await client.fundAgent(parseInt(agentId, 10), parseInt(amount, 10));
178
+ return {
179
+ amount_transferred: result.amountTransferred,
180
+ new_operator_balance: result.newOperatorBalance,
181
+ new_agent_balance: result.newAgentBalance,
182
+ };
183
+ }
184
+ async function cmdListAgents() {
185
+ const client = getClient();
186
+ const result = await client.listAgents();
187
+ return result.agents.map(a => ({
188
+ id: a.id,
189
+ name: a.name,
190
+ balance_sats: a.balanceSats,
191
+ is_active: a.isActive,
192
+ }));
193
+ }
194
+ async function cmdDeposit(positional) {
195
+ const amount = positional[0];
196
+ if (!amount)
197
+ error('Usage: lw deposit <amount_sats>');
198
+ const client = getClient();
199
+ const result = await client.getDepositInvoice(parseInt(amount, 10));
200
+ return {
201
+ bolt11: result.bolt11,
202
+ payment_hash: result.paymentHash,
203
+ expires_at: result.expiresAt,
204
+ payment_url: result.paymentUrl,
205
+ qr_url: result.qrUrl,
206
+ };
207
+ }
208
+ async function cmdWithdraw(positional) {
209
+ const invoice = positional[0];
210
+ if (!invoice)
211
+ error('Usage: lw withdraw <bolt11_invoice>');
212
+ const client = getClient();
213
+ const result = await client.withdraw(invoice);
214
+ return {
215
+ amount_sats: result.amountSats,
216
+ routing_fee_sats: result.routingFeeSats,
217
+ platform_fee_sats: result.platformFeeSats,
218
+ total_cost: result.totalCost,
219
+ payment_hash: result.paymentHash,
220
+ new_balance: result.newBalance,
221
+ };
222
+ }
223
+ async function cmdTransactions(flags) {
224
+ const client = getClient();
225
+ const limit = flags.limit ? parseInt(flags.limit, 10) : 10;
226
+ const offset = flags.offset ? parseInt(flags.offset, 10) : 0;
227
+ const result = await client.getTransactions(limit, offset);
228
+ return {
229
+ transactions: result.transactions.map(tx => ({
230
+ type: tx.type,
231
+ amount_sats: tx.amountSats,
232
+ fee_sats: tx.feeSats,
233
+ memo: tx.memo,
234
+ payment_hash: tx.paymentHash,
235
+ timestamp: tx.timestamp,
236
+ balance_after: tx.balanceAfter,
237
+ })),
238
+ total: result.total,
239
+ has_more: result.hasMore,
240
+ };
241
+ }
242
+ async function cmdInfo() {
243
+ const client = getClient();
244
+ const result = await client.getInfo();
245
+ return {
246
+ version: result.version,
247
+ api_version: result.apiVersion,
248
+ status: result.status,
249
+ max_payment_sats: result.maxPaymentSats,
250
+ min_payment_sats: result.minPaymentSats,
251
+ supported_features: result.supportedFeatures,
252
+ };
253
+ }
254
+ async function cmdDecode(positional) {
255
+ const invoice = positional[0];
256
+ if (!invoice)
257
+ error('Usage: lw decode <bolt11_invoice>');
258
+ const client = getClient();
259
+ const result = await client.decodeInvoice(invoice);
260
+ return {
261
+ amount_sats: result.amountSats,
262
+ description: result.description,
263
+ payment_hash: result.paymentHash,
264
+ destination: result.destination,
265
+ expires_at: result.expiresAt,
266
+ is_expired: result.isExpired,
267
+ created_at: result.createdAt,
268
+ };
269
+ }
270
+ function cmdHelp() {
271
+ const help = `Lightning Wallet CLI v${VERSION}
272
+ https://lightningfaucet.com/ai-agents
273
+
274
+ Give your AI agent a Bitcoin wallet. Works with any agent framework.
275
+
276
+ USAGE
277
+ lw <command> [options]
278
+
279
+ SETUP
280
+ register [--name "name"] Create operator account, prints API key
281
+ export LIGHTNING_WALLET_API_KEY=<key> Set API key (after register)
282
+
283
+ COMMANDS
284
+ whoami Show current identity (operator or agent)
285
+ balance Check balance in satoshis
286
+ info Service status and capabilities
287
+ deposit <amount> Generate deposit invoice (sats)
288
+ withdraw <invoice> Withdraw to external wallet
289
+
290
+ pay <invoice> Pay a BOLT11 invoice [--max-fee <sats>]
291
+ pay-api <url> Pay L402/X402 API (auto-detect protocol)
292
+ [--method GET] [--body "{}"] [--max-sats 1000]
293
+ decode <invoice> Decode BOLT11 invoice without paying
294
+
295
+ create-agent <name> Create agent [--budget <sats>]
296
+ fund-agent <id> <amount> Transfer sats to agent
297
+ list-agents List all agents
298
+
299
+ transactions Recent transactions [--limit 10] [--offset 0]
300
+ help Show this help
301
+
302
+ OUTPUT
303
+ Default: JSON (pipe to jq for parsing)
304
+ --human Human-readable output
305
+
306
+ EXAMPLES
307
+ # Register and save key
308
+ export LIGHTNING_WALLET_API_KEY=$(lw register --name "My Bot" | jq -r '.api_key')
309
+
310
+ # Check balance
311
+ lw balance | jq '.balance_sats'
312
+
313
+ # Pay an L402 API
314
+ lw pay-api "https://lightningfaucet.com/api/l402/fortune"
315
+
316
+ # Create and fund an agent
317
+ lw create-agent "Research Bot" --budget 5000
318
+ lw fund-agent 1 1000
319
+
320
+ DOCS
321
+ https://lightningfaucet.com/ai-agents/docs
322
+ https://github.com/lightningfaucet/lightning-wallet-mcp`;
323
+ process.stdout.write(help + '\n');
324
+ }
325
+ // --- Main ---
326
+ async function main() {
327
+ const args = process.argv.slice(2);
328
+ const { command, positional, flags } = parseArgs(args);
329
+ const human = flags.human === true || flags.pretty === true;
330
+ try {
331
+ let result;
332
+ switch (command) {
333
+ case 'register':
334
+ result = await cmdRegister(positional, flags);
335
+ break;
336
+ case 'whoami':
337
+ result = await cmdWhoami();
338
+ break;
339
+ case 'balance':
340
+ result = await cmdBalance();
341
+ break;
342
+ case 'pay':
343
+ result = await cmdPay(positional, flags);
344
+ break;
345
+ case 'pay-api':
346
+ result = await cmdPayApi(positional, flags);
347
+ break;
348
+ case 'create-agent':
349
+ result = await cmdCreateAgent(positional, flags);
350
+ break;
351
+ case 'fund-agent':
352
+ result = await cmdFundAgent(positional);
353
+ break;
354
+ case 'list-agents':
355
+ result = await cmdListAgents();
356
+ break;
357
+ case 'deposit':
358
+ result = await cmdDeposit(positional);
359
+ break;
360
+ case 'withdraw':
361
+ result = await cmdWithdraw(positional);
362
+ break;
363
+ case 'transactions':
364
+ result = await cmdTransactions(flags);
365
+ break;
366
+ case 'info':
367
+ result = await cmdInfo();
368
+ break;
369
+ case 'decode':
370
+ result = await cmdDecode(positional);
371
+ break;
372
+ case 'help':
373
+ case '--help':
374
+ case '-h':
375
+ cmdHelp();
376
+ return;
377
+ case 'version':
378
+ case '--version':
379
+ case '-v':
380
+ process.stdout.write(VERSION + '\n');
381
+ return;
382
+ default:
383
+ process.stderr.write(`Unknown command: ${command}\n\n`);
384
+ cmdHelp();
385
+ process.exit(1);
386
+ }
387
+ output(result, human);
388
+ }
389
+ catch (err) {
390
+ const message = err instanceof Error ? err.message : String(err);
391
+ process.stderr.write(`Error: ${message}\n`);
392
+ process.stdout.write(JSON.stringify({ error: message }) + '\n');
393
+ process.exit(1);
394
+ }
395
+ }
396
+ main();
397
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "lightning-wallet-mcp",
3
- "version": "1.0.5",
3
+ "version": "1.1.0",
4
4
  "mcpName": "io.github.lightningfaucet/lightning-wallet-mcp",
5
- "description": "MCP server for Lightning Wallet - enables AI agents to send and receive Bitcoin via Lightning Network",
5
+ "description": "Lightning wallet for AI agents. MCP server + CLI. Works with Claude Code, OpenClaw, Cursor, and any agent framework.",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "bin": {
9
- "lightning-wallet-mcp": "dist/index.js"
9
+ "lightning-wallet-mcp": "dist/index.js",
10
+ "lw": "dist/cli.js"
10
11
  },
11
12
  "scripts": {
12
13
  "build": "tsc",
@@ -22,7 +23,10 @@
22
23
  "l402",
23
24
  "payments",
24
25
  "lightning-faucet-mcp",
25
- "wallet"
26
+ "wallet",
27
+ "cli",
28
+ "openai",
29
+ "agent-framework"
26
30
  ],
27
31
  "author": "Lightning Faucet",
28
32
  "license": "MIT",