@statechange/xano-cli 0.3.2 → 0.4.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
@@ -36,16 +36,13 @@ npx @statechange/xano-cli <command>
36
36
  ## Quick Start
37
37
 
38
38
  ```bash
39
- # 1. Authenticate with your StateChange API key
40
- sc-xano auth init --api-key <your-api-key>
39
+ # 1. Authenticate via browser (opens automatically)
40
+ sc-xano auth login
41
41
 
42
42
  # 2. Verify connection and see available instances
43
43
  sc-xano auth whoami
44
44
 
45
- # 3. Check your Xano session health
46
- sc-xano auth status
47
-
48
- # 4. Run commands (instance, workspace, and token auto-resolve)
45
+ # 3. Run commands (instance, workspace, and token auto-resolve)
49
46
  sc-xano inventory workspace
50
47
  sc-xano performance top-endpoints
51
48
  sc-xano audit workspace
@@ -71,7 +68,8 @@ All other commands are **read-only**.
71
68
  ### `auth` — Authentication & Session Management
72
69
 
73
70
  ```bash
74
- sc-xano auth init # Interactive API key setup
71
+ sc-xano auth login # Authenticate via browser (device code flow) — recommended
72
+ sc-xano auth init # Interactive API key setup (manual)
75
73
  sc-xano auth init --api-key <key> # Direct API key setup
76
74
  sc-xano auth whoami # Verify auth and list instances
77
75
  sc-xano auth status # Check Xano token health and session freshness
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,WA6KjD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,WA8SjD"}
@@ -2,8 +2,21 @@
2
2
  * Authentication CLI Commands
3
3
  */
4
4
  import * as readline from "readline";
5
+ import { exec } from "child_process";
5
6
  import { saveAuthToFile, loadAuthFromFile, getStateChangeApiKey, getAuthFilePath, } from "../auth.js";
6
7
  import { listXanoTokens, checkTokenHealth, resolveInstance } from "../registry-client.js";
8
+ const SCKEYS_URL = "https://api.statechange.ai/api:sckeys";
9
+ function openUrl(url) {
10
+ const cmd = process.platform === "darwin"
11
+ ? `open "${url}"`
12
+ : process.platform === "win32"
13
+ ? `start "${url}"`
14
+ : `xdg-open "${url}"`;
15
+ exec(cmd, () => { });
16
+ }
17
+ async function sleep(ms) {
18
+ return new Promise((r) => setTimeout(r, ms));
19
+ }
7
20
  function promptForApiKey() {
8
21
  return new Promise((resolve) => {
9
22
  const rl = readline.createInterface({
@@ -174,6 +187,110 @@ export function createAuthCommand(program) {
174
187
  process.exit(1);
175
188
  }
176
189
  });
190
+ auth
191
+ .command("login")
192
+ .description("Authenticate via browser (device code flow)")
193
+ .action(async () => {
194
+ try {
195
+ // Step 1: Request a device code
196
+ const codeResponse = await fetch(`${SCKEYS_URL}/device/code`, {
197
+ method: "POST",
198
+ headers: { "Content-Type": "application/json" },
199
+ });
200
+ if (!codeResponse.ok) {
201
+ const text = await codeResponse.text();
202
+ console.error(`Error starting login flow: ${codeResponse.status} ${text}`);
203
+ process.exit(1);
204
+ }
205
+ const { device_code, user_code, verification_uri, interval } = (await codeResponse.json());
206
+ // Step 2: Show the code and open the browser
207
+ console.log("");
208
+ console.log(" To authenticate, open this URL in your browser:");
209
+ console.log("");
210
+ console.log(` ${verification_uri}`);
211
+ console.log("");
212
+ console.log(` And enter this code: ${user_code}`);
213
+ console.log("");
214
+ openUrl(verification_uri);
215
+ console.log(" (Browser opened automatically)");
216
+ console.log("");
217
+ process.stdout.write(" Waiting for authorization...");
218
+ // Step 3: Poll for completion
219
+ const pollInterval = (interval || 5) * 1000;
220
+ while (true) {
221
+ await sleep(pollInterval);
222
+ const tokenResponse = await fetch(`${SCKEYS_URL}/device/token`, {
223
+ method: "POST",
224
+ headers: { "Content-Type": "application/json" },
225
+ body: JSON.stringify({ device_code }),
226
+ });
227
+ if (!tokenResponse.ok) {
228
+ const text = await tokenResponse.text();
229
+ if (tokenResponse.status === 404) {
230
+ console.error("\n\n Error: Device code not found or expired.");
231
+ console.error(" Please try again with 'sc-xano auth login'.");
232
+ process.exit(1);
233
+ }
234
+ // Expired or other error
235
+ console.error(`\n\n Error: ${text}`);
236
+ process.exit(1);
237
+ }
238
+ const result = (await tokenResponse.json());
239
+ if (result.status === "complete" && result.api_key) {
240
+ // api_key here is actually the user's auth token from sc-auth
241
+ const authToken = result.api_key;
242
+ process.stdout.write(" done!\n");
243
+ console.log(" Creating API key...");
244
+ // Step 4: Use the auth token to create a long-lived API key
245
+ const keyResponse = await fetch(`${SCKEYS_URL}/keys`, {
246
+ method: "POST",
247
+ headers: {
248
+ "Content-Type": "application/json",
249
+ Authorization: `Bearer ${authToken}`,
250
+ },
251
+ body: JSON.stringify({
252
+ name: "CLI (device flow)",
253
+ description: `Created via sc-xano auth login on ${new Date().toISOString().split("T")[0]}`,
254
+ type: "cli",
255
+ }),
256
+ });
257
+ if (!keyResponse.ok) {
258
+ const text = await keyResponse.text();
259
+ console.error(`\n Error creating API key: ${keyResponse.status} ${text}`);
260
+ console.error(" Your browser session was authorized, but key creation failed.");
261
+ console.error(" You can manually create a key and run: sc-xano auth init --api-key <key>");
262
+ process.exit(1);
263
+ }
264
+ const keyData = (await keyResponse.json());
265
+ const apiKey = keyData.key;
266
+ saveAuthToFile({ apiKey });
267
+ console.log(`\n ✅ Authenticated! API key saved to ${getAuthFilePath()}`);
268
+ // Verify the key works
269
+ try {
270
+ const response = await listXanoTokens(apiKey);
271
+ const tokens = response.tokens || [];
272
+ if (tokens.length > 0) {
273
+ console.log(` ✅ ${tokens.length} Xano instance(s) available`);
274
+ }
275
+ }
276
+ catch {
277
+ // Non-fatal — key is saved even if verification hiccups
278
+ }
279
+ console.log("");
280
+ console.log(" You're all set! Try running:");
281
+ console.log(" sc-xano auth whoami");
282
+ console.log("");
283
+ return;
284
+ }
285
+ // Still pending — keep polling
286
+ process.stdout.write(".");
287
+ }
288
+ }
289
+ catch (e) {
290
+ console.error(`\n Error: ${e.message}`);
291
+ process.exit(1);
292
+ }
293
+ });
177
294
  return auth;
178
295
  }
179
296
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1F,SAAS,eAAe;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,kCAAkC,EAAE,CAAC,MAAM,EAAE,EAAE;YACzD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE5E,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAe,EAAE,EAAE,CAAC,CAAC;QACvD,eAAe;QACf,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,SAAS,EAAE,aAAa,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,yBAAyB,CAAC,CAAC;gBAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvB,oDAAoD;oBACpD,yDAAyD;oBACzD,MAAM,QAAQ,GAAG,KAAY,CAAC;oBAC9B,MAAM,UAAU,GACd,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,SAAS,CAAC;oBAC3D,+EAA+E;oBAC/E,MAAM,YAAY,GAChB,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,aAAa,CAAC;oBAClD,iFAAiF;oBACjF,uEAAuE;oBACvE,+EAA+E;oBAC/E,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CACX,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,YAAY,EAAE,uDAAuD,CAAC;SAC/E,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC;QACjC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,eAAe,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;YAErC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzF,MAAM,QAAQ,GAAG,QAAQ;gBACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC;gBACzE,CAAC,CAAC,MAAM,CAAC;YAEX,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAEvD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,EAAE,GAAI,KAAa,CAAC,UAAU,IAAK,KAAa,CAAC,WAAW,IAAI,SAAS,CAAC;gBAChF,MAAM,IAAI,GAAI,KAAa,CAAC,YAAY,IAAK,KAAa,CAAC,aAAa,CAAC;gBACzE,MAAM,IAAI,GAAI,KAAa,CAAC,WAAW,IAAK,KAAa,CAAC,YAAY,CAAC;gBAEvE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,IAAI;oBAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;gBAE9C,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACjC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACnC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAE1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,QAAQ,CAAC,CAAC;gBAE/C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,cAAc,QAAQ,CAAC,CAAC;gBAC9D,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;gBACxE,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ const program = new Command();
19
19
  program
20
20
  .name("sc-xano")
21
21
  .description("StateChange CLI for Xano - performance analysis, operational insights, and critical security and restart abilities")
22
- .version("0.3.2");
22
+ .version("0.4.0");
23
23
  // Add subcommands
24
24
  createAuthCommand(program);
25
25
  createXRayCommand(program);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@statechange/xano-cli",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "CLI for Xano performance analysis, operational insights, and critical security and restart abilities",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,7 +27,8 @@ All other commands (inventory, xray, performance, audit, history, logs show, log
27
27
  ## Authentication
28
28
 
29
29
  ```bash
30
- npx @statechange/xano-cli auth init # Interactive API key setup
30
+ npx @statechange/xano-cli auth login # Authenticate via browser (recommended)
31
+ npx @statechange/xano-cli auth init # Interactive API key setup (manual)
31
32
  npx @statechange/xano-cli auth init --api-key <key> # Direct API key setup
32
33
  npx @statechange/xano-cli auth whoami # Show auth status and instances
33
34
  npx @statechange/xano-cli auth status # Check Xano token health