homeboy 0.63.0

CLI for multi-component deployment and development workflow automation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
# CLI Commands

## Commands

- `homeboy`
## Command Arguments

### `ApiArgs`

- `project_id` — Project ID
- `command`

### `AuditArgs`

- `component_id` — Component ID or direct filesystem path to audit
- `conventions` — Only show discovered conventions (skip findings)
- `fix` — Generate fix stubs for outlier files (dry run by default)
- `write` — Apply fixes to disk (requires --fix)
- `baseline` — Save current audit state as baseline for future comparisons
- `ignore_baseline` — Skip baseline comparison even if a baseline exists

### `AuthArgs`

- `command`

### `BuildArgs`

- `json` — JSON input spec for bulk operations: {"componentIds": ["id1", "id2"]}
- `target_id` — Target ID: component ID or project ID (when using --all)
- `component_ids` — Additional component IDs (enables project/component order detection)
- `all` — Build all components in the project
- `path` — Override local_path for this build (use a workspace clone or temp checkout)

### `ChangelogArgs`

- `show_self` — Show Homeboy's own changelog (release notes)
- `command`

### `ChangesArgs`

- `target_id` — Target ID: component ID (single mode) or project ID (if followed by component IDs)
- `component_ids` — Component IDs to filter (when target_id is a project)
- `project` — Show changes for all components in a project (alternative to positional project mode)
- `json` — JSON input spec for bulk operations: {"componentIds": ["id1", "id2"]}
- `since` — Compare against specific tag instead of latest
- `git_diffs` — Include commit range diff in output (uncommitted diff is always included)

### `CleanupArgs`

- `component_id` — Component to check (omit for all components)
- `severity` — Show only issues of a specific severity: error, warning, info
- `category` — Show only issues in a specific category: local_path, remote_path, version_targets, extensions

### `CliArgs`

- `tool`
- `identifier`
- `args`

### `ComponentArgs`

- `command`

### `ConfigArgs`

- `command`

### `DbArgs`

- `command`

### `DeployArgs`

- `target_id` — Target ID: project ID or component ID (order is auto-detected)
- `component_ids` — Additional component IDs (enables project/component order detection)
- `project` — Explicit project ID (takes precedence over positional detection)
- `component` — Explicit component IDs (takes precedence over positional)
- `json` — JSON input spec for bulk operations
- `all` — Deploy all configured components
- `outdated` — Deploy only outdated components
- `dry_run` — Preview what would be deployed without executing
- `check` — Check component status without building or deploying
- `force` — Deploy even with uncommitted changes
- `projects` — Deploy to multiple projects (comma-separated or repeated)
- `fleet` — Deploy to all projects in a fleet
- `shared` — Deploy to all projects using the specified component(s)
- `keep_deps` — Keep build dependencies (skip post-deploy cleanup)

### `DocsArgs`

- `command`
- `topic` — Topic path (e.g., 'commands/deploy') or 'list' to show available topics

### `ExtensionArgs`

- `command`

### `FileArgs`

- `command`

### `FleetArgs`

- `command`

### `GitArgs`

- `command`

### `InitArgs`

- `all` — Show all components, extensions, projects, and servers
- `json` — Accept --json for compatibility (output is JSON by default)

### `LintArgs`

- `component` — Component name to lint
- `fix` — Auto-fix formatting issues before validating
- `summary` — Show compact summary instead of full output
- `file` — Lint only a single file (path relative to component root)
- `glob` — Lint only files matching glob pattern (e.g., "inc/**/*.php")
- `changed_only` — Lint only files modified in the working tree (staged, unstaged, untracked)
- `errors_only` — Show only errors, suppress warnings
- `sniffs` — Only check specific sniffs (comma-separated codes)
- `exclude_sniffs` — Exclude sniffs from checking (comma-separated codes)
- `category` — Filter by category: security, i18n, yoda, whitespace
- `setting` — Override settings as key=value pairs
- `path` — Override local_path for this lint run (use a workspace clone or temp checkout)
- `json` — Accept --json for compatibility (output is JSON by default)

### `LogsArgs`

- `command`

### `DynamicSetArgs`

- `id` — Entity ID (optional if provided in JSON body)
- `spec` — JSON spec (positional, supports @file and - for stdin)
- `json` — Explicit JSON spec (takes precedence over positional)
- `base64` — Base64-encoded JSON spec (bypasses shell escaping issues)
- `replace` — Replace these fields instead of merging arrays
- `extra` — Dynamic key=value flags (e.g., --remote_path /var/www). When combined with --json, add '--' separator first: `homeboy component set ID --json '{}' -- --key value`

### `ProjectArgs`

- `command`

### `RefactorArgs`

- `command`

### `ReleaseArgs`

- `component_id` — Component ID
- `bump_type`
- `dry_run` — Preview what will happen without making changes
- `json` — Accept --json for compatibility (output is JSON by default)
- `deploy` — Deploy to all projects using this component after release
- `recover` — Recover from an interrupted release (tag + push current version)

### `ServerArgs`

- `command`

### `KeyArgs`

- `command`

### `SshArgs`

- `target` — Target ID (project or server; project wins when ambiguous)
- `command` — Command to execute (omit for interactive shell).  Examples: homeboy ssh my-project -- ls -la homeboy ssh my-project -- wp plugin list  If you need shell operators (&&, |, redirects), pass a single quoted string: homeboy ssh my-project "cd /var/www && ls | head"
- `as_server` — Force interpretation as server ID
- `subcommand`

### `StatusArgs`

- `uncommitted` — Show only components with uncommitted changes
- `needs_bump` — Show only components that need a version bump
- `ready` — Show only components ready to deploy
- `docs_only` — Show only components with docs-only changes
- `all` — Show all components regardless of current directory context

### `TestArgs`

- `component` — Component name to test
- `skip_lint` — Skip linting before running tests
- `fix` — Auto-fix linting issues before running tests
- `setting` — Override settings as key=value pairs
- `path` — Override local_path for this test run (use a workspace clone or temp checkout)
- `args` — Additional arguments to pass to the test runner (after --)
- `json` — Accept --json for compatibility (output is JSON by default)

### `TransferArgs`

- `source` — Source: local path or server_id:/path
- `destination` — Destination: local path or server_id:/path
- `recursive` — Transfer directories recursively
- `compress` — Compress data during transfer
- `dry_run` — Show what would be transferred without doing it
- `exclude` — Exclude patterns (can be specified multiple times)

### `UpgradeArgs`

- `check` — Check for updates without installing
- `force` — Force upgrade even if already at latest version
- `no_restart` — Skip automatic restart after upgrade
- `method` — Override install method detection (homebrew|cargo|source|binary)
- `json` — Accept --json for compatibility (output is JSON by default)

### `VersionArgs`

- `command`

### `SshResolveArgs`

- `id` — Bare ID (tries project first, then server)
- `project` — Force project resolution
- `server` — Force server resolution

## Subcommands

### `ApiCommand`

- `Get` — Make a GET request
- `endpoint` — API endpoint (e.g., /wp/v2/posts)
- `Post` — Make a POST request
- `endpoint` — API endpoint
- `body` — JSON body
- `Put` — Make a PUT request
- `endpoint` — API endpoint
- `body` — JSON body
- `Patch` — Make a PATCH request
- `endpoint` — API endpoint
- `body` — JSON body
- `Delete` — Make a DELETE request
- `endpoint` — API endpoint

### `AuthCommand`

- `Login` — Authenticate with a project's API
- `project` — Project ID
- `identifier` — Username or email
- `password` — Password (or read from stdin)
- `Logout` — Clear stored authentication for a project
- `project` — Project ID
- `Status` — Show authentication status for a project
- `project` — Project ID

### `ChangelogCommand`

- `Show` — Show a changelog (Homeboy's own if no component specified)
- `component_id` — Component ID to show changelog for
- `EXAMPLES` — Add changelog items to the configured "next" section  Examples: homeboy changelog add my-plugin "Fixed login bug" homeboy changelog add my-plugin "Removed legacy API" --type Removed homeboy changelog add my-plugin -m "Added search" -m "Added filters"
- `Add`
- `json` — JSON input spec for batch operations.  Use "-" to read from stdin, "@file.json" to read from a file, or an inline JSON string.
- `component_id` — Component ID (non-JSON mode)
- `positional_message` — Changelog item content (positional, for backward compatibility)
- `messages` — Changelog message (repeatable: -m "first" -m "second")
- `entry_type` — Changelog subsection type (Added, Changed, Deprecated, Removed, Fixed, Security, Refactored)
- `Init` — Initialize a new changelog file
- `path` — Path for the changelog file (relative to component)
- `configure` — Also update component config to add changelogTargets
- `component_id` — Component ID

### `ComponentCommand`

- `Create` — Create a new component configuration
- `json` — JSON input spec for create/update (supports single or bulk)
- `skip_existing` — Skip items that already exist (JSON mode only)
- `local_path` — Absolute path to local source directory (ID derived from directory name)
- `remote_path` — Remote path relative to project basePath
- `build_artifact` — Build artifact path relative to localPath
- `version_targets` — Version targets in the form "file" or "file::pattern" (repeatable). For complex patterns, use --version-targets @file.json to avoid shell escaping
- `version_targets_json`
- `build_command` — Build command to run in localPath
- `extract_command` — Extract command to run after upload (e.g., "unzip -o {artifact} && rm {artifact}")
- `changelog_target` — Path to changelog file relative to localPath
- `extensions` — Extension(s) this component uses (e.g., "wordpress"). Repeatable.
- `Show` — Display component configuration
- `id` — Component ID
- `Set` — Update component configuration fields  Supports dedicated flags for common fields (e.g., --local-path, --build-command) as well as --json for arbitrary updates. When combining --json with dynamic trailing flags, use '--' separator.
- `args`
- `local_path` — Absolute path to local source directory
- `remote_path` — Remote path relative to project basePath
- `build_artifact` — Build artifact path relative to localPath
- `build_command` — Build command to run in localPath
- `extract_command` — Extract command to run after upload (e.g., "unzip -o {artifact} && rm {artifact}")
- `changelog_target` — Path to changelog file relative to localPath
- `version_targets` — Version targets in the form "file" or "file::pattern" (repeatable). Same format as `component create --version-target`.
- `extensions` — Extension(s) this component uses (e.g., "wordpress"). Repeatable.
- `Delete` — Delete a component configuration
- `id` — Component ID
- `Rename` — Rename a component (changes ID directly)
- `id` — Current component ID
- `new_id` — New component ID (should match repository directory name)
- `List` — List all available components
- `Projects` — List projects using this component
- `id` — Component ID
- `Shared` — Show which components are shared across projects
- `id` — Specific component ID to check (optional, shows all if omitted)
- `AddVersionTarget` — Add a version target to a component
- `id` — Component ID
- `file` — Target file path relative to component root
- `pattern` — Regex pattern with capture group for version

### `ConfigCommand`

- `Show` — Display configuration (merged defaults + file)
- `builtin` — Show only built-in defaults (ignore homeboy.json)
- `Set` — Set a configuration value at a JSON pointer path
- `pointer` — JSON pointer path (e.g., /defaults/deploy/scp_flags)
- `value` — Value to set (JSON)
- `Remove` — Remove a configuration value at a JSON pointer path
- `pointer` — JSON pointer path (e.g., /defaults/deploy/scp_flags)
- `Reset` — Reset configuration to built-in defaults (deletes homeboy.json)
- `Path` — Show the path to homeboy.json

### `DbCommand`

- `Tables` — List database tables
- `project_id` — Project ID
- `args` — Optional subtarget
- `Describe` — Show table structure
- `project_id` — Project ID
- `args` — Optional subtarget and table name
- `Query` — Execute SELECT query
- `project_id` — Project ID
- `args` — Optional subtarget and SQL query
- `Search` — Search table by column value
- `project_id` — Project ID
- `table` — Table name
- `column` — Column to search
- `pattern` — Search pattern
- `exact` — Use exact match instead of LIKE
- `limit` — Maximum rows to return
- `subtarget` — Optional subtarget
- `DeleteRow` — Delete a row from a table
- `project_id` — Project ID
- `args` — Table name and row ID
- `DropTable` — Drop a database table
- `project_id` — Project ID
- `args` — Table name
- `Tunnel` — Open SSH tunnel to database
- `project_id` — Project ID
- `local_port` — Local port to bind

### `DocsCommand`

- `Scaffold` — Analyze codebase and report documentation status (read-only)
- `component_id` — Component to analyze
- `docs_dir` — Docs directory to check for existing documentation (default: docs)
- `source_dirs` — Source directories to analyze (comma-separated, or repeat flag). Overrides auto-detection.
- `source_extensions` — File extensions to detect as source code (default: php,rs,js,ts,py,go,java,rb,swift,kt)
- `detect_by_extension` — Include all directories containing source files (extension-based detection)
- `Audit` — Audit documentation for broken links and stale references
- `component_id` — Component ID or direct filesystem path to audit
- `docs_dir` — Docs directory relative to component/project root (overrides config, default: docs)
- `features` — Include full list of all detected features in output
- `Generate` — Generate documentation files from JSON spec
- `spec` — JSON spec (positional, supports @file and - for stdin)
- `json` — Explicit JSON spec (takes precedence over positional)
- `from_audit` — Generate docs from audit output (pipe from `docs audit --features` or use @file)
- `dry_run` — Show what would be generated without writing files

### `ExtensionCommand`

- `List` — Show available extensions with compatibility status
- `project` — Project ID to filter compatible extensions
- `Show` — Show detailed information about a extension
- `extension_id` — Extension ID
- `Run` — Execute a extension
- `extension_id` — Extension ID
- `project` — Project ID (defaults to active project)
- `component` — Component ID (required when ambiguous)
- `input` — Input values as key=value pairs
- `step` — Run only specific steps (comma-separated, e.g. --step phpunit,phpcs)
- `skip` — Skip specific steps (comma-separated, e.g. --skip phpstan,lint)
- `args` — Arguments to pass to the extension (for CLI extensions)
- `stream` — Stream output directly to terminal (default: auto-detect based on TTY)
- `no_stream` — Disable streaming and capture output (default: auto-detect based on TTY)
- `Setup` — Run the extension's setup command (if defined)
- `extension_id` — Extension ID
- `Install` — Install a extension from a git URL or local path
- `source` — Git URL or local path to extension directory
- `id` — Override extension id
- `Update` — Update an installed extension (git pull)
- `extension_id` — Extension ID (omit with --all to update everything)
- `all` — Update all installed extensions
- `force` — Force update even with uncommitted changes
- `Uninstall` — Uninstall a extension
- `extension_id` — Extension ID
- `Action` — Execute a extension action (API call or builtin)
- `extension_id` — Extension ID
- `action_id` — Action ID
- `project` — Project ID (required for API actions)
- `data` — JSON array of selected data rows
- `Exec` — Run a tool from a extension's vendor directory
- `extension_id` — Extension ID
- `component` — Component ID (sets working directory to component path)
- `args` — Command and arguments to run
- `Set` — Update extension manifest fields
- `extension_id` — Extension ID (optional if provided in JSON body)
- `json` — JSON object to merge into manifest (supports @file and - for stdin)
- `replace` — Replace these fields instead of merging arrays

### `FileCommand`

- `List` — List directory contents
- `project_id` — Project ID
- `path` — Remote directory path
- `Read` — Read file content
- `project_id` — Project ID
- `path` — Remote file path
- `raw` — Output raw content only (no JSON wrapper)
- `Write` — Write content to file (from stdin)
- `project_id` — Project ID
- `path` — Remote file path
- `Delete` — Delete a file or directory
- `project_id` — Project ID
- `path` — Remote path to delete
- `recursive` — Delete directories recursively
- `Rename` — Rename or move a file
- `project_id` — Project ID
- `old_path` — Current path
- `new_path` — New path
- `Find` — Find files by name pattern
- `project_id` — Project ID
- `path` — Directory path to search
- `name` — Filename pattern (glob, e.g., "*.php")
- `file_type` — File type: f (file), d (directory), l (symlink)
- `max_depth` — Maximum directory depth
- `Grep` — Search file contents
- `project_id` — Project ID
- `path` — Directory path to search
- `pattern` — Search pattern
- `name` — Filter files by name pattern (e.g., "*.php")
- `max_depth` — Maximum directory depth
- `ignore_case` — Case insensitive search
- `Download` — Download a file or directory from remote server
- `project_id` — Project ID
- `path` — Remote file path
- `local_path` — Local destination path (defaults to current directory)
- `recursive` — Download directories recursively
- `Edit` — Edit file with line-based or pattern-based operations

### `FleetCommand`

- `Create` — Create a new fleet
- `id` — Fleet ID
- `projects` — Project IDs to include (comma-separated or repeated)
- `description` — Description of the fleet
- `Show` — Display fleet configuration
- `id` — Fleet ID
- `Set` — Update fleet configuration
- `args`
- `Delete` — Delete a fleet
- `id` — Fleet ID
- `List` — List all fleets
- `Add` — Add a project to a fleet
- `id` — Fleet ID
- `project` — Project ID to add
- `Remove` — Remove a project from a fleet
- `id` — Fleet ID
- `project` — Project ID to remove
- `Projects` — Show projects in a fleet
- `id` — Fleet ID
- `Components` — Show component usage across a fleet
- `id` — Fleet ID
- `Status` — Show component versions across a fleet (local only)
- `id` — Fleet ID
- `Check` — Check component drift across a fleet (compares local vs remote)
- `id` — Fleet ID
- `outdated` — Only show components that need updates
- `Sync` — [DEPRECATED] Use 'homeboy deploy' instead. See issue #101.
- `id` — Fleet ID
- `category` — Sync only specific categories (repeatable)
- `dry_run` — Show what would be synced without doing it
- `leader` — Override leader server (defaults to fleet-sync.json config)

### `GitCommand`

### `LogsCommand`

- `List` — List pinned log files
- `project_id` — Project ID
- `Show` — Show log file content (shows all pinned logs if path omitted)
- `project_id` — Project ID
- `path` — Log file path (optional - shows all pinned logs if omitted)
- `lines` — Number of lines to show
- `follow` — Follow log output (like tail -f)
- `local` — Execute locally instead of via SSH (for when running on the target server)
- `Clear` — Clear log file contents
- `project_id` — Project ID
- `path` — Log file path
- `local` — Execute locally instead of via SSH
- `Search` — Search log file for pattern
- `project_id` — Project ID
- `path` — Log file path
- `pattern` — Search pattern
- `ignore_case` — Case insensitive search
- `lines` — Limit to last N lines before searching
- `context` — Lines of context around matches
- `local` — Execute locally instead of via SSH

### `ProjectCommand`

- `List` — List all configured projects
- `Show` — Show project configuration
- `project_id` — Project ID
- `Create` — Create a new project
- `json` — JSON input spec for create/update (supports single or bulk)
- `skip_existing` — Skip items that already exist (JSON mode only)
- `id` — Project ID (CLI mode)
- `domain` — Public site domain (CLI mode)
- `server_id` — Optional server ID
- `base_path` — Optional remote base path
- `table_prefix` — Optional table prefix
- `Set` — Update project configuration fields
- `args`
- `Remove` — Remove items from project configuration arrays
- `project_id` — Project ID (optional if provided in JSON body)
- `spec` — JSON spec (positional, supports @file and - for stdin)
- `json` — Explicit JSON spec (takes precedence over positional)
- `Rename` — Rename a project (changes ID)
- `project_id` — Current project ID
- `new_id` — New project ID
- `Components` — Manage project components
- `command`
- `Pin` — Manage pinned files and logs
- `command`
- `Delete` — Delete a project configuration
- `project_id` — Project ID

### `ProjectComponentsCommand`

- `List` — List associated components
- `project_id` — Project ID
- `Set` — Replace project components with the provided list
- `project_id` — Project ID
- `component_ids` — Component IDs
- `Add` — Add one or more components
- `project_id` — Project ID
- `component_ids` — Component IDs
- `Remove` — Remove one or more components
- `project_id` — Project ID
- `component_ids` — Component IDs
- `Clear` — Remove all components
- `project_id` — Project ID

### `ProjectPinCommand`

- `List` — List pinned items
- `project_id` — Project ID
- `Add` — Pin a file or log
- `project_id` — Project ID
- `path` — Path to pin (relative to basePath or absolute)
- `label` — Optional display label
- `tail` — Number of lines to tail (logs only)
- `Remove` — Unpin a file or log
- `project_id` — Project ID
- `path` — Path to unpin

### `RefactorCommand`

- `Rename` — Rename a term across the codebase with case-variant awareness
- `from` — Term to rename from
- `to` — Term to rename to
- `component` — Component ID (uses its local_path as the root)
- `path` — Directory path to refactor (alternative to --component)
- `scope` — Scope: code, config, all (default: all)
- `literal` — Exact string matching (no boundary detection, no case variants)
- `write` — Apply changes to disk (default is dry-run)

### `ServerCommand`

- `Create` — Register a new SSH server
- `json` — JSON input spec for create/update (supports single or bulk)
- `skip_existing` — Skip items that already exist (JSON mode only)
- `id` — Server ID (CLI mode)
- `host` — SSH host
- `user` — SSH username
- `port` — SSH port (default: 22)
- `Show` — Display server configuration
- `server_id` — Server ID
- `Set` — Modify server settings
- `args`
- `Delete` — Remove a server configuration
- `server_id` — Server ID
- `List` — List all configured servers
- `Key` — Manage SSH keys

### `KeyCommand`

- `Generate` — Generate a new SSH key pair and set it for this server
- `server_id` — Server ID
- `Show` — Display the public SSH key
- `server_id` — Server ID
- `Import` — Import an existing SSH private key and set it for this server
- `server_id` — Server ID
- `private_key_path` — Path to private key file
- `Use` — Use an existing SSH private key file path for this server
- `server_id` — Server ID
- `private_key_path` — Path to private key file
- `Unset` — Unset the server SSH identity file (use normal SSH resolution)
- `server_id` — Server ID

### `SshSubcommand`

- `List` — List configured SSH server targets

### `VersionCommand`

- `Show` — Show current version (default: homeboy binary)
- `component_id` — Component ID (optional - shows homeboy binary version when omitted)
- `path` — Override local_path for version file lookup
- `Set` — [DEPRECATED] Use 'homeboy version bump' or 'homeboy release' instead. See issue #259.
- `component_id` — Component ID
- `new_version` — New version (e.g., 1.2.3)
- `path` — Override local_path for version file lookup
- `Bump` — Bump version with semantic versioning (alias for `release`)
- `component_id` — Component ID
- `bump_type` — Version bump type (patch, minor, major)
- `dry_run` — Preview what will happen without making changes
- `path` — Override local_path for version operations

### `Commands`

- `Project` — Manage project configuration
- `Ssh` — SSH into a project server or configured server
- `Server` — Manage SSH server configurations
- `Test` — Run tests for a component
- `Lint` — Lint a component
- `Cleanup` — Identify config drift, stale state, and hygiene issues
- `Db` — Database operations
- `File` — Remote file operations
- `Fleet` — Manage fleets (groups of projects)
- `Logs` — Remote log viewing
- `Transfer` — Transfer files between servers
- `Deploy` — Deploy components to remote server
- `Component` — Manage standalone component configurations
- `Config` — Manage global Homeboy configuration
- `Extension` — Execute CLI-compatible extensions
- `Init` — Get repo context (read-only, creates no state)
- `Status` — Actionable component status overview
- `Docs` — Display CLI documentation
- `Changelog` — Changelog operations
- `Git` — Git operations for components
- `Version` — Version management for components
- `Build` — Build a component
- `Changes` — Show changes since last version tag
- `Release` — Plan release workflows
- `Audit` — Audit code conventions and detect architectural drift
- `Refactor` — Structural refactoring (rename terms across codebase)
- `Auth` — Authenticate with a project's API
- `Api` — Make API requests to a project
- `Upgrade` — Upgrade Homeboy to the latest version
- `Update` — Alias for upgrade
- `List` — List available commands (alias for --help)