hostctl 0.1.48 → 0.1.51

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
@@ -49,6 +49,20 @@ Run straight from npm without installing globally:
49
49
  npx hostctl run core.echo message:hello
50
50
  ```
51
51
 
52
+ ### Containerized CLI (Docker)
53
+
54
+ Build an image and run `hostctl` from a container:
55
+
56
+ ```bash
57
+ docker build -t hostctl .
58
+ docker run --rm -it \
59
+ -v "$PWD:/work" \
60
+ -v "$HOME/.hostctl:/home/node/.hostctl" \
61
+ hostctl --help
62
+ ```
63
+
64
+ Mount SSH keys or AGE identities as needed (for example `-v "$HOME/.ssh:/home/node/.ssh:ro"` and `-e AGE_IDS="~/.hostctl/age/*.priv"`).
65
+
52
66
  ## Bootstrap identities, inventory, and secrets
53
67
 
54
68
  1. **Generate AGE identities**
@@ -138,6 +152,29 @@ hostctl pkg remove hostctl-hello
138
152
  Installed packages live under `~/.hostctl/packages` and can be run offline once cached.
139
153
  Use `pkg install` for npm registry names (scoped + versioned) or git URLs. Local directories should be run directly without installing (`hostctl run ./path/to/pkg task args`); this avoids polluting the manifest with workstation paths and keeps the install story aligned with reproducible npm/git sources.
140
154
 
155
+ Add `--json` to any `hostctl pkg` command for machine-readable output:
156
+
157
+ ```bash
158
+ hostctl pkg list --json
159
+ ```
160
+
161
+ ```json
162
+ {
163
+ "count": 1,
164
+ "duplicates": [],
165
+ "packages": [
166
+ {
167
+ "name": "hostctl-hello",
168
+ "version": "1.2.3",
169
+ "description": "Example tasks",
170
+ "directory": "hostctl-hello",
171
+ "source": "https://github.com/monopod/hostctl-example",
172
+ "path": "/home/you/.hostctl/packages/hostctl-hello"
173
+ }
174
+ ]
175
+ }
176
+ ```
177
+
141
178
  ## Designing tasks
142
179
 
143
180
  Define tasks with the `task` helper and a typed `TaskContext`: