openlatch-provider 0.2.1

Self-service onboarding CLI + runtime daemon for OpenLatch Editors and Providers
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
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
# Command-Line Help for `openlatch-provider`

This document contains the help content for the `openlatch-provider` command-line program.

**Command Overview:**

* [`openlatch-provider`↴](#openlatch-provider)
* [`openlatch-provider login`↴](#openlatch-provider-login)
* [`openlatch-provider logout`↴](#openlatch-provider-logout)
* [`openlatch-provider whoami`↴](#openlatch-provider-whoami)
* [`openlatch-provider init`↴](#openlatch-provider-init)
* [`openlatch-provider new`↴](#openlatch-provider-new)
* [`openlatch-provider new tool`↴](#openlatch-provider-new-tool)
* [`openlatch-provider editor`↴](#openlatch-provider-editor)
* [`openlatch-provider editor update`↴](#openlatch-provider-editor-update)
* [`openlatch-provider register`↴](#openlatch-provider-register)
* [`openlatch-provider publish`↴](#openlatch-provider-publish)
* [`openlatch-provider deprecate`↴](#openlatch-provider-deprecate)
* [`openlatch-provider tools`↴](#openlatch-provider-tools)
* [`openlatch-provider tools list`↴](#openlatch-provider-tools-list)
* [`openlatch-provider tools delete`↴](#openlatch-provider-tools-delete)
* [`openlatch-provider tools deprecate`↴](#openlatch-provider-tools-deprecate)
* [`openlatch-provider tools status`↴](#openlatch-provider-tools-status)
* [`openlatch-provider tools logs`↴](#openlatch-provider-tools-logs)
* [`openlatch-provider tools restart`↴](#openlatch-provider-tools-restart)
* [`openlatch-provider tools probe`↴](#openlatch-provider-tools-probe)
* [`openlatch-provider providers`↴](#openlatch-provider-providers)
* [`openlatch-provider providers list`↴](#openlatch-provider-providers-list)
* [`openlatch-provider providers update`↴](#openlatch-provider-providers-update)
* [`openlatch-provider providers delete`↴](#openlatch-provider-providers-delete)
* [`openlatch-provider bindings`↴](#openlatch-provider-bindings)
* [`openlatch-provider bindings list`↴](#openlatch-provider-bindings-list)
* [`openlatch-provider bindings rotate-secret`↴](#openlatch-provider-bindings-rotate-secret)
* [`openlatch-provider bindings delete-secret`↴](#openlatch-provider-bindings-delete-secret)
* [`openlatch-provider bindings probe`↴](#openlatch-provider-bindings-probe)
* [`openlatch-provider bindings metrics`↴](#openlatch-provider-bindings-metrics)
* [`openlatch-provider bindings delete`↴](#openlatch-provider-bindings-delete)
* [`openlatch-provider listen`↴](#openlatch-provider-listen)
* [`openlatch-provider trigger`↴](#openlatch-provider-trigger)
* [`openlatch-provider tail`↴](#openlatch-provider-tail)
* [`openlatch-provider events`↴](#openlatch-provider-events)
* [`openlatch-provider events tail`↴](#openlatch-provider-events-tail)
* [`openlatch-provider doctor`↴](#openlatch-provider-doctor)
* [`openlatch-provider update`↴](#openlatch-provider-update)
* [`openlatch-provider completions`↴](#openlatch-provider-completions)
* [`openlatch-provider config`↴](#openlatch-provider-config)
* [`openlatch-provider config get`↴](#openlatch-provider-config-get)
* [`openlatch-provider config set`↴](#openlatch-provider-config-set)
* [`openlatch-provider config list`↴](#openlatch-provider-config-list)

## `openlatch-provider`

Publish and run security tools on OpenLatch

**Usage:** `openlatch-provider [OPTIONS] [COMMAND]`

###### **Subcommands:**

* `login` — Sign in to your OpenLatch account
* `logout` — Sign out and clear your saved credentials
* `whoami` — Show who you're signed in as
* `init` — Set up a new tool — sign in and create your manifest
* `new` — Create a starter tool project from a template
* `editor` — Manage your publisher profile
* `register` — Submit your manifest to OpenLatch
* `publish` — Publish a new version of your tool
* `deprecate` — Mark a tool version range as deprecated
* `tools` — List, delete, or deprecate your tools
* `providers` — List, update, or delete your providers
* `bindings` — Manage bindings and webhook secrets
* `listen` — Start the event listener that handles incoming requests
* `trigger` — Send a test event to your running listener
* `tail` — Watch live events as they arrive
* `events` — Inspect events recorded by `listen` (audit JSONL stream)
* `doctor` — Check that everything is set up correctly
* `update` — Auto-update via npm registry + minisign verify + atomic swap
* `completions` — Print shell completions for the given shell
* `config` — View or change your local settings

###### **Options:**

* `--profile <NAME>` — Activate a config profile (default: "default")
* `--output <FORMAT>` — Output format (TTY default = `table`, non-TTY default = `json`)

  Possible values: `table`, `json`, `yaml`, `sarif`

* `-q`, `--quiet` — Suppress info/warn output. Errors still print
* `-v`, `--verbose` — Verbose human output (extra operational detail)
* `--debug` — Internal state, timings, request/response bodies. Implies `--verbose`
* `--no-color` — Strip ANSI colors. Equivalent to setting `NO_COLOR=1`
* `-y`, `--yes` — Assume "yes" to all interactive prompts
* `--dry-run` — Show what would happen without actually doing it
* `--non-interactive` — Force-disable any interactive prompts



## `openlatch-provider login`

Sign in to your OpenLatch account

**Usage:** `openlatch-provider login [OPTIONS]`

###### **Options:**

* `--token-file <PATH>` — Read the token from a file instead of triggering the browser flow



## `openlatch-provider logout`

Sign out and clear your saved credentials

**Usage:** `openlatch-provider logout`



## `openlatch-provider whoami`

Show who you're signed in as

**Usage:** `openlatch-provider whoami`



## `openlatch-provider init`

Set up a new tool — sign in and create your manifest

**Usage:** `openlatch-provider init [OPTIONS]`

###### **Options:**

* `--force` — Overwrite an existing `<slug>.yaml` (backed up to .bak)
* `--editor-slug <EDITOR_SLUG>` — Editor slug — required when `--non-interactive`
* `--display-name <DISPLAY_NAME>` — Editor display name — required when `--non-interactive`
* `--description <DESCRIPTION>` — Editor description
* `--homepage-url <HOMEPAGE_URL>` — Editor homepage URL
* `--docs-url <DOCS_URL>` — Editor docs URL
* `--telemetry` — Force-enable PostHog telemetry (skips the consent prompt)
* `--no-telemetry` — Force-disable PostHog telemetry (skips the consent prompt)



## `openlatch-provider new`

Create a starter tool project from a template

**Usage:** `openlatch-provider new <COMMAND>`

###### **Subcommands:**

* `tool` — Create a starter tool project (Python, Rust, or Node)



## `openlatch-provider new tool`

Create a starter tool project (Python, Rust, or Node)

**Usage:** `openlatch-provider new tool [OPTIONS] --template <TEMPLATE>`

###### **Options:**

* `--template <TEMPLATE>`

  Possible values: `python`, `rust`, `node`

* `--out <OUT>` — Target directory (default: ./<slug>)



## `openlatch-provider editor`

Manage your publisher profile

**Usage:** `openlatch-provider editor <COMMAND>`

###### **Subcommands:**

* `update` — Update your publisher profile



## `openlatch-provider editor update`

Update your publisher profile

**Usage:** `openlatch-provider editor update [OPTIONS]`

###### **Options:**

* `--display-name <DISPLAY_NAME>`
* `--description <DESCRIPTION>`
* `--homepage-url <HOMEPAGE_URL>`
* `--docs-url <DOCS_URL>`



## `openlatch-provider register`

Submit your manifest to OpenLatch

**Usage:** `openlatch-provider register [OPTIONS]`

###### **Options:**

* `--manifest <PATH>` — Path to a manifest file (default: resolved from `[profiles.<profile>] manifest_slug` in `~/.openlatch/provider/config.toml`)
* `--allow-local-endpoints` — Permit binding endpoints that resolve to non-public IPs (loopback / private / cloud-metadata / IPv4-mapped). Intended for local development against a tool server on `localhost`. The platform's authoritative probe still enforces public-IP-only in production — never use this flag for live registrations
* `--skip-preflight` — Skip every pre-flight check that runs before the platform mutations: the client-side endpoint probe AND the whole-manifest `:validate` pass. Exists as an escape hatch when you know a partial write needs to be reconciled (e.g. tool #1 already created on the platform, retrying after a transient failure) or when an endpoint deliberately can't be reached from the developer's host (e.g. RFC 6761 reserved placeholders in fixtures). The platform's authoritative server-side probe still runs at provider-upsert time, so SSRF posture is preserved. Default off



## `openlatch-provider publish`

Publish a new version of your tool

**Usage:** `openlatch-provider publish [OPTIONS] [BUMP]`

###### **Arguments:**

* `<BUMP>` — Bump kind (mutually exclusive with `--version`)

  Possible values: `major`, `minor`, `patch`


###### **Options:**

* `--version <VERSION>` — Set an explicit version (overrides `bump`)
* `--manifest <PATH>` — Path to a manifest file (default: resolved from `[profiles.<profile>] manifest_slug` in `~/.openlatch/provider/config.toml`)
* `--git-tag` — Tag the resulting commit `<editor>/<tool>@vX.Y.Z` and push (no-op when not in a git repo). Off by default for v0.1
* `--skip-preflight` — Skip the pre-flight `:validate` pass on tool slugs. Use only when recovering from a partial publish; default off



## `openlatch-provider deprecate`

Mark a tool version range as deprecated

**Usage:** `openlatch-provider deprecate <SPEC> <MESSAGE>`

###### **Arguments:**

* `<SPEC>` — Tool slug (or `<slug>@<range>` when only a version range is targeted)
* `<MESSAGE>` — Deprecation message shown to consumers



## `openlatch-provider tools`

List, delete, or deprecate your tools

**Usage:** `openlatch-provider tools <COMMAND>`

###### **Subcommands:**

* `list` — Show all your tools
* `delete` — Permanently delete a tool
* `deprecate` — Mark a tool version range as deprecated
* `status` — Show live status of every managed tool process (PID, uptime, restart count, last health probe)
* `logs` — Tail a managed tool's JSONL log file
* `restart` — Force the daemon to restart a managed tool
* `probe` — Run a one-shot /healthz probe through the daemon



## `openlatch-provider tools list`

Show all your tools

**Usage:** `openlatch-provider tools list`



## `openlatch-provider tools delete`

Permanently delete a tool

**Usage:** `openlatch-provider tools delete [OPTIONS] <SLUG>`

###### **Arguments:**

* `<SLUG>`

###### **Options:**

* `--yes` — Skip confirmation prompt



## `openlatch-provider tools deprecate`

Mark a tool version range as deprecated

**Usage:** `openlatch-provider tools deprecate <SPEC> <MESSAGE>`

###### **Arguments:**

* `<SPEC>` — Tool slug (or `<slug>@<range>` when only a version range is targeted)
* `<MESSAGE>` — Deprecation message shown to consumers



## `openlatch-provider tools status`

Show live status of every managed tool process (PID, uptime, restart count, last health probe)

**Usage:** `openlatch-provider tools status [OPTIONS]`

###### **Options:**

* `--admin-port <PORT>` — Admin port the running daemon is listening on

  Default value: `8444`



## `openlatch-provider tools logs`

Tail a managed tool's JSONL log file

**Usage:** `openlatch-provider tools logs [OPTIONS] <SLUG>`

###### **Arguments:**

* `<SLUG>` — Tool slug

###### **Options:**

* `--follow` — Follow new lines as the daemon writes them
* `--tail <TAIL>` — Lines to print before following. Default 200

  Default value: `200`



## `openlatch-provider tools restart`

Force the daemon to restart a managed tool

**Usage:** `openlatch-provider tools restart [OPTIONS] <SLUG>`

###### **Arguments:**

* `<SLUG>` — Tool slug

###### **Options:**

* `--admin-port <PORT>` — Admin port the running daemon is listening on

  Default value: `8444`



## `openlatch-provider tools probe`

Run a one-shot /healthz probe through the daemon

**Usage:** `openlatch-provider tools probe [OPTIONS] <SLUG>`

###### **Arguments:**

* `<SLUG>` — Tool slug

###### **Options:**

* `--admin-port <PORT>` — Admin port the running daemon is listening on

  Default value: `8444`



## `openlatch-provider providers`

List, update, or delete your providers

**Usage:** `openlatch-provider providers <COMMAND>`

###### **Subcommands:**

* `list` — Show all your providers
* `update` — Update a provider's settings
* `delete` — Permanently delete a provider



## `openlatch-provider providers list`

Show all your providers

**Usage:** `openlatch-provider providers list`



## `openlatch-provider providers update`

Update a provider's settings

**Usage:** `openlatch-provider providers update <SLUG>`

###### **Arguments:**

* `<SLUG>`



## `openlatch-provider providers delete`

Permanently delete a provider

**Usage:** `openlatch-provider providers delete [OPTIONS] <SLUG>`

###### **Arguments:**

* `<SLUG>`

###### **Options:**

* `--yes`



## `openlatch-provider bindings`

Manage bindings and webhook secrets

**Usage:** `openlatch-provider bindings <COMMAND>`

###### **Subcommands:**

* `list` — Show all your bindings
* `rotate-secret` — Generate a new webhook signing secret (shown once)
* `delete-secret` — Remove a binding's webhook signing secret
* `probe` — Test that a binding's endpoint is reachable
* `metrics` — Show traffic and latency metrics for a binding
* `delete` — Permanently delete a binding



## `openlatch-provider bindings list`

Show all your bindings

**Usage:** `openlatch-provider bindings list`



## `openlatch-provider bindings rotate-secret`

Generate a new webhook signing secret (shown once)

**Usage:** `openlatch-provider bindings rotate-secret [OPTIONS] <ID>`

###### **Arguments:**

* `<ID>`

###### **Options:**

* `--yes`



## `openlatch-provider bindings delete-secret`

Remove a binding's webhook signing secret

**Usage:** `openlatch-provider bindings delete-secret [OPTIONS] <ID>`

###### **Arguments:**

* `<ID>`

###### **Options:**

* `--yes`



## `openlatch-provider bindings probe`

Test that a binding's endpoint is reachable

**Usage:** `openlatch-provider bindings probe <ID>`

###### **Arguments:**

* `<ID>`



## `openlatch-provider bindings metrics`

Show traffic and latency metrics for a binding

**Usage:** `openlatch-provider bindings metrics <ID>`

###### **Arguments:**

* `<ID>`



## `openlatch-provider bindings delete`

Permanently delete a binding

**Usage:** `openlatch-provider bindings delete [OPTIONS] <ID>`

###### **Arguments:**

* `<ID>`

###### **Options:**

* `--yes`



## `openlatch-provider listen`

Start the event listener that handles incoming requests

**Usage:** `openlatch-provider listen [OPTIONS]`

###### **Options:**

* `--port <PORT>` — HTTPS port to bind. Use `0` for an OS-assigned port (testing)

  Default value: `8443`
* `--bind-addr <ADDR>` — Address to bind. Default 0.0.0.0 (all interfaces)

  Default value: `0.0.0.0`
* `--manifest <PATH>` — Manifest path override; otherwise the active profile's `manifest_slug` is used
* `--cert <PATH>` — PEM bundle for the listener's TLS certificate
* `--key <PATH>` — PEM private key for the listener's TLS certificate
* `--no-tls` — Disable TLS — for tests behind a TLS-terminating reverse proxy only
* `--no-watch` — Disable the cross-platform manifest file-watcher (default-on)
* `--admin-port <PORT>` — Bind a control endpoint on `127.0.0.1:<PORT>` for `POST /v1/admin/reload`. Disabled by default. The token comes from `~/.openlatch/provider/admin.token`
* `--log-retention-days <DAYS>` — Days of audit-log retention. Older files are deleted at startup

  Default value: `14`



## `openlatch-provider trigger`

Send a test event to your running listener

**Usage:** `openlatch-provider trigger [OPTIONS] <EVENT_TYPE>`

###### **Arguments:**

* `<EVENT_TYPE>` — Event type — e.g. `pre_tool_use`, `before_shell_execution`

###### **Options:**

* `--binding <ID>` — Binding id to target. Required when more than one binding is configured
* `--tool <NAME>` — Tool name from the agent's perspective (e.g. `Bash`, `Read`)
* `--input <JSON|STRING>` — Tool-call input — JSON literal or plain string. Strings are wrapped as `{"command": "<value>"}` for shell-style hooks
* `--port <PORT>` — Listener port. Default 8443

  Default value: `8443`
* `--host <ADDR>` — Listener host (default `127.0.0.1`)

  Default value: `127.0.0.1`
* `--no-tls` — Send plain HTTP rather than HTTPS. Matches `listen --no-tls`
* `--from-file <PATH>` — Read the full event JSON from a file instead of building one from `--tool` / `--input`. Lets you replay payloads captured from prod
* `--deadline-ms <DEADLINE_MS>` — Synthetic deadline budget (ms). Default 200

  Default value: `200`
* `--agent <PLATFORM>` — Override the agent platform tag (default `claude-code`)

  Default value: `claude-code`



## `openlatch-provider tail`

Watch live events as they arrive

**Usage:** `openlatch-provider tail [OPTIONS]`

###### **Options:**

* `--binding <ID>` — Filter to a single binding id. Default: stream all owned bindings
* `--since <N>` — Print metrics N seconds back before tailing forward

  Default value: `0`
* `--interval <SECS>` — Polling interval (seconds). Default 2

  Default value: `2`



## `openlatch-provider events`

Inspect events recorded by `listen` (audit JSONL stream)

**Usage:** `openlatch-provider events <COMMAND>`

###### **Subcommands:**

* `tail` — Stream the runtime audit log (`~/.openlatch/provider/logs/runtime-*.jsonl`)



## `openlatch-provider events tail`

Stream the runtime audit log (`~/.openlatch/provider/logs/runtime-*.jsonl`)

**Usage:** `openlatch-provider events tail [OPTIONS]`

###### **Options:**

* `--follow` — Follow new lines as the daemon writes them
* `--tail <TAIL>` — Lines to print before following. Default 200

  Default value: `200`



## `openlatch-provider doctor`

Check that everything is set up correctly

**Usage:** `openlatch-provider doctor`



## `openlatch-provider update`

Auto-update via npm registry + minisign verify + atomic swap

**Usage:** `openlatch-provider update [OPTIONS]`

###### **Options:**

* `--check` — Only check for updates; don't apply
* `--apply` — Apply an available update without prompting
* `--registry <URL>` — Override the npm registry origin (default: `https://registry.npmjs.org`). Used by the E2E suite to point at a fake registry served on localhost. Also picked up from `OPENLATCH_PROVIDER_NPM_REGISTRY`
* `--force-cargo` — Bypass the cargo-install gate. Dangerous — see `.claude/rules/auto-update.md` for the rationale on when this is the right call



## `openlatch-provider completions`

Print shell completions for the given shell

**Usage:** `openlatch-provider completions <SHELL>`

###### **Arguments:**

* `<SHELL>` — Target shell

  Possible values: `bash`, `zsh`, `fish`, `power-shell`, `elvish`




## `openlatch-provider config`

View or change your local settings

**Usage:** `openlatch-provider config <COMMAND>`

###### **Subcommands:**

* `get` — Read a setting value
* `set` — Change a setting value
* `list` — Show all your profiles and their settings



## `openlatch-provider config get`

Read a setting value

**Usage:** `openlatch-provider config get <KEY>`

###### **Arguments:**

* `<KEY>`



## `openlatch-provider config set`

Change a setting value

**Usage:** `openlatch-provider config set <KEY> <VALUE>`

###### **Arguments:**

* `<KEY>`
* `<VALUE>`



## `openlatch-provider config list`

Show all your profiles and their settings

**Usage:** `openlatch-provider config list`



<hr/>

<small><i>
    This document was generated automatically by
    <a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>