You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2026/01/15 10:50:03 UTC

(camel) branch autodoc-jbang-command created (now 5d0d3043fdbf)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch autodoc-jbang-command
in repository https://gitbox.apache.org/repos/asf/camel.git


      at 5d0d3043fdbf CAMEL-22859 - Auto-generate JBang commands documentation

This branch includes the following new commits:

     new 5d0d3043fdbf CAMEL-22859 - Auto-generate JBang commands documentation

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(camel) 01/01: CAMEL-22859 - Auto-generate JBang commands documentation

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch autodoc-jbang-command
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 5d0d3043fdbf2edd2f50eeddd31da09d14a80eb4
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Jan 15 11:47:32 2026 +0100

    CAMEL-22859 - Auto-generate JBang commands documentation
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 docs/user-manual/modules/ROOT/nav.adoc             |   1 +
 .../modules/ROOT/pages/camel-jbang-bind.adoc       |  29 ++
 .../ROOT/pages/camel-jbang-catalog-component.adoc  |  35 ++
 .../ROOT/pages/camel-jbang-catalog-dataformat.adoc |  35 ++
 .../pages/camel-jbang-catalog-dev-console.adoc     |  35 ++
 .../ROOT/pages/camel-jbang-catalog-kamelet.adoc    |  27 ++
 .../ROOT/pages/camel-jbang-catalog-language.adoc   |  35 ++
 .../ROOT/pages/camel-jbang-catalog-other.adoc      |  35 ++
 .../pages/camel-jbang-catalog-transformer.adoc     |  35 ++
 .../modules/ROOT/pages/camel-jbang-catalog.adoc    |  38 ++
 .../modules/ROOT/pages/camel-jbang-cmd-browse.adoc |  38 ++
 .../pages/camel-jbang-cmd-disable-processor.adoc   |  24 +
 .../pages/camel-jbang-cmd-enable-processor.adoc    |  24 +
 .../modules/ROOT/pages/camel-jbang-cmd-gc.adoc     |  23 +
 .../modules/ROOT/pages/camel-jbang-cmd-load.adoc   |  25 +
 .../modules/ROOT/pages/camel-jbang-cmd-logger.adoc |  26 +
 .../ROOT/pages/camel-jbang-cmd-receive.adoc        |  47 ++
 .../modules/ROOT/pages/camel-jbang-cmd-reload.adoc |  23 +
 .../ROOT/pages/camel-jbang-cmd-reset-stats.adoc    |  23 +
 .../ROOT/pages/camel-jbang-cmd-resume-route.adoc   |  24 +
 .../pages/camel-jbang-cmd-route-structure.adoc     |  27 ++
 .../modules/ROOT/pages/camel-jbang-cmd-send.adoc   |  39 ++
 .../ROOT/pages/camel-jbang-cmd-start-group.adoc    |  24 +
 .../ROOT/pages/camel-jbang-cmd-start-route.adoc    |  24 +
 .../ROOT/pages/camel-jbang-cmd-stop-group.adoc     |  24 +
 .../ROOT/pages/camel-jbang-cmd-stop-route.adoc     |  24 +
 .../modules/ROOT/pages/camel-jbang-cmd-stub.adoc   |  37 ++
 .../ROOT/pages/camel-jbang-cmd-suspend-route.adoc  |  24 +
 .../ROOT/pages/camel-jbang-cmd-thread-dump.adoc    |  29 ++
 .../modules/ROOT/pages/camel-jbang-cmd.adoc        |  50 ++
 .../modules/ROOT/pages/camel-jbang-commands.adoc   |  43 ++
 .../modules/ROOT/pages/camel-jbang-completion.adoc |  23 +
 .../modules/ROOT/pages/camel-jbang-config-get.adoc |  24 +
 .../ROOT/pages/camel-jbang-config-list.adoc        |  24 +
 .../modules/ROOT/pages/camel-jbang-config-set.adoc |  24 +
 .../ROOT/pages/camel-jbang-config-unset.adoc       |  24 +
 .../modules/ROOT/pages/camel-jbang-config.adoc     |  35 ++
 .../modules/ROOT/pages/camel-jbang-debug.adoc      |  96 ++++
 .../ROOT/pages/camel-jbang-dependency-copy.adoc    |  71 +++
 .../ROOT/pages/camel-jbang-dependency-list.adoc    |  70 +++
 .../ROOT/pages/camel-jbang-dependency-runtime.adoc |  26 +
 .../ROOT/pages/camel-jbang-dependency-update.adoc  |  71 +++
 .../modules/ROOT/pages/camel-jbang-dependency.adoc |  35 ++
 .../modules/ROOT/pages/camel-jbang-dirty.adoc      |  24 +
 .../modules/ROOT/pages/camel-jbang-doc.adoc        |  34 ++
 .../modules/ROOT/pages/camel-jbang-export.adoc     |  69 +++
 .../modules/ROOT/pages/camel-jbang-get-bean.adoc   |  29 ++
 .../ROOT/pages/camel-jbang-get-blocked.adoc        |  25 +
 .../pages/camel-jbang-get-circuit-breaker.adoc     |  25 +
 .../ROOT/pages/camel-jbang-get-consumer.adoc       |  30 ++
 .../ROOT/pages/camel-jbang-get-context.adoc        |  26 +
 .../modules/ROOT/pages/camel-jbang-get-count.adoc  |  27 ++
 .../ROOT/pages/camel-jbang-get-endpoint.adoc       |  31 ++
 .../modules/ROOT/pages/camel-jbang-get-event.adoc  |  26 +
 .../modules/ROOT/pages/camel-jbang-get-groovy.adoc |  25 +
 .../modules/ROOT/pages/camel-jbang-get-group.adoc  |  29 ++
 .../modules/ROOT/pages/camel-jbang-get-health.adoc |  31 ++
 .../ROOT/pages/camel-jbang-get-history.adoc        |  38 ++
 .../ROOT/pages/camel-jbang-get-inflight.adoc       |  25 +
 .../ROOT/pages/camel-jbang-get-internal-task.adoc  |  25 +
 .../modules/ROOT/pages/camel-jbang-get-kafka.adoc  |  28 ++
 .../modules/ROOT/pages/camel-jbang-get-metric.adoc |  29 ++
 .../ROOT/pages/camel-jbang-get-platform-http.adoc  |  26 +
 .../ROOT/pages/camel-jbang-get-processor.adoc      |  35 ++
 .../ROOT/pages/camel-jbang-get-producer.adoc       |  29 ++
 .../ROOT/pages/camel-jbang-get-properties.adoc     |  29 ++
 .../modules/ROOT/pages/camel-jbang-get-rest.adoc   |  26 +
 .../pages/camel-jbang-get-route-controller.adoc    |  28 ++
 .../ROOT/pages/camel-jbang-get-route-dump.adoc     |  28 ++
 .../modules/ROOT/pages/camel-jbang-get-route.adoc  |  37 ++
 .../ROOT/pages/camel-jbang-get-service.adoc        |  28 ++
 .../modules/ROOT/pages/camel-jbang-get-source.adoc |  25 +
 .../pages/camel-jbang-get-startup-recorder.adoc    |  25 +
 .../ROOT/pages/camel-jbang-get-transformer.adoc    |  24 +
 .../ROOT/pages/camel-jbang-get-variable.adoc       |  25 +
 .../modules/ROOT/pages/camel-jbang-get-vault.adoc  |  25 +
 .../modules/ROOT/pages/camel-jbang-get.adoc        |  62 +++
 .../modules/ROOT/pages/camel-jbang-hawtio.adoc     |  26 +
 .../modules/ROOT/pages/camel-jbang-infra-get.adoc  |  24 +
 .../modules/ROOT/pages/camel-jbang-infra-list.adoc |  24 +
 .../modules/ROOT/pages/camel-jbang-infra-log.adoc  |  24 +
 .../modules/ROOT/pages/camel-jbang-infra-ps.adoc   |  24 +
 .../modules/ROOT/pages/camel-jbang-infra-run.adoc  |  26 +
 .../modules/ROOT/pages/camel-jbang-infra-stop.adoc |  25 +
 .../modules/ROOT/pages/camel-jbang-infra.adoc      |  38 ++
 .../modules/ROOT/pages/camel-jbang-init.adoc       |  29 ++
 .../modules/ROOT/pages/camel-jbang-jolokia.adoc    |  25 +
 .../modules/ROOT/pages/camel-jbang-log.adoc        |  32 ++
 .../modules/ROOT/pages/camel-jbang-nano.adoc       |  23 +
 .../modules/ROOT/pages/camel-jbang-plugin-add.adoc |  31 ++
 .../ROOT/pages/camel-jbang-plugin-delete.adoc      |  23 +
 .../modules/ROOT/pages/camel-jbang-plugin-get.adoc |  25 +
 .../modules/ROOT/pages/camel-jbang-plugin.adoc     |  34 ++
 .../modules/ROOT/pages/camel-jbang-ps.adoc         |  28 ++
 .../modules/ROOT/pages/camel-jbang-run.adoc        |  82 ++++
 .../modules/ROOT/pages/camel-jbang-sbom.adoc       |  75 +++
 .../modules/ROOT/pages/camel-jbang-script.adoc     |  30 ++
 .../modules/ROOT/pages/camel-jbang-shell.adoc      |  23 +
 .../modules/ROOT/pages/camel-jbang-stop.adoc       |  24 +
 .../ROOT/pages/camel-jbang-top-context.adoc        |  25 +
 .../modules/ROOT/pages/camel-jbang-top-group.adoc  |  29 ++
 .../ROOT/pages/camel-jbang-top-processor.adoc      |  35 ++
 .../modules/ROOT/pages/camel-jbang-top-route.adoc  |  37 ++
 .../modules/ROOT/pages/camel-jbang-top-source.adoc |  26 +
 .../modules/ROOT/pages/camel-jbang-top.adoc        |  37 ++
 .../modules/ROOT/pages/camel-jbang-trace.adoc      |  45 ++
 .../ROOT/pages/camel-jbang-transform-message.adoc  |  42 ++
 .../ROOT/pages/camel-jbang-transform-route.adoc    |  28 ++
 .../modules/ROOT/pages/camel-jbang-transform.adoc  |  33 ++
 .../ROOT/pages/camel-jbang-update-list.adoc        |  26 +
 .../modules/ROOT/pages/camel-jbang-update-run.adoc |  23 +
 .../modules/ROOT/pages/camel-jbang-update.adoc     |  33 ++
 .../ROOT/pages/camel-jbang-version-get.adoc        |  24 +
 .../ROOT/pages/camel-jbang-version-list.adoc       |  40 ++
 .../ROOT/pages/camel-jbang-version-set.adoc        |  27 ++
 .../modules/ROOT/pages/camel-jbang-version.adoc    |  34 ++
 .../modules/ROOT/pages/camel-jbang.adoc            |   2 +
 dsl/camel-jbang/camel-jbang-core/pom.xml           |   9 +
 .../META-INF/camel-jbang-commands-metadata.json    |  33 ++
 pom.xml                                            |   1 +
 .../camel/tooling/model/JBangCommandModel.java     | 256 ++++++++++
 .../org/apache/camel/tooling/model/JsonMapper.java | 157 ++++++
 .../PrepareCamelJBangCommandsDocMojo.java          | 184 +++++++
 .../packaging/PrepareCamelJBangCommandsMojo.java   | 535 +++++++++++++++++++++
 .../src/main/resources/jbang-command-page.mvel     |  51 ++
 .../src/main/resources/jbang-commands.mvel         |  30 ++
 126 files changed, 4975 insertions(+)

diff --git a/docs/user-manual/modules/ROOT/nav.adoc b/docs/user-manual/modules/ROOT/nav.adoc
index dca81b368078..d7bee8266e73 100644
--- a/docs/user-manual/modules/ROOT/nav.adoc
+++ b/docs/user-manual/modules/ROOT/nav.adoc
@@ -6,6 +6,7 @@
 ** xref:building.adoc[Building]
 ** xref:camel-console.adoc[Camel Developer Console]
 ** xref:camel-jbang.adoc[Camel JBang]
+*** xref:camel-jbang-commands.adoc[Camel JBang Command Reference]
 *** xref:camel-jbang-launcher.adoc[Camel JBang Launcher]
 *** xref:camel-jbang-kubernetes.adoc[Camel JBang Kubernetes plugin]
 *** xref:camel-jbang-test.adoc[Camel JBang Testing plugin]
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-bind.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-bind.adoc
new file mode 100644
index 000000000000..65f946dcff88
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-bind.adoc
@@ -0,0 +1,29 @@
+
+= camel bind
+
+Bind source and sink Kamelets as a new Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel bind [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--error-handler` | Add error handler (none|log|sink:<endpoint>). Sink endpoints are expected in the format [[apigroup/]version:]kind:[namespace/]name, plain Camel URIs or Kamelet name. |  | String
+| `--output` | Output format generated by this command (supports: file, yaml or json). | file | String
+| `--property` | Adds a pipe property in the form of [source|sink|error-handler|step-<n>].<key>=<value> where <n> is the step number starting from 1 |  | String
+| `--sink` | Sink (to) such as a Kamelet or Camel endpoint uri |  | String
+| `--source` | Source (from) such as a Kamelet or Camel endpoint uri |  | String
+| `--step` | Optional steps such as a Kamelet or Camel endpoint uri |  | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-component.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-component.adoc
new file mode 100644
index 000000000000..158efa58b250
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-component.adoc
@@ -0,0 +1,35 @@
+
+= camel catalog component
+
+List components from the Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog component [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--display-gav` | Display Maven GAV instead of name | false | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter by name or description |  | String
+| `--json` | Output in JSON Format |  | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--since-after` | Filter by version more recent (inclusive) |  | String
+| `--since-before` | Filter by version older (inclusive) |  | String
+| `--sort` | Sort by name, support-level, or description | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-dataformat.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-dataformat.adoc
new file mode 100644
index 000000000000..746e61d21d18
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-dataformat.adoc
@@ -0,0 +1,35 @@
+
+= camel catalog dataformat
+
+List data formats from the Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog dataformat [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--display-gav` | Display Maven GAV instead of name | false | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter by name or description |  | String
+| `--json` | Output in JSON Format |  | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--since-after` | Filter by version more recent (inclusive) |  | String
+| `--since-before` | Filter by version older (inclusive) |  | String
+| `--sort` | Sort by name, support-level, or description | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-dev-console.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-dev-console.adoc
new file mode 100644
index 000000000000..e829a8b612fe
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-dev-console.adoc
@@ -0,0 +1,35 @@
+
+= camel catalog dev-console
+
+List dev-consoles from the Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog dev-console [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--display-gav` | Display Maven GAV instead of name | false | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter by name or description |  | String
+| `--json` | Output in JSON Format |  | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--since-after` | Filter by version more recent (inclusive) |  | String
+| `--since-before` | Filter by version older (inclusive) |  | String
+| `--sort` | Sort by name, support-level, or description | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-kamelet.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-kamelet.adoc
new file mode 100644
index 000000000000..cc7f16ab6d6a
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-kamelet.adoc
@@ -0,0 +1,27 @@
+
+= camel catalog kamelet
+
+List Kamelets from the Kamelet Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog kamelet [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter by name or description |  | String
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--sort` | Sort by name, type, support-level, or description | name | String
+| `--type,--filter-type` | Filter by type: source, sink, or action |  | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-language.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-language.adoc
new file mode 100644
index 000000000000..48faa5bcc69e
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-language.adoc
@@ -0,0 +1,35 @@
+
+= camel catalog language
+
+List expression languages from the Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog language [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--display-gav` | Display Maven GAV instead of name | false | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter by name or description |  | String
+| `--json` | Output in JSON Format |  | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--since-after` | Filter by version more recent (inclusive) |  | String
+| `--since-before` | Filter by version older (inclusive) |  | String
+| `--sort` | Sort by name, support-level, or description | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-other.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-other.adoc
new file mode 100644
index 000000000000..5bd2de592990
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-other.adoc
@@ -0,0 +1,35 @@
+
+= camel catalog other
+
+List miscellaneous components from the Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog other [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--display-gav` | Display Maven GAV instead of name | false | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter by name or description |  | String
+| `--json` | Output in JSON Format |  | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--since-after` | Filter by version more recent (inclusive) |  | String
+| `--since-before` | Filter by version older (inclusive) |  | String
+| `--sort` | Sort by name, support-level, or description | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-transformer.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-transformer.adoc
new file mode 100644
index 000000000000..35a3e4b46209
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog-transformer.adoc
@@ -0,0 +1,35 @@
+
+= camel catalog transformer
+
+List data type transformers from the Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog transformer [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--display-gav` | Display Maven GAV instead of name | false | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter by name or description |  | String
+| `--json` | Output in JSON Format |  | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--since-after` | Filter by version more recent (inclusive) |  | String
+| `--since-before` | Filter by version older (inclusive) |  | String
+| `--sort` | Sort by name, support-level, or description | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog.adoc
new file mode 100644
index 000000000000..c5a90abf43d8
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-catalog.adoc
@@ -0,0 +1,38 @@
+
+= camel catalog
+
+List artifacts from Camel Catalog
+
+
+== Usage
+
+[source,bash]
+----
+camel catalog [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-catalog-component.adoc[component] | List components from the Camel Catalog
+| xref:camel-jbang-catalog-dataformat.adoc[dataformat] | List data formats from the Camel Catalog
+| xref:camel-jbang-catalog-dev-console.adoc[dev-console] | List dev-consoles from the Camel Catalog
+| xref:camel-jbang-catalog-kamelet.adoc[kamelet] | List Kamelets from the Kamelet Catalog
+| xref:camel-jbang-catalog-language.adoc[language] | List expression languages from the Camel Catalog
+| xref:camel-jbang-catalog-other.adoc[other] | List miscellaneous components from the Camel Catalog
+| xref:camel-jbang-catalog-transformer.adoc[transformer] | List data type transformers from the Camel Catalog
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-browse.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-browse.adoc
new file mode 100644
index 000000000000..40c44f0b4a7a
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-browse.adoc
@@ -0,0 +1,38 @@
+
+= camel cmd browse
+
+Browse pending messages on endpoints
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd browse [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--body-max-chars` | Maximum size of the message body to include in the dump |  | int
+| `--dump` | Whether to include message dumps | false | boolean
+| `--endpoint` | Endpoint to browse messages from (can be uri, pattern, or refer to a route id) |  | String
+| `--fresh-size` | Whether to calculate fresh queue size information (performance overhead) | false | boolean
+| `--limit` | Limits the number of messages to dump per endpoint | 100 | int
+| `--logging-color` | Use colored logging | true | boolean
+| `--mask` | Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys |  | boolean
+| `--only-body` | Show only message body in browsed messages | false | boolean
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--show-body` | Show message body in browsed messages | true | boolean
+| `--show-headers` | Show message headers in browsed messages | true | boolean
+| `--sort` | Sort by uri, or size | uri | String
+| `--tail` | The number of messages from the end (latest) to dump |  | int
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-disable-processor.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-disable-processor.adoc
new file mode 100644
index 000000000000..d910244f4f32
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-disable-processor.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd disable-processor
+
+Disable Camel processor
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd disable-processor [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Processor ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-enable-processor.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-enable-processor.adoc
new file mode 100644
index 000000000000..5af6161a3cde
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-enable-processor.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd enable-processor
+
+Enable Camel processor
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd enable-processor [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Processor ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-gc.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-gc.adoc
new file mode 100644
index 000000000000..7672f20eaf93
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-gc.adoc
@@ -0,0 +1,23 @@
+
+= camel cmd gc
+
+Trigger Java Memory Garbage Collector
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd gc [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-load.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-load.adoc
new file mode 100644
index 000000000000..31f54962ea21
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-load.adoc
@@ -0,0 +1,25 @@
+
+= camel cmd load
+
+Loads new source files into an existing Camel
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd load [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--restart` | To force restart all routes after loading source files |  | boolean
+| `--source` | Source file(s) to load |  | List
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-logger.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-logger.adoc
new file mode 100644
index 000000000000..1863a5bfd481
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-logger.adoc
@@ -0,0 +1,26 @@
+
+= camel cmd logger
+
+List or change logging levels
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd logger [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--logger` | The logger name | root | String
+| `--logging-level` | To change logging level (${COMPLETION-CANDIDATES}) |  | String
+| `--sort` | Sort by pid, name or age | pid | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-receive.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-receive.adoc
new file mode 100644
index 000000000000..79859244391f
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-receive.adoc
@@ -0,0 +1,47 @@
+
+= camel cmd receive
+
+Receive and dump messages from remote endpoints
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd receive [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--action` | Action to start, stop, clear, status, or dump messages | status | String
+| `--compact` | Compact output (no empty line separating messages) | true | boolean
+| `--endpoint,--uri` | Endpoint to receive messages from (can be uri or pattern to refer to existing endpoint) |  | String
+| `--find` | Find and highlight matching text (ignore case). |  | String
+| `--follow` | Keep following and outputting new messages (press enter to exit). | true | boolean
+| `--grep` | Filter messages to only output matching text (ignore case). |  | String
+| `--logging-color` | Use colored logging | true | boolean
+| `--mask` | Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys |  | boolean
+| `--only-body` | Show only message body in received messages | false | boolean
+| `--output` | Output format (text or json) |  | String
+| `--prefix` | Print prefix with running Camel integration name. auto=only prefix when running multiple integrations. true=always prefix. false=prefix off. | auto | String
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--prop,--property` | Additional properties; override existing (only applicable when NOT using an existing running Camel) |  | String
+| `--properties` | comma separated list of properties file (only applicable when NOT using an existing running Camel) +  (ex. /path/to/file.properties,/path/to/other.properties |  | String
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--show-body` | Show message body in received messages | true | boolean
+| `--show-exchange-properties` | Show exchange properties in received messages | false | boolean
+| `--show-exchange-variables` | Show exchange variables in received messages | false | boolean
+| `--show-headers` | Show message headers in received messages | true | boolean
+| `--since` | Return messages newer than a relative duration like 5s, 2m, or 1h. The value is in seconds if no unit specified. |  | String
+| `--sort` | Sort by pid, name or age for showing status of messages | pid | String
+| `--tail` | The number of messages from the end to show. Use -1 to read from the beginning. Use 0 to read only new lines. Defaults to showing all messages from beginning. | -1 | int
+| `--timeout` | Timeout in millis waiting for message to be received | 20000 | long
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-reload.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-reload.adoc
new file mode 100644
index 000000000000..ff32f9a9fb44
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-reload.adoc
@@ -0,0 +1,23 @@
+
+= camel cmd reload
+
+Trigger reloading Camel
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd reload [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-reset-stats.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-reset-stats.adoc
new file mode 100644
index 000000000000..db3377e5d938
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-reset-stats.adoc
@@ -0,0 +1,23 @@
+
+= camel cmd reset-stats
+
+Reset performance statistics
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd reset-stats [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-resume-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-resume-route.adoc
new file mode 100644
index 000000000000..d205483e99ee
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-resume-route.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd resume-route
+
+Resume Camel routes
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd resume-route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Route ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-route-structure.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-route-structure.adoc
new file mode 100644
index 000000000000..cea73f2f2ec2
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-route-structure.adoc
@@ -0,0 +1,27 @@
+
+= camel cmd route-structure
+
+Dump Camel route structure
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd route-structure [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--brief` | To show less detailed route structure |  | boolean
+| `--filter` | Filter route by filename or route id (multiple names can be separated by comma) |  | String
+| `--raw` | To output raw without metadata |  | boolean
+| `--sort` | Sort route by name or id | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-send.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-send.adoc
new file mode 100644
index 000000000000..6d028d3c0133
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-send.adoc
@@ -0,0 +1,39 @@
+
+= camel cmd send
+
+Send messages to endpoints
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd send [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--body` | Message body to send (prefix with file: to refer to loading message body from file) |  | String
+| `--endpoint,--uri` | Endpoint where to send the message (can be uri, pattern, or refer to a route id) |  | String
+| `--header` | Message header (key=value) |  | List
+| `--logging-color` | Use colored logging | true | boolean
+| `--poll` | Poll instead of sending a message. This can be used to receive latest message from a Kafka topic or JMS queue. |  | boolean
+| `--pretty` | Pretty print response message body (InOut) when using JSon or XML format |  | boolean
+| `--prop,--property` | Additional properties; override existing (only applicable when NOT using an existing running Camel) |  | String
+| `--properties` | comma separated list of properties file (only applicable when NOT using an existing running Camel) +  (ex. /path/to/file.properties,/path/to/other.properties |  | String
+| `--reply` | Whether to expect a reply message (InOut vs InOut messaging style) |  | boolean
+| `--reply-file` | Saves reply message to the file with the given name (override if exists) |  | String
+| `--show-body` | Show message body from response message (InOut) | true | boolean
+| `--show-exception` | Show exception and stacktrace for failed messages | true | boolean
+| `--show-exchange-properties` | Show exchange properties from response message (InOut) | false | boolean
+| `--show-exchange-variables` | Show exchange variables from response message (InOut) | false | boolean
+| `--show-headers` | Show message headers from response message (InOut) | true | boolean
+| `--timeout` | Timeout in millis waiting for message to be sent (and reply message if InOut messaging) | 20000 | long
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-start-group.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-start-group.adoc
new file mode 100644
index 000000000000..ae019a5aa093
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-start-group.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd start-group
+
+Start Camel route groups
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd start-group [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Route ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-start-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-start-route.adoc
new file mode 100644
index 000000000000..f80d2228af5d
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-start-route.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd start-route
+
+Start Camel routes
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd start-route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Route ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stop-group.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stop-group.adoc
new file mode 100644
index 000000000000..2e650d2882bc
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stop-group.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd stop-group
+
+Stop Camel route groups
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd stop-group [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Route ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stop-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stop-route.adoc
new file mode 100644
index 000000000000..7d7035612e4c
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stop-route.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd stop-route
+
+Stop Camel routes
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd stop-route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Route ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stub.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stub.adoc
new file mode 100644
index 000000000000..bf5328c2b56e
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-stub.adoc
@@ -0,0 +1,37 @@
+
+= camel cmd stub
+
+Browse stub endpoints
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd stub [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--browse` | Whether to browse messages queued in the stub endpoints |  | boolean
+| `--compact` | Compact output (no empty line separating browsed messages) | true | boolean
+| `--filter` | Filter endpoints by queue name |  | String
+| `--find` | Find and highlight matching text (ignore case). |  | String
+| `--grep` | Filter browsing messages to only output trace matching text (ignore case). |  | String
+| `--limit` | Filter browsing queues by limiting to the given latest number of messages | 10 | int
+| `--logging-color` | Use colored logging | true | boolean
+| `--mask` | Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys |  | boolean
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--show-body` | Show message body in traced messages | true | boolean
+| `--show-headers` | Show message headers in traced messages | true | boolean
+| `--sort` | Sort by name, or total | name | String
+| `--top` | Whether to browse top (latest) messages queued in the stub endpoints | true | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-suspend-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-suspend-route.adoc
new file mode 100644
index 000000000000..e605d61fd072
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-suspend-route.adoc
@@ -0,0 +1,24 @@
+
+= camel cmd suspend-route
+
+Suspend Camel routes
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd suspend-route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--id` | Route ids (multiple ids can be separated by comma) | * | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-thread-dump.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-thread-dump.adoc
new file mode 100644
index 000000000000..00a7f91533af
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd-thread-dump.adoc
@@ -0,0 +1,29 @@
+
+= camel cmd thread-dump
+
+List threads in a running Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd thread-dump [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--depth` | Max depth of stack-trace | 1 | int
+| `--filter` | Filter thread names/ids (use all to include all threads) | Camel | String
+| `--sort` | Sort by id, name or state | id | String
+| `--state` | To only show threads for a given state |  | String
+| `--trace` | Include stack-traces | false | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd.adoc
new file mode 100644
index 000000000000..fd1fa37d1d87
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-cmd.adoc
@@ -0,0 +1,50 @@
+
+= camel cmd
+
+Performs commands in the running Camel integrations, such as start/stop route, or change logging levels.
+
+
+== Usage
+
+[source,bash]
+----
+camel cmd [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-cmd-browse.adoc[browse] | Browse pending messages on endpoints
+| xref:camel-jbang-cmd-disable-processor.adoc[disable-processor] | Disable Camel processor
+| xref:camel-jbang-cmd-enable-processor.adoc[enable-processor] | Enable Camel processor
+| xref:camel-jbang-cmd-gc.adoc[gc] | Trigger Java Memory Garbage Collector
+| xref:camel-jbang-cmd-load.adoc[load] | Loads new source files into an existing Camel
+| xref:camel-jbang-cmd-logger.adoc[logger] | List or change logging levels
+| xref:camel-jbang-cmd-receive.adoc[receive] | Receive and dump messages from remote endpoints
+| xref:camel-jbang-cmd-reload.adoc[reload] | Trigger reloading Camel
+| xref:camel-jbang-cmd-reset-stats.adoc[reset-stats] | Reset performance statistics
+| xref:camel-jbang-cmd-resume-route.adoc[resume-route] | Resume Camel routes
+| xref:camel-jbang-cmd-route-structure.adoc[route-structure] | Dump Camel route structure
+| xref:camel-jbang-cmd-send.adoc[send] | Send messages to endpoints
+| xref:camel-jbang-cmd-start-group.adoc[start-group] | Start Camel route groups
+| xref:camel-jbang-cmd-start-route.adoc[start-route] | Start Camel routes
+| xref:camel-jbang-cmd-stop-group.adoc[stop-group] | Stop Camel route groups
+| xref:camel-jbang-cmd-stop-route.adoc[stop-route] | Stop Camel routes
+| xref:camel-jbang-cmd-stub.adoc[stub] | Browse stub endpoints
+| xref:camel-jbang-cmd-suspend-route.adoc[suspend-route] | Suspend Camel routes
+| xref:camel-jbang-cmd-thread-dump.adoc[thread-dump] | List threads in a running Camel integration
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-commands.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-commands.adoc
new file mode 100644
index 000000000000..4ec36e9f26f7
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-commands.adoc
@@ -0,0 +1,43 @@
+
+// AUTO-GENERATED by camel-package-maven-plugin - DO NOT EDIT THIS FILE
+= Camel JBang Command Reference
+
+This page provides a reference for all Camel JBang CLI commands.
+
+TIP: You can also use `camel --help` or `camel <command> --help` to see available commands and options.
+
+== Commands
+
+[cols="2,5",options="header"]
+|===
+| Command | Description
+| xref:camel-jbang-bind.adoc[camel bind] | Bind source and sink Kamelets as a new Camel integration
+| xref:camel-jbang-catalog.adoc[camel catalog] | List artifacts from Camel Catalog
+| xref:camel-jbang-cmd.adoc[camel cmd] | Performs commands in the running Camel integrations, such as start/stop route, or change logging levels.
+| xref:camel-jbang-completion.adoc[camel completion] | Generate completion script for bash/zsh
+| xref:camel-jbang-config.adoc[camel config] | Get and set user configuration values
+| xref:camel-jbang-debug.adoc[camel debug] | Debug local Camel integration
+| xref:camel-jbang-dependency.adoc[camel dependency] | Displays all Camel dependencies required to run
+| xref:camel-jbang-dirty.adoc[camel dirty] | Check if there are dirty files from previous Camel runs that did not terminate gracefully
+| xref:camel-jbang-doc.adoc[camel doc] | Shows documentation for kamelet, component, and other Camel resources
+| xref:camel-jbang-export.adoc[camel export] | Export to other runtimes (Camel Main, Spring Boot, or Quarkus)
+| xref:camel-jbang-get.adoc[camel get] | Get status of Camel integrations
+| xref:camel-jbang-hawtio.adoc[camel hawtio] | Launch Hawtio web console
+| xref:camel-jbang-infra.adoc[camel infra] | List and Run external services for testing and prototyping
+| xref:camel-jbang-init.adoc[camel init] | Creates a new Camel integration
+| xref:camel-jbang-jolokia.adoc[camel jolokia] | Attach Jolokia JVM Agent to a running Camel integration
+| xref:camel-jbang-log.adoc[camel log] | Tail logs from running Camel integrations
+| xref:camel-jbang-nano.adoc[camel nano] | Nano editor to edit file
+| xref:camel-jbang-plugin.adoc[camel plugin] | Manage plugins that add sub-commands to this CLI
+| xref:camel-jbang-ps.adoc[camel ps] | List running Camel integrations
+| xref:camel-jbang-run.adoc[camel run] | Run as local Camel integration
+| xref:camel-jbang-sbom.adoc[camel sbom] | Generate a CycloneDX or SPDX SBOM for a specific project
+| xref:camel-jbang-script.adoc[camel script] | Run Camel integration as shell script for terminal scripting
+| xref:camel-jbang-shell.adoc[camel shell] | Interactive Camel JBang shell.
+| xref:camel-jbang-stop.adoc[camel stop] | Shuts down running Camel integrations
+| xref:camel-jbang-top.adoc[camel top] | Top status of Camel integrations
+| xref:camel-jbang-trace.adoc[camel trace] | Tail message traces from running Camel integrations
+| xref:camel-jbang-transform.adoc[camel transform] | Transform message or Camel routes
+| xref:camel-jbang-update.adoc[camel update] | Update Camel project
+| xref:camel-jbang-version.adoc[camel version] | Manage Camel versions
+|===
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-completion.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-completion.adoc
new file mode 100644
index 000000000000..16413f0f8ffe
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-completion.adoc
@@ -0,0 +1,23 @@
+
+= camel completion
+
+Generate completion script for bash/zsh
+
+
+== Usage
+
+[source,bash]
+----
+camel completion [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-config-get.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-get.adoc
new file mode 100644
index 000000000000..46bf41500f34
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-get.adoc
@@ -0,0 +1,24 @@
+
+= camel config get
+
+Display user configuration value
+
+
+== Usage
+
+[source,bash]
+----
+camel config get [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--global` | Use global or local configuration |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-config-list.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-list.adoc
new file mode 100644
index 000000000000..6ca30ddde0db
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-list.adoc
@@ -0,0 +1,24 @@
+
+= camel config list
+
+Displays user configuration
+
+
+== Usage
+
+[source,bash]
+----
+camel config list [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--global` | Use global or local configuration |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-config-set.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-set.adoc
new file mode 100644
index 000000000000..6bb82f434680
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-set.adoc
@@ -0,0 +1,24 @@
+
+= camel config set
+
+Set user configuration value
+
+
+== Usage
+
+[source,bash]
+----
+camel config set [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--global` | Use global or local configuration |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-config-unset.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-unset.adoc
new file mode 100644
index 000000000000..2ad7d4f208d9
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-config-unset.adoc
@@ -0,0 +1,24 @@
+
+= camel config unset
+
+Remove user configuration value
+
+
+== Usage
+
+[source,bash]
+----
+camel config unset [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--global` | Use global or local configurations |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-config.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-config.adoc
new file mode 100644
index 000000000000..56274c4f0709
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-config.adoc
@@ -0,0 +1,35 @@
+
+= camel config
+
+Get and set user configuration values
+
+
+== Usage
+
+[source,bash]
+----
+camel config [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-config-get.adoc[get] | Display user configuration value
+| xref:camel-jbang-config-list.adoc[list] | Displays user configuration
+| xref:camel-jbang-config-set.adoc[set] | Set user configuration value
+| xref:camel-jbang-config-unset.adoc[unset] | Remove user configuration value
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-debug.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-debug.adoc
new file mode 100644
index 000000000000..697f26f4c339
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-debug.adoc
@@ -0,0 +1,96 @@
+
+= camel debug
+
+Debug local Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel debug [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--ago` | Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp. |  | boolean
+| `--background` | Run in the background | false | boolean
+| `--background-wait` | To wait for run in background to startup successfully, before returning | true | boolean
+| `--backlog-trace` | Enables backlog tracing of the routed messages | false | boolean
+| `--breakpoint` | To set breakpoint at the given node id (Multiple ids can be separated by comma). If no breakpoint is set, then the first route is automatic selected. |  | String
+| `--camel-spring-boot-version` | To run using a different Camel Spring Boot version than the default version. |  | String
+| `--camel-version` | To run using a different Camel version than the default version. |  | String
+| `--code` | Run the given text or file as Java DSL routes |  | String
+| `--console` | Developer console at /q/dev on local HTTP server (port 8080 by default) | false | boolean
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--empty` | Run an empty Camel without loading source files | false | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version (used during exporting) |  | String
+| `--health` _(deprecated)_ | Deprecated: use --observe instead. Health check at /q/health on local HTTP server (port 8080 by default) | false | boolean
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--jfr` | Enables Java Flight Recorder saving recording to disk on exit | false | boolean
+| `--jfr-profile` | Java Flight Recorder profile to use (such as default or profile) |  | String
+| `--jvm-debug` | To enable JVM remote debugging on port 4004 by default. The supported values are true to  + enable the remote debugging, false to disable the remote debugging or a number to use a custom port |  | int
+| `--kamelets-version` | Apache Camel Kamelets version |  | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues) | false | boolean
+| `--local-kamelet-dir` | Local directory (or github link) for loading Kamelets (takes precedence). Multiple directories can be specified separated by comma. |  | String
+| `--log-lines` | Number of log lines to display on top of screen | 10 | int
+| `--logging` | Can be used to turn off logging | true | boolean
+| `--logging-category` | Used for individual logging levels (ex: org.apache.kafka=DEBUG) |  | List
+| `--logging-color` | Use colored logging | true | boolean
+| `--logging-config-path` | Path to file with custom logging configuration |  | String
+| `--logging-json` | Use JSON logging (ECS Layout) | false | boolean
+| `--logging-level` | Logging level (${COMPLETION-CANDIDATES}) | info | String
+| `--management-port` | To use a dedicated port for HTTP management (use 0 to dynamic assign a free random port number) |  | int
+| `--mask` | Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys |  | boolean
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--max-idle-seconds` | For how long time in seconds Camel can be idle before stopping | 0 | int
+| `--max-messages` | Max number of messages to process before stopping | 0 | int
+| `--max-seconds` | Max seconds to run before stopping | 0 | int
+| `--metrics` _(deprecated)_ | Deprecated: use --observe instead. Metrics (Micrometer and Prometheus) at /q/metrics on local HTTP server (port 8080 by default) | false | boolean
+| `--modeline` | Whether to support JBang style //DEPS to specify additional dependencies | true | boolean
+| `--name` | The name of the Camel application | CamelJBang | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--output` | File to store the current message body (will override). This allows for manual inspecting the message later. |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port (port 8080 by default; use 0 to dynamic assign a free random port number) |  | int
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--profile` | Profile to run (dev, test, or prod). | dev | String
+| `--prompt` | Allow user to type in required parameters in prompt if not present in application | false | boolean
+| `--prop,--property` | Additional properties (override existing) |  | String
+| `--properties` | comma separated list of properties file +  (ex. /path/to/file.properties,/path/to/other.properties |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--reload,--dev` | Enables dev mode (live reload when source files are updated and saved) |  | boolean
+| `--remote-attach` | Attaches debugger remotely to an existing running Camel integration. (Add camel-cli-debug JAR to the existing Camel application and run before attaching this debugger) |  | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) | camel-main | RuntimeType
+| `--show-body` | Show message body in debug messages | true | boolean
+| `--show-exception` | Show exception and stacktrace for failed messages | true | boolean
+| `--show-exchange-properties` | Show exchange properties in debug messages | false | boolean
+| `--show-exchange-variables` | Show exchange variables in debug messages | true | boolean
+| `--show-headers` | Show message headers in debug messages | true | boolean
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--source-dir` | Source directory for dynamically loading Camel file(s) to run. When using this, then files cannot be specified at the same time. |  | String
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--stop-on-exit` | Whether to stop the running Camel on exit | true | boolean
+| `--stub` | Stubs all the matching endpoint uri with the given component name or pattern. +  Multiple names can be separated by comma. (all = stub all endpoints). |  | String
+| `--timestamp` | Print timestamp. | true | boolean
+| `--trace` | Enables trace logging of the routed messages | false | boolean
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-copy.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-copy.adoc
new file mode 100644
index 000000000000..31f54b73753a
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-copy.adoc
@@ -0,0 +1,71 @@
+
+= camel dependency copy
+
+Copies all Camel dependencies required to run to a specific directory
+
+
+== Usage
+
+[source,bash]
+----
+camel dependency copy [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--build-property` | Maven/Gradle build properties, ex. --build-property=prop1=foo |  | List
+| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated) | maven | String
+| `--camel-spring-boot-version` | Camel version to use with Spring Boot |  | String
+| `--camel-version` | To export using a different Camel version than the default version. |  | String
+| `--clean-dir` | If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care) | false | boolean
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--dir,--directory` | Directory where the project will be exported | . | String
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version |  | String
+| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files in exported project | true | boolean
+| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main) | false | boolean
+| `--hawtio` | Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus) | false | boolean
+| `--hawtio-version` | Version of the Hawtio web console | HawtioVersion.HAWTIO_VERSION | String
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--java-version` | Java version | 21 | String
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues | true | boolean
+| `--local-kamelet-dir` | Local directory for loading Kamelets (takes precedence) |  | String
+| `--logging` | Can be used to turn on logging to console (logs by default to file in <user home>/.camel directory) | false | boolean
+| `--logging-level` | Logging level | info | String
+| `--main-classname` | The class name of the Camel Main application class | CamelApplication | String
+| `--management-port` | To use a dedicated port for HTTP management |  | int
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--maven-wrapper` | Include Maven Wrapper files in exported project | true | boolean
+| `--name` | The integration name. Use this when the name should not get derived otherwise. |  | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--output` | Output format (gav, maven, jbang) | gav | String
+| `--output-directory` | Directory where dependencies should be copied | lib | String
+| `--package-name` | For Java source files should they have the given package name. By default the package name is computed from the Maven GAV.  + Use false to turn off and not include package name in the Java source files. |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port |  | int
+| `--profile` | Profile to export (dev, test, or prod). |  | String
+| `--prop,--property` | Camel application properties, ex. --property=prop1=foo |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--quiet` | Will be quiet, only print when error occurs | false | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-list.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-list.adoc
new file mode 100644
index 000000000000..5bb35d65593b
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-list.adoc
@@ -0,0 +1,70 @@
+
+= camel dependency list
+
+Displays all Camel dependencies required to run
+
+
+== Usage
+
+[source,bash]
+----
+camel dependency list [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--build-property` | Maven/Gradle build properties, ex. --build-property=prop1=foo |  | List
+| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated) | maven | String
+| `--camel-spring-boot-version` | Camel version to use with Spring Boot |  | String
+| `--camel-version` | To export using a different Camel version than the default version. |  | String
+| `--clean-dir` | If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care) | false | boolean
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--dir,--directory` | Directory where the project will be exported | . | String
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version |  | String
+| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files in exported project | true | boolean
+| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main) | false | boolean
+| `--hawtio` | Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus) | false | boolean
+| `--hawtio-version` | Version of the Hawtio web console | HawtioVersion.HAWTIO_VERSION | String
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--java-version` | Java version | 21 | String
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues | true | boolean
+| `--local-kamelet-dir` | Local directory for loading Kamelets (takes precedence) |  | String
+| `--logging` | Can be used to turn on logging to console (logs by default to file in <user home>/.camel directory) | false | boolean
+| `--logging-level` | Logging level | info | String
+| `--main-classname` | The class name of the Camel Main application class | CamelApplication | String
+| `--management-port` | To use a dedicated port for HTTP management |  | int
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--maven-wrapper` | Include Maven Wrapper files in exported project | true | boolean
+| `--name` | The integration name. Use this when the name should not get derived otherwise. |  | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--output` | Output format (gav, maven, jbang) | gav | String
+| `--package-name` | For Java source files should they have the given package name. By default the package name is computed from the Maven GAV.  + Use false to turn off and not include package name in the Java source files. |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port |  | int
+| `--profile` | Profile to export (dev, test, or prod). |  | String
+| `--prop,--property` | Camel application properties, ex. --property=prop1=foo |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--quiet` | Will be quiet, only print when error occurs | false | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-runtime.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-runtime.adoc
new file mode 100644
index 000000000000..c274e18f4589
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-runtime.adoc
@@ -0,0 +1,26 @@
+
+= camel dependency runtime
+
+Display Camel runtime and version for given Maven project
+
+
+== Usage
+
+[source,bash]
+----
+camel dependency runtime [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--json` | Output in JSON Format |  | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-update.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-update.adoc
new file mode 100644
index 000000000000..43a2d69cf5d5
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency-update.adoc
@@ -0,0 +1,71 @@
+
+= camel dependency update
+
+Updates dependencies in Maven pom.xml or Java source file (JBang style)
+
+
+== Usage
+
+[source,bash]
+----
+camel dependency update [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--build-property` | Maven/Gradle build properties, ex. --build-property=prop1=foo |  | List
+| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated) | maven | String
+| `--camel-spring-boot-version` | Camel version to use with Spring Boot |  | String
+| `--camel-version` | To export using a different Camel version than the default version. |  | String
+| `--clean` | Regenerate list of dependencies (do not keep existing dependencies). Not supported for pom.xml |  | boolean
+| `--clean-dir` | If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care) | false | boolean
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--dir,--directory` | Directory where the project will be exported | . | String
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version |  | String
+| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files in exported project | true | boolean
+| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main) | false | boolean
+| `--hawtio` | Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus) | false | boolean
+| `--hawtio-version` | Version of the Hawtio web console | HawtioVersion.HAWTIO_VERSION | String
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--java-version` | Java version | 21 | String
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues | true | boolean
+| `--local-kamelet-dir` | Local directory for loading Kamelets (takes precedence) |  | String
+| `--logging` | Can be used to turn on logging to console (logs by default to file in <user home>/.camel directory) | false | boolean
+| `--logging-level` | Logging level | info | String
+| `--main-classname` | The class name of the Camel Main application class | CamelApplication | String
+| `--management-port` | To use a dedicated port for HTTP management |  | int
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--maven-wrapper` | Include Maven Wrapper files in exported project | true | boolean
+| `--name` | The integration name. Use this when the name should not get derived otherwise. |  | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--output` | Output format (gav, maven, jbang) | gav | String
+| `--package-name` | For Java source files should they have the given package name. By default the package name is computed from the Maven GAV.  + Use false to turn off and not include package name in the Java source files. |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port |  | int
+| `--profile` | Profile to export (dev, test, or prod). |  | String
+| `--prop,--property` | Camel application properties, ex. --property=prop1=foo |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--quiet` | Will be quiet, only print when error occurs | false | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency.adoc
new file mode 100644
index 000000000000..ebfac755c665
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-dependency.adoc
@@ -0,0 +1,35 @@
+
+= camel dependency
+
+Displays all Camel dependencies required to run
+
+
+== Usage
+
+[source,bash]
+----
+camel dependency [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-dependency-copy.adoc[copy] | Copies all Camel dependencies required to run to a specific directory
+| xref:camel-jbang-dependency-list.adoc[list] | Displays all Camel dependencies required to run
+| xref:camel-jbang-dependency-runtime.adoc[runtime] | Display Camel runtime and version for given Maven project
+| xref:camel-jbang-dependency-update.adoc[update] | Updates dependencies in Maven pom.xml or Java source file (JBang style)
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-dirty.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-dirty.adoc
new file mode 100644
index 000000000000..6442dffe39da
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-dirty.adoc
@@ -0,0 +1,24 @@
+
+= camel dirty
+
+Check if there are dirty files from previous Camel runs that did not terminate gracefully
+
+
+== Usage
+
+[source,bash]
+----
+camel dirty [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--clean` | Clean dirty files which are no longer in use | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-doc.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-doc.adoc
new file mode 100644
index 000000000000..1c69c0074d51
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-doc.adoc
@@ -0,0 +1,34 @@
+
+= camel doc
+
+Shows documentation for kamelet, component, and other Camel resources
+
+
+== Usage
+
+[source,bash]
+----
+camel doc [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--camel-version` | To use a different Camel version than the default version |  | String
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--filter` | Filter option listed in tables by name, description, or group |  | String
+| `--header` | Whether to display component message headers | false | boolean
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--open-url` | Opens the online documentation form the Camel website in the web browser | false | boolean
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--url` | Prints the link to the online documentation on the Camel website | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-export.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-export.adoc
new file mode 100644
index 000000000000..69ed25828576
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-export.adoc
@@ -0,0 +1,69 @@
+
+= camel export
+
+Export to other runtimes (Camel Main, Spring Boot, or Quarkus)
+
+
+== Usage
+
+[source,bash]
+----
+camel export [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--build-property` | Maven/Gradle build properties, ex. --build-property=prop1=foo |  | List
+| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated) | maven | String
+| `--camel-spring-boot-version` | Camel version to use with Spring Boot |  | String
+| `--camel-version` | To export using a different Camel version than the default version. |  | String
+| `--clean-dir` | If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care) | false | boolean
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--dir,--directory` | Directory where the project will be exported | . | String
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version |  | String
+| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files in exported project | true | boolean
+| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main) | false | boolean
+| `--hawtio` | Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus) | false | boolean
+| `--hawtio-version` | Version of the Hawtio web console | HawtioVersion.HAWTIO_VERSION | String
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--java-version` | Java version | 21 | String
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues | true | boolean
+| `--local-kamelet-dir` | Local directory for loading Kamelets (takes precedence) |  | String
+| `--logging` | Can be used to turn on logging to console (logs by default to file in <user home>/.camel directory) | false | boolean
+| `--logging-level` | Logging level | info | String
+| `--main-classname` | The class name of the Camel Main application class | CamelApplication | String
+| `--management-port` | To use a dedicated port for HTTP management |  | int
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--maven-wrapper` | Include Maven Wrapper files in exported project | true | boolean
+| `--name` | The integration name. Use this when the name should not get derived otherwise. |  | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--package-name` | For Java source files should they have the given package name. By default the package name is computed from the Maven GAV.  + Use false to turn off and not include package name in the Java source files. |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port |  | int
+| `--profile` | Profile to export (dev, test, or prod). |  | String
+| `--prop,--property` | Camel application properties, ex. --property=prop1=foo |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--quiet` | Will be quiet, only print when error occurs | false | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-bean.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-bean.adoc
new file mode 100644
index 000000000000..8b2e17d7a8c7
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-bean.adoc
@@ -0,0 +1,29 @@
+
+= camel get bean
+
+List beans in a running Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel get bean [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--dsl` | Include only beans from YAML or XML DSL | false | boolean
+| `--filter` | Filter beans names (use all to include all beans) | all | String
+| `--internal` | Include internal Camel beans | false | boolean
+| `--nulls` | Include null values | true | boolean
+| `--properties` | Show bean properties | true | boolean
+| `--sort` | Sort by name or type | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-blocked.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-blocked.adoc
new file mode 100644
index 000000000000..7bf07a1a9adb
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-blocked.adoc
@@ -0,0 +1,25 @@
+
+= camel get blocked
+
+Get blocked messages of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get blocked [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-circuit-breaker.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-circuit-breaker.adoc
new file mode 100644
index 000000000000..2f70b90eb95e
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-circuit-breaker.adoc
@@ -0,0 +1,25 @@
+
+= camel get circuit-breaker
+
+Get status of Circuit Breaker EIPs
+
+
+== Usage
+
+[source,bash]
+----
+camel get circuit-breaker [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-consumer.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-consumer.adoc
new file mode 100644
index 000000000000..de672b629342
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-consumer.adoc
@@ -0,0 +1,30 @@
+
+= camel get consumer
+
+Get status of Camel consumers
+
+
+== Usage
+
+[source,bash]
+----
+camel get consumer [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter consumers by URI |  | String
+| `--limit` | Filter consumers by limiting to the given number of rows |  | int
+| `--scheduled` | Filter consumer to only show scheduled based consumers |  | boolean
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-context.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-context.adoc
new file mode 100644
index 000000000000..15af71797725
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-context.adoc
@@ -0,0 +1,26 @@
+
+= camel get context
+
+Get status of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get context [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--remote` | Break down counters into remote/total pairs |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-count.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-count.adoc
new file mode 100644
index 000000000000..b16d71db59ca
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-count.adoc
@@ -0,0 +1,27 @@
+
+= camel get count
+
+Get total and failed exchanges
+
+
+== Usage
+
+[source,bash]
+----
+camel get count [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--fail` | Get the failed exchanges from a running integration |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--total` | Get the total exchanges from a running integration |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-endpoint.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-endpoint.adoc
new file mode 100644
index 000000000000..a5e66f2af448
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-endpoint.adoc
@@ -0,0 +1,31 @@
+
+= camel get endpoint
+
+Get usage of Camel endpoints
+
+
+== Usage
+
+[source,bash]
+----
+camel get endpoint [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter endpoints by URI |  | String
+| `--filter-direction` | Filter by direction (in or out) |  | String
+| `--filter-total` | Filter endpoints that must be higher than the given usage |  | long
+| `--limit` | Filter endpoints by limiting to the given number of rows |  | int
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--sort` | Sort by pid, name, age or total | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-event.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-event.adoc
new file mode 100644
index 000000000000..eb68b81180ae
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-event.adoc
@@ -0,0 +1,26 @@
+
+= camel get event
+
+Get latest events of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get event [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter event by event type: context, route, or exchange |  | String
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-groovy.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-groovy.adoc
new file mode 100644
index 000000000000..8deeaa69ef40
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-groovy.adoc
@@ -0,0 +1,25 @@
+
+= camel get groovy
+
+Groovy Sources used of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get groovy [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid or name | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-group.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-group.adoc
new file mode 100644
index 000000000000..cbfb8e2bdeae
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-group.adoc
@@ -0,0 +1,29 @@
+
+= camel get group
+
+Get status of Camel route groups
+
+
+== Usage
+
+[source,bash]
+----
+camel get group [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter groups by name |  | String
+| `--filter-mean` | Filter groups that must be slower than the given time (ms) |  | long
+| `--limit` | Filter groups by limiting to the given number of rows |  | int
+| `--running` | Only include running groups |  | boolean
+| `--sort` | Sort by pid, name, age or group | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-health.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-health.adoc
new file mode 100644
index 000000000000..1ac20c8ac2d0
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-health.adoc
@@ -0,0 +1,31 @@
+
+= camel get health
+
+Get health check status of running Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get health [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--depth` | Max depth of stack-trace | 1 | int
+| `--down` | Show only checks which are DOWN |  | boolean
+| `--level` | Level of details: full, or default | default | String
+| `--live` | Show only liveness checks |  | boolean
+| `--ready` | Show only readiness checks |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--trace` | Include stack-traces in error messages | false | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-history.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-history.adoc
new file mode 100644
index 000000000000..5bc1fc16618a
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-history.adoc
@@ -0,0 +1,38 @@
+
+= camel get history
+
+History of latest completed exchange
+
+
+== Usage
+
+[source,bash]
+----
+camel get history [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--ago` | Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp. |  | boolean
+| `--depth` | Depth of tracing. 0=Created+Completed. 1=All events on 1st route, 2=All events on 1st+2nd depth, and so on. 9 = all events on every depth. | 9 | int
+| `--it` | Interactive mode for enhanced history information |  | boolean
+| `--limit-split` | Limit Split to a maximum number of entries to be displayed |  | int
+| `--logging-color` | Use colored logging | true | boolean
+| `--mask` | Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys |  | boolean
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--show-body` | Show message body in debug messages | true | boolean
+| `--show-exception` | Show exception and stacktrace for failed messages | true | boolean
+| `--show-exchange-properties` | Show exchange properties in debug messages | false | boolean
+| `--show-exchange-variables` | Show exchange variables in debug messages | true | boolean
+| `--show-headers` | Show message headers in debug messages | true | boolean
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--timestamp` | Print timestamp. | true | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-inflight.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-inflight.adoc
new file mode 100644
index 000000000000..f2d6b16ca1cc
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-inflight.adoc
@@ -0,0 +1,25 @@
+
+= camel get inflight
+
+Get inflight messages of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get inflight [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-internal-task.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-internal-task.adoc
new file mode 100644
index 000000000000..0cd2459702e5
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-internal-task.adoc
@@ -0,0 +1,25 @@
+
+= camel get internal-task
+
+List internal tasks of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get internal-task [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-kafka.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-kafka.adoc
new file mode 100644
index 000000000000..735fed000c48
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-kafka.adoc
@@ -0,0 +1,28 @@
+
+= camel get kafka
+
+List Kafka consumers of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get kafka [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--committed` | Show committed offset (slower due to sync call to Kafka brokers) |  | boolean
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-metric.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-metric.adoc
new file mode 100644
index 000000000000..a83458bbd655
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-metric.adoc
@@ -0,0 +1,29 @@
+
+= camel get metric
+
+Get metrics (micrometer) of running Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get metric [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--all` | Whether to show all metrics (also unused with counter being 0) | false | boolean
+| `--custom` | Only show custom metrics | false | boolean
+| `--filter` | Filter metric by type, name or tags |  | String
+| `--sort` | Sort by pid, name or age | pid | String
+| `--tags` | Show metric tags | false | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-platform-http.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-platform-http.adoc
new file mode 100644
index 000000000000..7e48778b81ce
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-platform-http.adoc
@@ -0,0 +1,26 @@
+
+= camel get platform-http
+
+Get embedded HTTP services of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get platform-http [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--all` | Include management endpoints |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-processor.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-processor.adoc
new file mode 100644
index 000000000000..92675ca9a49e
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-processor.adoc
@@ -0,0 +1,35 @@
+
+= camel get processor
+
+Get status of Camel processors
+
+
+== Usage
+
+[source,bash]
+----
+camel get processor [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--description` | Include description in the ID column (if available) |  | boolean
+| `--filter` | Filter processors by id |  | String
+| `--filter-mean` | Filter processors that must be slower than the given time (ms) |  | long
+| `--group` | Filter processors by group |  | String
+| `--limit` | Filter routes by limiting to the given number of rows |  | int
+| `--note` | Include note in the ID column (if available) |  | boolean
+| `--remote` | Break down counters into remote/total pairs |  | boolean
+| `--running` | Only include running processors |  | boolean
+| `--show-group` | Include group column |  | boolean
+| `--sort` | Sort by pid or name | pid | String
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-producer.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-producer.adoc
new file mode 100644
index 000000000000..a603dc238e30
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-producer.adoc
@@ -0,0 +1,29 @@
+
+= camel get producer
+
+Get status of Camel producers
+
+
+== Usage
+
+[source,bash]
+----
+camel get producer [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter producers by URI |  | String
+| `--limit` | Filter producers by limiting to the given number of rows |  | int
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-properties.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-properties.adoc
new file mode 100644
index 000000000000..ab4f09301604
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-properties.adoc
@@ -0,0 +1,29 @@
+
+= camel get properties
+
+List configuration properties
+
+
+== Usage
+
+[source,bash]
+----
+camel get properties [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--internal` | Whether to include internal configuration |  | boolean
+| `--mask` | Whether to mask configuration values to avoid printing sensitive information such as password or access keys | true | boolean
+| `--sort` | Sort by pid, name or key | pid | String
+| `--startup` | List only startup configuration |  | boolean
+| `--verbose` | Whether to include more details |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-rest.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-rest.adoc
new file mode 100644
index 000000000000..f887ac82fba1
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-rest.adoc
@@ -0,0 +1,26 @@
+
+= camel get rest
+
+Get REST services of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get rest [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name or age | pid | String
+| `--verbose` | Show more details |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route-controller.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route-controller.adoc
new file mode 100644
index 000000000000..fa9f829d59f5
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route-controller.adoc
@@ -0,0 +1,28 @@
+
+= camel get route-controller
+
+List status of route controller
+
+
+== Usage
+
+[source,bash]
+----
+camel get route-controller [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--depth` | Max depth of stack-trace | 1 | int
+| `--header` | Include controller configuration details | true | boolean
+| `--sort` | Sort by id, or state | id | String
+| `--trace` | Include stack-traces in error messages | true | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route-dump.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route-dump.adoc
new file mode 100644
index 000000000000..cd95694df5fa
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route-dump.adoc
@@ -0,0 +1,28 @@
+
+= camel get route-dump
+
+Dump Camel route in XML or YAML format
+
+
+== Usage
+
+[source,bash]
+----
+camel get route-dump [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter route by filename or route id (multiple names can be separated by comma) |  | String
+| `--format` | Output format (xml, or yaml) | yaml | String
+| `--raw` | To output raw without metadata |  | boolean
+| `--sort` | Sort route by name or id | name | String
+| `--uri-as-parameters` | Whether to expand URIs into separated key/value parameters (only in use for YAML format) | true | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route.adoc
new file mode 100644
index 000000000000..f1d44114e51a
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-route.adoc
@@ -0,0 +1,37 @@
+
+= camel get route
+
+Get status of Camel routes
+
+
+== Usage
+
+[source,bash]
+----
+camel get route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--description` | Include description in the ID column (if available) |  | boolean
+| `--error` | Shows detailed information for routes that has error status |  | boolean
+| `--filter` | Filter routes by id, or url |  | String
+| `--filter-mean` | Filter routes that must be slower than the given time (ms) |  | long
+| `--group` | Filter routes by group |  | String
+| `--limit` | Filter routes by limiting to the given number of rows |  | int
+| `--note` | Include note in the ID column (if available) |  | boolean
+| `--running` | Only include running routes |  | boolean
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--show-group` | Include group column |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-service.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-service.adoc
new file mode 100644
index 000000000000..a68011770371
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-service.adoc
@@ -0,0 +1,28 @@
+
+= camel get service
+
+Get services of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get service [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--metadata` | Show service metadata (only available for some services) |  | boolean
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-source.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-source.adoc
new file mode 100644
index 000000000000..7c27357cf4b8
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-source.adoc
@@ -0,0 +1,25 @@
+
+= camel get source
+
+Display Camel route source code
+
+
+== Usage
+
+[source,bash]
+----
+camel get source [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter source by filename (multiple names can be separated by comma) |  | String
+| `--sort` | Sort source by name | name | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-startup-recorder.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-startup-recorder.adoc
new file mode 100644
index 000000000000..14effba1734e
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-startup-recorder.adoc
@@ -0,0 +1,25 @@
+
+= camel get startup-recorder
+
+Display startup recording
+
+
+== Usage
+
+[source,bash]
+----
+camel get startup-recorder [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by duration, or type |  | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-transformer.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-transformer.adoc
new file mode 100644
index 000000000000..a07fe8ab290a
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-transformer.adoc
@@ -0,0 +1,24 @@
+
+= camel get transformer
+
+Get list of data type transformers
+
+
+== Usage
+
+[source,bash]
+----
+camel get transformer [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name, age or total | pid | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-variable.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-variable.adoc
new file mode 100644
index 000000000000..7e4df0f84501
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-variable.adoc
@@ -0,0 +1,25 @@
+
+= camel get variable
+
+List variables of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get variable [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name or key | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get-vault.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-vault.adoc
new file mode 100644
index 000000000000..4e2acd2f526b
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get-vault.adoc
@@ -0,0 +1,25 @@
+
+= camel get vault
+
+List secrets from security vaults
+
+
+== Usage
+
+[source,bash]
+----
+camel get vault [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-get.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-get.adoc
new file mode 100644
index 000000000000..208996915b84
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-get.adoc
@@ -0,0 +1,62 @@
+
+= camel get
+
+Get status of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel get [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-get-bean.adoc[bean] | List beans in a running Camel integration
+| xref:camel-jbang-get-blocked.adoc[blocked] | Get blocked messages of Camel integrations
+| xref:camel-jbang-get-circuit-breaker.adoc[circuit-breaker] | Get status of Circuit Breaker EIPs
+| xref:camel-jbang-get-consumer.adoc[consumer] | Get status of Camel consumers
+| xref:camel-jbang-get-context.adoc[context] | Get status of Camel integrations
+| xref:camel-jbang-get-count.adoc[count] | Get total and failed exchanges
+| xref:camel-jbang-get-endpoint.adoc[endpoint] | Get usage of Camel endpoints
+| xref:camel-jbang-get-event.adoc[event] | Get latest events of Camel integrations
+| xref:camel-jbang-get-groovy.adoc[groovy] | Groovy Sources used of Camel integrations
+| xref:camel-jbang-get-group.adoc[group] | Get status of Camel route groups
+| xref:camel-jbang-get-health.adoc[health] | Get health check status of running Camel integrations
+| xref:camel-jbang-get-history.adoc[history] | History of latest completed exchange
+| xref:camel-jbang-get-inflight.adoc[inflight] | Get inflight messages of Camel integrations
+| xref:camel-jbang-get-internal-task.adoc[internal-task] | List internal tasks of Camel integrations
+| xref:camel-jbang-get-kafka.adoc[kafka] | List Kafka consumers of Camel integrations
+| xref:camel-jbang-get-metric.adoc[metric] | Get metrics (micrometer) of running Camel integrations
+| xref:camel-jbang-get-platform-http.adoc[platform-http] | Get embedded HTTP services of Camel integrations
+| xref:camel-jbang-get-processor.adoc[processor] | Get status of Camel processors
+| xref:camel-jbang-get-producer.adoc[producer] | Get status of Camel producers
+| xref:camel-jbang-get-properties.adoc[properties] | List configuration properties
+| xref:camel-jbang-get-rest.adoc[rest] | Get REST services of Camel integrations
+| xref:camel-jbang-get-route.adoc[route] | Get status of Camel routes
+| xref:camel-jbang-get-route-controller.adoc[route-controller] | List status of route controller
+| xref:camel-jbang-get-route-dump.adoc[route-dump] | Dump Camel route in XML or YAML format
+| xref:camel-jbang-get-service.adoc[service] | Get services of Camel integrations
+| xref:camel-jbang-get-source.adoc[source] | Display Camel route source code
+| xref:camel-jbang-get-startup-recorder.adoc[startup-recorder] | Display startup recording
+| xref:camel-jbang-get-transformer.adoc[transformer] | Get list of data type transformers
+| xref:camel-jbang-get-variable.adoc[variable] | List variables of Camel integrations
+| xref:camel-jbang-get-vault.adoc[vault] | List secrets from security vaults
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-hawtio.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-hawtio.adoc
new file mode 100644
index 000000000000..770f7d251d53
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-hawtio.adoc
@@ -0,0 +1,26 @@
+
+= camel hawtio
+
+Launch Hawtio web console
+
+
+== Usage
+
+[source,bash]
+----
+camel hawtio [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--openUrl` | To automatic open Hawtio web console in the web browser | true | boolean
+| `--port` | Port number to use for Hawtio web console (port 8888 by default) | 8888 | int
+| `--version` | Version of the Hawtio web console | HawtioVersion.HAWTIO_VERSION | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-get.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-get.adoc
new file mode 100644
index 000000000000..99af9448cabb
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-get.adoc
@@ -0,0 +1,24 @@
+
+= camel infra get
+
+Displays running service(s) information
+
+
+== Usage
+
+[source,bash]
+----
+camel infra get [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-list.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-list.adoc
new file mode 100644
index 000000000000..583b110be24b
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-list.adoc
@@ -0,0 +1,24 @@
+
+= camel infra list
+
+Displays available external services
+
+
+== Usage
+
+[source,bash]
+----
+camel infra list [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-log.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-log.adoc
new file mode 100644
index 000000000000..685d1daf9339
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-log.adoc
@@ -0,0 +1,24 @@
+
+= camel infra log
+
+Displays external service logs
+
+
+== Usage
+
+[source,bash]
+----
+camel infra log [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-ps.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-ps.adoc
new file mode 100644
index 000000000000..dc4ca6ec5020
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-ps.adoc
@@ -0,0 +1,24 @@
+
+= camel infra ps
+
+Displays running services
+
+
+== Usage
+
+[source,bash]
+----
+camel infra ps [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-run.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-run.adoc
new file mode 100644
index 000000000000..579a1d6f00db
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-run.adoc
@@ -0,0 +1,26 @@
+
+= camel infra run
+
+Run an external service
+
+
+== Usage
+
+[source,bash]
+----
+camel infra run [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--background` | Run in the background | false | boolean
+| `--json` | Output in JSON Format |  | boolean
+| `--log` | Log container output to console |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-stop.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-stop.adoc
new file mode 100644
index 000000000000..a8a8082cecbb
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra-stop.adoc
@@ -0,0 +1,25 @@
+
+= camel infra stop
+
+Shuts down running external services
+
+
+== Usage
+
+[source,bash]
+----
+camel infra stop [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `--kill` | To force killing the process (SIGKILL) |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-infra.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra.adoc
new file mode 100644
index 000000000000..9cc28681dd44
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-infra.adoc
@@ -0,0 +1,38 @@
+
+= camel infra
+
+List and Run external services for testing and prototyping
+
+
+== Usage
+
+[source,bash]
+----
+camel infra [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-infra-get.adoc[get] | Displays running service(s) information
+| xref:camel-jbang-infra-list.adoc[list] | Displays available external services
+| xref:camel-jbang-infra-log.adoc[log] | Displays external service logs
+| xref:camel-jbang-infra-ps.adoc[ps] | Displays running services
+| xref:camel-jbang-infra-run.adoc[run] | Run an external service
+| xref:camel-jbang-infra-stop.adoc[stop] | Shuts down running external services
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-init.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-init.adoc
new file mode 100644
index 000000000000..62016b3bdbcf
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-init.adoc
@@ -0,0 +1,29 @@
+
+= camel init
+
+Creates a new Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel init [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--clean-dir,--clean-directory` | Whether to clean directory first (deletes all files in directory) |  | boolean
+| `--dir,--directory` | Directory relative path where the new Camel integration will be saved | . | String
+| `--from-kamelet` | To be used when extending an existing Kamelet |  | String
+| `--kamelets-version` | Apache Camel Kamelets version |  | String
+| `--pipe` | When creating a yaml file should it be created as a Pipe CR |  | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-jolokia.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-jolokia.adoc
new file mode 100644
index 000000000000..32096daf7fda
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-jolokia.adoc
@@ -0,0 +1,25 @@
+
+= camel jolokia
+
+Attach Jolokia JVM Agent to a running Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel jolokia [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--port` | To use a specific port number when attaching Jolokia JVM Agent (default a free port is found in range 8778-9999) |  | int
+| `--stop` | Stops the Jolokia JVM Agent in the running Camel integration |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-log.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-log.adoc
new file mode 100644
index 000000000000..c758afbd2a0b
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-log.adoc
@@ -0,0 +1,32 @@
+
+= camel log
+
+Tail logs from running Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel log [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--find` | Find and highlight matching text (ignore case). |  | String
+| `--follow` | Keep following and outputting new log lines (press enter to exit). | true | boolean
+| `--grep` | Filter logs to only output lines matching text (ignore case). |  | String
+| `--logging-color` | Use colored logging | true | boolean
+| `--prefix` | Print prefix with running Camel integration name. auto=only prefix when running multiple integrations. true=always prefix. false=prefix off. | auto | String
+| `--since` | Return logs newer than a relative duration like 5s, 2m, or 1h. The value is in seconds if no unit specified. |  | String
+| `--startup` | Only shows logs from the starting phase to make it quick to look at how Camel was started. | false | boolean
+| `--tail` | The number of lines from the end of the logs to show. Use -1 to read from the beginning. Use 0 to read only new lines. Defaults to showing all logs from beginning. | -1 | int
+| `--timestamp` | Print timestamp. | true | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-nano.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-nano.adoc
new file mode 100644
index 000000000000..8906f3f8ac83
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-nano.adoc
@@ -0,0 +1,23 @@
+
+= camel nano
+
+Nano editor to edit file
+
+
+== Usage
+
+[source,bash]
+----
+camel nano [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-add.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-add.adoc
new file mode 100644
index 000000000000..3af00c1201a5
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-add.adoc
@@ -0,0 +1,31 @@
+
+= camel plugin add
+
+Add new plugin
+
+
+== Usage
+
+[source,bash]
+----
+camel plugin add [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--artifactId` | Maven artifactId |  | String
+| `--command` | The command that the plugin uses |  | String
+| `--description` | A short description of the plugin |  | String
+| `--first-version` | First version of this plugin | ${camel-version} | String
+| `--gav` | Maven group and artifact coordinates. |  | String
+| `--groupId` | Maven groupId | org.apache.camel | String
+| `--repo,--repos` | Additional maven repositories to use for downloading the plugin (Use commas to separate multiple repositories) |  | String
+| `--version` | Maven artifact version | ${camel-version} | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-delete.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-delete.adoc
new file mode 100644
index 000000000000..8d36a4321d43
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-delete.adoc
@@ -0,0 +1,23 @@
+
+= camel plugin delete
+
+Removes a plugin
+
+
+== Usage
+
+[source,bash]
+----
+camel plugin delete [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-get.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-get.adoc
new file mode 100644
index 000000000000..7ee7fb0e8795
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin-get.adoc
@@ -0,0 +1,25 @@
+
+= camel plugin get
+
+Display available plugins
+
+
+== Usage
+
+[source,bash]
+----
+camel plugin get [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--all` | Display all available plugins | false | boolean
+| `--repos` | Display maven repository column | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin.adoc
new file mode 100644
index 000000000000..0f65e5699701
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-plugin.adoc
@@ -0,0 +1,34 @@
+
+= camel plugin
+
+Manage plugins that add sub-commands to this CLI
+
+
+== Usage
+
+[source,bash]
+----
+camel plugin [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-plugin-add.adoc[add] | Add new plugin
+| xref:camel-jbang-plugin-delete.adoc[delete] | Removes a plugin
+| xref:camel-jbang-plugin-get.adoc[get] | Display available plugins
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-ps.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-ps.adoc
new file mode 100644
index 000000000000..d2db52a8a5a2
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-ps.adoc
@@ -0,0 +1,28 @@
+
+= camel ps
+
+List running Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel ps [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `--pid` | List only pid in the output |  | boolean
+| `--remote` | Break down counters into remote/total pairs |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-run.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-run.adoc
new file mode 100644
index 000000000000..3ae1fd231072
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-run.adoc
@@ -0,0 +1,82 @@
+
+// AUTO-GENERATED by camel-package-maven-plugin - DO NOT EDIT THIS FILE
+= camel run
+
+Run as local Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel run [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--background` | Run in the background | false | boolean
+| `--background-wait` | To wait for run in background to startup successfully, before returning | true | boolean
+| `--backlog-trace` | Enables backlog tracing of the routed messages | false | boolean
+| `--camel-spring-boot-version` | To run using a different Camel Spring Boot version than the default version. |  | String
+| `--camel-version` | To run using a different Camel version than the default version. |  | String
+| `--code` | Run the given text or file as Java DSL routes |  | String
+| `--console` | Developer console at /q/dev on local HTTP server (port 8080 by default) | false | boolean
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--empty` | Run an empty Camel without loading source files | false | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version (used during exporting) |  | String
+| `--health` _(deprecated)_ | Deprecated: use --observe instead. Health check at /q/health on local HTTP server (port 8080 by default) | false | boolean
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--jfr` | Enables Java Flight Recorder saving recording to disk on exit | false | boolean
+| `--jfr-profile` | Java Flight Recorder profile to use (such as default or profile) |  | String
+| `--jvm-debug` | To enable JVM remote debugging on port 4004 by default. The supported values are true to  + enable the remote debugging, false to disable the remote debugging or a number to use a custom port |  | int
+| `--kamelets-version` | Apache Camel Kamelets version |  | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues) | false | boolean
+| `--local-kamelet-dir` | Local directory (or github link) for loading Kamelets (takes precedence). Multiple directories can be specified separated by comma. |  | String
+| `--logging` | Can be used to turn off logging | true | boolean
+| `--logging-category` | Used for individual logging levels (ex: org.apache.kafka=DEBUG) |  | List
+| `--logging-color` | Use colored logging | true | boolean
+| `--logging-config-path` | Path to file with custom logging configuration |  | String
+| `--logging-json` | Use JSON logging (ECS Layout) | false | boolean
+| `--logging-level` | Logging level (${COMPLETION-CANDIDATES}) | info | String
+| `--management-port` | To use a dedicated port for HTTP management (use 0 to dynamic assign a free random port number) |  | int
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--max-idle-seconds` | For how long time in seconds Camel can be idle before stopping | 0 | int
+| `--max-messages` | Max number of messages to process before stopping | 0 | int
+| `--max-seconds` | Max seconds to run before stopping | 0 | int
+| `--metrics` _(deprecated)_ | Deprecated: use --observe instead. Metrics (Micrometer and Prometheus) at /q/metrics on local HTTP server (port 8080 by default) | false | boolean
+| `--modeline` | Whether to support JBang style //DEPS to specify additional dependencies | true | boolean
+| `--name` | The name of the Camel application | CamelJBang | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port (port 8080 by default; use 0 to dynamic assign a free random port number) |  | int
+| `--profile` | Profile to run (dev, test, or prod). | dev | String
+| `--prompt` | Allow user to type in required parameters in prompt if not present in application | false | boolean
+| `--prop,--property` | Additional properties (override existing) |  | String
+| `--properties` | comma separated list of properties file +  (ex. /path/to/file.properties,/path/to/other.properties |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--reload,--dev` | Enables dev mode (live reload when source files are updated and saved) |  | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) | camel-main | RuntimeType
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--source-dir` | Source directory for dynamically loading Camel file(s) to run. When using this, then files cannot be specified at the same time. |  | String
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--stub` | Stubs all the matching endpoint uri with the given component name or pattern. +  Multiple names can be separated by comma. (all = stub all endpoints). |  | String
+| `--trace` | Enables trace logging of the routed messages | false | boolean
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-sbom.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-sbom.adoc
new file mode 100644
index 000000000000..818ea760f110
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-sbom.adoc
@@ -0,0 +1,75 @@
+
+= camel sbom
+
+Generate a CycloneDX or SPDX SBOM for a specific project
+
+
+== Usage
+
+[source,bash]
+----
+camel sbom [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--build-property` | Maven/Gradle build properties, ex. --build-property=prop1=foo |  | List
+| `--build-tool` _(deprecated)_ | DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated) | maven | String
+| `--camel-spring-boot-version` | Camel version to use with Spring Boot |  | String
+| `--camel-version` | To export using a different Camel version than the default version. |  | String
+| `--clean-dir` | If exporting to current directory (default) then all existing files are preserved. Enabling this option will force cleaning current directory including all sub dirs (use this with care) | false | boolean
+| `--cyclonedx-plugin-version` | The CycloneDX Maven Plugin version | 2.9.1 | String
+| `--dep,--dependency` | Add additional dependencies |  | List
+| `--dir,--directory` | Directory where the project will be exported | . | String
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--exclude` | Exclude files by name or pattern |  | List
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--gav` | The Maven group:artifact:version |  | String
+| `--gradle-wrapper` _(deprecated)_ | DEPRECATED: Include Gradle Wrapper files in exported project | true | boolean
+| `--groovy-pre-compiled` | Whether to include pre-compiled Groovy classes in the export (only supported with runtime=camel-main) | false | boolean
+| `--hawtio` | Whether to include Hawtio web console (only available for exporting to Spring Boot or Quarkus) | false | boolean
+| `--hawtio-version` | Version of the Hawtio web console | HawtioVersion.HAWTIO_VERSION | String
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) | false | boolean
+| `--java-version` | Java version | 21 | String
+| `--kamelets-version` | Apache Camel Kamelets version | RuntimeType.KAMELETS_VERSION | String
+| `--lazy-bean` | Whether to use lazy bean initialization (can help with complex classloading issues | true | boolean
+| `--local-kamelet-dir` | Local directory for loading Kamelets (takes precedence) |  | String
+| `--logging` | Can be used to turn on logging to console (logs by default to file in <user home>/.camel directory) | false | boolean
+| `--logging-level` | Logging level | info | String
+| `--main-classname` | The class name of the Camel Main application class | CamelApplication | String
+| `--management-port` | To use a dedicated port for HTTP management |  | int
+| `--maven-apache-snapshot-enabled` | Whether downloading JARs from ASF Maven Snapshot repository is enabled | true | boolean
+| `--maven-central-enabled` | Whether downloading JARs from Maven Central repository is enabled | true | boolean
+| `--maven-settings` | Optional location of Maven settings.xml file to configure servers, repositories, mirrors and proxies. +  If set to false, not even the default ~/.m2/settings.xml will be used. |  | String
+| `--maven-settings-security` | Optional location of Maven settings-security.xml file to decrypt settings.xml |  | String
+| `--maven-wrapper` | Include Maven Wrapper files in exported project | true | boolean
+| `--name` | The integration name. Use this when the name should not get derived otherwise. |  | String
+| `--observe` | Enable observability services | false | boolean
+| `--open-api` | Adds an OpenAPI spec from the given file (json or yaml file) |  | String
+| `--output-directory` | Directory where the SBOM will be saved | . | String
+| `--output-name` | Output name of the SBOM file | sbom | String
+| `--package-name` | For Java source files should they have the given package name. By default the package name is computed from the Maven GAV.  + Use false to turn off and not include package name in the Java source files. |  | String
+| `--package-scan-jars` | Whether to automatic package scan JARs for custom Spring or Quarkus beans making them available for Camel JBang | false | boolean
+| `--port` | Embeds a local HTTP server on this port |  | int
+| `--profile` | Profile to export (dev, test, or prod). |  | String
+| `--prop,--property` | Camel application properties, ex. --property=prop1=foo |  | String
+| `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | String
+| `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform | String
+| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION | String
+| `--quiet` | Will be quiet, only print when error occurs | false | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `--sbom-format` | The SBOM format, possible values are cyclonedx or spdx | CYCLONEDX_FORMAT | String
+| `--sbom-output-format` | The SBOM output format, possible values are json or xml | SBOM_JSON_FORMAT | String
+| `--skip-plugins` | Skip plugins during export | false | boolean
+| `--spdx-plugin-version` | The SPDX Maven Plugin version | 0.7.4 | String
+| `--spring-boot-version` | Spring Boot version | RuntimeType.SPRING_BOOT_VERSION | String
+| `--verbose` | Verbose output of startup activity (dependency resolution and downloading | false | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-script.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-script.adoc
new file mode 100644
index 000000000000..6c39a99bc921
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-script.adoc
@@ -0,0 +1,30 @@
+
+= camel script
+
+Run Camel integration as shell script for terminal scripting
+
+
+== Usage
+
+[source,bash]
+----
+camel script [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--logging` | Can be used to turn on logging (logs to file in <user home>/.camel directory) | false | boolean
+| `--logging-level` | Logging level (${COMPLETION-CANDIDATES}) | info | String
+| `--max-idle-seconds` | For how long time in seconds Camel can be idle before stopping | 1 | int
+| `--max-messages` | Max number of messages to process before stopping | 0 | int
+| `--max-seconds` | Max seconds to run before stopping | 0 | int
+| `--prop,--property` | Additional properties (override existing) |  | String
+| `--properties` | Load properties file for route placeholders (ex. /path/to/file.properties |  | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-shell.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-shell.adoc
new file mode 100644
index 000000000000..e91635d5e943
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-shell.adoc
@@ -0,0 +1,23 @@
+
+= camel shell
+
+Interactive Camel JBang shell.
+
+
+== Usage
+
+[source,bash]
+----
+camel shell [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-stop.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-stop.adoc
new file mode 100644
index 000000000000..72bb7823e46c
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-stop.adoc
@@ -0,0 +1,24 @@
+
+= camel stop
+
+Shuts down running Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel stop [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--kill` | To force killing the process (SIGKILL) |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-top-context.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-context.adoc
new file mode 100644
index 000000000000..45d7b15b3895
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-context.adoc
@@ -0,0 +1,25 @@
+
+= camel top context
+
+Top status of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel top context [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--sort` | Sort by pid, name, mem, or age | mem | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-top-group.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-group.adoc
new file mode 100644
index 000000000000..619d2d8c26c3
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-group.adoc
@@ -0,0 +1,29 @@
+
+= camel top group
+
+Top performing route groups
+
+
+== Usage
+
+[source,bash]
+----
+camel top group [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter` | Filter groups by name |  | String
+| `--filter-mean` | Filter groups that must be slower than the given time (ms) |  | long
+| `--limit` | Filter groups by limiting to the given number of rows |  | int
+| `--running` | Only include running groups |  | boolean
+| `--sort` | Sort by pid, name, age or group | pid | String
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-top-processor.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-processor.adoc
new file mode 100644
index 000000000000..6dcafeef18b7
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-processor.adoc
@@ -0,0 +1,35 @@
+
+= camel top processor
+
+Top performing processors
+
+
+== Usage
+
+[source,bash]
+----
+camel top processor [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--description` | Include description in the ID column (if available) |  | boolean
+| `--filter` | Filter processors by id |  | String
+| `--filter-mean` | Filter processors that must be slower than the given time (ms) |  | long
+| `--group` | Filter processors by group |  | String
+| `--limit` | Filter routes by limiting to the given number of rows |  | int
+| `--note` | Include note in the ID column (if available) |  | boolean
+| `--remote` | Break down counters into remote/total pairs |  | boolean
+| `--running` | Only include running processors |  | boolean
+| `--show-group` | Include group column |  | boolean
+| `--sort` | Sort by pid or name | pid | String
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-top-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-route.adoc
new file mode 100644
index 000000000000..9a29fb2dabae
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-route.adoc
@@ -0,0 +1,37 @@
+
+= camel top route
+
+Top performing routes
+
+
+== Usage
+
+[source,bash]
+----
+camel top route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--description` | Include description in the ID column (if available) |  | boolean
+| `--error` | Shows detailed information for routes that has error status |  | boolean
+| `--filter` | Filter routes by id, or url |  | String
+| `--filter-mean` | Filter routes that must be slower than the given time (ms) |  | long
+| `--group` | Filter routes by group |  | String
+| `--limit` | Filter routes by limiting to the given number of rows |  | int
+| `--note` | Include note in the ID column (if available) |  | boolean
+| `--running` | Only include running routes |  | boolean
+| `--short-uri` | List endpoint URI without query parameters (short) |  | boolean
+| `--show-group` | Include group column |  | boolean
+| `--sort` | Sort by pid, name or age | pid | String
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `--wide-uri` | List endpoint URI in full details |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-top-source.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-source.adoc
new file mode 100644
index 000000000000..9da88dfce1ca
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-top-source.adoc
@@ -0,0 +1,26 @@
+
+= camel top source
+
+List top processors (source) in a running Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel top source [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--filter-mean` | Filter processors that must be slower than the given time (ms) |  | long
+| `--limit` | Filter processors by limiting to the given number of rows |  | int
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-top.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-top.adoc
new file mode 100644
index 000000000000..c39abe42ffa5
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-top.adoc
@@ -0,0 +1,37 @@
+
+= camel top
+
+Top status of Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel top [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-top-context.adoc[context] | Top status of Camel integrations
+| xref:camel-jbang-top-group.adoc[group] | Top performing route groups
+| xref:camel-jbang-top-processor.adoc[processor] | Top performing processors
+| xref:camel-jbang-top-route.adoc[route] | Top performing routes
+| xref:camel-jbang-top-source.adoc[source] | List top processors (source) in a running Camel integration
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-trace.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-trace.adoc
new file mode 100644
index 000000000000..8ac1fc64a49d
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-trace.adoc
@@ -0,0 +1,45 @@
+
+= camel trace
+
+Tail message traces from running Camel integrations
+
+
+== Usage
+
+[source,bash]
+----
+camel trace [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--action` | Action to start, stop, clear, list status, or dump traces | status | String
+| `--ago` | Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp. |  | boolean
+| `--compact` | Compact output (no empty line separating traced messages) | true | boolean
+| `--depth` | Depth of tracing. 0=Created+Completed. 1=All events on 1st route, 2=All events on 1st+2nd depth, and so on. 9 = all events on every depth. | 9 | int
+| `--find` | Find and highlight matching text (ignore case). |  | String
+| `--follow` | Keep following and outputting new traces (press enter to exit). | true | boolean
+| `--grep` | Filter traces to only output trace matching text (ignore case). |  | String
+| `--latest` | Only output traces from the latest (follow if necessary until complete and exit) |  | boolean
+| `--logging-color` | Use colored logging | true | boolean
+| `--mask` | Whether to mask endpoint URIs to avoid printing sensitive information such as password or access keys |  | boolean
+| `--prefix` | Print prefix with running Camel integration name. auto=only prefix when running multiple integrations. true=always prefix. false=prefix off. | auto | String
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--show-body` | Show message body in traced messages | true | boolean
+| `--show-exception` | Show exception and stacktrace for failed messages | true | boolean
+| `--show-exchange-properties` | Show exchange properties in traced messages | false | boolean
+| `--show-exchange-variables` | Show exchange variables in traced messages | true | boolean
+| `--show-headers` | Show message headers in traced messages | true | boolean
+| `--since` | Return traces newer than a relative duration like 5s, 2m, or 1h. The value is in seconds if no unit specified. |  | String
+| `--sort` | Sort by pid, name or age for showing status of tracing | pid | String
+| `--source` | Prefer to display source filename/code instead of IDs |  | boolean
+| `--tail` | The number of traces from the end of the trace to show. Use -1 to read from the beginning. Use 0 to read only new lines. Defaults to showing all traces from beginning. | -1 | int
+| `--timestamp` | Print timestamp. | true | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-transform-message.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-transform-message.adoc
new file mode 100644
index 000000000000..4757f9114bfd
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-transform-message.adoc
@@ -0,0 +1,42 @@
+
+= camel transform message
+
+Transform message from one format to another via an existing running Camel integration
+
+
+== Usage
+
+[source,bash]
+----
+camel transform message [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--body` | Message body to send (prefix with file: to refer to loading message body from file) |  | String
+| `--camel-version` | To run using a different Camel version than the default version. |  | String
+| `--component` | The component to use for message transformation |  | String
+| `--dataformat` | The dataformat to use for message transformation |  | String
+| `--header` | Message header (key=value) |  | List
+| `--language` | The language to use for message transformation |  | String
+| `--logging-color` | Use colored logging | true | boolean
+| `--option` | Option for additional configuration of the used language, component or dataformat (key=value) |  | List
+| `--output` | File to store output. If none provide then output is printed to console. |  | String
+| `--pretty` | Pretty print message body when using JSon or XML format |  | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--show-body` | Show message body from the output message | true | boolean
+| `--show-exception` | Show exception and stacktrace for failed transformation | true | boolean
+| `--show-exchange-properties` | Show exchange properties from the output message | false | boolean
+| `--show-headers` | Show message headers from the output message | true | boolean
+| `--source` | Instead of using external template file then refer to an existing Camel route source with inlined Camel language expression in a route. (use :line-number or :id to refer to the exact location of the EIP to use) |  | String
+| `--template` | The template to use for message transformation (prefix with file: to refer to loading message body from file) |  | String
+| `--timeout` | Timeout in millis waiting for message to be transformed | 20000 | long
+| `--watch` | Execute periodically and showing output fullscreen |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-transform-route.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-transform-route.adoc
new file mode 100644
index 000000000000..5302d17930de
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-transform-route.adoc
@@ -0,0 +1,28 @@
+
+= camel transform route
+
+Transform Camel routes to XML or YAML format
+
+
+== Usage
+
+[source,bash]
+----
+camel transform route [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--format` | Output format (xml or yaml), if only yaml files are provided, the format defaults to xml and vice versa |  | String
+| `--ignore-loading-error` | Whether to ignore route loading and compilation errors (use this with care!) |  | boolean
+| `--output` | File or directory to store transformed files. If none provide then output is printed to console. |  | String
+| `--resolve-placeholders` | Whether to resolve property placeholders in the dumped output | false | boolean
+| `--uri-as-parameters` | Whether to expand URIs into separated key/value parameters (only in use for YAML format) | true | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-transform.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-transform.adoc
new file mode 100644
index 000000000000..d6ab41988182
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-transform.adoc
@@ -0,0 +1,33 @@
+
+= camel transform
+
+Transform message or Camel routes
+
+
+== Usage
+
+[source,bash]
+----
+camel transform [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-transform-message.adoc[message] | Transform message from one format to another via an existing running Camel integration
+| xref:camel-jbang-transform-route.adoc[route] | Transform Camel routes to XML or YAML format
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-update-list.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-update-list.adoc
new file mode 100644
index 000000000000..4d79764f9272
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-update-list.adoc
@@ -0,0 +1,26 @@
+
+= camel update list
+
+List available update versions for Camel and its runtime variants
+
+
+== Usage
+
+[source,bash]
+----
+camel update list [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--json` | Output in JSON Format |  | boolean
+| `--repo,--repos` | Additional maven repositories for download on-demand (Use commas to separate multiple repositories) |  | String
+| `--use-cache` | Use Maven cache |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-update-run.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-update-run.adoc
new file mode 100644
index 000000000000..5999bc93e67d
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-update-run.adoc
@@ -0,0 +1,23 @@
+
+= camel update run
+
+Update Camel project
+
+
+== Usage
+
+[source,bash]
+----
+camel update run [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-update.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-update.adoc
new file mode 100644
index 000000000000..2e7f9e3adfac
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-update.adoc
@@ -0,0 +1,33 @@
+
+= camel update
+
+Update Camel project
+
+
+== Usage
+
+[source,bash]
+----
+camel update [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-update-list.adoc[list] | List available update versions for Camel and its runtime variants
+| xref:camel-jbang-update-run.adoc[run] | Update Camel project
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-version-get.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-version-get.adoc
new file mode 100644
index 000000000000..c0d4984de53d
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-version-get.adoc
@@ -0,0 +1,24 @@
+
+= camel version get
+
+Displays current Camel version
+
+
+== Usage
+
+[source,bash]
+----
+camel version get [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--global` | Use global or local configuration |  | boolean
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-version-list.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-version-list.adoc
new file mode 100644
index 000000000000..6af54c20f44f
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-version-list.adoc
@@ -0,0 +1,40 @@
+
+= camel version list
+
+Displays available Camel versions
+
+
+== Usage
+
+[source,bash]
+----
+camel version list [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--date-format` | The format to show the date (such as dd-MM-yyyy) | DEFAULT_DATE_FORMAT | String
+| `--days` | Whether to include days since release | true | boolean
+| `--download` | Whether to allow automatic downloading JAR dependencies (over the internet) | true | boolean
+| `--eol` | Include releases that are end-of-life | true | boolean
+| `--fresh` | Make sure we use fresh (i.e. non-cached) resources | false | boolean
+| `--from-date` | Filter by release date (inclusive) |  | String
+| `--from-version` | Filter by Camel version (inclusive). Will start from 4.0 if no version ranges provided. |  | String
+| `--json` | Output in JSON Format | false | boolean
+| `--lts` | Only show LTS supported releases | false | boolean
+| `--patch` | Whether to include patch releases (x.y.z) | true | boolean
+| `--rc` | Include also milestone or RC releases | false | boolean
+| `--repo,--repos` | Additional maven repositories (Use commas to separate multiple repositories) |  | String
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) | camel-main | RuntimeType
+| `--sort` | Sort by (version, date, or days) | version | String
+| `--tail` | The number of lines from the end of the table to show. |  | int
+| `--to-date` | Filter by release date (exclusive) |  | String
+| `--to-version` | Filter by Camel version (exclusive) |  | String
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-version-set.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-version-set.adoc
new file mode 100644
index 000000000000..1b8876a8ea01
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-version-set.adoc
@@ -0,0 +1,27 @@
+
+= camel version set
+
+Set/change current Camel version
+
+
+== Usage
+
+[source,bash]
+----
+camel version set [options]
+----
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `--global` | Use global or local configuration |  | boolean
+| `--repo,--repos` | Maven repository for downloading the dependencies (Use commas to separate multiple repositories) |  | String
+| `--reset` | Reset by removing any custom version settings |  | boolean
+| `--runtime` | Runtime (${COMPLETION-CANDIDATES}) |  | RuntimeType
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-version.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-version.adoc
new file mode 100644
index 000000000000..0e2a4276a46c
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-version.adoc
@@ -0,0 +1,34 @@
+
+= camel version
+
+Manage Camel versions
+
+
+== Usage
+
+[source,bash]
+----
+camel version [options]
+----
+
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+| xref:camel-jbang-version-get.adoc[get] | Displays current Camel version
+| xref:camel-jbang-version-list.adoc[list] | Displays available Camel versions
+| xref:camel-jbang-version-set.adoc[set] | Set/change current Camel version
+|===
+
+
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+| `-h,--help` | Display the help and sub-commands |  | boolean
+|===
+
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index c6db4932675c..db66ca99955d 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -128,6 +128,8 @@ TIP: The first time you run this command, it may cause dependencies to be cached
 
 All the commands support the `--help` and will display the appropriate help if that flag is provided.
 
+TIP: For a complete reference of all commands and their options, see the xref:camel-jbang-commands.adoc[Camel JBang Command Reference].
+
 === Enable shell completion
 
 Camel JBang provides shell completion for bash and zsh out of the box. To enable shell completion for Camel JBang, run:
diff --git a/dsl/camel-jbang/camel-jbang-core/pom.xml b/dsl/camel-jbang/camel-jbang-core/pom.xml
index ff8826cc5e5c..4f3941d93e52 100644
--- a/dsl/camel-jbang/camel-jbang-core/pom.xml
+++ b/dsl/camel-jbang/camel-jbang-core/pom.xml
@@ -184,12 +184,21 @@
                 <artifactId>camel-package-maven-plugin</artifactId>
                 <executions>
                     <execution>
+                        <id>prepare-jbang</id>
                         <goals>
                             <goal>prepare-jbang</goal>
                             <goal>prepare-jbang-doc</goal>
                         </goals>
                         <phase>generate-resources</phase>
                     </execution>
+                    <execution>
+                        <id>prepare-jbang-commands</id>
+                        <goals>
+                            <goal>prepare-jbang-commands</goal>
+                            <goal>prepare-jbang-commands-doc</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
                 </executions>
             </plugin>
             <plugin>
diff --git a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
new file mode 100644
index 000000000000..c200ade717da
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
@@ -0,0 +1,33 @@
+{
+  "commands": [
+    { "name": "bind", "fullName": "bind", "description": "Bind source and sink Kamelets as a new Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.bind.Bind", "options": [ { "names": "--error-handler", "description": "Add error handler (none|log|sink:<endpoint>). Sink endpoints are expected in the format [[apigroup\/]version:]kind:[namespace\/]name, plain Camel URIs or Kamelet name.", "javaType": "java.lang.String", "type": "string" }, { "names": "--output", "d [...]
+    { "name": "catalog", "fullName": "catalog", "description": "List artifacts from Camel Catalog", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.catalog.CatalogCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "component", "fullName": "catalog component", "description": "List components from the Camel Catalog", "sourceClass": "org.apache.camel.dsl.jbang.co [...]
+    { "name": "cmd", "fullName": "cmd", "description": "Performs commands in the running Camel integrations, such as start\/stop route, or change logging levels.", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelAction", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "browse", "fullName": "cmd browse", "description": "Browse pending messages on endpoints [...]
+    { "name": "completion", "fullName": "completion", "description": "Generate completion script for bash\/zsh", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Complete", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] },
+    { "name": "config", "fullName": "config", "description": "Get and set user configuration values", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config.ConfigCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "get", "fullName": "config get", "description": "Display user configuration value", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.config. [...]
+    { "name": "debug", "fullName": "debug", "description": "Debug local Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Debug", "options": [ { "names": "--ago", "description": "Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp.", "javaType": "boolean", "type": "boolean" }, { "names": "--background", "description": "Run in the background", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--background-wait", "description": "To  [...]
+    { "name": "dependency", "fullName": "dependency", "description": "Displays all Camel dependencies required to run", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.DependencyCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "copy", "fullName": "dependency copy", "description": "Copies all Camel dependencies required to run to a specific directory", "sourc [...]
+    { "name": "dirty", "fullName": "dirty", "description": "Check if there are dirty files from previous Camel runs that did not terminate gracefully", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.Dirty", "options": [ { "names": "--clean", "description": "Clean dirty files which are no longer in use", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", " [...]
+    { "name": "doc", "fullName": "doc", "description": "Shows documentation for kamelet, component, and other Camel resources", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc", "options": [ { "names": "--camel-version", "description": "To use a different Camel version than the default version", "javaType": "java.lang.String", "type": "string" }, { "names": "--download", "description": "Whether to allow automatic downloading JAR dependencies (over the internet [...]
+    { "name": "export", "fullName": "export", "description": "Export to other runtimes (Camel Main, Spring Boot, or Quarkus)", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Export", "options": [ { "names": "--build-property", "description": "Maven\/Gradle build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--build-tool", "description": "DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated)", "defaultV [...]
+    { "name": "get", "fullName": "get", "description": "Get status of Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.CamelStatus", "options": [ { "names": "--watch", "description": "Execute periodically and showing output fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "bean", "fullName": "get  [...]
+    { "name": "hawtio", "fullName": "hawtio", "description": "Launch Hawtio web console", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.Hawtio", "options": [ { "names": "--openUrl", "description": "To automatic open Hawtio web console in the web browser", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { "names": "--port", "description": "Port number to use for Hawtio web console (port 8888 by default)", "defaultValue": "8888", "javaType": "int", "t [...]
+    { "name": "infra", "fullName": "infra", "description": "List and Run external services for testing and prototyping", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.infra.InfraCommand", "options": [ { "names": "--json", "description": "Output in JSON Format", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "get", "fullName": "infra  [...]
+    { "name": "init", "fullName": "init", "description": "Creates a new Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Init", "options": [ { "names": "--clean-dir,--clean-directory", "description": "Whether to clean directory first (deletes all files in directory)", "javaType": "boolean", "type": "boolean" }, { "names": "--dir,--directory", "description": "Directory relative path where the new Camel integration will be saved", "defaultValue": ".", "javaType" [...]
+    { "name": "jolokia", "fullName": "jolokia", "description": "Attach Jolokia JVM Agent to a running Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.Jolokia", "options": [ { "names": "--port", "description": "To use a specific port number when attaching Jolokia JVM Agent (default a free port is found in range 8778-9999)", "javaType": "int", "type": "integer" }, { "names": "--stop", "description": "Stops the Jolokia JVM Agent in the running Camel inte [...]
+    { "name": "log", "fullName": "log", "description": "Tail logs from running Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelLogAction", "options": [ { "names": "--find", "description": "Find and highlight matching text (ignore case).", "javaType": "java.lang.String", "type": "string" }, { "names": "--follow", "description": "Keep following and outputting new log lines (press enter to exit).", "defaultValue": "true", "javaType": "boolean", "typ [...]
+    { "name": "nano", "fullName": "nano", "description": "Nano editor to edit file", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Nano", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] },
+    { "name": "plugin", "fullName": "plugin", "description": "Manage plugins that add sub-commands to this CLI", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.plugin.PluginCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "add", "fullName": "plugin add", "description": "Add new plugin", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.plugin.PluginA [...]
+    { "name": "ps", "fullName": "ps", "description": "List running Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.ListProcess", "options": [ { "names": "--json", "description": "Output in JSON Format", "javaType": "boolean", "type": "boolean" }, { "names": "--pid", "description": "List only pid in the output", "javaType": "boolean", "type": "boolean" }, { "names": "--remote", "description": "Break down counters into remote\/total pairs", "javaType": [...]
+    { "name": "run", "fullName": "run", "description": "Run as local Camel integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Run", "options": [ { "names": "--background", "description": "Run in the background", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--background-wait", "description": "To wait for run in background to startup successfully, before returning", "defaultValue": "true", "javaType": "boolean", "type": "boolean" }, { [...]
+    { "name": "sbom", "fullName": "sbom", "description": "Generate a CycloneDX or SPDX SBOM for a specific project", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.SBOMGenerator", "options": [ { "names": "--build-property", "description": "Maven\/Gradle build properties, ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { "names": "--build-tool", "description": "DEPRECATED: Build tool to use (maven or gradle) (gradle is deprecated)", "defaultValu [...]
+    { "name": "script", "fullName": "script", "description": "Run Camel integration as shell script for terminal scripting", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Script", "options": [ { "names": "--logging", "description": "Can be used to turn on logging (logs to file in <user home>\/.camel directory)", "defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": "--logging-level", "description": "Logging level (${COMPLETION-CANDIDATES})", "defaultV [...]
+    { "name": "shell", "fullName": "shell", "description": "Interactive Camel JBang shell.", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Shell", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] },
+    { "name": "stop", "fullName": "stop", "description": "Shuts down running Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.StopProcess", "options": [ { "names": "--kill", "description": "To force killing the process (SIGKILL)", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ] },
+    { "name": "top", "fullName": "top", "description": "Top status of Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.CamelTop", "options": [ { "names": "--watch", "description": "Execute periodically and showing output fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "context", "fullName": "top  [...]
+    { "name": "trace", "fullName": "trace", "description": "Tail message traces from running Camel integrations", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.CamelTraceAction", "options": [ { "names": "--action", "description": "Action to start, stop, clear, list status, or dump traces", "defaultValue": "status", "javaType": "java.lang.String", "type": "string" }, { "names": "--ago", "description": "Use ago instead of yyyy-MM-dd HH:mm:ss in timestamp.", "javaType": "b [...]
+    { "name": "transform", "fullName": "transform", "description": "Transform message or Camel routes", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.TransformCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "message", "fullName": "transform message", "description": "Transform message from one format to another via an existing running Camel integration", " [...]
+    { "name": "update", "fullName": "update", "description": "Update Camel project", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.update.UpdateCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "list", "fullName": "update list", "description": "List available update versions for Camel and its runtime variants", "sourceClass": "org.apache.camel.dsl.jbang.cor [...]
+    { "name": "version", "fullName": "version", "description": "Manage Camel versions", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.version.VersionCommand", "options": [ { "names": "-h,--help", "description": "Display the help and sub-commands", "javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "get", "fullName": "version get", "description": "Displays current Camel version", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.version.VersionGet", [...]
+  ]
+}
diff --git a/pom.xml b/pom.xml
index be2b92bed430..a842f79e1abd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -275,6 +275,7 @@
                                     <exclude>**/*.keystore</exclude>
                                     <exclude>**/*.mar</exclude>
                                     <exclude>**/*.model</exclude>
+                                    <exclude>**/*.mvel</exclude>
                                     <exclude>**/*.mp3</exclude>
                                     <exclude>**/*.mp4</exclude>
                                     <exclude>**/*.p12</exclude>
diff --git a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JBangCommandModel.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JBangCommandModel.java
new file mode 100644
index 000000000000..f6c9efc51a76
--- /dev/null
+++ b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JBangCommandModel.java
@@ -0,0 +1,256 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.tooling.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Model for Camel JBang CLI commands.
+ */
+public class JBangCommandModel {
+
+    protected final List<JBangCommand> commands = new ArrayList<>();
+
+    public List<JBangCommand> getCommands() {
+        return commands;
+    }
+
+    public void addCommand(JBangCommand command) {
+        commands.add(command);
+    }
+
+    /**
+     * Represents a JBang CLI command.
+     */
+    public static class JBangCommand {
+
+        private String name;
+        private String fullName;
+        private String description;
+        private boolean deprecated;
+        private String deprecationNote;
+        private String sourceClass;
+        private final List<JBangCommandOption> options = new ArrayList<>();
+        private final List<JBangCommand> subcommands = new ArrayList<>();
+
+        public JBangCommand() {
+        }
+
+        public JBangCommand(String name, String description) {
+            this.name = name;
+            this.description = description;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getFullName() {
+            return fullName;
+        }
+
+        public void setFullName(String fullName) {
+            this.fullName = fullName;
+        }
+
+        public String getDescription() {
+            return description;
+        }
+
+        public void setDescription(String description) {
+            this.description = description;
+        }
+
+        public boolean isDeprecated() {
+            return deprecated;
+        }
+
+        public void setDeprecated(boolean deprecated) {
+            this.deprecated = deprecated;
+        }
+
+        public String getDeprecationNote() {
+            return deprecationNote;
+        }
+
+        public void setDeprecationNote(String deprecationNote) {
+            this.deprecationNote = deprecationNote;
+        }
+
+        public String getSourceClass() {
+            return sourceClass;
+        }
+
+        public void setSourceClass(String sourceClass) {
+            this.sourceClass = sourceClass;
+        }
+
+        public List<JBangCommandOption> getOptions() {
+            return options;
+        }
+
+        public void addOption(JBangCommandOption option) {
+            options.add(option);
+        }
+
+        public List<JBangCommand> getSubcommands() {
+            return subcommands;
+        }
+
+        public void addSubcommand(JBangCommand subcommand) {
+            subcommands.add(subcommand);
+        }
+
+        public boolean hasSubcommands() {
+            return !subcommands.isEmpty();
+        }
+
+        public boolean hasOptions() {
+            return !options.isEmpty();
+        }
+
+        /**
+         * Gets the file name for this command's documentation page.
+         */
+        public String getDocFileName() {
+            String fn = fullName != null ? fullName : name;
+            return "camel-jbang-" + fn.replace(" ", "-") + ".adoc";
+        }
+    }
+
+    /**
+     * Represents an option for a JBang CLI command.
+     */
+    public static class JBangCommandOption {
+
+        private String names;
+        private String description;
+        private Object defaultValue;
+        private String javaType;
+        private String type;
+        private boolean required;
+        private boolean deprecated;
+        private String deprecationNote;
+        private boolean hidden;
+        private List<String> enums;
+        private String paramLabel;
+
+        public JBangCommandOption() {
+        }
+
+        public String getNames() {
+            return names;
+        }
+
+        public void setNames(String names) {
+            this.names = names;
+        }
+
+        public String getDescription() {
+            return description;
+        }
+
+        public void setDescription(String description) {
+            this.description = description;
+        }
+
+        public Object getDefaultValue() {
+            return defaultValue;
+        }
+
+        public void setDefaultValue(Object defaultValue) {
+            this.defaultValue = defaultValue;
+        }
+
+        public String getJavaType() {
+            return javaType;
+        }
+
+        public void setJavaType(String javaType) {
+            this.javaType = javaType;
+        }
+
+        public String getType() {
+            return type;
+        }
+
+        public void setType(String type) {
+            this.type = type;
+        }
+
+        public boolean isRequired() {
+            return required;
+        }
+
+        public void setRequired(boolean required) {
+            this.required = required;
+        }
+
+        public boolean isDeprecated() {
+            return deprecated;
+        }
+
+        public void setDeprecated(boolean deprecated) {
+            this.deprecated = deprecated;
+        }
+
+        public String getDeprecationNote() {
+            return deprecationNote;
+        }
+
+        public void setDeprecationNote(String deprecationNote) {
+            this.deprecationNote = deprecationNote;
+        }
+
+        public boolean isHidden() {
+            return hidden;
+        }
+
+        public void setHidden(boolean hidden) {
+            this.hidden = hidden;
+        }
+
+        public List<String> getEnums() {
+            return enums;
+        }
+
+        public void setEnums(List<String> enums) {
+            this.enums = enums;
+        }
+
+        public String getParamLabel() {
+            return paramLabel;
+        }
+
+        public void setParamLabel(String paramLabel) {
+            this.paramLabel = paramLabel;
+        }
+
+        public String getShortJavaType() {
+            return Strings.getClassShortName(javaType);
+        }
+
+        public String getShortDefaultValue() {
+            return defaultValue != null ? defaultValue.toString() : "";
+        }
+    }
+}
diff --git a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
index eed5132c919c..a36702c5a827 100644
--- a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
+++ b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java
@@ -30,6 +30,8 @@ import org.apache.camel.tooling.model.ComponentModel.EndpointHeaderModel;
 import org.apache.camel.tooling.model.ComponentModel.EndpointOptionModel;
 import org.apache.camel.tooling.model.DataFormatModel.DataFormatOptionModel;
 import org.apache.camel.tooling.model.EipModel.EipOptionModel;
+import org.apache.camel.tooling.model.JBangCommandModel.JBangCommand;
+import org.apache.camel.tooling.model.JBangCommandModel.JBangCommandOption;
 import org.apache.camel.tooling.model.JBangModel.JBangGroupModel;
 import org.apache.camel.tooling.model.JBangModel.JBangOptionModel;
 import org.apache.camel.tooling.model.LanguageModel.LanguageOptionModel;
@@ -950,6 +952,161 @@ public final class JsonMapper {
         return serialize(wrapper);
     }
 
+    // JBangCommandModel serialization/deserialization
+
+    public static JBangCommandModel generateJBangCommandModel(String json) {
+        JsonObject obj = deserialize(json);
+        return generateJBangCommandModel(obj);
+    }
+
+    public static JBangCommandModel generateJBangCommandModel(JsonObject obj) {
+        JBangCommandModel model = new JBangCommandModel();
+        JsonArray commands = (JsonArray) obj.get("commands");
+        if (commands != null) {
+            for (Object entry : commands) {
+                JsonObject cmdObj = (JsonObject) entry;
+                JBangCommand command = parseJBangCommand(cmdObj);
+                model.addCommand(command);
+            }
+        }
+        return model;
+    }
+
+    private static JBangCommand parseJBangCommand(JsonObject obj) {
+        JBangCommand command = new JBangCommand();
+        command.setName(obj.getString("name"));
+        command.setFullName(obj.getString("fullName"));
+        command.setDescription(obj.getString("description"));
+        command.setDeprecated(obj.getBooleanOrDefault("deprecated", false));
+        command.setDeprecationNote(obj.getString("deprecationNote"));
+        command.setSourceClass(obj.getString("sourceClass"));
+
+        JsonArray options = (JsonArray) obj.get("options");
+        if (options != null) {
+            for (Object optEntry : options) {
+                JsonObject optObj = (JsonObject) optEntry;
+                JBangCommandOption option = parseJBangCommandOption(optObj);
+                command.addOption(option);
+            }
+        }
+
+        JsonArray subcommands = (JsonArray) obj.get("subcommands");
+        if (subcommands != null) {
+            for (Object subEntry : subcommands) {
+                JsonObject subObj = (JsonObject) subEntry;
+                JBangCommand subcommand = parseJBangCommand(subObj);
+                command.addSubcommand(subcommand);
+            }
+        }
+
+        return command;
+    }
+
+    private static JBangCommandOption parseJBangCommandOption(JsonObject obj) {
+        JBangCommandOption option = new JBangCommandOption();
+        option.setNames(obj.getString("names"));
+        option.setDescription(obj.getString("description"));
+        option.setDefaultValue(obj.get("defaultValue"));
+        option.setJavaType(obj.getString("javaType"));
+        option.setType(obj.getString("type"));
+        option.setRequired(obj.getBooleanOrDefault("required", false));
+        option.setDeprecated(obj.getBooleanOrDefault("deprecated", false));
+        option.setDeprecationNote(obj.getString("deprecationNote"));
+        option.setHidden(obj.getBooleanOrDefault("hidden", false));
+        option.setParamLabel(obj.getString("paramLabel"));
+        option.setEnums(asStringList(obj.getCollection("enum")));
+        return option;
+    }
+
+    public static JsonObject asJsonObject(JBangCommandModel model) {
+        JsonObject json = new JsonObject();
+        JsonArray commands = new JsonArray();
+        for (JBangCommand cmd : model.getCommands()) {
+            commands.add(asJsonObject(cmd));
+        }
+        json.put("commands", commands);
+        return json;
+    }
+
+    private static JsonObject asJsonObject(JBangCommand cmd) {
+        JsonObject json = new JsonObject();
+        json.put("name", cmd.getName());
+        if (cmd.getFullName() != null) {
+            json.put("fullName", cmd.getFullName());
+        }
+        if (cmd.getDescription() != null) {
+            json.put("description", cmd.getDescription());
+        }
+        if (cmd.isDeprecated()) {
+            json.put("deprecated", true);
+        }
+        if (cmd.getDeprecationNote() != null) {
+            json.put("deprecationNote", cmd.getDeprecationNote());
+        }
+        if (cmd.getSourceClass() != null) {
+            json.put("sourceClass", cmd.getSourceClass());
+        }
+
+        if (cmd.hasOptions()) {
+            JsonArray options = new JsonArray();
+            for (JBangCommandOption opt : cmd.getOptions()) {
+                options.add(asJsonObject(opt));
+            }
+            json.put("options", options);
+        }
+
+        if (cmd.hasSubcommands()) {
+            JsonArray subcommands = new JsonArray();
+            for (JBangCommand sub : cmd.getSubcommands()) {
+                subcommands.add(asJsonObject(sub));
+            }
+            json.put("subcommands", subcommands);
+        }
+
+        return json;
+    }
+
+    private static JsonObject asJsonObject(JBangCommandOption opt) {
+        JsonObject json = new JsonObject();
+        json.put("names", opt.getNames());
+        if (opt.getDescription() != null) {
+            json.put("description", opt.getDescription());
+        }
+        if (opt.getDefaultValue() != null) {
+            json.put("defaultValue", opt.getDefaultValue());
+        }
+        if (opt.getJavaType() != null) {
+            json.put("javaType", opt.getJavaType());
+        }
+        if (opt.getType() != null) {
+            json.put("type", opt.getType());
+        }
+        if (opt.isRequired()) {
+            json.put("required", true);
+        }
+        if (opt.isDeprecated()) {
+            json.put("deprecated", true);
+        }
+        if (opt.getDeprecationNote() != null) {
+            json.put("deprecationNote", opt.getDeprecationNote());
+        }
+        if (opt.isHidden()) {
+            json.put("hidden", true);
+        }
+        if (opt.getParamLabel() != null) {
+            json.put("paramLabel", opt.getParamLabel());
+        }
+        if (opt.getEnums() != null && !opt.getEnums().isEmpty()) {
+            json.put("enum", opt.getEnums());
+        }
+        return json;
+    }
+
+    public static String createJsonSchema(JBangCommandModel model) {
+        JsonObject wrapper = asJsonObject(model);
+        return serialize(wrapper);
+    }
+
     public static JsonObject deserialize(String json) {
         try {
             return (JsonObject) Jsoner.deserialize(json);
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangCommandsDocMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangCommandsDocMojo.java
new file mode 100644
index 000000000000..a29e716e67e6
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangCommandsDocMojo.java
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.apache.camel.tooling.model.JBangCommandModel;
+import org.apache.camel.tooling.model.JBangCommandModel.JBangCommand;
+import org.apache.camel.tooling.model.JsonMapper;
+import org.apache.camel.tooling.util.PackageHelper;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+import org.codehaus.plexus.build.BuildContext;
+import org.mvel2.templates.TemplateRuntime;
+
+/**
+ * Generates documentation for camel-jbang commands.
+ */
+@Mojo(name = "prepare-jbang-commands-doc", defaultPhase = LifecyclePhase.PROCESS_CLASSES, threadSafe = true,
+      requiresDependencyResolution = ResolutionScope.COMPILE)
+public class PrepareCamelJBangCommandsDocMojo extends AbstractGeneratorMojo {
+
+    // Marker to identify auto-generated files
+    private static final String AUTO_GENERATED_MARKER = "// AUTO-GENERATED by camel-package-maven-plugin";
+
+    /**
+     * The documentation directory
+     */
+    @Parameter(defaultValue = "${project.basedir}/../../../docs/user-manual/modules/ROOT/pages")
+    protected File docDir;
+
+    /**
+     * The metadata file
+     */
+    @Parameter(defaultValue = "${project.basedir}/src/generated/resources/META-INF/camel-jbang-commands-metadata.json")
+    protected File commandsJsonFile;
+
+    @Inject
+    public PrepareCamelJBangCommandsDocMojo(MavenProjectHelper projectHelper, BuildContext buildContext) {
+        super(projectHelper, buildContext);
+    }
+
+    @Override
+    public void execute(MavenProject project) throws MojoFailureException, MojoExecutionException {
+        docDir = new File(
+                project.getBasedir().getParentFile().getParentFile().getParent(), "docs/user-manual/modules/ROOT/pages");
+        commandsJsonFile
+                = new File(project.getBasedir(), "src/generated/resources/META-INF/camel-jbang-commands-metadata.json");
+        super.execute(project);
+    }
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (!commandsJsonFile.exists()) {
+            getLog().debug("Commands metadata file not found: " + commandsJsonFile);
+            return;
+        }
+
+        try {
+            String json = PackageHelper.loadText(commandsJsonFile);
+            JBangCommandModel model = JsonMapper.generateJBangCommandModel(json);
+
+            if (model.getCommands().isEmpty()) {
+                getLog().info("No commands found in metadata");
+                return;
+            }
+
+            // Generate index page
+            generateIndexPage(model);
+
+            // Generate individual command pages (including subcommands recursively)
+            int totalPages = 0;
+            for (JBangCommand cmd : model.getCommands()) {
+                totalPages += generateCommandPageRecursive(cmd);
+            }
+
+            getLog().info("Generated documentation for " + totalPages + " commands");
+        } catch (IOException e) {
+            throw new MojoExecutionException("Error generating JBang command documentation", e);
+        }
+    }
+
+    private void generateIndexPage(JBangCommandModel model) throws MojoExecutionException {
+        try (InputStream templateStream = getClass().getClassLoader().getResourceAsStream("jbang-commands.mvel")) {
+            if (templateStream == null) {
+                throw new MojoExecutionException("Template jbang-commands.mvel not found");
+            }
+
+            String template = PackageHelper.loadText(templateStream);
+            Map<String, Object> ctx = new HashMap<>();
+            ctx.put("commands", model.getCommands());
+
+            String content
+                    = (String) TemplateRuntime.eval(template, ctx, Collections.singletonMap("util", MvelHelper.INSTANCE));
+
+            Path indexFile = docDir.toPath().resolve("camel-jbang-commands.adoc");
+            Files.createDirectories(indexFile.getParent());
+            updateResource(buildContext, indexFile, content);
+            getLog().info("Generated: " + indexFile);
+        } catch (IOException e) {
+            throw new MojoExecutionException("Error generating index page", e);
+        }
+    }
+
+    private int generateCommandPageRecursive(JBangCommand cmd) throws MojoExecutionException {
+        int count = 1;
+
+        // Generate page for this command
+        generateCommandPage(cmd);
+
+        // Recursively generate pages for subcommands
+        for (JBangCommand sub : cmd.getSubcommands()) {
+            count += generateCommandPageRecursive(sub);
+        }
+
+        return count;
+    }
+
+    private void generateCommandPage(JBangCommand cmd) throws MojoExecutionException {
+        Path cmdFile = docDir.toPath().resolve(cmd.getDocFileName());
+
+        // Check if file already exists and is not auto-generated (i.e., manually written)
+        if (Files.exists(cmdFile)) {
+            try {
+                String existingContent = Files.readString(cmdFile);
+                if (!existingContent.contains(AUTO_GENERATED_MARKER)) {
+                    // Skip - this is a manually maintained file
+                    getLog().debug("Skipping existing manual file: " + cmdFile);
+                    return;
+                }
+            } catch (IOException e) {
+                getLog().warn("Could not read existing file: " + cmdFile);
+            }
+        }
+
+        try (InputStream templateStream = getClass().getClassLoader().getResourceAsStream("jbang-command-page.mvel")) {
+            if (templateStream == null) {
+                throw new MojoExecutionException("Template jbang-command-page.mvel not found");
+            }
+
+            String template = PackageHelper.loadText(templateStream);
+            Map<String, Object> ctx = new HashMap<>();
+            ctx.put("command", cmd);
+
+            String content
+                    = (String) TemplateRuntime.eval(template, ctx, Collections.singletonMap("util", MvelHelper.INSTANCE));
+
+            Files.createDirectories(cmdFile.getParent());
+            updateResource(buildContext, cmdFile, content);
+            getLog().debug("Generated: " + cmdFile);
+        } catch (IOException e) {
+            throw new MojoExecutionException("Error generating command page for " + cmd.getName(), e);
+        }
+    }
+}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangCommandsMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangCommandsMojo.java
new file mode 100644
index 000000000000..deedaa16fe82
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelJBangCommandsMojo.java
@@ -0,0 +1,535 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Stream;
+
+import javax.inject.Inject;
+
+import org.apache.camel.tooling.model.JBangCommandModel;
+import org.apache.camel.tooling.model.JBangCommandModel.JBangCommand;
+import org.apache.camel.tooling.model.JBangCommandModel.JBangCommandOption;
+import org.apache.camel.tooling.model.JsonMapper;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+import org.codehaus.plexus.build.BuildContext;
+import org.jboss.forge.roaster.Roaster;
+import org.jboss.forge.roaster.model.source.AnnotationSource;
+import org.jboss.forge.roaster.model.source.FieldSource;
+import org.jboss.forge.roaster.model.source.JavaClassSource;
+
+/**
+ * Prepares camel-jbang by scanning command classes and generating command metadata for documentation.
+ */
+@Mojo(name = "prepare-jbang-commands", defaultPhase = LifecyclePhase.PROCESS_CLASSES, threadSafe = true,
+      requiresDependencyResolution = ResolutionScope.COMPILE)
+public class PrepareCamelJBangCommandsMojo extends AbstractGeneratorMojo {
+
+    // Pattern to match .addSubcommand("name", new CommandLine(new ClassName(main))
+    private static final Pattern SUBCOMMAND_PATTERN = Pattern.compile(
+            "\\.addSubcommand\\(\\s*\"([^\"]+)\"\\s*,\\s*new\\s+CommandLine\\(\\s*new\\s+([A-Za-z0-9_]+)\\s*\\(\\s*main\\s*\\)\\s*\\)");
+
+    @Parameter(defaultValue = "${project.basedir}/src/generated/resources")
+    protected File outFolder;
+
+    @Parameter(defaultValue = "${project.basedir}/src/main/java/org/apache/camel/dsl/jbang/core/commands")
+    protected File commandsDir;
+
+    @Inject
+    public PrepareCamelJBangCommandsMojo(MavenProjectHelper projectHelper, BuildContext buildContext) {
+        super(projectHelper, buildContext);
+    }
+
+    @Override
+    public void execute(MavenProject project) throws MojoFailureException, MojoExecutionException {
+        outFolder = new File(project.getBasedir(), "src/generated/resources");
+        commandsDir = new File(project.getBasedir(), "src/main/java/org/apache/camel/dsl/jbang/core/commands");
+        super.execute(project);
+    }
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (!commandsDir.exists() || !commandsDir.isDirectory()) {
+            getLog().debug("Commands directory not found: " + commandsDir);
+            return;
+        }
+
+        try {
+            // Step 1: Scan all command classes and build a map by class name
+            Map<String, CommandInfo> commandsByClassName = new HashMap<>();
+            scanCommandClasses(commandsDir, commandsByClassName);
+
+            // Step 2: Parse CamelJBangMain.java to get command hierarchy
+            File mainFile = new File(commandsDir, "CamelJBangMain.java");
+            JBangCommandModel model = new JBangCommandModel();
+
+            if (mainFile.exists()) {
+                parseCommandHierarchy(mainFile, commandsByClassName, model);
+            }
+
+            if (!model.getCommands().isEmpty()) {
+                // Sort commands alphabetically
+                sortCommandsRecursively(model.getCommands());
+
+                String json = JsonMapper.createJsonSchema(model);
+                updateResource(outFolder.toPath(), "META-INF/camel-jbang-commands-metadata.json", json);
+                getLog().info("Generated JBang commands metadata with " + countCommands(model) + " commands");
+            }
+        } catch (Exception e) {
+            throw new MojoFailureException("Error generating JBang commands metadata", e);
+        }
+    }
+
+    private void sortCommandsRecursively(List<JBangCommand> commands) {
+        commands.sort((a, b) -> a.getName().compareToIgnoreCase(b.getName()));
+        for (JBangCommand cmd : commands) {
+            if (cmd.hasSubcommands()) {
+                sortCommandsRecursively(cmd.getSubcommands());
+            }
+        }
+    }
+
+    private int countCommands(JBangCommandModel model) {
+        int count = model.getCommands().size();
+        for (JBangCommand cmd : model.getCommands()) {
+            count += countSubcommands(cmd);
+        }
+        return count;
+    }
+
+    private int countSubcommands(JBangCommand cmd) {
+        int count = cmd.getSubcommands().size();
+        for (JBangCommand sub : cmd.getSubcommands()) {
+            count += countSubcommands(sub);
+        }
+        return count;
+    }
+
+    private void scanCommandClasses(File dir, Map<String, CommandInfo> commandsByClassName) throws IOException {
+        try (Stream<Path> paths = Files.walk(dir.toPath())) {
+            paths.filter(p -> p.toString().endsWith(".java"))
+                    .filter(p -> !p.getFileName().toString().equals("CamelJBangMain.java"))
+                    .forEach(p -> {
+                        try {
+                            CommandInfo info = parseCommandClass(p.toFile());
+                            if (info != null) {
+                                // Store by simple class name for lookup
+                                commandsByClassName.put(info.className, info);
+                            }
+                        } catch (Exception e) {
+                            getLog().warn("Failed to parse command class: " + p + " - " + e.getMessage());
+                        }
+                    });
+        }
+    }
+
+    private void parseCommandHierarchy(
+            File mainFile, Map<String, CommandInfo> commandsByClassName,
+            JBangCommandModel model)
+            throws IOException {
+
+        List<String> lines = Files.readAllLines(mainFile.toPath());
+
+        // Find the start of the commandLine builder chain
+        int startLine = -1;
+        for (int i = 0; i < lines.size(); i++) {
+            if (lines.get(i).contains("commandLine = new CommandLine(main)")) {
+                startLine = i;
+                break;
+            }
+        }
+
+        if (startLine == -1) {
+            return;
+        }
+
+        // Parse line by line, using indentation to determine hierarchy
+        // We use a stack to track parent commands at each indentation level
+        Stack<ParentInfo> parentStack = new Stack<>();
+
+        for (int i = startLine; i < lines.size(); i++) {
+            String line = lines.get(i);
+            String trimmedLine = line.trim();
+
+            // Check if we've reached the end of the chain
+            if (trimmedLine.startsWith(".setParameterExceptionHandler") || trimmedLine.equals(";")) {
+                break;
+            }
+
+            // Look for .addSubcommand pattern
+            Matcher matcher = SUBCOMMAND_PATTERN.matcher(trimmedLine);
+            if (matcher.find()) {
+                String cmdName = matcher.group(1);
+                String className = matcher.group(2);
+
+                CommandInfo info = commandsByClassName.get(className);
+                if (info == null) {
+                    getLog().debug("Command class not found: " + className);
+                    continue;
+                }
+
+                // Calculate indentation level (number of leading spaces)
+                int indent = 0;
+                for (char c : line.toCharArray()) {
+                    if (c == ' ') {
+                        indent++;
+                    } else if (c == '\t') {
+                        indent += 4;
+                    } else {
+                        break;
+                    }
+                }
+
+                // Pop parents that are at same or deeper indentation level
+                // This handles transitioning from subcommands back to parent level
+                while (!parentStack.isEmpty() && parentStack.peek().indent >= indent) {
+                    parentStack.pop();
+                }
+
+                // Determine parent path
+                String parentPath = "";
+                if (!parentStack.isEmpty()) {
+                    parentPath = parentStack.peek().command.getFullName();
+                }
+
+                JBangCommand cmd = createCommand(info, cmdName, parentPath);
+
+                // Add to parent or model
+                if (parentStack.isEmpty()) {
+                    model.addCommand(cmd);
+                } else {
+                    parentStack.peek().command.addSubcommand(cmd);
+                }
+
+                // Check if this command has subcommands by looking at the line ending
+                // Count closing parens at end of line
+                String lineEnd = trimmedLine.replaceAll("\\s+", "");
+                int closingParens = 0;
+                for (int j = lineEnd.length() - 1; j >= 0 && lineEnd.charAt(j) == ')'; j--) {
+                    closingParens++;
+                }
+
+                // Pattern: .addSubcommand("x", new CommandLine(new X(main))
+                // - Ends with 2 parens ()) = has subcommands (CommandLine not closed)
+                // - Ends with 3 parens ())) = leaf command (closes CommandLine + addSubcommand)
+                if (closingParens == 2) {
+                    // This command may have subcommands - push onto stack
+                    parentStack.push(new ParentInfo(cmd, indent));
+                }
+                // If closingParens >= 3, it's a leaf command and doesn't have subcommands
+            }
+        }
+    }
+
+    private static class ParentInfo {
+        final JBangCommand command;
+        final int indent;
+
+        ParentInfo(JBangCommand command, int indent) {
+            this.command = command;
+            this.indent = indent;
+        }
+    }
+
+    private JBangCommand createCommand(CommandInfo info, String cmdName, String parentPath) {
+        JBangCommand cmd = new JBangCommand();
+        cmd.setName(cmdName);
+        cmd.setFullName(parentPath.isEmpty() ? cmdName : parentPath + " " + cmdName);
+        cmd.setDescription(info.description);
+        cmd.setDeprecated(info.deprecated);
+        cmd.setSourceClass(info.qualifiedName);
+
+        // Add all options including inherited ones
+        for (OptionInfo opt : info.options) {
+            if (!opt.hidden) {
+                JBangCommandOption option = new JBangCommandOption();
+                option.setNames(opt.names);
+                option.setDescription(opt.description);
+                option.setDefaultValue(opt.defaultValue);
+                option.setJavaType(opt.javaType);
+                option.setType(MojoHelper.getType(opt.javaType, false, false));
+                option.setRequired(opt.required);
+                option.setDeprecated(opt.deprecated);
+                option.setHidden(opt.hidden);
+                option.setParamLabel(opt.paramLabel);
+                cmd.addOption(option);
+            }
+        }
+
+        // Sort options by name
+        cmd.getOptions().sort((a, b) -> a.getNames().compareToIgnoreCase(b.getNames()));
+
+        return cmd;
+    }
+
+    private CommandInfo parseCommandClass(File file) throws IOException {
+        JavaClassSource clazz = (JavaClassSource) Roaster.parse(file);
+
+        // Check if this class has @Command annotation
+        AnnotationSource<?> commandAnn = findAnnotation(clazz, "Command");
+        if (commandAnn == null) {
+            return null;
+        }
+
+        CommandInfo info = new CommandInfo();
+        info.className = clazz.getName();
+        info.qualifiedName = clazz.getQualifiedName();
+
+        // Parse @Command annotation
+        String name = commandAnn.getStringValue("name");
+        if (name != null) {
+            info.name = name.replace("\"", "");
+        } else {
+            info.name = clazz.getName().toLowerCase();
+        }
+
+        String description = commandAnn.getStringValue("description");
+        if (description != null) {
+            description = description.replace("\"", "");
+            // Clean up description - remove help hints
+            if (description.contains("(use")) {
+                description = description.substring(0, description.indexOf("(use")).trim();
+            }
+            info.description = description;
+        }
+
+        // Check for deprecated
+        if (clazz.getAnnotation(Deprecated.class) != null) {
+            info.deprecated = true;
+        }
+
+        // Parse options from this class AND parent classes
+        info.options = new ArrayList<>();
+        parseOptionsFromClassHierarchy(clazz, info.options, file.getParentFile());
+
+        return info;
+    }
+
+    private void parseOptionsFromClassHierarchy(JavaClassSource clazz, List<OptionInfo> options, File baseDir) {
+        // First, parse options from parent class (if any)
+        String superType = clazz.getSuperType();
+        if (superType != null && !superType.equals("java.lang.Object") && !superType.equals("Object")) {
+            // Try to find and parse the parent class
+            String parentClassName = superType;
+            if (parentClassName.contains(".")) {
+                parentClassName = parentClassName.substring(parentClassName.lastIndexOf('.') + 1);
+            }
+
+            // Search for parent class file
+            File parentFile = findClassFile(baseDir, parentClassName);
+            if (parentFile != null && parentFile.exists()) {
+                try {
+                    JavaClassSource parentClazz = (JavaClassSource) Roaster.parse(parentFile);
+                    parseOptionsFromClassHierarchy(parentClazz, options, parentFile.getParentFile());
+                } catch (Exception e) {
+                    getLog().debug("Could not parse parent class: " + parentClassName + " - " + e.getMessage());
+                }
+            }
+        }
+
+        // Then parse options from this class (will override parent options with same name)
+        for (FieldSource<JavaClassSource> field : clazz.getFields()) {
+            OptionInfo option = parseOption(field);
+            if (option != null) {
+                // Check if we already have an option with the same name (from parent)
+                // and replace it with the child's version
+                options.removeIf(o -> o.names.equals(option.names));
+                options.add(option);
+            }
+        }
+    }
+
+    private File findClassFile(File dir, String className) {
+        // Search in current directory
+        File file = new File(dir, className + ".java");
+        if (file.exists()) {
+            return file;
+        }
+
+        // Search in parent directories up to commands root
+        File parent = dir.getParentFile();
+        while (parent != null && parent.getPath().contains("commands")) {
+            file = new File(parent, className + ".java");
+            if (file.exists()) {
+                return file;
+            }
+
+            // Also search subdirectories
+            File[] subdirs = parent.listFiles(File::isDirectory);
+            if (subdirs != null) {
+                for (File subdir : subdirs) {
+                    file = new File(subdir, className + ".java");
+                    if (file.exists()) {
+                        return file;
+                    }
+                }
+            }
+
+            parent = parent.getParentFile();
+        }
+
+        // Also try common locations
+        File commandsRoot = dir;
+        while (commandsRoot.getParentFile() != null && !commandsRoot.getName().equals("commands")) {
+            commandsRoot = commandsRoot.getParentFile();
+        }
+
+        // Search recursively from commands root
+        return findClassFileRecursive(commandsRoot, className);
+    }
+
+    private File findClassFileRecursive(File dir, String className) {
+        File file = new File(dir, className + ".java");
+        if (file.exists()) {
+            return file;
+        }
+
+        File[] subdirs = dir.listFiles(File::isDirectory);
+        if (subdirs != null) {
+            for (File subdir : subdirs) {
+                File found = findClassFileRecursive(subdir, className);
+                if (found != null) {
+                    return found;
+                }
+            }
+        }
+        return null;
+    }
+
+    private AnnotationSource<?> findAnnotation(JavaClassSource clazz, String annotationName) {
+        AnnotationSource<?> ann = clazz.getAnnotation("picocli.CommandLine." + annotationName);
+        if (ann == null) {
+            ann = clazz.getAnnotation("CommandLine." + annotationName);
+        }
+        if (ann == null) {
+            ann = clazz.getAnnotation(annotationName);
+        }
+        return ann;
+    }
+
+    private OptionInfo parseOption(FieldSource<JavaClassSource> field) {
+        AnnotationSource<?> optionAnn = field.getAnnotation("picocli.CommandLine.Option");
+        if (optionAnn == null) {
+            optionAnn = field.getAnnotation("CommandLine.Option");
+        }
+        if (optionAnn == null) {
+            optionAnn = field.getAnnotation("Option");
+        }
+        if (optionAnn == null) {
+            return null;
+        }
+
+        OptionInfo option = new OptionInfo();
+
+        // Parse names
+        String namesValue = optionAnn.getStringValue("names");
+        if (namesValue != null) {
+            namesValue = namesValue.replace("\"", "").replace("{", "").replace("}", "").trim();
+            option.names = namesValue;
+        } else {
+            // Try to get array value
+            String[] names = optionAnn.getStringArrayValue("names");
+            if (names != null && names.length > 0) {
+                option.names = String.join(", ", names);
+            }
+        }
+
+        if (option.names == null || option.names.isEmpty()) {
+            return null;
+        }
+
+        // Parse description
+        String description = optionAnn.getStringValue("description");
+        if (description != null) {
+            description = description.replace("\"", "");
+            option.description = description;
+        }
+
+        // Parse default value
+        String defaultValue = optionAnn.getStringValue("defaultValue");
+        if (defaultValue != null) {
+            defaultValue = defaultValue.replace("\"", "");
+            option.defaultValue = defaultValue;
+        }
+
+        // Parse required
+        String required = optionAnn.getStringValue("required");
+        if ("true".equals(required)) {
+            option.required = true;
+        }
+
+        // Parse hidden
+        String hidden = optionAnn.getStringValue("hidden");
+        if ("true".equals(hidden)) {
+            option.hidden = true;
+        }
+
+        // Parse param label
+        String paramLabel = optionAnn.getStringValue("paramLabel");
+        if (paramLabel != null) {
+            option.paramLabel = paramLabel.replace("\"", "");
+        }
+
+        // Get Java type from field
+        option.javaType = field.getType().getQualifiedName();
+
+        // Check for deprecated
+        if (field.getAnnotation(Deprecated.class) != null) {
+            option.deprecated = true;
+        }
+
+        return option;
+    }
+
+    // Helper classes
+    private static class CommandInfo {
+        String className;
+        String qualifiedName;
+        String name;
+        String description;
+        boolean deprecated;
+        List<OptionInfo> options;
+    }
+
+    private static class OptionInfo {
+        String names;
+        String description;
+        String defaultValue;
+        String javaType;
+        boolean required;
+        boolean hidden;
+        boolean deprecated;
+        String paramLabel;
+    }
+}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/jbang-command-page.mvel b/tooling/maven/camel-package-maven-plugin/src/main/resources/jbang-command-page.mvel
new file mode 100644
index 000000000000..98e8f012df77
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/jbang-command-page.mvel
@@ -0,0 +1,51 @@
+@comment{
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+}
+// AUTO-GENERATED by camel-package-maven-plugin - DO NOT EDIT THIS FILE
+= camel @{command.fullName}
+
+@if{command.description != null}@{command.description}@end{}
+@if{command.deprecated}
+
+CAUTION: This command is deprecated.@if{command.deprecationNote} @{command.deprecationNote}@end{}
+@end{}
+
+== Usage
+
+[source,bash]
+----
+camel @{command.fullName} [options]
+----
+@if{command.hasSubcommands()}
+
+== Subcommands
+
+[cols="2,5",options="header"]
+|===
+| Subcommand | Description
+@foreach{sub : command.subcommands}| xref:@{sub.docFileName}[@{sub.name}] | @if{sub.description != null}@{sub.description}@end{}
+@end{}|===
+@end{}
+@if{command.hasOptions()}
+
+== Options
+
+[cols="2,5,1,2",options="header"]
+|===
+| Option | Description | Default | Type
+@foreach{opt : command.options}| `@{opt.names}`@if{opt.deprecated} _(deprecated)_@end{} | @if{opt.description != null}@{util.escape(opt.description)}@end{} | @{opt.shortDefaultValue} | @{opt.shortJavaType}
+@end{}|===
+@end{}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/jbang-commands.mvel b/tooling/maven/camel-package-maven-plugin/src/main/resources/jbang-commands.mvel
new file mode 100644
index 000000000000..3bbf8364f738
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/jbang-commands.mvel
@@ -0,0 +1,30 @@
+@comment{
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+}
+// AUTO-GENERATED by camel-package-maven-plugin - DO NOT EDIT THIS FILE
+= Camel JBang Command Reference
+
+This page provides a reference for all Camel JBang CLI commands.
+
+TIP: You can also use `camel --help` or `camel <command> --help` to see available commands and options.
+
+== Commands
+
+[cols="2,5",options="header"]
+|===
+| Command | Description
+@foreach{cmd : commands}| xref:@{cmd.docFileName}[camel @{cmd.name}] | @if{cmd.description != null}@{cmd.description}@end{}
+@end{}|===