@lizard-build/cli 0.3.88 → 0.3.90

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,6 +1,14 @@
1
1
  # Lizard CLI
2
2
 
3
- Deploy and manage apps on [Lizard](https://lizard.build).
3
+ Deploy apps, databases and sandboxes to Lizard (lizard.build) from the command line.
4
+
5
+ Point the CLI at your code and it detects the stack — Node, Python, Go, Rust,
6
+ Ruby, PHP or Java — builds it and ships it live. Managed Postgres, Managed Redis
7
+ and Managed Object Storage attach in one command. Billing only for active
8
+ resources, so idle apps cost a fraction.
9
+
10
+ Every command is agent-readable: add `--json` for structured output, or run
11
+ `lizard --help --json` to dump the full command schema.
4
12
 
5
13
  ## Install
6
14
 
@@ -14,6 +22,17 @@ Or via npm:
14
22
  npm i -g @lizard-build/cli
15
23
  ```
16
24
 
25
+ ## Start here (AI agents)
26
+
27
+ ```bash
28
+ lizard skills get core
29
+ ```
30
+
31
+ Skills ship inside the CLI, so the guide always matches the installed version.
32
+ They cover the whole app lifecycle — deploy, link, addons, logs, scaling,
33
+ secrets, domains — with copy-paste examples. Prefer this over guessing commands
34
+ from flag docs alone.
35
+
17
36
  ## Usage
18
37
 
19
38
  ```bash
@@ -22,20 +41,53 @@ lizard init
22
41
  lizard up
23
42
  ```
24
43
 
44
+ `lizard up` uploads the code, builds it and returns a live URL on onlizard.com.
45
+ Add managed data services in one command:
46
+
47
+ ```bash
48
+ lizard add postgres redis s3
49
+ ```
50
+
25
51
  ## Common commands
26
52
 
27
53
  ```
28
54
  lizard up # upload and deploy code
29
- lizard logs # stream runtime logs
55
+ lizard add # add Managed Postgres, Managed Redis or Managed Object Storage
30
56
  lizard ps # list services
31
- lizard add # add a database or service
32
- lizard secrets # manage secrets
57
+ lizard logs # stream runtime logs
58
+ lizard metrics # resource metrics (CPU, memory, network, disk) and cost
33
59
  lizard scale # scale replicas / CPU / memory
60
+ lizard secrets # manage secrets
34
61
  lizard domain # manage domains
62
+ lizard run # run a command with project and service secrets injected
63
+ lizard ssh # open a shell in a service
64
+ lizard sandbox # create and manage Sandboxes
65
+ lizard volume # Persistent Volumes for Sandboxes
66
+ lizard skills # agent guides, version-matched to the CLI
35
67
  ```
36
68
 
37
69
  Run `lizard --help` for the full list.
38
70
 
71
+ ## For agents and scripts
72
+
73
+ Add `--json` to any command for structured output. The CLI also switches to JSON
74
+ on its own when stdout is not a TTY. Errors come back as
75
+ `{"error": {"code", "status", "message", "body"}}` and exit codes are stable:
76
+
77
+ ```
78
+ 0 success 3 not found (404)
79
+ 1 generic error 4 timeout (408/504)
80
+ 2 auth (401/403) 5 cancelled by user
81
+ ```
82
+
83
+ `lizard --help --json` dumps the machine-readable schema for any command —
84
+ arguments, options, defaults, subcommands and exit codes.
85
+
86
+ ## Links
87
+
88
+ - Docs — https://lizard.build/docs
89
+ - Source — https://github.com/lizard-build/lizard-cli
90
+
39
91
  ## License
40
92
 
41
93
  MIT
@@ -1,6 +1,9 @@
1
1
  import open from "open";
2
2
  import { success, isJSONMode, printJSON } from "../lib/format.js";
3
- const DOCS_URL = "https://docs.lizard.build";
3
+ // Docs are served from the main host under /docs. The docs.lizard.build
4
+ // subdomain resolves but has no valid certificate, so opening it dumps the
5
+ // user on a TLS error page — don't switch back to it without checking.
6
+ const DOCS_URL = "https://lizard.build/docs";
4
7
  export function registerDocs(program) {
5
8
  program
6
9
  .command("docs")
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAE7C,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,oEAAoE;QACpE,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElE,wEAAwE;AACxE,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAE7C,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,oEAAoE;QACpE,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const CURRENT_VERSION = "0.3.88";
1
+ export declare const CURRENT_VERSION = "0.3.90";
2
2
  /**
3
3
  * True only when running as the Bun-compiled standalone binary. Under
4
4
  * npm/node, `process.execPath` is the *node* executable — self-update would
@@ -4,7 +4,7 @@ import { Readable } from "node:stream";
4
4
  import { join, dirname } from "node:path";
5
5
  import os from "node:os";
6
6
  import { spawn } from "node:child_process";
7
- export const CURRENT_VERSION = "0.3.88";
7
+ export const CURRENT_VERSION = "0.3.90";
8
8
  const RELEASES_API = "https://api.github.com/repos/lizard-build/lizard-cli/releases/latest";
9
9
  const RELEASE_BASE = "https://github.com/lizard-build/lizard-cli/releases/latest/download";
10
10
  /** Minimum gap between background update checks. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lizard-build/cli",
3
- "version": "0.3.88",
4
- "description": "Lizard CLI — deploy and manage apps on Lizard",
3
+ "version": "0.3.90",
4
+ "description": "Lizard CLI — deploy apps, databases and sandboxes to Lizard (lizard.build) from your terminal or your coding agent. Detects Node, Python, Go, Rust, Ruby, PHP and Java; adds Managed Postgres, Managed Redis and Managed Object Storage in one command.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "lizard": "./dist/index.js"
@@ -22,7 +22,18 @@
22
22
  "keywords": [
23
23
  "cli",
24
24
  "deploy",
25
+ "deployment",
25
26
  "paas",
27
+ "hosting",
28
+ "containers",
29
+ "kubernetes",
30
+ "postgres",
31
+ "redis",
32
+ "s3",
33
+ "sandbox",
34
+ "ai-agent",
35
+ "coding-agent",
36
+ "devops",
26
37
  "lizard"
27
38
  ],
28
39
  "repository": {
@@ -2,7 +2,10 @@ import { Command } from "commander";
2
2
  import open from "open";
3
3
  import { success, isJSONMode, printJSON } from "../lib/format.js";
4
4
 
5
- const DOCS_URL = "https://docs.lizard.build";
5
+ // Docs are served from the main host under /docs. The docs.lizard.build
6
+ // subdomain resolves but has no valid certificate, so opening it dumps the
7
+ // user on a TLS error page — don't switch back to it without checking.
8
+ const DOCS_URL = "https://lizard.build/docs";
6
9
 
7
10
  export function registerDocs(program: Command) {
8
11
  program
@@ -5,7 +5,7 @@ import { join, dirname } from "node:path";
5
5
  import os from "node:os";
6
6
  import { spawn } from "node:child_process";
7
7
 
8
- export const CURRENT_VERSION = "0.3.88";
8
+ export const CURRENT_VERSION = "0.3.90";
9
9
  const RELEASES_API = "https://api.github.com/repos/lizard-build/lizard-cli/releases/latest";
10
10
  const RELEASE_BASE = "https://github.com/lizard-build/lizard-cli/releases/latest/download";
11
11
 
@@ -286,7 +286,9 @@ describe("docs --json", () => {
286
286
  const { stdout, exitCode } = await run(["docs", "--json"]);
287
287
  expect(exitCode).toBe(0);
288
288
  const out = parseJSON(stdout);
289
- expect(out.url).toContain("docs.lizard.build");
289
+ // Pin the exact URL: this assertion previously matched a substring and
290
+ // happily passed against docs.lizard.build, which serves no valid cert.
291
+ expect(out.url).toBe("https://lizard.build/docs");
290
292
  expect(out.opened).toBe(false);
291
293
  });
292
294
  });