loadout-ai 0.1.0 → 0.1.2

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/MASTER_PLAN.md CHANGED
@@ -1015,13 +1015,19 @@ universal or permanent truth.
1015
1015
  `NOASSERTION` records, before distribution.
1016
1016
  - [ ] `P12-31 [TERRA]` Publish `loadout-ai` to npm and run clean-machine package tests
1017
1017
  from outside the repository on macOS, Windows, Linux, and Node 20/22.
1018
- - Partial: a real tarball is packed, installed outside the repository, executed,
1019
- catalog-checked, used for install, and rolled back. CI contains an opt-in OS/Node
1020
- matrix and an owner-controlled OIDC/provenance release workflow. The hosted
1021
- macOS/Windows/Linux Node 20/22 matrix passes; actual npm publication and the
1022
- post-publication clean external package checks remain release-owner actions.
1018
+ - Partial: `loadout-ai@0.1.2` was published publicly on 2026-07-16 while the GitHub
1019
+ repository remained private. Registry metadata, `npx` version/help, and a real
1020
+ read-only Stable preview passed outside the source directory. Patch `0.1.2`
1021
+ adds Codex Desktop detection through its existing `~/.codex` home when the
1022
+ standalone `codex` executable is absent from the user's shell PATH. CI contains an
1023
+ opt-in OS/Node matrix and OIDC/provenance release workflow; clean independent-user
1024
+ installs on Windows/macOS/Linux remain required.
1023
1025
  - [ ] `P12-32 [HUMAN]` Run moderated founder testing on the real Claude and Codex
1024
1026
  profiles with snapshots and explicit rollback checkpoints.
1027
+ - Partial 2026-07-16: the founder ran the published npm CLI against the real macOS
1028
+ profile. Read-only doctor/scan/status/health and snapshot listing completed; the
1029
+ run exposed and regression-tested the Codex Desktop detection fix. A real Stable
1030
+ mutation and rollback remain pending.
1025
1031
  - [ ] `P12-33 [HUMAN]` Run at least ten external user tests spanning new users, power
1026
1032
  users, Windows, macOS, Linux, one-agent, and multi-agent setups.
1027
1033
  - [ ] `P12-34 [SOL]` Public-beta go/no-go review.
@@ -1053,7 +1059,7 @@ universal or permanent truth.
1053
1059
  record.
1054
1060
  - [x] `P13-03 [LUNA]` Rebuild the README and credit every reviewed upstream source.
1055
1061
  - The README is CLI-first, accurately distinguishes preview/network/mutation
1056
- boundaries, links the daily candidate feed, and avoids claiming npm publication.
1062
+ boundaries, links the daily candidate feed, and records npm publication accurately.
1057
1063
  - `docs/CATALOG.md` links all 50 repositories and all 50 immutable reviewed commits;
1058
1064
  CI prevents silent attribution drift and identifies six `NOASSERTION` records for
1059
1065
  human legal review.
@@ -1156,6 +1162,10 @@ universal or permanent truth.
1156
1162
  1,000 on-disk skills at a 1.29-second p95 on macOS/Node 23.
1157
1163
  - [ ] `P15-06 [HUMAN]` Approve public repository visibility, complete the six
1158
1164
  `NOASSERTION` license decisions, authenticate npm, and publish `loadout-ai`.
1165
+ - Partial 2026-07-16: npm authentication and the public `loadout-ai@0.1.2`
1166
+ publication succeeded. Repository visibility remains private at the owner's
1167
+ request, and the six root-level `NOASSERTION` decisions remain a human release
1168
+ gate; therefore this combined item is not ticked.
1159
1169
  - [x] `P15-07A [TERRA]` Run the hosted macOS/Windows/Linux Node matrix.
1160
1170
  - GitHub Actions run `29502324100` passes fast verification, dashboard browser
1161
1171
  diagnostics, and native install/package flows on Windows, macOS, and Ubuntu with
package/README.md CHANGED
@@ -6,7 +6,7 @@ Loadout turns the fragmented world of Agent Skills, MCP servers, plugins, and ag
6
6
 
7
7
  It supports Codex, Claude Code, Cursor, Gemini CLI, OpenCode, Hermes, Windsurf, Cline, GitHub Copilot, Roo Code, Kiro CLI, and Junie on macOS, Linux, and Windows.
8
8
 
9
- > Loadout is in open-source beta and **has not been published to npm yet**. Use `npx .` from a clone today. The intended post-publication command is `npx loadout-ai`; the installed executable will be `loadout`.
9
+ > Loadout is available as a public npm beta: `npm install --global loadout-ai`. The source repository remains private during hackathon testing, while the npm package includes the CLI, documentation, catalog, license, and upstream credit links.
10
10
 
11
11
  ## Why Loadout exists
12
12
 
@@ -26,22 +26,19 @@ Loadout gives you:
26
26
 
27
27
  Loadout does not claim there is one universally “best” configuration. It makes the evidence, trade-offs, and exact filesystem plan visible so the user can decide.
28
28
 
29
- ## Run it locally
29
+ ## Install from npm
30
30
 
31
- Requirements: Git and Node.js 20 or newer.
31
+ Requirements: Git and Node.js 20 or newer. Pin `0.1.2` while testing the beta so every machine runs the same bytes.
32
32
 
33
33
  ```bash
34
- git clone https://github.com/VirajMishra1/loadout.git
35
- cd loadout
36
- npm ci
37
- npm run build
38
- npx . --help
34
+ npm install --global loadout-ai@0.1.2
35
+ loadout --help
39
36
  ```
40
37
 
41
38
  Start with the unified read-only preview:
42
39
 
43
40
  ```bash
44
- npx . upgrade
41
+ loadout upgrade
45
42
  ```
46
43
 
47
44
  `upgrade` detects installed agents, inventories health, scores only evidence it can prove, scans the current project, recommends reviewed sources, fetches exact pinned commits, and prints every target and risk finding. Nothing changes until `--yes` is supplied.
@@ -50,20 +47,20 @@ npx . upgrade
50
47
 
51
48
  ```bash
52
49
  # 1. Preview the strongest low-risk Stable journey. Read-only.
53
- npx . upgrade --mode stable --project .
50
+ loadout upgrade --mode stable --project .
54
51
 
55
52
  # 2. Apply exactly the displayed transaction.
56
- npx . upgrade --mode stable --project . --yes
53
+ loadout upgrade --mode stable --project . --yes
57
54
 
58
55
  # 3. Inspect and optimize the active set for this project.
59
- npx . library
60
- npx . optimize --project .
61
- npx . optimize --project . --yes
56
+ loadout library
57
+ loadout optimize --project .
58
+ loadout optimize --project . --yes
62
59
 
63
60
  # 4. Explain health evidence, share a private aggregate card, or undo.
64
- npx . health --explain
65
- npx . card
66
- npx . rollback
61
+ loadout health --explain
62
+ loadout card
63
+ loadout rollback
67
64
  ```
68
65
 
69
66
  `setup`, `scan`, `recommend`, and the other constituent commands remain available for advanced use. `upgrade --json` provides the same deterministic preview for automation.
@@ -73,7 +70,7 @@ npx . rollback
73
70
  For a real install-and-rollback exercise that cannot touch your profile:
74
71
 
75
72
  ```bash
76
- npx . demo
73
+ loadout demo
77
74
  ```
78
75
 
79
76
  The demo creates a temporary virtual Codex profile, fetches the pinned public Superpowers source, installs discovered skills, verifies managed state, rolls back, and deletes the temporary directory.
@@ -90,10 +87,10 @@ The demo creates a temporary virtual Codex profile, fetches the pinned public Su
90
87
  Maximum is a library, not an instruction to activate everything. Use `optimize`, `activate`, `enable`, and `disable` to keep each agent's active set bounded and relevant to the current project. Loadout warns when an active set exceeds 30 skills per agent.
91
88
 
92
89
  ```bash
93
- npx . setup --mode maximum
94
- npx . setup --mode maximum --yes --approve-risk
95
- npx . optimize --project . --limit 30
96
- npx . optimize --project . --limit 30 --yes
90
+ loadout setup --mode maximum
91
+ loadout setup --mode maximum --yes --approve-risk
92
+ loadout optimize --project . --limit 30
93
+ loadout optimize --project . --limit 30 --yes
97
94
  ```
98
95
 
99
96
  ## Install a reviewed runtime tool: Graphify
@@ -104,17 +101,17 @@ Install [`uv`](https://docs.astral.sh/uv/getting-started/installation/) first, t
104
101
 
105
102
  ```bash
106
103
  # See every reviewed executable recipe.
107
- npx . tool
104
+ loadout tool
108
105
 
109
106
  # Preview the exact artifact, commands, permissions, and Codex target.
110
- npx . tool graphify --agents codex
107
+ loadout tool graphify --agents codex
111
108
 
112
109
  # Apply only after reviewing the preview.
113
- npx . tool graphify --agents codex --yes --approve-risk
110
+ loadout tool graphify --agents codex --yes --approve-risk
114
111
 
115
112
  # Preview and then remove it, restoring the pre-install snapshot.
116
- npx . tool graphify --remove
117
- npx . tool graphify --remove --yes --approve-risk
113
+ loadout tool graphify --remove
114
+ loadout tool graphify --remove --yes --approve-risk
118
115
  ```
119
116
 
120
117
  The same recipe has reviewed registration targets for Claude Code, Cursor, Gemini CLI, OpenCode, Hermes, GitHub Copilot, and Kiro CLI. Pass a comma-separated list such as `--agents codex,claude-code`; Loadout refuses requested agents it cannot detect.
@@ -124,10 +121,10 @@ The same recipe has reviewed registration targets for Claude Code, Cursor, Gemin
124
121
  The bundled catalog currently contains **50 credited public repositories** across **37 categories**: **31 have skill components** and **19 are MCP-only**. All 50 are technically screened and pinned; four sources currently satisfy the stricter Stable recommendation policy. See every linked source, license status, component type, and pinned commit in **[Catalog and upstream credits](./docs/CATALOG.md)**.
125
122
 
126
123
  ```bash
127
- npx . catalog
128
- npx . catalog --coverage
129
- npx . catalog --history superpowers
130
- npx . search playwright
124
+ loadout catalog
125
+ loadout catalog --coverage
126
+ loadout catalog --history superpowers
127
+ loadout search playwright
131
128
  ```
132
129
 
133
130
  Catalog admission is evidence-based. Every bundled record has an exact GitHub commit and repository-relative component evidence. Loadout reports separate trust stages—`discovered`, `inspected`, `human-reviewed`, `benchmarked`, and `recommended`—instead of calling every pinned record “best.” Stars are one bounded ranking input, not an installation threshold or a substitute for source review. Missing evidence receives no score, archived projects are not auto-selected, and unrelated categories are never presented as head-to-head alternatives.
@@ -147,38 +144,38 @@ Discovery is deliberately separate from installation. It gathers leads and expla
147
144
 
148
145
  ```bash
149
146
  # GitHub defaults to a rolling 180-day discovery window.
150
- npx . discover --source github
147
+ loadout discover --source github
151
148
 
152
149
  # Public Hacker News API: current stories that link to GitHub.
153
- npx . discover --source hacker-news --min-score 20
154
- npx . discover --source hacker-news --query codex,mcp,agent
150
+ loadout discover --source hacker-news --min-score 20
151
+ loadout discover --source hacker-news --query codex,mcp,agent
155
152
 
156
153
  # skills.sh install telemetry (requires its request-scoped VERCEL_OIDC_TOKEN,
157
154
  # or uses the last complete local cache).
158
- npx . discover --source skills-sh --limit 50
155
+ loadout discover --source skills-sh --limit 50
159
156
 
160
157
  # Official MCP Registry identity and distribution metadata.
161
- npx . discover --source mcp-registry --limit 50
158
+ loadout discover --source mcp-registry --limit 50
162
159
 
163
160
  # Query all four sources independently and retain partial results.
164
- npx . discover --source all --queue --json
161
+ loadout discover --source all --queue --json
165
162
 
166
163
  # Inspect the deduplicated review queue.
167
- npx . review-queue
164
+ loadout review-queue
168
165
 
169
166
  # Triage today's generated feed with disclosed evidence.
170
- npx . candidate list --limit 20
167
+ loadout candidate list --limit 20
171
168
 
172
169
  # Clone one lead, pin its commit, and statically inspect its real contents.
173
- npx . candidate inspect owner/repository --output ./candidate-dossier.json
170
+ loadout candidate inspect owner/repository --output ./candidate-dossier.json
174
171
  ```
175
172
 
176
173
  Install both daily read-only jobs with one command:
177
174
 
178
175
  ```bash
179
- npx . autopilot --time 09:00 # preview both jobs
180
- npx . autopilot --time 09:00 --yes # install both native schedules
181
- npx . autopilot --remove --yes # remove both schedules
176
+ loadout autopilot --time 09:00 # preview both jobs
177
+ loadout autopilot --time 09:00 --yes # install both native schedules
178
+ loadout autopilot --remove --yes # remove both schedules
182
179
  ```
183
180
 
184
181
  Autopilot installs native schedules on macOS, Linux, and Windows using the pinned npm launcher for this Loadout version. It refreshes the local discovery/review queue and checks pinned package updates every day. It never installs a candidate, promotes a catalog record, or applies an update without a later explicit command and approval. Catalog membership changes only through a verified signed release.
@@ -190,12 +187,12 @@ Candidates stay in the review queue until a human decision. Shortlisting is not
190
187
  After a human reviews that dossier, Loadout can create a catalog-record proposal without editing the catalog:
191
188
 
192
189
  ```bash
193
- npx . candidate propose ./candidate-dossier.json \
190
+ loadout candidate propose ./candidate-dossier.json \
194
191
  --id reviewed-id --category workflow \
195
192
  --platforms windows,macos,linux
196
193
 
197
194
  # Persist only after human review; this still does not mutate the catalog.
198
- npx . candidate propose ./candidate-dossier.json \
195
+ loadout candidate propose ./candidate-dossier.json \
199
196
  --id reviewed-id --category workflow \
200
197
  --platforms windows,macos,linux \
201
198
  --approve --output ./reviewed-id.proposal.json
@@ -206,13 +203,13 @@ See [Candidate intelligence and catalog trust](./docs/CANDIDATE_INTELLIGENCE.md)
206
203
  ## Know what is already installed
207
204
 
208
205
  ```bash
209
- npx . status
210
- npx . versions
211
- npx . doctor
212
- npx . health --explain
213
- npx . capabilities
214
- npx . compare <skill-name>
215
- npx . adopt <skill-name> --agent codex
206
+ loadout status
207
+ loadout versions
208
+ loadout doctor
209
+ loadout health --explain
210
+ loadout capabilities
211
+ loadout compare <skill-name>
212
+ loadout adopt <skill-name> --agent codex
216
213
  ```
217
214
 
218
215
  `versions` invokes only bounded read-only `--version` commands with a sanitized environment. `health --explain` shows every scored dimension, cap, evidence item, uncertainty, and remediation; absent evidence receives zero rather than an invented neutral score.
@@ -224,14 +221,14 @@ npx . adopt <skill-name> --agent codex
224
221
  The cache, reviewed library, installed state, and active agent directories are separate states. Loadout can therefore retain a broad reviewed library while exposing only a small working set.
225
222
 
226
223
  ```bash
227
- npx . recommend --project .
228
- npx . activate --project . --limit 30
229
- npx . optimize --project .
230
- npx . optimize --project . --yes
231
- npx . disable <package-or-package/skill>
232
- npx . disable <package-or-package/skill> --yes
233
- npx . enable <package-or-package/skill>
234
- npx . enable <package-or-package/skill> --yes
224
+ loadout recommend --project .
225
+ loadout activate --project . --limit 30
226
+ loadout optimize --project .
227
+ loadout optimize --project . --yes
228
+ loadout disable <package-or-package/skill>
229
+ loadout disable <package-or-package/skill> --yes
230
+ loadout enable <package-or-package/skill>
231
+ loadout enable <package-or-package/skill> --yes
235
232
  ```
236
233
 
237
234
  Dry-run is the default for mutations. Activation refuses unmanaged packages, drifted files, incomplete library copies, quarantined entries, and occupied targets.
@@ -246,19 +243,19 @@ Loadout separates four actions that other installers often blur together:
246
243
  4. optionally launch one exact reviewed artifact for a bounded JSON-RPC connection check.
247
244
 
248
245
  ```bash
249
- npx . mcp --repository upstash/context7
250
- npx . mcp-recipe playwright --config ./mcp.json
251
- npx . mcp-recipe playwright --config ./mcp.json --verify
252
- npx . mcp-recipe playwright --connect --approve-risk
246
+ loadout mcp --repository upstash/context7
247
+ loadout mcp-recipe playwright --config ./mcp.json
248
+ loadout mcp-recipe playwright --config ./mcp.json --verify
249
+ loadout mcp-recipe playwright --connect --approve-risk
253
250
  ```
254
251
 
255
252
  Credential-bearing recipes can reference the native OS credential store. Secrets are accepted through stdin, never written into Loadout JSON state, and injected only into the approved child process:
256
253
 
257
254
  ```bash
258
255
  printf '%s' "$GITHUB_PERSONAL_ACCESS_TOKEN" \
259
- | npx . credentials set loadout.github --stdin
256
+ | loadout credentials set loadout.github --stdin
260
257
 
261
- npx . mcp-recipe github-readonly --connect --approve-risk \
258
+ loadout mcp-recipe github-readonly --connect --approve-risk \
262
259
  --credential GITHUB_PERSONAL_ACCESS_TOKEN=keychain:loadout.github
263
260
  ```
264
261
 
@@ -267,14 +264,14 @@ Native backends are macOS Keychain, Linux Secret Service, and Windows Credential
267
264
  ## Reproducible team loadouts
268
265
 
269
266
  ```bash
270
- npx . init --name my-team
271
- npx . add superpowers
272
- npx . lock
273
- npx . sync --manifest loadout.json # preview
274
- npx . sync --manifest loadout.json --yes # apply transactionally
275
- npx . audit --manifest loadout.json --lock loadout.lock
276
- npx . export team.loadout.json --manifest loadout.json --lock loadout.lock
277
- npx . import team.loadout.json # preview
267
+ loadout init --name my-team
268
+ loadout add superpowers
269
+ loadout lock
270
+ loadout sync --manifest loadout.json # preview
271
+ loadout sync --manifest loadout.json --yes # apply transactionally
272
+ loadout audit --manifest loadout.json --lock loadout.lock
273
+ loadout export team.loadout.json --manifest loadout.json --lock loadout.lock
274
+ loadout import team.loadout.json # preview
278
275
  ```
279
276
 
280
277
  Manifests resolve catalog packages, Git repositories, local sources, and exact registry descriptors. Dependency cycles, incompatible versions, missing requirements, unsafe paths, and portable exports containing absolute local package paths are rejected. Imports do not silently replace files and snapshot destinations before an approved overwrite.
@@ -282,12 +279,12 @@ Manifests resolve catalog packages, Git repositories, local sources, and exact r
282
279
  ## Updates, evidence, and recovery
283
280
 
284
281
  ```bash
285
- npx . alerts
286
- npx . update
287
- npx . update --package <package-id> --apply
288
- npx . watch
289
- npx . rollback
290
- npx . audit --manifest loadout.json --lock loadout.lock
282
+ loadout alerts
283
+ loadout update
284
+ loadout update --package <package-id> --apply
285
+ loadout watch
286
+ loadout rollback
287
+ loadout audit --manifest loadout.json --lock loadout.lock
291
288
  ```
292
289
 
293
290
  Updates are planned before they are applied. Loadout checks managed hashes, reviewed commits, archive status, staleness evidence, permission changes, and replacement evidence. It will not treat a newer commit or a faster-growing repository as automatically safer or better.
@@ -299,8 +296,8 @@ Updates are planned before they are applied. Loadout checks managed hashes, revi
299
296
  Loadout now includes the versioned [Evaluation Protocol v1](./docs/EVALUATION_PROTOCOL_V1.md). A campaign can be validated, deterministically scheduled, and worst-case priced without contacting a model provider:
300
297
 
301
298
  ```bash
302
- npx . benchmark plan ./campaign.json
303
- npx . benchmark plan ./campaign.json \
299
+ loadout benchmark plan ./campaign.json
300
+ loadout benchmark plan ./campaign.json \
304
301
  --run-id first-run --output ./benchmark-run.json --json
305
302
  ```
306
303
 
@@ -309,10 +306,10 @@ Planning rejects unbounded or edited metadata and writes a resumable, content-fr
309
306
  Generate or compare privacy-safe aggregate artifacts:
310
307
 
311
308
  ```bash
312
- npx . report --json > before.json
313
- npx . card --output LOADOUT_CARD.md
314
- npx . report --json > after.json
315
- npx . compare-loadouts before.json after.json
309
+ loadout report --json > before.json
310
+ loadout card --output LOADOUT_CARD.md
311
+ loadout report --json > after.json
312
+ loadout compare-loadouts before.json after.json
316
313
  ```
317
314
 
318
315
  The card excludes project paths and names, prompts, code, filenames, repository names, and credentials. Its Agent Health Score reports evidence coverage and explicitly does not claim universal quality or task improvement.
@@ -334,7 +331,7 @@ The card excludes project paths and names, prompts, code, filenames, repository
334
331
  | Kiro CLI | Yes, at `~/.kiro/skills` | Skills only |
335
332
  | Junie | Yes, at `~/.junie/skills` | Skills only |
336
333
 
337
- Run `npx . capabilities` for the authoritative `native`, `adapted`, or `unsupported` matrix used by the planner itself. `npx . capabilities --gaps` turns every unsupported combination into an evidence-gated engineering backlog; unsupported components are skipped rather than falsely converted.
334
+ Run `loadout capabilities` for the authoritative `native`, `adapted`, or `unsupported` matrix used by the planner itself. `loadout capabilities --gaps` turns every unsupported combination into an evidence-gated engineering backlog; unsupported components are skipped rather than falsely converted.
338
335
 
339
336
  macOS, Linux, and native Windows paths are supported. WSL is intentionally treated as Linux and uses its POSIX `$HOME`; Loadout never silently crosses into the Windows profile under `/mnt/c`. `LOADOUT_USER_HOME` and `LOADOUT_HOME` provide isolated roots for testing.
340
337
 
@@ -369,10 +366,10 @@ Read [Compatibility policy](./docs/COMPATIBILITY_POLICY.md), [Active-set contrac
369
366
  | Package and registry | `create`, `pack`, `publish`, `registry-serve` |
370
367
  | Operate | `completion`, `autopilot`, `schedule`, `unschedule`, `tool`, `dashboard`, `serve` |
371
368
 
372
- Use `npx . <command> --help` for exact options. Shell completion is available for Bash, Zsh, Fish, and PowerShell:
369
+ Use `loadout <command> --help` for exact options. Shell completion is available for Bash, Zsh, Fish, and PowerShell:
373
370
 
374
371
  ```bash
375
- npx . completion zsh > ~/.zfunc/_loadout
372
+ loadout completion zsh > ~/.zfunc/_loadout
376
373
  ```
377
374
 
378
375
  ## How it works
package/dist/src/cli.js CHANGED
@@ -221,7 +221,7 @@ async function runSetup(options) {
221
221
  reader?.close();
222
222
  }
223
223
  }
224
- const LOADOUT_VERSION = "0.1.0";
224
+ const LOADOUT_VERSION = "0.1.2";
225
225
  function durableSchedulerLauncher() {
226
226
  return [
227
227
  join(dirname(process.execPath), process.platform === "win32" ? "npx.cmd" : "npx"),
@@ -15,6 +15,10 @@ export const AGENT_DEFINITIONS = [
15
15
  displayName: "Codex",
16
16
  binary: "codex",
17
17
  directory: [".agents", "skills"],
18
+ // Codex Desktop owns ~/.codex even when the standalone `codex` binary is
19
+ // not exposed on the shell PATH. The shared Agent Skills root (~/.agents)
20
+ // is also valid evidence when it already exists.
21
+ detectionDirectories: [[".codex"], [".agents"]],
18
22
  },
19
23
  {
20
24
  id: "cursor",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loadout-ai",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Universal upgrade manager for AI coding agents",