xno-skills 3.1.2 → 3.1.4

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
@@ -8,14 +8,17 @@ A CLI, MCP server, and AI skills for [Nano](https://nano.org/) (XNO). Built on t
8
8
 
9
9
  ![xno-skills CLI preview](assets/xno-skills-cli.png)
10
10
 
11
- ## AI Skills
11
+ ## Agent Skills
12
12
 
13
- Built-in skills for AI agents (Claude Code, Cursor, etc.):
13
+ [![smithery badge](https://smithery.ai/badge/casualsecurityinc/xno-skills)](https://smithery.ai/servers/casualsecurityinc/xno-skills)
14
+ [![skills.sh](https://skills.sh/b/casualsecurityinc/xno-skills)](https://skills.sh/casualsecurityinc/xno-skills)
15
+
16
+ Built-in skill for Personal AI Agents (OpenClaw etc.) and humans with AI Coding Assistants (Claude Code, Cursor, etc.) alike:
14
17
 
15
18
  ```bash
16
19
  npx skills add -g CasualSecurityInc/xno-skills
17
- # non-interactively:
18
- # npx skills add --all -g CasualSecurityInc/xno-skills
20
+ # or non-interactively, i.e. for agent use:
21
+ npx -y skills add -y --all -g CasualSecurityInc/xno-skills
19
22
  ```
20
23
 
21
24
  > [!IMPORTANT]
@@ -31,7 +34,7 @@ Available skills:
31
34
  ## CLI
32
35
 
33
36
  ```bash
34
- npm install -g xno-skills@3.1.2
37
+ npm install -g xno-skills@3.1.4
35
38
  xno-skills --help
36
39
  ```
37
40
 
@@ -74,6 +77,7 @@ xno-skills --help
74
77
 
75
78
  | Command | Description |
76
79
  |---|---|
80
+ | `about` | Show version and environment info for troubleshooting |
77
81
  | `mcp` | Start the MCP server or view configuration instructions |
78
82
 
79
83
  All commands support `-j` / `--json` for machine-readable output.
@@ -89,7 +93,7 @@ Exposes Nano wallet functions as tools for AI agents (Claude Desktop, Cursor, Co
89
93
  "mcpServers": {
90
94
  "nano": {
91
95
  "command": "npx",
92
- "args": ["-y", "-p", "xno-skills@3.1.2", "xno-mcp"]
96
+ "args": ["-y", "-p", "xno-skills@3.1.4", "xno-mcp"]
93
97
  }
94
98
  }
95
99
  }
@@ -105,7 +109,7 @@ Exposes Nano wallet functions as tools for AI agents (Claude Desktop, Cursor, Co
105
109
  codex mcp add nano \
106
110
  -c sandbox_mode="danger-full-access" \
107
111
  -c 'sandbox_permissions=["network-access"]' \
108
- -- npx -y -p xno-skills@3.1.2 xno-mcp
112
+ -- npx -y -p xno-skills@3.1.4 xno-mcp
109
113
  ```
110
114
  </details>
111
115
 
@@ -117,7 +121,7 @@ codex mcp add nano \
117
121
  "mcpServers": {
118
122
  "nano": {
119
123
  "command": "npx",
120
- "args": ["-y", "-p", "xno-skills@3.1.2", "xno-mcp"]
124
+ "args": ["-y", "-p", "xno-skills@3.1.4", "xno-mcp"]
121
125
  }
122
126
  }
123
127
  }
@@ -133,7 +137,7 @@ codex mcp add nano \
133
137
  "mcp": {
134
138
  "nano": {
135
139
  "type": "local",
136
- "command": ["npx", "-y", "-p", "xno-skills@3.1.2", "xno-mcp"],
140
+ "command": ["npx", "-y", "-p", "xno-skills@3.1.4", "xno-mcp"],
137
141
  "enabled": true
138
142
  }
139
143
  }
@@ -149,7 +153,7 @@ codex mcp add nano \
149
153
  "mcpServers": {
150
154
  "nano": {
151
155
  "command": "npx",
152
- "args": ["-y", "-p", "xno-skills@3.1.2", "xno-mcp"]
156
+ "args": ["-y", "-p", "xno-skills@3.1.4", "xno-mcp"]
153
157
  }
154
158
  }
155
159
  }
@@ -164,7 +168,7 @@ codex mcp add nano \
164
168
  "mcpServers": {
165
169
  "nano": {
166
170
  "command": "npx",
167
- "args": ["-y", "-p", "xno-skills@3.1.2", "xno-mcp"]
171
+ "args": ["-y", "-p", "xno-skills@3.1.4", "xno-mcp"]
168
172
  }
169
173
  }
170
174
  }
@@ -180,7 +184,7 @@ codex mcp add nano \
180
184
  "nano": {
181
185
  "type": "stdio",
182
186
  "command": "npx",
183
- "args": ["-y", "-p", "xno-skills@3.1.2", "xno-mcp"]
187
+ "args": ["-y", "-p", "xno-skills@3.1.4", "xno-mcp"]
184
188
  }
185
189
  }
186
190
  }
@@ -1,6 +1,6 @@
1
1
  export declare const pkg: {
2
2
  readonly name: "xno-skills";
3
- readonly version: "3.1.2";
3
+ readonly version: "3.1.4";
4
4
  };
5
- export declare const version: "3.1.2";
5
+ export declare const version: "3.1.4";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -2,7 +2,7 @@
2
2
  // Keep this in sync by running "npm run build" (prebuild hook).
3
3
  export const pkg = {
4
4
  name: "xno-skills",
5
- version: "3.1.2"
5
+ version: "3.1.4"
6
6
  };
7
7
  export const version = pkg.version;
8
8
  //# sourceMappingURL=version.js.map
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "requests": [
3
3
  {
4
- "id": "mozhx80nbfnra6",
4
+ "id": "mp0pmsvbtkgp98",
5
5
  "owsWalletId": "A",
6
6
  "accountIndex": 0,
7
7
  "address": "nano_3i1aq1cchnmbn9x5rsbap8b15akfh7wj7pwskuzi7ahz8oq6cobd99d4r3b7",
8
8
  "amountRaw": "10000000000000000000000000000",
9
9
  "reason": "explicit wallet test",
10
10
  "status": "pending",
11
- "createdAt": "2026-05-10T08:13:25.848Z",
12
- "updatedAt": "2026-05-10T08:13:25.848Z",
11
+ "createdAt": "2026-05-11T04:37:02.759Z",
12
+ "updatedAt": "2026-05-11T04:37:02.759Z",
13
13
  "receivedBlocks": []
14
14
  },
15
15
  {
16
- "id": "mozhx81dpyorp3",
16
+ "id": "mp0pmsw9617obu",
17
17
  "owsWalletId": "A",
18
18
  "accountIndex": 0,
19
19
  "address": "nano_3i1aq1cchnmbn9x5rsbap8b15akfh7wj7pwskuzi7ahz8oq6cobd99d4r3b7",
20
20
  "amountRaw": "500000000000000000000000000000",
21
21
  "reason": "status check test",
22
22
  "status": "pending",
23
- "createdAt": "2026-05-10T08:13:25.873Z",
24
- "updatedAt": "2026-05-10T08:13:25.873Z",
23
+ "createdAt": "2026-05-11T04:37:02.793Z",
24
+ "updatedAt": "2026-05-11T04:37:02.793Z",
25
25
  "receivedBlocks": []
26
26
  }
27
27
  ]
@@ -1,6 +1,6 @@
1
1
  export declare const pkg: {
2
2
  readonly name: "xno-skills";
3
- readonly version: "3.1.2";
3
+ readonly version: "3.1.4";
4
4
  };
5
- export declare const version: "3.1.2";
5
+ export declare const version: "3.1.4";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -2,7 +2,7 @@
2
2
  // Keep this in sync by running "npm run build" (prebuild hook).
3
3
  export const pkg = {
4
4
  name: "xno-skills",
5
- version: "3.1.2"
5
+ version: "3.1.4"
6
6
  };
7
7
  export const version = pkg.version;
8
8
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "xno-skills",
3
- "version": "3.1.2",
4
- "description": "XNO CLI - Interact with Nano (XNO)",
3
+ "version": "3.1.4",
4
+ "description": "The Nano (XNO) toolkit for AI agents and developers. Send, receive, check balances, and manage payment requests without ever handling private keys.",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
7
7
  "module": "./dist/esm/index.js",
@@ -46,6 +46,7 @@ triggers:
46
46
  - how much nano
47
47
  complements:
48
48
  - ows # Open Wallet Standard — wallet lifecycle (create, import, rename, delete)
49
+ requires_network: true
49
50
  ---
50
51
 
51
52
  # Nano (XNO)
@@ -70,21 +71,27 @@ This skill applies **exclusively to the Nano cryptocurrency protocol** (ticker:
70
71
 
71
72
  When the environment provides `xno-mcp` tools (`wallet.list`, `wallet.send`, `wallet.receive`, `wallet.balance`, `util.convert`, `util.qr`, `util.validate`, `rpc.account_balance`, `payment.create`, etc.) — **always use them first**. They handle signing, PoW, and broadcast automatically via OWS.
72
73
 
74
+ If the client supports MCP, set it up as a "stdio" type MCP server:
75
+
76
+ npx -y -p xno-skills@3.1.4 -- mcp
77
+
78
+ MCP is the primary execution path because tools, schemas, and results are structured for the client. Use the included CLI script (`xno-skills`) only as a fallback when MCP is unavailable or the client cannot attach MCP servers. MCP and the CLI target EXACTLY the same underlying code paths — two access paths, not two different products.
79
+
73
80
  ### 2. Fall back to CLI only when MCP is unavailable
74
81
 
75
82
  If `xno-mcp` tools are not available, or the user explicitly asks for CLI usage, fall back to the `xno-skills` CLI in this priority order:
76
83
 
77
84
  ```
78
- 1. bunx -y xno-skills@3.1.2 <command>
79
- 2. pnpm dlx xno-skills@3.1.2 <command>
80
- 3. npx -y xno-skills@3.1.2 <command>
85
+ 1. bunx -y xno-skills@3.1.4 <command>
86
+ 2. pnpm dlx xno-skills@3.1.4 <command>
87
+ 3. npx -y xno-skills@3.1.4 <command>
81
88
  ```
82
89
 
83
90
  Do **not** assume `xno-skills` is installed globally. Always use one of the above forms with `@latest` to get critical bugfixes and to prevent interactive prompts from freezing.
84
91
 
85
92
  Before guessing a subcommand, run `--help`:
86
93
  ```bash
87
- bunx -y xno-skills@3.1.2 --help
94
+ bunx -y xno-skills@3.1.4 --help
88
95
  ```
89
96
 
90
97
  ### 3. Wallet lifecycle → `ows` skill only
@@ -108,7 +115,7 @@ For wallet **create, import, rename, or delete**: delegate to the `ows` skill. D
108
115
  - **Proactivity on pending funds**: If you see pending funds during any balance check, call `wallet.receive` immediately. Do not wait for the user to ask.
109
116
  - **Persistence on "Account not found"**: This is normal for a brand-new, unopened account. Continue — `wallet.receive` will automatically build an open block (sets `previous` to zeros), sign it via OWS, generate PoW, and broadcast. Never conclude you are unauthorized or that OWS cannot sign Nano blocks.
110
117
  - **No mnemonic exports**: Never call `ows wallet export` or suggest exporting to a third-party wallet unless the user explicitly commands it.
111
- - **Supply chain**: Only use `xno-skills@3.1.2` and `@open-wallet-standard/core`. No other npm packages.
118
+ - **Supply chain**: Only use `xno-skills@3.1.4` and `@open-wallet-standard/core`. No other npm packages.
112
119
  - **Stop-loss**: If you have made 5 tool calls without completing the operation, stop and report what you tried, what failed, and ask for guidance. Hard limits: max 3 retries of the same failing tool; max 2 `config.set` RPC endpoint switches.
113
120
 
114
121
  ---
@@ -139,8 +146,8 @@ To **create** a new wallet, delegate to the `ows` skill. Then return here for al
139
146
 
140
147
  **Via CLI (required flags only):**
141
148
  ```bash
142
- bunx -y xno-skills@3.1.2 balance --wallet "my-wallet"
143
- bunx -y xno-skills@3.1.2 rpc account-balance <address>
149
+ bunx -y xno-skills@3.1.4 balance --wallet "my-wallet"
150
+ bunx -y xno-skills@3.1.4 rpc account-balance <address>
144
151
  ```
145
152
 
146
153
  Full options: [balance](references/balance.md), [rpc_account-balance](references/rpc_account-balance.md)
@@ -170,7 +177,7 @@ A Nano transfer shows as **pending** until the recipient publishes a receive blo
170
177
 
171
178
  **Via CLI (required flags only):**
172
179
  ```bash
173
- bunx -y xno-skills@3.1.2 receive --wallet "my-wallet"
180
+ bunx -y xno-skills@3.1.4 receive --wallet "my-wallet"
174
181
  ```
175
182
 
176
183
  Full options: [receive](references/receive.md)
@@ -202,7 +209,7 @@ The account must be opened (have a receive block) and have sufficient balance.
202
209
 
203
210
  **Via CLI (required flags only):**
204
211
  ```bash
205
- bunx -y xno-skills@3.1.2 send --wallet "my-wallet" --to "nano_..." --amount-xno 0.01
212
+ bunx -y xno-skills@3.1.4 send --wallet "my-wallet" --to "nano_..." --amount-xno 0.01
206
213
  ```
207
214
 
208
215
  Full options: [send](references/send.md)
@@ -314,7 +321,7 @@ Generates a terminal-friendly ASCII QR code for a Nano address, optionally with
314
321
 
315
322
  **Via CLI (required args only):**
316
323
  ```bash
317
- bunx -y xno-skills@3.1.2 qr nano_1abc...
324
+ bunx -y xno-skills@3.1.4 qr nano_1abc...
318
325
  ```
319
326
 
320
327
  Full options: [qr](references/qr.md)
@@ -341,7 +348,7 @@ All validation is **offline** — no network required.
341
348
 
342
349
  **Via CLI:**
343
350
  ```bash
344
- bunx -y xno-skills@3.1.2 validate nano_1abc...
351
+ bunx -y xno-skills@3.1.4 validate nano_1abc...
345
352
  ```
346
353
 
347
354
  Full options: [validate](references/validate.md)
@@ -368,10 +375,10 @@ XNO uses **30 decimal places**. Floating-point arithmetic is unsafe. Always use
368
375
 
369
376
  **Via CLI:**
370
377
  ```bash
371
- bunx -y xno-skills@3.1.2 convert 1 xno # all units
372
- bunx -y xno-skills@3.1.2 convert 1 knano
373
- bunx -y xno-skills@3.1.2 convert 1000000000000000000000000000000 raw
374
- bunx -y xno-skills@3.1.2 convert 1 xno --json
378
+ bunx -y xno-skills@3.1.4 convert 1 xno # all units
379
+ bunx -y xno-skills@3.1.4 convert 1 knano
380
+ bunx -y xno-skills@3.1.4 convert 1000000000000000000000000000000 raw
381
+ bunx -y xno-skills@3.1.4 convert 1 xno --json
375
382
  ```
376
383
 
377
384
  Full options: [convert](references/convert.md)
@@ -397,20 +404,20 @@ Present the user with this command to run locally:
397
404
 
398
405
  ```bash
399
406
  # Sign — run this yourself, replacing the placeholder with your actual key
400
- bunx -y xno-skills@3.1.2 sign "<message>" --key YOUR_PRIVATE_KEY_HEX
407
+ bunx -y xno-skills@3.1.4 sign "<message>" --key YOUR_PRIVATE_KEY_HEX
401
408
 
402
409
  # Sign with JSON output
403
- bunx -y xno-skills@3.1.2 sign "<message>" --key YOUR_PRIVATE_KEY_HEX --json
410
+ bunx -y xno-skills@3.1.4 sign "<message>" --key YOUR_PRIVATE_KEY_HEX --json
404
411
  ```
405
412
 
406
413
  For verify, the agent *can* run this directly (no secret material involved):
407
414
 
408
415
  ```bash
409
416
  # Verify
410
- bunx -y xno-skills@3.1.2 verify <nano_address> "<message>" <signature-hex>
417
+ bunx -y xno-skills@3.1.4 verify <nano_address> "<message>" <signature-hex>
411
418
 
412
419
  # Verify with JSON output
413
- bunx -y xno-skills@3.1.2 verify <nano_address> "<message>" <signature-hex> --json
420
+ bunx -y xno-skills@3.1.4 verify <nano_address> "<message>" <signature-hex> --json
414
421
  ```
415
422
 
416
423
  **NOMS standard (ORIS-001)**: Signatures are computed over a binary payload with a magic header, ensuring a valid signature cannot be misinterpreted as a Nano transaction block.
@@ -486,7 +493,7 @@ Never use `curl` to probe this.
486
493
  { "name": "wallet.change_rep", "arguments": { "wallet": "my-wallet", "representative": "nano_..." } }
487
494
  ```
488
495
  ```bash
489
- bunx -y xno-skills@3.1.2 change-rep --wallet "my-wallet" --representative "nano_..."
496
+ bunx -y xno-skills@3.1.4 change-rep --wallet "my-wallet" --representative "nano_..."
490
497
  ```
491
498
 
492
499
  Full options: [change-rep](references/change-rep.md)
@@ -622,7 +629,7 @@ Public nodes that support `work_generate` (not guaranteed — depends on node op
622
629
 
623
630
  To probe whether an RPC endpoint supports remote `work_generate`:
624
631
  ```bash
625
- bunx -y xno-skills@3.1.2 rpc probe-caps <url>
632
+ bunx -y xno-skills@3.1.4 rpc probe-caps <url>
626
633
  ```
627
634
 
628
635
  Reset to local-only after resolving: