@loopress/cli 0.23.0 → 0.24.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.
Files changed (82) hide show
  1. package/README.md +515 -83
  2. package/dist/commands/acf/diff.d.ts +2 -0
  3. package/dist/commands/acf/diff.js +5 -0
  4. package/dist/commands/api/diff.d.ts +2 -0
  5. package/dist/commands/api/diff.js +5 -0
  6. package/dist/commands/api/list.d.ts +2 -12
  7. package/dist/commands/api/list.js +2 -20
  8. package/dist/commands/api/pull.d.ts +2 -20
  9. package/dist/commands/api/pull.js +2 -53
  10. package/dist/commands/api/push.d.ts +2 -22
  11. package/dist/commands/api/push.js +2 -116
  12. package/dist/commands/composer/pull.js +6 -16
  13. package/dist/commands/dev.js +1 -1
  14. package/dist/commands/diff.d.ts +13 -0
  15. package/dist/commands/diff.js +42 -0
  16. package/dist/commands/form/diff.d.ts +2 -0
  17. package/dist/commands/form/diff.js +5 -0
  18. package/dist/commands/hook/diff.d.ts +2 -0
  19. package/dist/commands/hook/diff.js +5 -0
  20. package/dist/commands/hook/list.d.ts +2 -0
  21. package/dist/commands/hook/list.js +2 -0
  22. package/dist/commands/hook/pull.d.ts +2 -0
  23. package/dist/commands/hook/pull.js +2 -0
  24. package/dist/commands/hook/push.d.ts +2 -0
  25. package/dist/commands/hook/push.js +2 -0
  26. package/dist/commands/init.js +1 -1
  27. package/dist/commands/option/add.d.ts +15 -0
  28. package/dist/commands/option/add.js +47 -0
  29. package/dist/commands/option/diff.d.ts +2 -0
  30. package/dist/commands/option/diff.js +5 -0
  31. package/dist/commands/{page → option}/list.d.ts +5 -1
  32. package/dist/commands/option/list.js +151 -0
  33. package/dist/commands/{page → option}/pull.d.ts +3 -12
  34. package/dist/commands/option/pull.js +75 -0
  35. package/dist/commands/{page → option}/push.d.ts +3 -8
  36. package/dist/commands/option/push.js +66 -0
  37. package/dist/commands/option/remove.d.ts +22 -0
  38. package/dist/commands/option/remove.js +69 -0
  39. package/dist/commands/plugin/push.d.ts +0 -1
  40. package/dist/commands/plugin/push.js +3 -10
  41. package/dist/commands/pull.js +3 -2
  42. package/dist/commands/push.js +4 -3
  43. package/dist/commands/seo/diff.d.ts +2 -0
  44. package/dist/commands/seo/diff.js +5 -0
  45. package/dist/commands/snippet/diff.d.ts +2 -0
  46. package/dist/commands/snippet/diff.js +5 -0
  47. package/dist/commands/theme/push.d.ts +0 -1
  48. package/dist/commands/theme/push.js +3 -10
  49. package/dist/lib/base.d.ts +2 -1
  50. package/dist/lib/base.js +12 -22
  51. package/dist/lib/dev-watch.d.ts +1 -1
  52. package/dist/lib/dev-watch.js +1 -2
  53. package/dist/lib/diff-command.d.ts +47 -0
  54. package/dist/lib/diff-command.js +180 -0
  55. package/dist/lib/diff-state.d.ts +22 -0
  56. package/dist/lib/diff-state.js +88 -0
  57. package/dist/lib/find-orphaned-files.js +1 -1
  58. package/dist/lib/interactive.d.ts +1 -0
  59. package/dist/lib/interactive.js +10 -0
  60. package/dist/lib/php-files-command.d.ts +54 -0
  61. package/dist/lib/php-files-command.js +216 -0
  62. package/dist/lib/put-or-create.js +1 -1
  63. package/dist/lib/readdir-tolerant.d.ts +1 -0
  64. package/dist/lib/readdir-tolerant.js +3 -1
  65. package/dist/lib/resource-state.d.ts +14 -0
  66. package/dist/lib/resource-state.js +361 -0
  67. package/dist/lib/validate-local.js +15 -7
  68. package/dist/lib/wp-client.d.ts +5 -0
  69. package/dist/lib/wp-client.js +56 -0
  70. package/dist/types/project-config.generated.d.ts +8 -4
  71. package/dist/utils/option-format.d.ts +31 -0
  72. package/dist/utils/option-format.js +51 -0
  73. package/dist/utils/resource-dirs.d.ts +13 -0
  74. package/dist/utils/resource-dirs.js +34 -0
  75. package/oclif.manifest.json +1156 -149
  76. package/package.json +10 -7
  77. package/schemas/project-config.schema.json +10 -5
  78. package/dist/commands/page/list.js +0 -19
  79. package/dist/commands/page/pull.js +0 -57
  80. package/dist/commands/page/push.js +0 -132
  81. package/dist/utils/page-format.d.ts +0 -7
  82. package/dist/utils/page-format.js +0 -78
package/README.md CHANGED
@@ -21,7 +21,7 @@ $ npm install -g @loopress/cli
21
21
  $ lps COMMAND
22
22
  running command...
23
23
  $ lps (--version)
24
- @loopress/cli/0.23.0 linux-x64 node-v24.20.0
24
+ @loopress/cli/0.24.0 linux-x64 node-v24.20.0
25
25
  $ lps --help [COMMAND]
26
26
  USAGE
27
27
  $ lps COMMAND
@@ -47,9 +47,11 @@ report.
47
47
  # Commands
48
48
 
49
49
  <!-- commands -->
50
+ * [`lps acf diff [PATH]`](#lps-acf-diff-path)
50
51
  * [`lps acf list`](#lps-acf-list)
51
52
  * [`lps acf pull [PATH]`](#lps-acf-pull-path)
52
53
  * [`lps acf push [PATH]`](#lps-acf-push-path)
54
+ * [`lps api diff [PATH]`](#lps-api-diff-path)
53
55
  * [`lps api list`](#lps-api-list)
54
56
  * [`lps api publish [PATH]`](#lps-api-publish-path)
55
57
  * [`lps api pull [PATH]`](#lps-api-pull-path)
@@ -62,17 +64,26 @@ report.
62
64
  * [`lps composer pull`](#lps-composer-pull)
63
65
  * [`lps composer push`](#lps-composer-push)
64
66
  * [`lps dev`](#lps-dev)
67
+ * [`lps diff`](#lps-diff)
65
68
  * [`lps doctor`](#lps-doctor)
69
+ * [`lps form diff [PATH]`](#lps-form-diff-path)
66
70
  * [`lps form list`](#lps-form-list)
67
71
  * [`lps form pull [PATH]`](#lps-form-pull-path)
68
72
  * [`lps form push [PATH]`](#lps-form-push-path)
69
73
  * [`lps help [COMMAND]`](#lps-help-command)
74
+ * [`lps hook diff [PATH]`](#lps-hook-diff-path)
75
+ * [`lps hook list`](#lps-hook-list)
76
+ * [`lps hook pull [PATH]`](#lps-hook-pull-path)
77
+ * [`lps hook push [PATH]`](#lps-hook-push-path)
70
78
  * [`lps init`](#lps-init)
71
79
  * [`lps login`](#lps-login)
72
80
  * [`lps logout`](#lps-logout)
73
- * [`lps page list`](#lps-page-list)
74
- * [`lps page pull [PATH]`](#lps-page-pull-path)
75
- * [`lps page push [PATH]`](#lps-page-push-path)
81
+ * [`lps option add NAME`](#lps-option-add-name)
82
+ * [`lps option diff [PATH]`](#lps-option-diff-path)
83
+ * [`lps option list`](#lps-option-list)
84
+ * [`lps option pull [PATH]`](#lps-option-pull-path)
85
+ * [`lps option push [PATH]`](#lps-option-push-path)
86
+ * [`lps option remove NAME`](#lps-option-remove-name)
76
87
  * [`lps plugin add SLUG`](#lps-plugin-add-slug)
77
88
  * [`lps plugin audit`](#lps-plugin-audit)
78
89
  * [`lps plugin pull`](#lps-plugin-pull)
@@ -88,9 +99,11 @@ report.
88
99
  * [`lps promote FROM TO`](#lps-promote-from-to)
89
100
  * [`lps pull`](#lps-pull)
90
101
  * [`lps push`](#lps-push)
102
+ * [`lps seo diff [PATH]`](#lps-seo-diff-path)
91
103
  * [`lps seo list`](#lps-seo-list)
92
104
  * [`lps seo pull [PATH]`](#lps-seo-pull-path)
93
105
  * [`lps seo push [PATH]`](#lps-seo-push-path)
106
+ * [`lps snippet diff [PATH]`](#lps-snippet-diff-path)
94
107
  * [`lps snippet list`](#lps-snippet-list)
95
108
  * [`lps snippet publish [PATH]`](#lps-snippet-publish-path)
96
109
  * [`lps snippet pull [PATH]`](#lps-snippet-pull-path)
@@ -104,6 +117,38 @@ report.
104
117
  * [`lps theme status`](#lps-theme-status)
105
118
  * [`lps validate`](#lps-validate)
106
119
 
120
+ ## `lps acf diff [PATH]`
121
+
122
+ Show what differs in ACF field groups, post types, taxonomies, and options pages between your local files and a WordPress environment, or between two environments
123
+
124
+ ```
125
+ USAGE
126
+ $ lps acf diff [PATH] [--json] [--env <value>] [--against <value>]
127
+
128
+ ARGUMENTS
129
+ [PATH] Path to ACF directory (overrides project config)
130
+
131
+ FLAGS
132
+ --against=<value> Compare the primary environment against this second environment instead of against local files
133
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
134
+
135
+ GLOBAL FLAGS
136
+ --json Format output as json.
137
+
138
+ DESCRIPTION
139
+ Show what differs in ACF field groups, post types, taxonomies, and options pages between your local files and a
140
+ WordPress environment, or between two environments
141
+
142
+ EXAMPLES
143
+ $ lps acf diff
144
+
145
+ $ lps acf diff --env staging
146
+
147
+ $ lps acf diff --env staging --against production
148
+ ```
149
+
150
+ _See code: [src/commands/acf/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/diff.ts)_
151
+
107
152
  ## `lps acf list`
108
153
 
109
154
  List ACF field groups, post types, taxonomies, and options pages from WordPress
@@ -129,7 +174,7 @@ EXAMPLES
129
174
  $ lps acf list --type field-groups
130
175
  ```
131
176
 
132
- _See code: [src/commands/acf/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/acf/list.ts)_
177
+ _See code: [src/commands/acf/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/list.ts)_
133
178
 
134
179
  ## `lps acf pull [PATH]`
135
180
 
@@ -158,7 +203,7 @@ EXAMPLES
158
203
  $ lps acf pull --type field-groups
159
204
  ```
160
205
 
161
- _See code: [src/commands/acf/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/acf/pull.ts)_
206
+ _See code: [src/commands/acf/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/pull.ts)_
162
207
 
163
208
  ## `lps acf push [PATH]`
164
209
 
@@ -187,7 +232,39 @@ EXAMPLES
187
232
  $ lps acf push --type field-groups
188
233
  ```
189
234
 
190
- _See code: [src/commands/acf/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/acf/push.ts)_
235
+ _See code: [src/commands/acf/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/acf/push.ts)_
236
+
237
+ ## `lps api diff [PATH]`
238
+
239
+ Show what differs in custom API route files between your local files and a WordPress environment, or between two environments
240
+
241
+ ```
242
+ USAGE
243
+ $ lps api diff [PATH] [--json] [--env <value>] [--against <value>]
244
+
245
+ ARGUMENTS
246
+ [PATH] Path to api directory (overrides project config)
247
+
248
+ FLAGS
249
+ --against=<value> Compare the primary environment against this second environment instead of against local files
250
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
251
+
252
+ GLOBAL FLAGS
253
+ --json Format output as json.
254
+
255
+ DESCRIPTION
256
+ Show what differs in custom API route files between your local files and a WordPress environment, or between two
257
+ environments
258
+
259
+ EXAMPLES
260
+ $ lps api diff
261
+
262
+ $ lps api diff --env staging
263
+
264
+ $ lps api diff --env staging --against production
265
+ ```
266
+
267
+ _See code: [src/commands/api/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/diff.ts)_
191
268
 
192
269
  ## `lps api list`
193
270
 
@@ -210,7 +287,7 @@ EXAMPLES
210
287
  $ lps api list
211
288
  ```
212
289
 
213
- _See code: [src/commands/api/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/list.ts)_
290
+ _See code: [src/commands/api/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/list.ts)_
214
291
 
215
292
  ## `lps api publish [PATH]`
216
293
 
@@ -233,7 +310,7 @@ EXAMPLES
233
310
  $ lps api publish --path ./api
234
311
  ```
235
312
 
236
- _See code: [src/commands/api/publish.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/publish.ts)_
313
+ _See code: [src/commands/api/publish.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/publish.ts)_
237
314
 
238
315
  ## `lps api pull [PATH]`
239
316
 
@@ -263,7 +340,7 @@ EXAMPLES
263
340
  $ lps api pull --path ./api
264
341
  ```
265
342
 
266
- _See code: [src/commands/api/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/pull.ts)_
343
+ _See code: [src/commands/api/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/pull.ts)_
267
344
 
268
345
  ## `lps api push [PATH]`
269
346
 
@@ -293,7 +370,7 @@ EXAMPLES
293
370
  $ lps api push --path ./api
294
371
  ```
295
372
 
296
- _See code: [src/commands/api/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/api/push.ts)_
373
+ _See code: [src/commands/api/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/api/push.ts)_
297
374
 
298
375
  ## `lps app list`
299
376
 
@@ -316,7 +393,7 @@ EXAMPLES
316
393
  $ lps app list
317
394
  ```
318
395
 
319
- _See code: [src/commands/app/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/list.ts)_
396
+ _See code: [src/commands/app/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/list.ts)_
320
397
 
321
398
  ## `lps app pull [PATH]`
322
399
 
@@ -344,7 +421,7 @@ EXAMPLES
344
421
  $ lps app pull
345
422
  ```
346
423
 
347
- _See code: [src/commands/app/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/pull.ts)_
424
+ _See code: [src/commands/app/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/pull.ts)_
348
425
 
349
426
  ## `lps app push [NAME]`
350
427
 
@@ -375,7 +452,7 @@ EXAMPLES
375
452
  $ lps app push search
376
453
  ```
377
454
 
378
- _See code: [src/commands/app/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/push.ts)_
455
+ _See code: [src/commands/app/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/push.ts)_
379
456
 
380
457
  ## `lps app remove NAME`
381
458
 
@@ -404,7 +481,7 @@ EXAMPLES
404
481
  $ lps app remove search
405
482
  ```
406
483
 
407
- _See code: [src/commands/app/remove.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/app/remove.ts)_
484
+ _See code: [src/commands/app/remove.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/app/remove.ts)_
408
485
 
409
486
  ## `lps composer init`
410
487
 
@@ -427,7 +504,7 @@ EXAMPLES
427
504
  $ lps composer init --dry-run
428
505
  ```
429
506
 
430
- _See code: [src/commands/composer/init.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/composer/init.ts)_
507
+ _See code: [src/commands/composer/init.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/composer/init.ts)_
431
508
 
432
509
  ## `lps composer pull`
433
510
 
@@ -453,7 +530,7 @@ EXAMPLES
453
530
  $ lps composer pull --dry-run
454
531
  ```
455
532
 
456
- _See code: [src/commands/composer/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/composer/pull.ts)_
533
+ _See code: [src/commands/composer/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/composer/pull.ts)_
457
534
 
458
535
  ## `lps composer push`
459
536
 
@@ -481,7 +558,7 @@ EXAMPLES
481
558
  $ lps composer push --dry-run
482
559
  ```
483
560
 
484
- _See code: [src/commands/composer/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/composer/push.ts)_
561
+ _See code: [src/commands/composer/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/composer/push.ts)_
485
562
 
486
563
  ## `lps dev`
487
564
 
@@ -492,8 +569,8 @@ USAGE
492
569
  $ lps dev [--only <value>] [--skip <value>]
493
570
 
494
571
  FLAGS
495
- --only=<value> Only watch these resource types (comma-separated): snippets, pages, api, plugins
496
- --skip=<value> Skip these resource types (comma-separated): snippets, pages, api, plugins
572
+ --only=<value> Only watch these resource types (comma-separated): snippets, api, plugins
573
+ --skip=<value> Skip these resource types (comma-separated): snippets, api, plugins
497
574
 
498
575
  DESCRIPTION
499
576
  Watch project files and push changes to the local WordPress instance as they happen. Always targets the "local"
@@ -502,12 +579,52 @@ DESCRIPTION
502
579
  EXAMPLES
503
580
  $ lps dev
504
581
 
505
- $ lps dev --only=snippets,pages
582
+ $ lps dev --only=snippets,api
506
583
 
507
584
  $ lps dev --skip=plugins
508
585
  ```
509
586
 
510
- _See code: [src/commands/dev.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/dev.ts)_
587
+ _See code: [src/commands/dev.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/dev.ts)_
588
+
589
+ ## `lps diff`
590
+
591
+ Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers snippets, forms, ACF, API routes, Hooks, SEO, and Composer. Plugins and themes have their own `lps plugin status` / `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI drift gate.
592
+
593
+ ```
594
+ USAGE
595
+ $ lps diff [--json] [--env <value>] [--against <value>] [--only
596
+ snippet|form|acf|api|hook|seo|option|composer...] [--skip snippet|form|acf|api|hook|seo|option|composer...]
597
+
598
+ FLAGS
599
+ --against=<value> Compare the primary environment against this second environment instead of against local files
600
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
601
+ --only=<option>... Only compare these resources
602
+ <options: snippet|form|acf|api|hook|seo|option|composer>
603
+ --skip=<option>... Compare every resource except these
604
+ <options: snippet|form|acf|api|hook|seo|option|composer>
605
+
606
+ GLOBAL FLAGS
607
+ --json Format output as json.
608
+
609
+ DESCRIPTION
610
+ Show what differs between your local tracked files and a WordPress environment, or between two environments. Covers
611
+ snippets, forms, ACF, API routes, Hooks, SEO, and Composer. Plugins and themes have their own `lps plugin status` /
612
+ `lps theme status`. Exit code: 0 in sync, 1 on drift, 2 when a resource could not be compared, so it doubles as a CI
613
+ drift gate.
614
+
615
+ EXAMPLES
616
+ $ lps diff
617
+
618
+ $ lps diff --env staging
619
+
620
+ $ lps diff --env staging --against production
621
+
622
+ $ lps diff --only snippet --only acf
623
+
624
+ $ lps diff --skip composer
625
+ ```
626
+
627
+ _See code: [src/commands/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/diff.ts)_
511
628
 
512
629
  ## `lps doctor`
513
630
 
@@ -529,7 +646,38 @@ EXAMPLES
529
646
  $ lps doctor --env production
530
647
  ```
531
648
 
532
- _See code: [src/commands/doctor.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/doctor.ts)_
649
+ _See code: [src/commands/doctor.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/doctor.ts)_
650
+
651
+ ## `lps form diff [PATH]`
652
+
653
+ Show what differs in forms between your local files and a WordPress environment, or between two environments
654
+
655
+ ```
656
+ USAGE
657
+ $ lps form diff [PATH] [--json] [--env <value>] [--against <value>]
658
+
659
+ ARGUMENTS
660
+ [PATH] Path to forms directory (overrides project config)
661
+
662
+ FLAGS
663
+ --against=<value> Compare the primary environment against this second environment instead of against local files
664
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
665
+
666
+ GLOBAL FLAGS
667
+ --json Format output as json.
668
+
669
+ DESCRIPTION
670
+ Show what differs in forms between your local files and a WordPress environment, or between two environments
671
+
672
+ EXAMPLES
673
+ $ lps form diff
674
+
675
+ $ lps form diff --env staging
676
+
677
+ $ lps form diff --env staging --against production
678
+ ```
679
+
680
+ _See code: [src/commands/form/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/diff.ts)_
533
681
 
534
682
  ## `lps form list`
535
683
 
@@ -552,7 +700,7 @@ EXAMPLES
552
700
  $ lps form list
553
701
  ```
554
702
 
555
- _See code: [src/commands/form/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/form/list.ts)_
703
+ _See code: [src/commands/form/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/list.ts)_
556
704
 
557
705
  ## `lps form pull [PATH]`
558
706
 
@@ -577,7 +725,7 @@ EXAMPLES
577
725
  $ lps form pull
578
726
  ```
579
727
 
580
- _See code: [src/commands/form/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/form/pull.ts)_
728
+ _See code: [src/commands/form/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/pull.ts)_
581
729
 
582
730
  ## `lps form push [PATH]`
583
731
 
@@ -603,7 +751,7 @@ EXAMPLES
603
751
  $ lps form push
604
752
  ```
605
753
 
606
- _See code: [src/commands/form/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/form/push.ts)_
754
+ _See code: [src/commands/form/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/form/push.ts)_
607
755
 
608
756
  ## `lps help [COMMAND]`
609
757
 
@@ -625,6 +773,120 @@ DESCRIPTION
625
773
 
626
774
  _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/7.0.0/src/commands/help.ts)_
627
775
 
776
+ ## `lps hook diff [PATH]`
777
+
778
+ Show what differs in hook files between your local files and a WordPress environment, or between two environments
779
+
780
+ ```
781
+ USAGE
782
+ $ lps hook diff [PATH] [--json] [--env <value>] [--against <value>]
783
+
784
+ ARGUMENTS
785
+ [PATH] Path to hooks directory (overrides project config)
786
+
787
+ FLAGS
788
+ --against=<value> Compare the primary environment against this second environment instead of against local files
789
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
790
+
791
+ GLOBAL FLAGS
792
+ --json Format output as json.
793
+
794
+ DESCRIPTION
795
+ Show what differs in hook files between your local files and a WordPress environment, or between two environments
796
+
797
+ EXAMPLES
798
+ $ lps hook diff
799
+
800
+ $ lps hook diff --env staging
801
+
802
+ $ lps hook diff --env staging --against production
803
+ ```
804
+
805
+ _See code: [src/commands/hook/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/diff.ts)_
806
+
807
+ ## `lps hook list`
808
+
809
+ List hook files (actions, filters, cron) from WordPress
810
+
811
+ ```
812
+ USAGE
813
+ $ lps hook list [--json] [--env <value>]
814
+
815
+ FLAGS
816
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
817
+
818
+ GLOBAL FLAGS
819
+ --json Format output as json.
820
+
821
+ DESCRIPTION
822
+ List hook files (actions, filters, cron) from WordPress
823
+
824
+ EXAMPLES
825
+ $ lps hook list
826
+ ```
827
+
828
+ _See code: [src/commands/hook/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/list.ts)_
829
+
830
+ ## `lps hook pull [PATH]`
831
+
832
+ Pull hook files (actions, filters, cron) from WordPress
833
+
834
+ ```
835
+ USAGE
836
+ $ lps hook pull [PATH] [--json] [--env <value>] [-d] [-y]
837
+
838
+ ARGUMENTS
839
+ [PATH] Path to hooks directory (overrides project config)
840
+
841
+ FLAGS
842
+ -d, --dry-run Show what would change without making changes
843
+ -y, --yes Answer yes to confirmation prompts
844
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
845
+
846
+ GLOBAL FLAGS
847
+ --json Format output as json.
848
+
849
+ DESCRIPTION
850
+ Pull hook files (actions, filters, cron) from WordPress
851
+
852
+ EXAMPLES
853
+ $ lps hook pull
854
+
855
+ $ lps hook pull --path ./hooks
856
+ ```
857
+
858
+ _See code: [src/commands/hook/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/pull.ts)_
859
+
860
+ ## `lps hook push [PATH]`
861
+
862
+ Push hook files (actions, filters, cron) to WordPress
863
+
864
+ ```
865
+ USAGE
866
+ $ lps hook push [PATH] [--json] [--env <value>] [-d] [-y]
867
+
868
+ ARGUMENTS
869
+ [PATH] Path to hooks directory (overrides project config)
870
+
871
+ FLAGS
872
+ -d, --dry-run Show what would change without making changes
873
+ -y, --yes Answer yes to confirmation prompts
874
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
875
+
876
+ GLOBAL FLAGS
877
+ --json Format output as json.
878
+
879
+ DESCRIPTION
880
+ Push hook files (actions, filters, cron) to WordPress
881
+
882
+ EXAMPLES
883
+ $ lps hook push
884
+
885
+ $ lps hook push --path ./hooks
886
+ ```
887
+
888
+ _See code: [src/commands/hook/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/hook/push.ts)_
889
+
628
890
  ## `lps init`
629
891
 
630
892
  Initialize a loopress.json config file in the current directory
@@ -640,7 +902,7 @@ EXAMPLES
640
902
  $ lps init
641
903
  ```
642
904
 
643
- _See code: [src/commands/init.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/init.ts)_
905
+ _See code: [src/commands/init.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/init.ts)_
644
906
 
645
907
  ## `lps login`
646
908
 
@@ -657,7 +919,7 @@ EXAMPLES
657
919
  $ lps login
658
920
  ```
659
921
 
660
- _See code: [src/commands/login.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/login.ts)_
922
+ _See code: [src/commands/login.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/login.ts)_
661
923
 
662
924
  ## `lps logout`
663
925
 
@@ -674,41 +936,111 @@ EXAMPLES
674
936
  $ lps logout
675
937
  ```
676
938
 
677
- _See code: [src/commands/logout.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/logout.ts)_
939
+ _See code: [src/commands/logout.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/logout.ts)_
678
940
 
679
- ## `lps page list`
941
+ ## `lps option add NAME`
680
942
 
681
- List pages from WordPress
943
+ Fetch a WordPress option by name and start tracking it locally. Run `lps option list` first to find the name: this copies a raw value across environments, verify it does not embed post/user IDs before pushing it elsewhere.
682
944
 
683
945
  ```
684
946
  USAGE
685
- $ lps page list [--json] [--env <value>]
947
+ $ lps option add NAME [--json] [--env <value>] [-d] [--path <value>]
948
+
949
+ ARGUMENTS
950
+ NAME Option name to start tracking (see `lps option list`)
951
+
952
+ FLAGS
953
+ -d, --dry-run Show what would change without making changes
954
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
955
+ --path=<value> Path to options directory (overrides project config)
956
+
957
+ GLOBAL FLAGS
958
+ --json Format output as json.
959
+
960
+ DESCRIPTION
961
+ Fetch a WordPress option by name and start tracking it locally. Run `lps option list` first to find the name: this
962
+ copies a raw value across environments, verify it does not embed post/user IDs before pushing it elsewhere.
963
+
964
+ EXAMPLES
965
+ $ lps option add wpseo_titles
966
+
967
+ $ lps option add siteurl
968
+ ```
969
+
970
+ _See code: [src/commands/option/add.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/add.ts)_
971
+
972
+ ## `lps option diff [PATH]`
973
+
974
+ Show what differs, for locally tracked options, between your local files and a WordPress environment, or between two environments
975
+
976
+ ```
977
+ USAGE
978
+ $ lps option diff [PATH] [--json] [--env <value>] [--against <value>]
979
+
980
+ ARGUMENTS
981
+ [PATH] Path to options directory (overrides project config)
982
+
983
+ FLAGS
984
+ --against=<value> Compare the primary environment against this second environment instead of against local files
985
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
986
+
987
+ GLOBAL FLAGS
988
+ --json Format output as json.
989
+
990
+ DESCRIPTION
991
+ Show what differs, for locally tracked options, between your local files and a WordPress environment, or between two
992
+ environments
993
+
994
+ EXAMPLES
995
+ $ lps option diff
996
+
997
+ $ lps option diff --env staging
998
+
999
+ $ lps option diff --env staging --against production
1000
+ ```
1001
+
1002
+ _See code: [src/commands/option/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/diff.ts)_
1003
+
1004
+ ## `lps option list`
1005
+
1006
+ List WordPress option names currently on the site (names and autoload only, never values). CORE flags a WordPress-native default (certain); SOURCE? is a best-effort guessed plugin slug, found by name or by scanning active plugins' own PHP source (uncertain unless confirmed, occasionally wrong or blank, never trust it over CORE); PLUGIN is that slug's own declared display name, a label only, no confidence of its own. Use this to find the name of the option you want, then `lps option add <name>` to track it.
1007
+
1008
+ ```
1009
+ USAGE
1010
+ $ lps option list [--json] [--env <value>] [--no-core]
686
1011
 
687
1012
  FLAGS
688
1013
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1014
+ --no-core Exclude WordPress-native default options and the CORE column from the output, including --json
689
1015
 
690
1016
  GLOBAL FLAGS
691
1017
  --json Format output as json.
692
1018
 
693
1019
  DESCRIPTION
694
- List pages from WordPress
1020
+ List WordPress option names currently on the site (names and autoload only, never values). CORE flags a
1021
+ WordPress-native default (certain); SOURCE? is a best-effort guessed plugin slug, found by name or by scanning active
1022
+ plugins' own PHP source (uncertain unless confirmed, occasionally wrong or blank, never trust it over CORE); PLUGIN is
1023
+ that slug's own declared display name, a label only, no confidence of its own. Use this to find the name of the option
1024
+ you want, then `lps option add <name>` to track it.
695
1025
 
696
1026
  EXAMPLES
697
- $ lps page list
1027
+ $ lps option list
1028
+
1029
+ $ lps option list --no-core
698
1030
  ```
699
1031
 
700
- _See code: [src/commands/page/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/page/list.ts)_
1032
+ _See code: [src/commands/option/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/list.ts)_
701
1033
 
702
- ## `lps page pull [PATH]`
1034
+ ## `lps option pull [PATH]`
703
1035
 
704
- Pull pages from WordPress
1036
+ Refresh locally tracked options from WordPress. Options not yet tracked are never pulled, run `lps option add <name>` for those first.
705
1037
 
706
1038
  ```
707
1039
  USAGE
708
- $ lps page pull [PATH] [--json] [--env <value>] [-d] [-y]
1040
+ $ lps option pull [PATH] [--json] [--env <value>] [-d] [-y]
709
1041
 
710
1042
  ARGUMENTS
711
- [PATH] Path to pages directory (overrides project config)
1043
+ [PATH] Path to options directory (overrides project config)
712
1044
 
713
1045
  FLAGS
714
1046
  -d, --dry-run Show what would change without making changes
@@ -719,24 +1051,25 @@ GLOBAL FLAGS
719
1051
  --json Format output as json.
720
1052
 
721
1053
  DESCRIPTION
722
- Pull pages from WordPress
1054
+ Refresh locally tracked options from WordPress. Options not yet tracked are never pulled, run `lps option add <name>`
1055
+ for those first.
723
1056
 
724
1057
  EXAMPLES
725
- $ lps page pull
1058
+ $ lps option pull
726
1059
  ```
727
1060
 
728
- _See code: [src/commands/page/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/page/pull.ts)_
1061
+ _See code: [src/commands/option/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/pull.ts)_
729
1062
 
730
- ## `lps page push [PATH]`
1063
+ ## `lps option push [PATH]`
731
1064
 
732
- Push pages to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.
1065
+ Push locally tracked, non-readonly options to WordPress (upsert only, never deletes an untracked option). Options marked "readonly": true in their local file are skipped, edit the file to override.
733
1066
 
734
1067
  ```
735
1068
  USAGE
736
- $ lps page push [PATH] [--json] [--env <value>] [-d] [-y]
1069
+ $ lps option push [PATH] [--json] [--env <value>] [-d] [-y]
737
1070
 
738
1071
  ARGUMENTS
739
- [PATH] Path to pages directory (overrides project config)
1072
+ [PATH] Path to options directory (overrides project config)
740
1073
 
741
1074
  FLAGS
742
1075
  -d, --dry-run Show what would change without making changes
@@ -747,13 +1080,47 @@ GLOBAL FLAGS
747
1080
  --json Format output as json.
748
1081
 
749
1082
  DESCRIPTION
750
- Push pages to WordPress. Local files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.
1083
+ Push locally tracked, non-readonly options to WordPress (upsert only, never deletes an untracked option). Options
1084
+ marked "readonly": true in their local file are skipped, edit the file to override.
751
1085
 
752
1086
  EXAMPLES
753
- $ lps page push
1087
+ $ lps option push
754
1088
  ```
755
1089
 
756
- _See code: [src/commands/page/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/page/push.ts)_
1090
+ _See code: [src/commands/option/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/push.ts)_
1091
+
1092
+ ## `lps option remove NAME`
1093
+
1094
+ Stop tracking an option locally and delete it from WordPress. Local untracking always happens (git-reversible); pass --local-only to skip the WordPress delete and only stop tracking.
1095
+
1096
+ ```
1097
+ USAGE
1098
+ $ lps option remove NAME [--json] [--env <value>] [-d] [-y] [--local-only] [--path <value>]
1099
+
1100
+ ARGUMENTS
1101
+ NAME Option name to stop tracking
1102
+
1103
+ FLAGS
1104
+ -d, --dry-run Show what would change without making changes
1105
+ -y, --yes Answer yes to confirmation prompts
1106
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1107
+ --local-only Untrack locally without deleting the option on WordPress
1108
+ --path=<value> Path to options directory (overrides project config)
1109
+
1110
+ GLOBAL FLAGS
1111
+ --json Format output as json.
1112
+
1113
+ DESCRIPTION
1114
+ Stop tracking an option locally and delete it from WordPress. Local untracking always happens (git-reversible); pass
1115
+ --local-only to skip the WordPress delete and only stop tracking.
1116
+
1117
+ EXAMPLES
1118
+ $ lps option remove wpseo_titles
1119
+
1120
+ $ lps option remove wpseo_titles --local-only
1121
+ ```
1122
+
1123
+ _See code: [src/commands/option/remove.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/option/remove.ts)_
757
1124
 
758
1125
  ## `lps plugin add SLUG`
759
1126
 
@@ -782,7 +1149,7 @@ EXAMPLES
782
1149
  $ lps plugin add contact-form-7 --dry-run
783
1150
  ```
784
1151
 
785
- _See code: [src/commands/plugin/add.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/add.ts)_
1152
+ _See code: [src/commands/plugin/add.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/add.ts)_
786
1153
 
787
1154
  ## `lps plugin audit`
788
1155
 
@@ -805,7 +1172,7 @@ EXAMPLES
805
1172
  $ lps plugin audit
806
1173
  ```
807
1174
 
808
- _See code: [src/commands/plugin/audit.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/audit.ts)_
1175
+ _See code: [src/commands/plugin/audit.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/audit.ts)_
809
1176
 
810
1177
  ## `lps plugin pull`
811
1178
 
@@ -831,7 +1198,7 @@ EXAMPLES
831
1198
  $ lps plugin pull --dry-run
832
1199
  ```
833
1200
 
834
- _See code: [src/commands/plugin/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/pull.ts)_
1201
+ _See code: [src/commands/plugin/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/pull.ts)_
835
1202
 
836
1203
  ## `lps plugin push`
837
1204
 
@@ -862,7 +1229,7 @@ EXAMPLES
862
1229
  $ lps plugin push --force --prune
863
1230
  ```
864
1231
 
865
- _See code: [src/commands/plugin/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/push.ts)_
1232
+ _See code: [src/commands/plugin/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/push.ts)_
866
1233
 
867
1234
  ## `lps plugin status`
868
1235
 
@@ -885,7 +1252,7 @@ EXAMPLES
885
1252
  $ lps plugin status
886
1253
  ```
887
1254
 
888
- _See code: [src/commands/plugin/status.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/plugin/status.ts)_
1255
+ _See code: [src/commands/plugin/status.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/plugin/status.ts)_
889
1256
 
890
1257
  ## `lps project config`
891
1258
 
@@ -903,7 +1270,7 @@ EXAMPLES
903
1270
  $ lps project config
904
1271
  ```
905
1272
 
906
- _See code: [src/commands/project/config.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/config.ts)_
1273
+ _See code: [src/commands/project/config.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/config.ts)_
907
1274
 
908
1275
  ## `lps project list`
909
1276
 
@@ -923,7 +1290,7 @@ EXAMPLES
923
1290
  $ lps project list
924
1291
  ```
925
1292
 
926
- _See code: [src/commands/project/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/list.ts)_
1293
+ _See code: [src/commands/project/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/list.ts)_
927
1294
 
928
1295
  ## `lps project pull`
929
1296
 
@@ -940,7 +1307,7 @@ EXAMPLES
940
1307
  $ lps project pull
941
1308
  ```
942
1309
 
943
- _See code: [src/commands/project/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/pull.ts)_
1310
+ _See code: [src/commands/project/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/pull.ts)_
944
1311
 
945
1312
  ## `lps project push`
946
1313
 
@@ -960,7 +1327,7 @@ EXAMPLES
960
1327
  $ lps project push
961
1328
  ```
962
1329
 
963
- _See code: [src/commands/project/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/push.ts)_
1330
+ _See code: [src/commands/project/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/push.ts)_
964
1331
 
965
1332
  ## `lps project remove`
966
1333
 
@@ -977,7 +1344,7 @@ EXAMPLES
977
1344
  $ lps project remove
978
1345
  ```
979
1346
 
980
- _See code: [src/commands/project/remove.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/remove.ts)_
1347
+ _See code: [src/commands/project/remove.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/remove.ts)_
981
1348
 
982
1349
  ## `lps project rotate`
983
1350
 
@@ -999,7 +1366,7 @@ EXAMPLES
999
1366
  $ lps project rotate --env staging
1000
1367
  ```
1001
1368
 
1002
- _See code: [src/commands/project/rotate.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/rotate.ts)_
1369
+ _See code: [src/commands/project/rotate.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/rotate.ts)_
1003
1370
 
1004
1371
  ## `lps project switch`
1005
1372
 
@@ -1016,7 +1383,7 @@ EXAMPLES
1016
1383
  $ lps project switch
1017
1384
  ```
1018
1385
 
1019
- _See code: [src/commands/project/switch.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/project/switch.ts)_
1386
+ _See code: [src/commands/project/switch.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/project/switch.ts)_
1020
1387
 
1021
1388
  ## `lps promote FROM TO`
1022
1389
 
@@ -1044,11 +1411,11 @@ EXAMPLES
1044
1411
  $ lps promote production staging --dry-run
1045
1412
  ```
1046
1413
 
1047
- _See code: [src/commands/promote.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/promote.ts)_
1414
+ _See code: [src/commands/promote.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/promote.ts)_
1048
1415
 
1049
1416
  ## `lps pull`
1050
1417
 
1051
- Pull all content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, from WordPress
1418
+ Pull all content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, from WordPress
1052
1419
 
1053
1420
  ```
1054
1421
  USAGE
@@ -1060,7 +1427,8 @@ FLAGS
1060
1427
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1061
1428
 
1062
1429
  DESCRIPTION
1063
- Pull all content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, from WordPress
1430
+ Pull all content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, from
1431
+ WordPress
1064
1432
 
1065
1433
  EXAMPLES
1066
1434
  $ lps pull
@@ -1070,11 +1438,11 @@ EXAMPLES
1070
1438
  $ lps pull --dry-run
1071
1439
  ```
1072
1440
 
1073
- _See code: [src/commands/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/pull.ts)_
1441
+ _See code: [src/commands/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/pull.ts)_
1074
1442
 
1075
1443
  ## `lps push`
1076
1444
 
1077
- Push all local content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, to WordPress
1445
+ Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, to WordPress
1078
1446
 
1079
1447
  ```
1080
1448
  USAGE
@@ -1086,7 +1454,8 @@ FLAGS
1086
1454
  --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1087
1455
 
1088
1456
  DESCRIPTION
1089
- Push all local content, plugins, composer dependencies, ACF, API routes, forms, pages, SEO, and snippets, to WordPress
1457
+ Push all local content, plugins, composer dependencies, ACF, API routes, hooks, forms, SEO, options, and snippets, to
1458
+ WordPress
1090
1459
 
1091
1460
  EXAMPLES
1092
1461
  $ lps push
@@ -1096,7 +1465,39 @@ EXAMPLES
1096
1465
  $ lps push --dry-run
1097
1466
  ```
1098
1467
 
1099
- _See code: [src/commands/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/push.ts)_
1468
+ _See code: [src/commands/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/push.ts)_
1469
+
1470
+ ## `lps seo diff [PATH]`
1471
+
1472
+ Show what differs in SEO settings, post meta, and redirects between your local files and a WordPress environment, or between two environments
1473
+
1474
+ ```
1475
+ USAGE
1476
+ $ lps seo diff [PATH] [--json] [--env <value>] [--against <value>]
1477
+
1478
+ ARGUMENTS
1479
+ [PATH] Path to SEO directory (overrides project config)
1480
+
1481
+ FLAGS
1482
+ --against=<value> Compare the primary environment against this second environment instead of against local files
1483
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1484
+
1485
+ GLOBAL FLAGS
1486
+ --json Format output as json.
1487
+
1488
+ DESCRIPTION
1489
+ Show what differs in SEO settings, post meta, and redirects between your local files and a WordPress environment, or
1490
+ between two environments
1491
+
1492
+ EXAMPLES
1493
+ $ lps seo diff
1494
+
1495
+ $ lps seo diff --env staging
1496
+
1497
+ $ lps seo diff --env staging --against production
1498
+ ```
1499
+
1500
+ _See code: [src/commands/seo/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/diff.ts)_
1100
1501
 
1101
1502
  ## `lps seo list`
1102
1503
 
@@ -1122,7 +1523,7 @@ EXAMPLES
1122
1523
  $ lps seo list --post-type post
1123
1524
  ```
1124
1525
 
1125
- _See code: [src/commands/seo/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/seo/list.ts)_
1526
+ _See code: [src/commands/seo/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/list.ts)_
1126
1527
 
1127
1528
  ## `lps seo pull [PATH]`
1128
1529
 
@@ -1150,7 +1551,7 @@ EXAMPLES
1150
1551
  $ lps seo pull --post-type post --post-type page
1151
1552
  ```
1152
1553
 
1153
- _See code: [src/commands/seo/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/seo/pull.ts)_
1554
+ _See code: [src/commands/seo/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/pull.ts)_
1154
1555
 
1155
1556
  ## `lps seo push [PATH]`
1156
1557
 
@@ -1176,7 +1577,38 @@ EXAMPLES
1176
1577
  $ lps seo push
1177
1578
  ```
1178
1579
 
1179
- _See code: [src/commands/seo/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/seo/push.ts)_
1580
+ _See code: [src/commands/seo/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/seo/push.ts)_
1581
+
1582
+ ## `lps snippet diff [PATH]`
1583
+
1584
+ Show what differs in snippets between your local files and a WordPress environment, or between two environments
1585
+
1586
+ ```
1587
+ USAGE
1588
+ $ lps snippet diff [PATH] [--json] [--env <value>] [--against <value>]
1589
+
1590
+ ARGUMENTS
1591
+ [PATH] Path to snippets directory (overrides project config)
1592
+
1593
+ FLAGS
1594
+ --against=<value> Compare the primary environment against this second environment instead of against local files
1595
+ --env=<value> Target environment by name, overriding the globally active one (lps project switch)
1596
+
1597
+ GLOBAL FLAGS
1598
+ --json Format output as json.
1599
+
1600
+ DESCRIPTION
1601
+ Show what differs in snippets between your local files and a WordPress environment, or between two environments
1602
+
1603
+ EXAMPLES
1604
+ $ lps snippet diff
1605
+
1606
+ $ lps snippet diff --env staging
1607
+
1608
+ $ lps snippet diff --env staging --against production
1609
+ ```
1610
+
1611
+ _See code: [src/commands/snippet/diff.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/diff.ts)_
1180
1612
 
1181
1613
  ## `lps snippet list`
1182
1614
 
@@ -1199,7 +1631,7 @@ EXAMPLES
1199
1631
  $ lps snippet list
1200
1632
  ```
1201
1633
 
1202
- _See code: [src/commands/snippet/list.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/list.ts)_
1634
+ _See code: [src/commands/snippet/list.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/list.ts)_
1203
1635
 
1204
1636
  ## `lps snippet publish [PATH]`
1205
1637
 
@@ -1222,7 +1654,7 @@ EXAMPLES
1222
1654
  $ lps snippet publish --path ./snippets
1223
1655
  ```
1224
1656
 
1225
- _See code: [src/commands/snippet/publish.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/publish.ts)_
1657
+ _See code: [src/commands/snippet/publish.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/publish.ts)_
1226
1658
 
1227
1659
  ## `lps snippet pull [PATH]`
1228
1660
 
@@ -1252,7 +1684,7 @@ EXAMPLES
1252
1684
  $ lps snippet pull --path ./snippets
1253
1685
  ```
1254
1686
 
1255
- _See code: [src/commands/snippet/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/pull.ts)_
1687
+ _See code: [src/commands/snippet/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/pull.ts)_
1256
1688
 
1257
1689
  ## `lps snippet push [PATH]`
1258
1690
 
@@ -1283,7 +1715,7 @@ EXAMPLES
1283
1715
  $ lps snippet push --path ./snippets
1284
1716
  ```
1285
1717
 
1286
- _See code: [src/commands/snippet/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/snippet/push.ts)_
1718
+ _See code: [src/commands/snippet/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/snippet/push.ts)_
1287
1719
 
1288
1720
  ## `lps status`
1289
1721
 
@@ -1308,7 +1740,7 @@ EXAMPLES
1308
1740
  $ lps status --env staging
1309
1741
  ```
1310
1742
 
1311
- _See code: [src/commands/status.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/status.ts)_
1743
+ _See code: [src/commands/status.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/status.ts)_
1312
1744
 
1313
1745
  ## `lps telemetry disable`
1314
1746
 
@@ -1325,7 +1757,7 @@ EXAMPLES
1325
1757
  $ lps telemetry disable
1326
1758
  ```
1327
1759
 
1328
- _See code: [src/commands/telemetry/disable.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/telemetry/disable.ts)_
1760
+ _See code: [src/commands/telemetry/disable.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/telemetry/disable.ts)_
1329
1761
 
1330
1762
  ## `lps telemetry enable`
1331
1763
 
@@ -1342,7 +1774,7 @@ EXAMPLES
1342
1774
  $ lps telemetry enable
1343
1775
  ```
1344
1776
 
1345
- _See code: [src/commands/telemetry/enable.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/telemetry/enable.ts)_
1777
+ _See code: [src/commands/telemetry/enable.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/telemetry/enable.ts)_
1346
1778
 
1347
1779
  ## `lps theme add SLUG`
1348
1780
 
@@ -1369,7 +1801,7 @@ EXAMPLES
1369
1801
  $ lps theme add generatepress --version 3.4.0
1370
1802
  ```
1371
1803
 
1372
- _See code: [src/commands/theme/add.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/add.ts)_
1804
+ _See code: [src/commands/theme/add.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/add.ts)_
1373
1805
 
1374
1806
  ## `lps theme pull`
1375
1807
 
@@ -1393,7 +1825,7 @@ EXAMPLES
1393
1825
  $ lps theme pull
1394
1826
  ```
1395
1827
 
1396
- _See code: [src/commands/theme/pull.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/pull.ts)_
1828
+ _See code: [src/commands/theme/pull.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/pull.ts)_
1397
1829
 
1398
1830
  ## `lps theme push`
1399
1831
 
@@ -1421,7 +1853,7 @@ EXAMPLES
1421
1853
  $ lps theme push --force
1422
1854
  ```
1423
1855
 
1424
- _See code: [src/commands/theme/push.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/push.ts)_
1856
+ _See code: [src/commands/theme/push.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/push.ts)_
1425
1857
 
1426
1858
  ## `lps theme status`
1427
1859
 
@@ -1444,7 +1876,7 @@ EXAMPLES
1444
1876
  $ lps theme status
1445
1877
  ```
1446
1878
 
1447
- _See code: [src/commands/theme/status.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/theme/status.ts)_
1879
+ _See code: [src/commands/theme/status.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/theme/status.ts)_
1448
1880
 
1449
1881
  ## `lps validate`
1450
1882
 
@@ -1464,5 +1896,5 @@ EXAMPLES
1464
1896
  $ lps validate
1465
1897
  ```
1466
1898
 
1467
- _See code: [src/commands/validate.ts](https://github.com/loopress/loopress/blob/v0.23.0/src/commands/validate.ts)_
1899
+ _See code: [src/commands/validate.ts](https://github.com/loopress/loopress/blob/v0.24.0/src/commands/validate.ts)_
1468
1900
  <!-- commandsstop -->