@camunda8/cli 2.7.0 → 2.8.0-alpha.10

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 (92) hide show
  1. package/PLUGIN-HELP.md +145 -8
  2. package/README.md +1171 -73
  3. package/dist/command-dispatch.d.ts.map +1 -1
  4. package/dist/command-dispatch.js +3 -2
  5. package/dist/command-dispatch.js.map +1 -1
  6. package/dist/command-framework.d.ts.map +1 -1
  7. package/dist/command-framework.js +22 -1
  8. package/dist/command-framework.js.map +1 -1
  9. package/dist/command-registry.d.ts +49 -346
  10. package/dist/command-registry.d.ts.map +1 -1
  11. package/dist/command-registry.js +46 -54
  12. package/dist/command-registry.js.map +1 -1
  13. package/dist/commands/completion.d.ts +16 -33
  14. package/dist/commands/completion.d.ts.map +1 -1
  15. package/dist/commands/completion.js +31 -689
  16. package/dist/commands/completion.js.map +1 -1
  17. package/dist/commands/mcp-proxy.d.ts +0 -17
  18. package/dist/commands/mcp-proxy.d.ts.map +1 -1
  19. package/dist/commands/mcp-proxy.js +3 -104
  20. package/dist/commands/mcp-proxy.js.map +1 -1
  21. package/dist/commands/open.d.ts +3 -44
  22. package/dist/commands/open.d.ts.map +1 -1
  23. package/dist/commands/open.js +5 -81
  24. package/dist/commands/open.js.map +1 -1
  25. package/dist/commands/plugins.d.ts +2 -8
  26. package/dist/commands/plugins.d.ts.map +1 -1
  27. package/dist/commands/plugins.js +2 -28
  28. package/dist/commands/plugins.js.map +1 -1
  29. package/dist/commands/run.d.ts +8 -8
  30. package/dist/commands/run.d.ts.map +1 -1
  31. package/dist/commands/run.js +60 -60
  32. package/dist/commands/run.js.map +1 -1
  33. package/dist/commands/search.d.ts +2 -39
  34. package/dist/commands/search.d.ts.map +1 -1
  35. package/dist/commands/search.js +2 -83
  36. package/dist/commands/search.js.map +1 -1
  37. package/dist/commands/session.d.ts +1 -0
  38. package/dist/commands/session.d.ts.map +1 -1
  39. package/dist/commands/session.js +5 -0
  40. package/dist/commands/session.js.map +1 -1
  41. package/dist/commands/watch.d.ts +2 -1
  42. package/dist/commands/watch.d.ts.map +1 -1
  43. package/dist/commands/watch.js +17 -8
  44. package/dist/commands/watch.js.map +1 -1
  45. package/dist/completion.d.ts +36 -0
  46. package/dist/completion.d.ts.map +1 -0
  47. package/dist/completion.js +816 -0
  48. package/dist/completion.js.map +1 -0
  49. package/dist/config.d.ts.map +1 -1
  50. package/dist/config.js +19 -1
  51. package/dist/config.js.map +1 -1
  52. package/dist/{commands/deployments.d.ts → deployments.d.ts} +1 -1
  53. package/dist/deployments.d.ts.map +1 -0
  54. package/dist/{commands/deployments.js → deployments.js} +8 -8
  55. package/dist/deployments.js.map +1 -0
  56. package/dist/help.d.ts.map +1 -0
  57. package/dist/{commands/help.js → help.js} +107 -43
  58. package/dist/help.js.map +1 -0
  59. package/dist/index.d.ts +23 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +285 -9
  62. package/dist/index.js.map +1 -1
  63. package/dist/mcp-proxy-helpers.d.ts +23 -0
  64. package/dist/mcp-proxy-helpers.d.ts.map +1 -0
  65. package/dist/mcp-proxy-helpers.js +109 -0
  66. package/dist/mcp-proxy-helpers.js.map +1 -0
  67. package/dist/open-helpers.d.ts +52 -0
  68. package/dist/open-helpers.d.ts.map +1 -0
  69. package/dist/open-helpers.js +88 -0
  70. package/dist/open-helpers.js.map +1 -0
  71. package/dist/plugin-loader.d.ts +61 -2
  72. package/dist/plugin-loader.d.ts.map +1 -1
  73. package/dist/plugin-loader.js +229 -22
  74. package/dist/plugin-loader.js.map +1 -1
  75. package/dist/plugin-version.d.ts +15 -0
  76. package/dist/plugin-version.d.ts.map +1 -0
  77. package/dist/plugin-version.js +37 -0
  78. package/dist/plugin-version.js.map +1 -0
  79. package/dist/search-helpers.d.ts +46 -0
  80. package/dist/search-helpers.d.ts.map +1 -0
  81. package/dist/search-helpers.js +90 -0
  82. package/dist/search-helpers.js.map +1 -0
  83. package/dist/watch-constants.d.ts +7 -0
  84. package/dist/watch-constants.d.ts.map +1 -0
  85. package/dist/watch-constants.js +7 -0
  86. package/dist/watch-constants.js.map +1 -0
  87. package/package.json +11 -7
  88. package/dist/commands/deployments.d.ts.map +0 -1
  89. package/dist/commands/deployments.js.map +0 -1
  90. package/dist/commands/help.d.ts.map +0 -1
  91. package/dist/commands/help.js.map +0 -1
  92. /package/dist/{commands/help.d.ts → help.d.ts} +0 -0
package/README.md CHANGED
@@ -73,71 +73,6 @@ c8ctl help plugin # Shows plugin management help
73
73
  c8ctl --version
74
74
  ```
75
75
 
76
- ### Basic Commands
77
-
78
- ```bash
79
- # List and get resources (use aliases pi, pd, ut, inc for convenience)
80
- c8ctl list pi # List process instances
81
- c8ctl list pd # List process definitions
82
- c8ctl get pi 123456 # Get process instance by key
83
- c8ctl get pi 123456 --variables # Get process instance with variables
84
- c8ctl get pd 123456 --xml # Get process definition as XML
85
-
86
- # Create process instance
87
- c8ctl create pi --id=myProcess
88
- c8ctl create process-instance --id=myProcess
89
-
90
- # Create process instance and wait for completion
91
- c8ctl create pi --id=myProcess --awaitCompletion
92
-
93
- # Create process instance with custom timeout (30 seconds)
94
- c8ctl create pi --id=myProcess --awaitCompletion --requestTimeout=30000
95
-
96
- # Await process instance completion (alias for create with --awaitCompletion)
97
- c8ctl await pi --id=myProcess
98
- c8ctl await process-instance --id=myProcess
99
-
100
- # Await with custom timeout
101
- c8ctl await pi --id=myProcess --requestTimeout=60000
102
-
103
- # Cancel process instance
104
- c8ctl cancel pi 123456
105
-
106
- # Get forms
107
- c8ctl get form 123456 # Get form (searches both user task and process definition)
108
- c8ctl get form 123456 --ut # Get form for user task only
109
- c8ctl get form 123456 --pd # Get start form for process definition only
110
-
111
- # Search resources with filters
112
- c8ctl search pi --state=ACTIVE # Search active process instances
113
- c8ctl search pi --id=myProcess --version=2 # Search process instances by ID and version
114
- c8ctl search pd --id=myProcess # Search process definitions by ID
115
- c8ctl search pd --version=2 # Search process definitions by version
116
- c8ctl search pd --name='*order*' # Wildcard search (* = any chars, ? = single char)
117
- c8ctl search pd --id='process-v?' # Single-char wildcard (matches process-v1, process-v2, …)
118
- c8ctl search pd --iname='*ORDER*' # Case-insensitive search (--i prefix)
119
- c8ctl search ut --iassignee=John # Case-insensitive assignee search
120
- c8ctl search ut --assignee=john # Search user tasks by assignee
121
- c8ctl search inc --state=ACTIVE # Search active incidents
122
- c8ctl search jobs --type='*service*' # Search jobs with type containing "service"
123
- c8ctl search variables --name=myVar # Search variables by name
124
- c8ctl search variables --fullValue # Search with full (non-truncated) values
125
-
126
- # Deploy and run
127
- c8ctl deploy ./my-process.bpmn # Deploy a single file
128
- c8ctl deploy # Deploy current directory
129
- c8ctl run ./my-process.bpmn # Deploy and start process
130
- c8ctl watch # Watch for changes and auto-deploy
131
- c8ctl watch --force # Keep watching after all deployment errors
132
-
133
- # Open Camunda web applications
134
- c8ctl open operate # Open Camunda Operate in browser
135
- c8ctl open tasklist # Open Camunda Tasklist in browser
136
- c8ctl open modeler # Open Camunda Web Modeler in browser
137
- c8ctl open optimize # Open Camunda Optimize in browser
138
- c8ctl open operate --profile=prod # Open Operate with a specific profile
139
- ```
140
-
141
76
  ### Default Extensions
142
77
 
143
78
  When scanning directories, `deploy`, `run`, and `watch` only include files with these extensions:
@@ -355,6 +290,27 @@ c8ctl output json
355
290
  c8ctl output text
356
291
  ```
357
292
 
293
+ #### Per-invocation output override
294
+
295
+ The persisted output mode (set by `c8ctl output json|text`) can be overridden for a single invocation without mutating `session.json`. This is useful for scripts, agent integrations, and one-off JSON capture without flipping global state.
296
+
297
+ Precedence (highest first):
298
+
299
+ 1. `--json` global flag — force JSON for this invocation only.
300
+ 2. `C8CTL_OUTPUT_MODE` env var — accepts `json` or `text`. Other values (including unset or typos) fall through to the persisted mode without erroring.
301
+ 3. Persisted `session.json` `outputMode`.
302
+
303
+ ```bash
304
+ # Force JSON for one command — session.json is not touched
305
+ c8ctl --json list profile
306
+
307
+ # Same effect via env var (handy for scoped shells / CI steps)
308
+ C8CTL_OUTPUT_MODE=json c8ctl list profile
309
+
310
+ # --json wins over the env var
311
+ C8CTL_OUTPUT_MODE=text c8ctl --json list profile # → JSON
312
+ ```
313
+
358
314
  ### Debug Mode
359
315
 
360
316
  Enable debug logging to see detailed information about plugin loading and other internal operations:
@@ -505,14 +461,6 @@ export const commands = {
505
461
 
506
462
  When plugins are loaded, their commands automatically appear in `c8ctl help` output. See [PLUGIN-HELP.md](PLUGIN-HELP.md) for detailed documentation on plugin help integration.
507
463
 
508
- ### Resource Aliases
509
-
510
- - `pi` = process-instance(s)
511
- - `pd` = process-definition(s)
512
- - `ut` = user-task(s)
513
- - `inc` = incident(s)
514
- - `msg` = message
515
-
516
464
  ---
517
465
 
518
466
  ## Agent Usage (AI / Programmatic Consumption)
@@ -778,6 +726,9 @@ c8ctl <command>
778
726
  - `CAMUNDA_TOKEN_AUDIENCE`: OAuth token audience
779
727
  - `CAMUNDA_OAUTH_URL`: OAuth token endpoint
780
728
  - `CAMUNDA_DEFAULT_TENANT_ID`: Default tenant ID
729
+ - `C8CTL_OUTPUT_MODE`: Per-invocation output mode override (`json` or `text`); does not persist. Lower precedence than `--json`. See [Per-invocation output override](#per-invocation-output-override).
730
+ - `C8CTL_DATA_DIR`: Override the OS-default data directory for plugins and session state.
731
+ - `C8CTL_DEBUG` / `DEBUG`: Enable debug logging to stderr.
781
732
 
782
733
  ## Configuration Files
783
734
 
@@ -810,6 +761,1153 @@ Modeler profiles are:
810
761
  - Prefixed with `modeler:` when used in c8ctl
811
762
  - Support both cloud and self-managed clusters
812
763
 
764
+ <!-- command-reference:start -->
765
+
766
+ ## Command Reference
767
+
768
+ <!-- Auto-generated from COMMAND_REGISTRY. Do not edit manually.
769
+ Run: node --experimental-strip-types scripts/sync-readme-commands.ts -->
770
+
771
+ ### Global Flags
772
+
773
+ These flags are accepted by every command.
774
+
775
+ | Flag | Type | Required | Description |
776
+ |------|------|----------|-------------|
777
+ | `--help` / `-h` | boolean | | Show help |
778
+ | `--version` / `-v` | string | | Show CLI version, or filter by process definition version on supported commands |
779
+ | `--profile` | string | | Use a specific profile |
780
+ | `--dry-run` | boolean | | Preview the API request without executing |
781
+ | `--verbose` | boolean | | Show verbose output |
782
+ | `--fields` | string | | Comma-separated list of fields to display |
783
+ | `--json` | boolean | | Force JSON output for this invocation (does not persist; overrides session state and C8CTL_OUTPUT_MODE) |
784
+
785
+ ### Resource Aliases
786
+
787
+ | Alias | Resource |
788
+ |-------|----------|
789
+ | `auth` | `authorization` |
790
+ | `inc` | `incident` |
791
+ | `mr` | `mapping-rule` |
792
+ | `msg` | `message` |
793
+ | `pd` | `process-definition` |
794
+ | `pi` | `process-instance` |
795
+ | `ut` | `user-task` |
796
+ | `vars` | `variable` |
797
+ | `var` | `variable` |
798
+
799
+ ### Search Flags
800
+
801
+ These flags are available on `list` and `search` commands.
802
+
803
+ | Flag | Type | Required | Description |
804
+ |------|------|----------|-------------|
805
+ | `--sortBy` | string | | Sort results by field |
806
+ | `--asc` | boolean | | Sort ascending |
807
+ | `--desc` | boolean | | Sort descending |
808
+ | `--limit` | string | | Maximum number of results |
809
+ | `--between` | string | | Date range filter (e.g. 7d, 30d, 2024-01-01..2024-12-31) |
810
+ | `--dateField` | string | | Date field for --between filter |
811
+
812
+ ### Commands
813
+
814
+ #### `list`
815
+
816
+ List resources
817
+
818
+ **Resources:** pi (process-instance), pd (process-definition), ut (user-task), inc (incident), jobs, profiles (profile), plugins (plugin), users (user), roles (role), groups (group), tenants (tenant), auth (authorization), mapping-rules (mapping-rule)
819
+
820
+ **Verb-level flags:**
821
+
822
+ | Flag | Type | Required | Description |
823
+ |------|------|----------|-------------|
824
+ | `--all` | boolean | | List all (disable pagination limit) |
825
+
826
+ **Resource-specific flags:**
827
+
828
+ <details>
829
+ <summary><code>process-definition</code> (<code>pd</code>)</summary>
830
+
831
+ | Flag | Type | Required | Description |
832
+ |------|------|----------|-------------|
833
+ | `--bpmnProcessId` | string | | Filter by BPMN process ID |
834
+ | `--id` | string | | Filter by BPMN process ID (alias) |
835
+ | `--processDefinitionId` | string | | Filter by process definition ID |
836
+ | `--name` | string | | Filter by name |
837
+ | `--key` | string | | Filter by key |
838
+ | `--iid` | string | | Case-insensitive filter by BPMN process ID |
839
+ | `--iname` | string | | Case-insensitive filter by name |
840
+
841
+ </details>
842
+
843
+ <details>
844
+ <summary><code>process-instance</code> (<code>pi</code>)</summary>
845
+
846
+ | Flag | Type | Required | Description |
847
+ |------|------|----------|-------------|
848
+ | `--bpmnProcessId` | string | | Filter by BPMN process ID |
849
+ | `--id` | string | | Filter by BPMN process ID (alias) |
850
+ | `--processDefinitionId` | string | | Filter by process definition ID |
851
+ | `--processDefinitionKey` | string | | Filter by process definition key |
852
+ | `--state` | string | | Filter by state (ACTIVE, COMPLETED, etc) |
853
+ | `--key` | string | | Filter by key |
854
+ | `--parentProcessInstanceKey` | string | | Filter by parent process instance key |
855
+ | `--iid` | string | | Case-insensitive filter by BPMN process ID |
856
+
857
+ </details>
858
+
859
+ <details>
860
+ <summary><code>user-task</code> (<code>ut</code>)</summary>
861
+
862
+ | Flag | Type | Required | Description |
863
+ |------|------|----------|-------------|
864
+ | `--state` | string | | Filter by state |
865
+ | `--assignee` | string | | Filter by assignee |
866
+ | `--processInstanceKey` | string | | Filter by process instance key |
867
+ | `--processDefinitionKey` | string | | Filter by process definition key |
868
+ | `--elementId` | string | | Filter by element ID |
869
+ | `--iassignee` | string | | Case-insensitive filter by assignee |
870
+
871
+ </details>
872
+
873
+ <details>
874
+ <summary><code>incident</code> (<code>inc</code>)</summary>
875
+
876
+ | Flag | Type | Required | Description |
877
+ |------|------|----------|-------------|
878
+ | `--state` | string | | Filter by state |
879
+ | `--processInstanceKey` | string | | Filter by process instance key |
880
+ | `--processDefinitionKey` | string | | Filter by process definition key |
881
+ | `--bpmnProcessId` | string | | Filter by BPMN process ID |
882
+ | `--id` | string | | Filter by BPMN process ID (alias) |
883
+ | `--processDefinitionId` | string | | Filter by process definition ID |
884
+ | `--errorType` | string | | Filter by error type |
885
+ | `--errorMessage` | string | | Filter by error message |
886
+ | `--ierrorMessage` | string | | Case-insensitive filter by error message |
887
+ | `--iid` | string | | Case-insensitive filter by BPMN process ID |
888
+
889
+ </details>
890
+
891
+ <details>
892
+ <summary><code>jobs</code></summary>
893
+
894
+ | Flag | Type | Required | Description |
895
+ |------|------|----------|-------------|
896
+ | `--state` | string | | Filter by state |
897
+ | `--type` | string | | Filter by job type |
898
+ | `--processInstanceKey` | string | | Filter by process instance key |
899
+ | `--processDefinitionKey` | string | | Filter by process definition key |
900
+ | `--itype` | string | | Case-insensitive filter by job type |
901
+
902
+ </details>
903
+
904
+ <details>
905
+ <summary><code>user</code></summary>
906
+
907
+ | Flag | Type | Required | Description |
908
+ |------|------|----------|-------------|
909
+ | `--username` | string | | Filter by username |
910
+ | `--name` | string | | Filter by name |
911
+ | `--email` | string | | Filter by email |
912
+
913
+ </details>
914
+
915
+ <details>
916
+ <summary><code>role</code></summary>
917
+
918
+ | Flag | Type | Required | Description |
919
+ |------|------|----------|-------------|
920
+ | `--roleId` | string | | Filter by role ID |
921
+ | `--name` | string | | Filter by name |
922
+
923
+ </details>
924
+
925
+ <details>
926
+ <summary><code>group</code></summary>
927
+
928
+ | Flag | Type | Required | Description |
929
+ |------|------|----------|-------------|
930
+ | `--groupId` | string | | Filter by group ID |
931
+ | `--name` | string | | Filter by name |
932
+
933
+ </details>
934
+
935
+ <details>
936
+ <summary><code>tenant</code></summary>
937
+
938
+ | Flag | Type | Required | Description |
939
+ |------|------|----------|-------------|
940
+ | `--tenantId` | string | | Filter by tenant ID |
941
+ | `--name` | string | | Filter by name |
942
+
943
+ </details>
944
+
945
+ <details>
946
+ <summary><code>authorization</code> (<code>auth</code>)</summary>
947
+
948
+ | Flag | Type | Required | Description |
949
+ |------|------|----------|-------------|
950
+ | `--ownerId` | string | | Filter by owner ID |
951
+ | `--ownerType` | string | | Filter by owner type |
952
+ | `--resourceType` | string | | Filter by resource type |
953
+ | `--resourceId` | string | | Filter by resource ID |
954
+
955
+ </details>
956
+
957
+ <details>
958
+ <summary><code>mapping-rule</code> (<code>mr</code>)</summary>
959
+
960
+ | Flag | Type | Required | Description |
961
+ |------|------|----------|-------------|
962
+ | `--mappingRuleId` | string | | Filter by mapping rule ID |
963
+ | `--name` | string | | Filter by name |
964
+ | `--claimName` | string | | Filter by claim name |
965
+ | `--claimValue` | string | | Filter by claim value |
966
+
967
+ </details>
968
+
969
+ **Examples:**
970
+
971
+ ```bash
972
+ c8ctl list pi # List process instances
973
+ c8ctl list pd # List process definitions
974
+ c8ctl list users # List users
975
+ ```
976
+
977
+ ---
978
+
979
+ #### `search`
980
+
981
+ Search resources with filters (wildcards, date ranges, case-insensitive)
982
+
983
+ **Resources:** pi (process-instance), pd (process-definition), ut (user-task), inc (incident), jobs, vars (variable), users (user), roles (role), groups (group), tenants (tenant), auth (authorization), mapping-rules (mapping-rule)
984
+
985
+ **Resource-specific flags:**
986
+
987
+ <details>
988
+ <summary><code>process-definition</code> (<code>pd</code>)</summary>
989
+
990
+ | Flag | Type | Required | Description |
991
+ |------|------|----------|-------------|
992
+ | `--bpmnProcessId` | string | | Filter by BPMN process ID |
993
+ | `--id` | string | | Filter by BPMN process ID (alias) |
994
+ | `--processDefinitionId` | string | | Filter by process definition ID |
995
+ | `--name` | string | | Filter by name |
996
+ | `--key` | string | | Filter by key |
997
+ | `--iid` | string | | Case-insensitive filter by BPMN process ID |
998
+ | `--iname` | string | | Case-insensitive filter by name |
999
+
1000
+ </details>
1001
+
1002
+ <details>
1003
+ <summary><code>process-instance</code> (<code>pi</code>)</summary>
1004
+
1005
+ | Flag | Type | Required | Description |
1006
+ |------|------|----------|-------------|
1007
+ | `--bpmnProcessId` | string | | Filter by BPMN process ID |
1008
+ | `--id` | string | | Filter by BPMN process ID (alias) |
1009
+ | `--processDefinitionId` | string | | Filter by process definition ID |
1010
+ | `--processDefinitionKey` | string | | Filter by process definition key |
1011
+ | `--state` | string | | Filter by state (ACTIVE, COMPLETED, etc) |
1012
+ | `--key` | string | | Filter by key |
1013
+ | `--parentProcessInstanceKey` | string | | Filter by parent process instance key |
1014
+ | `--iid` | string | | Case-insensitive filter by BPMN process ID |
1015
+
1016
+ </details>
1017
+
1018
+ <details>
1019
+ <summary><code>user-task</code> (<code>ut</code>)</summary>
1020
+
1021
+ | Flag | Type | Required | Description |
1022
+ |------|------|----------|-------------|
1023
+ | `--state` | string | | Filter by state |
1024
+ | `--assignee` | string | | Filter by assignee |
1025
+ | `--processInstanceKey` | string | | Filter by process instance key |
1026
+ | `--processDefinitionKey` | string | | Filter by process definition key |
1027
+ | `--elementId` | string | | Filter by element ID |
1028
+ | `--iassignee` | string | | Case-insensitive filter by assignee |
1029
+
1030
+ </details>
1031
+
1032
+ <details>
1033
+ <summary><code>incident</code> (<code>inc</code>)</summary>
1034
+
1035
+ | Flag | Type | Required | Description |
1036
+ |------|------|----------|-------------|
1037
+ | `--state` | string | | Filter by state |
1038
+ | `--processInstanceKey` | string | | Filter by process instance key |
1039
+ | `--processDefinitionKey` | string | | Filter by process definition key |
1040
+ | `--bpmnProcessId` | string | | Filter by BPMN process ID |
1041
+ | `--id` | string | | Filter by BPMN process ID (alias) |
1042
+ | `--processDefinitionId` | string | | Filter by process definition ID |
1043
+ | `--errorType` | string | | Filter by error type |
1044
+ | `--errorMessage` | string | | Filter by error message |
1045
+ | `--ierrorMessage` | string | | Case-insensitive filter by error message |
1046
+ | `--iid` | string | | Case-insensitive filter by BPMN process ID |
1047
+
1048
+ </details>
1049
+
1050
+ <details>
1051
+ <summary><code>jobs</code></summary>
1052
+
1053
+ | Flag | Type | Required | Description |
1054
+ |------|------|----------|-------------|
1055
+ | `--state` | string | | Filter by state |
1056
+ | `--type` | string | | Filter by job type |
1057
+ | `--processInstanceKey` | string | | Filter by process instance key |
1058
+ | `--processDefinitionKey` | string | | Filter by process definition key |
1059
+ | `--itype` | string | | Case-insensitive filter by job type |
1060
+
1061
+ </details>
1062
+
1063
+ <details>
1064
+ <summary><code>variable</code> (<code>var</code>, <code>vars</code>)</summary>
1065
+
1066
+ | Flag | Type | Required | Description |
1067
+ |------|------|----------|-------------|
1068
+ | `--name` | string | | Filter by variable name |
1069
+ | `--value` | string | | Filter by value |
1070
+ | `--processInstanceKey` | string | | Filter by process instance key |
1071
+ | `--scopeKey` | string | | Filter by scope key |
1072
+ | `--fullValue` | boolean | | Return full variable values (not truncated) |
1073
+ | `--iname` | string | | Case-insensitive filter by name |
1074
+ | `--ivalue` | string | | Case-insensitive filter by value |
1075
+
1076
+ </details>
1077
+
1078
+ <details>
1079
+ <summary><code>user</code></summary>
1080
+
1081
+ | Flag | Type | Required | Description |
1082
+ |------|------|----------|-------------|
1083
+ | `--username` | string | | Filter by username |
1084
+ | `--name` | string | | Filter by name |
1085
+ | `--email` | string | | Filter by email |
1086
+
1087
+ </details>
1088
+
1089
+ <details>
1090
+ <summary><code>role</code></summary>
1091
+
1092
+ | Flag | Type | Required | Description |
1093
+ |------|------|----------|-------------|
1094
+ | `--roleId` | string | | Filter by role ID |
1095
+ | `--name` | string | | Filter by name |
1096
+
1097
+ </details>
1098
+
1099
+ <details>
1100
+ <summary><code>group</code></summary>
1101
+
1102
+ | Flag | Type | Required | Description |
1103
+ |------|------|----------|-------------|
1104
+ | `--groupId` | string | | Filter by group ID |
1105
+ | `--name` | string | | Filter by name |
1106
+
1107
+ </details>
1108
+
1109
+ <details>
1110
+ <summary><code>tenant</code></summary>
1111
+
1112
+ | Flag | Type | Required | Description |
1113
+ |------|------|----------|-------------|
1114
+ | `--tenantId` | string | | Filter by tenant ID |
1115
+ | `--name` | string | | Filter by name |
1116
+
1117
+ </details>
1118
+
1119
+ <details>
1120
+ <summary><code>authorization</code> (<code>auth</code>)</summary>
1121
+
1122
+ | Flag | Type | Required | Description |
1123
+ |------|------|----------|-------------|
1124
+ | `--ownerId` | string | | Filter by owner ID |
1125
+ | `--ownerType` | string | | Filter by owner type |
1126
+ | `--resourceType` | string | | Filter by resource type |
1127
+ | `--resourceId` | string | | Filter by resource ID |
1128
+
1129
+ </details>
1130
+
1131
+ <details>
1132
+ <summary><code>mapping-rule</code> (<code>mr</code>)</summary>
1133
+
1134
+ | Flag | Type | Required | Description |
1135
+ |------|------|----------|-------------|
1136
+ | `--mappingRuleId` | string | | Filter by mapping rule ID |
1137
+ | `--name` | string | | Filter by name |
1138
+ | `--claimName` | string | | Filter by claim name |
1139
+ | `--claimValue` | string | | Filter by claim value |
1140
+
1141
+ </details>
1142
+
1143
+ **Examples:**
1144
+
1145
+ ```bash
1146
+ c8ctl search pi --state=ACTIVE # Search for active process instances
1147
+ c8ctl search pd --bpmnProcessId=myProcess # Search process definitions by ID
1148
+ c8ctl search pd --name='*main*' # Search process definitions with wildcard
1149
+ c8ctl search ut --assignee=john # Search user tasks assigned to john
1150
+ c8ctl search inc --state=ACTIVE # Search for active incidents
1151
+ c8ctl search jobs --type=myJobType # Search jobs by type
1152
+ c8ctl search jobs --type='*service*' # Search jobs with type containing "service"
1153
+ c8ctl search variables --name=myVar # Search for variables by name
1154
+ c8ctl search variables --value=foo # Search for variables by value
1155
+ c8ctl search variables --processInstanceKey=123 --fullValue # Search variables with full values
1156
+ c8ctl search pd --iname='*order*' # Case-insensitive search by name
1157
+ c8ctl search ut --iassignee=John # Case-insensitive search by assignee
1158
+ ```
1159
+
1160
+ ---
1161
+
1162
+ #### `get`
1163
+
1164
+ Get a resource by key
1165
+
1166
+ **Resources:** pi (process-instance), pd (process-definition), inc (incident), topology, form, user, role, group, tenant, auth (authorization), mapping-rule
1167
+
1168
+ **Positional arguments:**
1169
+
1170
+ - **process-definition:** `<key>` (required)
1171
+ - **process-instance:** `<key>` (required)
1172
+ - **incident:** `<key>` (required)
1173
+ - **user:** `<username>` (required)
1174
+ - **role:** `<roleId>` (required)
1175
+ - **group:** `<groupId>` (required)
1176
+ - **tenant:** `<tenantId>` (required)
1177
+ - **authorization:** `<authorizationKey>` (required)
1178
+ - **mapping-rule:** `<mappingRuleId>` (required)
1179
+ - **form:** `<key>` (required)
1180
+
1181
+ **Resource-specific flags:**
1182
+
1183
+ <details>
1184
+ <summary><code>process-definition</code> (<code>pd</code>)</summary>
1185
+
1186
+ | Flag | Type | Required | Description |
1187
+ |------|------|----------|-------------|
1188
+ | `--xml` | boolean | | Get BPMN XML (process definitions) |
1189
+
1190
+ </details>
1191
+
1192
+ <details>
1193
+ <summary><code>form</code></summary>
1194
+
1195
+ | Flag | Type | Required | Description |
1196
+ |------|------|----------|-------------|
1197
+ | `--userTask` | boolean | | Get form for user task |
1198
+ | `--ut` | boolean | | Alias for --userTask |
1199
+ | `--processDefinition` | boolean | | Get form for process definition |
1200
+ | `--pd` | boolean | | Alias for --processDefinition |
1201
+
1202
+ </details>
1203
+
1204
+ <details>
1205
+ <summary><code>process-instance</code> (<code>pi</code>)</summary>
1206
+
1207
+ | Flag | Type | Required | Description |
1208
+ |------|------|----------|-------------|
1209
+ | `--variables` | boolean | | Include variables in output |
1210
+
1211
+ </details>
1212
+
1213
+ **Examples:**
1214
+
1215
+ ```bash
1216
+ c8ctl get pi 123456 # Get process instance by key
1217
+ c8ctl get pi 123456 --variables # Get process instance with variables
1218
+ c8ctl get pd 123456 # Get process definition by key
1219
+ c8ctl get pd 123456 --xml # Get process definition XML
1220
+ c8ctl get form 123456 # Get form (searches both user task and process definition)
1221
+ c8ctl get form 123456 --ut # Get form for user task only
1222
+ c8ctl get form 123456 --pd # Get start form for process definition only
1223
+ c8ctl get user john # Get user by username
1224
+ ```
1225
+
1226
+ ---
1227
+
1228
+ #### `create`
1229
+
1230
+ Create a resource (process instance, identity)
1231
+
1232
+ **Resources:** pi (process-instance), user, role, group, tenant, auth (authorization), mapping-rule
1233
+
1234
+ **Verb-level flags:**
1235
+
1236
+ | Flag | Type | Required | Description |
1237
+ |------|------|----------|-------------|
1238
+ | `--processDefinitionId` | string | | Process definition ID (BPMN process ID) |
1239
+ | `--id` | string | | Process definition ID (alias for --processDefinitionId) |
1240
+ | `--bpmnProcessId` | string | | BPMN process ID (alias for --processDefinitionId) |
1241
+ | `--variables` | string | | JSON variables |
1242
+ | `--awaitCompletion` | boolean | | Wait for process to complete |
1243
+ | `--fetchVariables` | boolean | | Fetch result variables on completion |
1244
+ | `--requestTimeout` | string | | Await timeout in milliseconds |
1245
+ | `--username` | string | | Username |
1246
+ | `--name` | string | | Display name |
1247
+ | `--email` | string | | Email address |
1248
+ | `--password` | string | | Password |
1249
+ | `--roleId` | string | | Role ID |
1250
+ | `--groupId` | string | | Group ID |
1251
+ | `--tenantId` | string | | Tenant ID |
1252
+ | `--mappingRuleId` | string | | Mapping rule ID |
1253
+ | `--claimName` | string | | Claim name |
1254
+ | `--claimValue` | string | | Claim value |
1255
+
1256
+ **Resource-specific flags:**
1257
+
1258
+ <details>
1259
+ <summary><code>authorization</code> (<code>auth</code>)</summary>
1260
+
1261
+ | Flag | Type | Required | Description |
1262
+ |------|------|----------|-------------|
1263
+ | `--ownerId` | string | Yes | Authorization owner ID |
1264
+ | `--ownerType` | string | Yes | Authorization owner type |
1265
+ | `--resourceType` | string | Yes | Authorization resource type |
1266
+ | `--resourceId` | string | Yes | Authorization resource ID |
1267
+ | `--permissions` | string | Yes | Comma-separated permissions |
1268
+
1269
+ </details>
1270
+
1271
+ **Examples:**
1272
+
1273
+ ```bash
1274
+ c8ctl create pi --id=myProcess # Create a process instance
1275
+ c8ctl create pi --id=myProcess --awaitCompletion # Create and await completion
1276
+ c8ctl create user --username=john --name='John Doe' --email=john@example.com --password=secret # Create a user
1277
+ ```
1278
+
1279
+ ---
1280
+
1281
+ #### `delete`
1282
+
1283
+ Delete a resource by key
1284
+
1285
+ **Usage:** `c8ctl delete <resource> <key>`
1286
+
1287
+ **Resources:** user, role, group, tenant, auth (authorization), mapping-rule
1288
+
1289
+ **Positional arguments:**
1290
+
1291
+ - **user:** `<username>` (required)
1292
+ - **role:** `<roleId>` (required)
1293
+ - **group:** `<groupId>` (required)
1294
+ - **tenant:** `<tenantId>` (required)
1295
+ - **authorization:** `<authorizationKey>` (required)
1296
+ - **mapping-rule:** `<mappingRuleId>` (required)
1297
+
1298
+ **Examples:**
1299
+
1300
+ ```bash
1301
+ c8ctl delete user john # Delete user
1302
+ ```
1303
+
1304
+ ---
1305
+
1306
+ #### `cancel`
1307
+
1308
+ Cancel a process instance
1309
+
1310
+ **Usage:** `c8ctl cancel <resource> <key>`
1311
+
1312
+ **Resources:** pi (process-instance)
1313
+
1314
+ **Positional arguments:**
1315
+
1316
+ - **process-instance:** `<key>` (required)
1317
+
1318
+ ---
1319
+
1320
+ #### `await`
1321
+
1322
+ Create and await process instance completion (server-side waiting)
1323
+
1324
+ **Usage:** `c8ctl await <resource>`
1325
+
1326
+ **Resources:** pi (process-instance)
1327
+
1328
+ **Flags:**
1329
+
1330
+ | Flag | Type | Required | Description |
1331
+ |------|------|----------|-------------|
1332
+ | `--processDefinitionId` | string | | Process definition ID (BPMN process ID) |
1333
+ | `--id` | string | | Process definition ID (alias for --processDefinitionId) |
1334
+ | `--bpmnProcessId` | string | | BPMN process ID (alias for --processDefinitionId) |
1335
+ | `--variables` | string | | JSON variables |
1336
+ | `--fetchVariables` | boolean | | Fetch result variables on completion |
1337
+ | `--requestTimeout` | string | | Await timeout in milliseconds |
1338
+
1339
+ **Examples:**
1340
+
1341
+ ```bash
1342
+ c8ctl await pi --id=myProcess # Create and wait for completion
1343
+ ```
1344
+
1345
+ ---
1346
+
1347
+ #### `complete`
1348
+
1349
+ Complete a user task or job
1350
+
1351
+ **Usage:** `c8ctl complete <resource> <key>`
1352
+
1353
+ **Resources:** ut (user-task), job
1354
+
1355
+ **Positional arguments:**
1356
+
1357
+ - **user-task:** `<key>` (required)
1358
+ - **job:** `<key>` (required)
1359
+
1360
+ **Flags:**
1361
+
1362
+ | Flag | Type | Required | Description |
1363
+ |------|------|----------|-------------|
1364
+ | `--variables` | string | | JSON variables |
1365
+
1366
+ ---
1367
+
1368
+ #### `fail`
1369
+
1370
+ Mark a job as failed with optional error message and retry count
1371
+
1372
+ **Resources:** job
1373
+
1374
+ **Positional arguments:**
1375
+
1376
+ - **job:** `<key>` (required)
1377
+
1378
+ **Flags:**
1379
+
1380
+ | Flag | Type | Required | Description |
1381
+ |------|------|----------|-------------|
1382
+ | `--retries` | string | | Remaining retries |
1383
+ | `--errorMessage` | string | | Error message |
1384
+
1385
+ ---
1386
+
1387
+ #### `activate`
1388
+
1389
+ Activate jobs of a specific type for processing
1390
+
1391
+ **Resources:** jobs
1392
+
1393
+ **Positional arguments:**
1394
+
1395
+ - **jobs:** `<type>` (required)
1396
+
1397
+ **Flags:**
1398
+
1399
+ | Flag | Type | Required | Description |
1400
+ |------|------|----------|-------------|
1401
+ | `--maxJobsToActivate` | string | | Maximum number of jobs to activate |
1402
+ | `--timeout` | string | | Job timeout in milliseconds |
1403
+ | `--worker` | string | | Worker name |
1404
+
1405
+ ---
1406
+
1407
+ #### `resolve`
1408
+
1409
+ Resolve an incident (marks resolved, allows process to continue)
1410
+
1411
+ **Resources:** inc (incident)
1412
+
1413
+ **Positional arguments:**
1414
+
1415
+ - **incident:** `<key>` (required)
1416
+
1417
+ ---
1418
+
1419
+ #### `publish`
1420
+
1421
+ Publish a message for message correlation
1422
+
1423
+ **Resources:** msg (message)
1424
+
1425
+ **Positional arguments:**
1426
+
1427
+ - **message:** `<name>` (required)
1428
+
1429
+ **Flags:**
1430
+
1431
+ | Flag | Type | Required | Description |
1432
+ |------|------|----------|-------------|
1433
+ | `--correlationKey` | string | | Correlation key |
1434
+ | `--variables` | string | | JSON variables |
1435
+ | `--timeToLive` | string | | Time to live in milliseconds |
1436
+
1437
+ ---
1438
+
1439
+ #### `correlate`
1440
+
1441
+ Correlate a message to a specific process instance
1442
+
1443
+ **Resources:** msg (message)
1444
+
1445
+ **Positional arguments:**
1446
+
1447
+ - **message:** `<name>` (required)
1448
+
1449
+ **Flags:**
1450
+
1451
+ | Flag | Type | Required | Description |
1452
+ |------|------|----------|-------------|
1453
+ | `--correlationKey` | string | Yes | Correlation key |
1454
+ | `--variables` | string | | JSON variables |
1455
+ | `--timeToLive` | string | | Time to live in milliseconds |
1456
+
1457
+ ---
1458
+
1459
+ #### `set`
1460
+
1461
+ Set variables on an element instance (process instance or flow element scope). Variables are propagated to the outermost scope by default; use --local to restrict to the specified scope.
1462
+
1463
+ **Usage:** `c8ctl set variable <key>`
1464
+
1465
+ **Resources:** variable
1466
+
1467
+ **Positional arguments:**
1468
+
1469
+ - **variable:** `<key>` (required)
1470
+
1471
+ **Flags:**
1472
+
1473
+ | Flag | Type | Required | Description |
1474
+ |------|------|----------|-------------|
1475
+ | `--variables` | string | Yes | JSON object of variables to set (required) |
1476
+ | `--local` | boolean | | Set variables in local scope only (default: propagate to outermost scope) |
1477
+
1478
+ **Examples:**
1479
+
1480
+ ```bash
1481
+ c8ctl set variable 2251799813685249 --variables='{"status":"approved"}' # Set variables on a process instance
1482
+ c8ctl set variable 2251799813685249 --variables='{"x":1}' --local # Set variables in local scope only
1483
+ ```
1484
+
1485
+ ---
1486
+
1487
+ #### `deploy`
1488
+
1489
+ Deploy files to Camunda (auto-discovers deployable files in directories)
1490
+
1491
+ **Usage:** `c8ctl deploy [path...]`
1492
+
1493
+ **Flags:**
1494
+
1495
+ | Flag | Type | Required | Description |
1496
+ |------|------|----------|-------------|
1497
+ | `--force` | boolean | | Deploy any file type, ignoring the default extension allow-list |
1498
+
1499
+ **Examples:**
1500
+
1501
+ ```bash
1502
+ c8ctl deploy ./my-process.bpmn # Deploy a BPMN file
1503
+ ```
1504
+
1505
+ ---
1506
+
1507
+ #### `run`
1508
+
1509
+ Deploy and start a process instance from a BPMN file
1510
+
1511
+ **Usage:** `c8ctl run <path>`
1512
+
1513
+ **Flags:**
1514
+
1515
+ | Flag | Type | Required | Description |
1516
+ |------|------|----------|-------------|
1517
+ | `--variables` | string | | JSON variables |
1518
+ | `--force` | boolean | | Deploy any file type, ignoring the default extension allow-list |
1519
+
1520
+ **Examples:**
1521
+
1522
+ ```bash
1523
+ c8ctl run ./my-process.bpmn # Deploy and start process
1524
+ ```
1525
+
1526
+ ---
1527
+
1528
+ #### `assign`
1529
+
1530
+ Assign a resource to a target (--to-user, --to-group, etc.)
1531
+
1532
+ **Usage:** `c8ctl assign <resource> <id>`
1533
+
1534
+ **Resources:** role, user, group, mapping-rule
1535
+
1536
+ **Positional arguments:**
1537
+
1538
+ - **role:** `<roleId>` (required)
1539
+ - **user:** `<username>` (required)
1540
+ - **group:** `<groupId>` (required)
1541
+ - **mapping-rule:** `<mappingRuleId>` (required)
1542
+
1543
+ **Flags:**
1544
+
1545
+ | Flag | Type | Required | Description |
1546
+ |------|------|----------|-------------|
1547
+ | `--to-user` | string | | Target user ID |
1548
+ | `--to-group` | string | | Target group ID |
1549
+ | `--to-tenant` | string | | Target tenant ID |
1550
+ | `--to-mapping-rule` | string | | Target mapping rule ID |
1551
+
1552
+ **Examples:**
1553
+
1554
+ ```bash
1555
+ c8ctl assign role admin --to-user=john # Assign role to user
1556
+ ```
1557
+
1558
+ ---
1559
+
1560
+ #### `unassign`
1561
+
1562
+ Unassign a resource from a target (--from-user, --from-group, etc.)
1563
+
1564
+ **Usage:** `c8ctl unassign <resource> <id>`
1565
+
1566
+ **Resources:** role, user, group, mapping-rule
1567
+
1568
+ **Positional arguments:**
1569
+
1570
+ - **role:** `<roleId>` (required)
1571
+ - **user:** `<username>` (required)
1572
+ - **group:** `<groupId>` (required)
1573
+ - **mapping-rule:** `<mappingRuleId>` (required)
1574
+
1575
+ **Flags:**
1576
+
1577
+ | Flag | Type | Required | Description |
1578
+ |------|------|----------|-------------|
1579
+ | `--from-user` | string | | Source user ID |
1580
+ | `--from-group` | string | | Source group ID |
1581
+ | `--from-tenant` | string | | Source tenant ID |
1582
+ | `--from-mapping-rule` | string | | Source mapping rule ID |
1583
+
1584
+ **Examples:**
1585
+
1586
+ ```bash
1587
+ c8ctl unassign role admin --from-user=john # Unassign role from user
1588
+ ```
1589
+
1590
+ ---
1591
+
1592
+ #### `watch`
1593
+
1594
+ Watch files for changes and auto-deploy
1595
+
1596
+ **Usage:** `c8ctl watch [path...]`
1597
+
1598
+ **Aliases:** `w`
1599
+
1600
+ **Flags:**
1601
+
1602
+ | Flag | Type | Required | Description |
1603
+ |------|------|----------|-------------|
1604
+ | `--force` | boolean | | Continue watching after all deployment errors |
1605
+ | `--extensions` | string | | Comma-separated list of file extensions to watch (e.g. .bpmn,.dmn,.form) |
1606
+
1607
+ **Examples:**
1608
+
1609
+ ```bash
1610
+ c8ctl watch ./src # Watch directory for changes
1611
+ ```
1612
+
1613
+ ---
1614
+
1615
+ #### `open`
1616
+
1617
+ Open Camunda web app in browser
1618
+
1619
+ **Usage:** `c8ctl open <app>`
1620
+
1621
+ **Resources:** operate, tasklist, modeler, optimize
1622
+
1623
+ **Examples:**
1624
+
1625
+ ```bash
1626
+ c8ctl open operate # Open Camunda Operate in browser
1627
+ c8ctl open tasklist # Open Camunda Tasklist in browser
1628
+ c8ctl open operate --profile=prod # Open Operate using a specific profile
1629
+ ```
1630
+
1631
+ ---
1632
+
1633
+ #### `add`
1634
+
1635
+ Add a profile
1636
+
1637
+ **Resources:** profile
1638
+
1639
+ **Positional arguments:**
1640
+
1641
+ - **profile:** `<name>` (required)
1642
+
1643
+ **Flags:**
1644
+
1645
+ | Flag | Type | Required | Description |
1646
+ |------|------|----------|-------------|
1647
+ | `--baseUrl` | string | | Cluster base URL |
1648
+ | `--clientId` | string | | OAuth client ID |
1649
+ | `--clientSecret` | string | | OAuth client secret |
1650
+ | `--audience` | string | | OAuth audience |
1651
+ | `--oAuthUrl` | string | | OAuth token URL |
1652
+ | `--defaultTenantId` | string | | Default tenant ID |
1653
+ | `--username` | string | | Basic auth username |
1654
+ | `--password` | string | | Basic auth password |
1655
+ | `--from-file` | string | | Import from .env file |
1656
+ | `--from-env` | boolean | | Import from environment variables |
1657
+
1658
+ ---
1659
+
1660
+ #### `remove`
1661
+
1662
+ Remove a profile (alias: rm)
1663
+
1664
+ **Usage:** `c8ctl remove profile <name>`
1665
+
1666
+ **Aliases:** `rm`
1667
+
1668
+ **Resources:** profile, plugin
1669
+
1670
+ **Positional arguments:**
1671
+
1672
+ - **profile:** `<name>` (required)
1673
+ - **plugin:** `<package>` (required)
1674
+
1675
+ **Flags:**
1676
+
1677
+ | Flag | Type | Required | Description |
1678
+ |------|------|----------|-------------|
1679
+ | `--none` | boolean | | Clear active profile |
1680
+
1681
+ ---
1682
+
1683
+ #### `load`
1684
+
1685
+ Load a c8ctl plugin (npm registry or URL)
1686
+
1687
+ **Usage:** `c8ctl load plugin [name|--from url]`
1688
+
1689
+ **Resources:** plugin
1690
+
1691
+ **Positional arguments:**
1692
+
1693
+ - **plugin:** `<package>` (optional)
1694
+
1695
+ **Flags:**
1696
+
1697
+ | Flag | Type | Required | Description |
1698
+ |------|------|----------|-------------|
1699
+ | `--from` | string | | Load plugin from URL |
1700
+
1701
+ **Examples:**
1702
+
1703
+ ```bash
1704
+ c8ctl load plugin my-plugin # Load plugin from npm registry
1705
+ c8ctl load plugin --from https://github.com/org/plugin # Load plugin from URL
1706
+ ```
1707
+
1708
+ ---
1709
+
1710
+ #### `unload`
1711
+
1712
+ Unload a c8ctl plugin (npm uninstall wrapper)
1713
+
1714
+ **Usage:** `c8ctl unload plugin <name>`
1715
+
1716
+ **Aliases:** `rm`
1717
+
1718
+ **Resources:** plugin
1719
+
1720
+ **Positional arguments:**
1721
+
1722
+ - **plugin:** `<package>` (required)
1723
+
1724
+ **Flags:**
1725
+
1726
+ | Flag | Type | Required | Description |
1727
+ |------|------|----------|-------------|
1728
+ | `--force` | boolean | | Force unload without confirmation |
1729
+
1730
+ ---
1731
+
1732
+ #### `upgrade`
1733
+
1734
+ Upgrade a plugin (respects source type)
1735
+
1736
+ **Usage:** `c8ctl upgrade plugin <name> [version]`
1737
+
1738
+ **Resources:** plugin
1739
+
1740
+ **Positional arguments:**
1741
+
1742
+ - **plugin:** `<package>` (required), `<version>` (optional)
1743
+
1744
+ **Examples:**
1745
+
1746
+ ```bash
1747
+ c8ctl upgrade plugin my-plugin # Upgrade plugin to latest version
1748
+ c8ctl upgrade plugin my-plugin 1.2.3 # Upgrade plugin to a specific version (source-aware)
1749
+ ```
1750
+
1751
+ ---
1752
+
1753
+ #### `downgrade`
1754
+
1755
+ Downgrade a plugin to a specific version
1756
+
1757
+ **Usage:** `c8ctl downgrade plugin <name> <version>`
1758
+
1759
+ **Resources:** plugin
1760
+
1761
+ **Positional arguments:**
1762
+
1763
+ - **plugin:** `<package>` (required), `<version>` (required)
1764
+
1765
+ ---
1766
+
1767
+ #### `sync`
1768
+
1769
+ Synchronize plugins from registry (rebuild/reinstall)
1770
+
1771
+ **Resources:** plugin
1772
+
1773
+ **Examples:**
1774
+
1775
+ ```bash
1776
+ c8ctl sync plugin # Synchronize plugins
1777
+ ```
1778
+
1779
+ ---
1780
+
1781
+ #### `init`
1782
+
1783
+ Create a new plugin from TypeScript template
1784
+
1785
+ **Resources:** plugin
1786
+
1787
+ **Positional arguments:**
1788
+
1789
+ - **plugin:** `<name>` (optional)
1790
+
1791
+ **Examples:**
1792
+
1793
+ ```bash
1794
+ c8ctl init plugin my-plugin # Create new plugin from template (c8ctl-plugin-my-plugin)
1795
+ ```
1796
+
1797
+ ---
1798
+
1799
+ #### `use`
1800
+
1801
+ Set active profile or tenant
1802
+
1803
+ **Usage:** `c8ctl use profile|tenant`
1804
+
1805
+ **Resources:** profile, tenant
1806
+
1807
+ **Positional arguments:**
1808
+
1809
+ - **profile:** `<name>` (optional)
1810
+ - **tenant:** `<tenantId>` (required)
1811
+
1812
+ **Flags:**
1813
+
1814
+ | Flag | Type | Required | Description |
1815
+ |------|------|----------|-------------|
1816
+ | `--none` | boolean | | Clear active profile/tenant |
1817
+
1818
+ **Examples:**
1819
+
1820
+ ```bash
1821
+ c8ctl use profile prod # Set active profile
1822
+ ```
1823
+
1824
+ ---
1825
+
1826
+ #### `output`
1827
+
1828
+ Show or set output format
1829
+
1830
+ **Usage:** `c8ctl output [json|text]`
1831
+
1832
+ **Resources:** json, text
1833
+
1834
+ **Examples:**
1835
+
1836
+ ```bash
1837
+ c8ctl output json # Switch to JSON output
1838
+ ```
1839
+
1840
+ ---
1841
+
1842
+ #### `completion`
1843
+
1844
+ Generate shell completion script
1845
+
1846
+ **Usage:** `c8ctl completion bash|zsh|fish|install`
1847
+
1848
+ **Resources:** bash, zsh, fish, install
1849
+
1850
+ **Resource-specific flags:**
1851
+
1852
+ <details>
1853
+ <summary><code>install</code></summary>
1854
+
1855
+ | Flag | Type | Required | Description |
1856
+ |------|------|----------|-------------|
1857
+ | `--shell` | string | | Shell to install completions for (bash, zsh, fish) |
1858
+
1859
+ </details>
1860
+
1861
+ **Examples:**
1862
+
1863
+ ```bash
1864
+ c8ctl completion bash # Generate bash completion script
1865
+ c8ctl completion install # Auto-detect shell and install completions (auto-refreshes on upgrade)
1866
+ c8ctl completion install --shell zsh # Install completions for a specific shell
1867
+ ```
1868
+
1869
+ ---
1870
+
1871
+ #### `mcp-proxy`
1872
+
1873
+ Start a STDIO MCP proxy (bridges local MCP clients to remote Camunda 8)
1874
+
1875
+ **Usage:** `c8ctl mcp-proxy [mcp-path]`
1876
+
1877
+ ---
1878
+
1879
+ #### `feedback`
1880
+
1881
+ Open the feedback page to report issues or request features
1882
+
1883
+ ---
1884
+
1885
+ #### `help`
1886
+
1887
+ Show help (run 'c8ctl help \<command>' for details)
1888
+
1889
+ **Usage:** `c8ctl help [command]`
1890
+
1891
+ **Aliases:** `menu`
1892
+
1893
+ ---
1894
+
1895
+ #### `which`
1896
+
1897
+ Show active profile or output mode
1898
+
1899
+ **Resources:** profile, output
1900
+
1901
+ **Examples:**
1902
+
1903
+ ```bash
1904
+ c8ctl which profile # Show currently active profile
1905
+ c8ctl which output # Show current output mode
1906
+ ```
1907
+
1908
+
1909
+ <!-- command-reference:end -->
1910
+
813
1911
  ## License
814
1912
 
815
1913
  Apache 2.0 - see LICENSE.md