diff --git a/docs/usage.md b/docs/usage.md
index 502d70fff85..2e2412cc95c 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -27,7 +27,7 @@ $ npm install -g @asyncapi/cli
 $ asyncapi COMMAND
 running command...
 $ asyncapi (--version)
-@asyncapi/cli/2.8.1 linux-x64 node-v18.20.4
+@asyncapi/cli/2.9.0 linux-x64 node-v18.20.4
 $ asyncapi --help [COMMAND]
 USAGE
   $ asyncapi COMMAND
@@ -52,6 +52,7 @@ USAGE
 * [`asyncapi config versions`](#asyncapi-config-versions)
 * [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file)
 * [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new)
+* [`asyncapi format [SPEC-FILE]`](#asyncapi-format-spec-file)
 * [`asyncapi generate`](#asyncapi-generate)
 * [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template)
 * [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file)
@@ -99,7 +100,7 @@ EXAMPLES
   $ asyncapi bundle ./asyncapi.yaml -o final-asyncapi.yaml --base ../public-api/main.yaml --baseDir ./social-media/comments-service
 ```
 
-_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/bundle.ts)_
+_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/bundle.ts)_
 
 ## `asyncapi config`
 
@@ -113,7 +114,7 @@ DESCRIPTION
   CLI config settings
 ```
 
-_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/index.ts)_
+_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/index.ts)_
 
 ## `asyncapi config analytics`
 
@@ -133,7 +134,7 @@ DESCRIPTION
   Enable or disable analytics for metrics collection
 ```
 
-_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/analytics.ts)_
+_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/analytics.ts)_
 
 ## `asyncapi config context`
 
@@ -147,7 +148,7 @@ DESCRIPTION
   Manage short aliases for full paths to AsyncAPI documents
 ```
 
-_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/index.ts)_
+_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/index.ts)_
 
 ## `asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`
 
@@ -169,7 +170,7 @@ DESCRIPTION
   Add a context to the store
 ```
 
-_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/add.ts)_
+_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/add.ts)_
 
 ## `asyncapi config context current`
 
@@ -186,7 +187,7 @@ DESCRIPTION
   Shows the current context that is being used
 ```
 
-_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/current.ts)_
+_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/current.ts)_
 
 ## `asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`
 
@@ -207,7 +208,7 @@ DESCRIPTION
   Edit a context in the store
 ```
 
-_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/edit.ts)_
+_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/edit.ts)_
 
 ## `asyncapi config context init [CONTEXT-FILE-PATH]`
 
@@ -230,7 +231,7 @@ DESCRIPTION
   Initialize context
 ```
 
-_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/init.ts)_
+_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/init.ts)_
 
 ## `asyncapi config context list`
 
@@ -247,7 +248,7 @@ DESCRIPTION
   List all the stored contexts in the store
 ```
 
-_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/list.ts)_
+_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/list.ts)_
 
 ## `asyncapi config context remove CONTEXT-NAME`
 
@@ -267,7 +268,7 @@ DESCRIPTION
   Delete a context from the store
 ```
 
-_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/remove.ts)_
+_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/remove.ts)_
 
 ## `asyncapi config context use CONTEXT-NAME`
 
@@ -287,7 +288,7 @@ DESCRIPTION
   Set a context as current
 ```
 
-_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/context/use.ts)_
+_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/context/use.ts)_
 
 ## `asyncapi config versions`
 
@@ -304,7 +305,7 @@ DESCRIPTION
   Show versions of AsyncAPI tools used
 ```
 
-_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/config/versions.ts)_
+_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/config/versions.ts)_
 
 ## `asyncapi convert [SPEC-FILE]`
 
@@ -332,7 +333,7 @@ DESCRIPTION
   Convert asyncapi documents older to newer versions or OpenAPI/postman-collection documents to AsyncAPI
 ```
 
-_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/convert.ts)_
+_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/convert.ts)_
 
 ## `asyncapi diff OLD NEW`
 
@@ -373,7 +374,30 @@ DESCRIPTION
   Find diff between two asyncapi files
 ```
 
-_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/diff.ts)_
+_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/diff.ts)_
+
+## `asyncapi format [SPEC-FILE]`
+
+Convert asyncapi documents from any format to yaml, yml or JSON
+
+```
+USAGE
+  $ asyncapi format [SPEC-FILE] -f yaml|yml|json [-h] [-o <value>]
+
+ARGUMENTS
+  SPEC-FILE  spec path, url, or context-name
+
+FLAGS
+  -f, --format=<option>  (required) [default: json] Specify the format to convert to
+                         <options: yaml|yml|json>
+  -h, --help             Show CLI help.
+  -o, --output=<value>   path to the file where the result is saved
+
+DESCRIPTION
+  Convert asyncapi documents from any format to yaml, yml or JSON
+```
+
+_See code: [src/commands/format.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/format.ts)_
 
 ## `asyncapi generate`
 
@@ -387,7 +411,7 @@ DESCRIPTION
   Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates.
 ```
 
-_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/generate/index.ts)_
+_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/generate/index.ts)_
 
 ## `asyncapi generate fromTemplate ASYNCAPI TEMPLATE`
 
@@ -432,7 +456,7 @@ EXAMPLES
   $ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write
 ```
 
-_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/generate/fromTemplate.ts)_
+_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/generate/fromTemplate.ts)_
 
 ## `asyncapi generate models LANGUAGE FILE`
 
@@ -502,7 +526,7 @@ DESCRIPTION
   Generates typed models
 ```
 
-_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/generate/models.ts)_
+_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/generate/models.ts)_
 
 ## `asyncapi new`
 
@@ -560,7 +584,7 @@ EXAMPLES
   $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty	 - create a new file with a specific name, using one of the examples and without interactive mode
 ```
 
-_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/new/index.ts)_
+_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/new/index.ts)_
 
 ## `asyncapi new file`
 
@@ -618,7 +642,7 @@ EXAMPLES
   $ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty	 - create a new file with a specific name, using one of the examples and without interactive mode
 ```
 
-_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/new/file.ts)_
+_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/new/file.ts)_
 
 ## `asyncapi new glee`
 
@@ -640,7 +664,7 @@ DESCRIPTION
   Creates a new Glee project
 ```
 
-_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/new/glee.ts)_
+_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/new/glee.ts)_
 
 ## `asyncapi new template`
 
@@ -664,7 +688,7 @@ DESCRIPTION
   Creates a new template
 ```
 
-_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/new/template.ts)_
+_See code: [src/commands/new/template.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/new/template.ts)_
 
 ## `asyncapi optimize [SPEC-FILE]`
 
@@ -706,7 +730,7 @@ EXAMPLES
   $ asyncapi optimize ./asyncapi.yaml --ignore=schema
 ```
 
-_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/optimize.ts)_
+_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/optimize.ts)_
 
 ## `asyncapi start`
 
@@ -720,7 +744,7 @@ DESCRIPTION
   Starts AsyncAPI-related services. Currently, it supports launching the AsyncAPI Studio
 ```
 
-_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/start/index.ts)_
+_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/start/index.ts)_
 
 ## `asyncapi start studio`
 
@@ -739,7 +763,7 @@ DESCRIPTION
   starts a new local instance of Studio
 ```
 
-_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/start/studio.ts)_
+_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/start/studio.ts)_
 
 ## `asyncapi validate [SPEC-FILE]`
 
@@ -770,5 +794,5 @@ DESCRIPTION
   validate asyncapi file
 ```
 
-_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.8.1/src/commands/validate.ts)_
+_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v2.9.0/src/commands/validate.ts)_
 <!-- commandsstop -->
diff --git a/package-lock.json b/package-lock.json
index a30fa9c3ef7..cd56ed91612 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "@asyncapi/cli",
-  "version": "2.9.0",
+  "version": "2.10.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@asyncapi/cli",
-      "version": "2.9.0",
+      "version": "2.10.0",
       "license": "Apache-2.0",
       "dependencies": {
         "@asyncapi/avro-schema-parser": "^3.0.23",
diff --git a/package.json b/package.json
index b03c6279ec2..fee39b78d78 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@asyncapi/cli",
   "description": "All in one CLI for all AsyncAPI tools",
-  "version": "2.9.0",
+  "version": "2.10.0",
   "author": "@asyncapi",
   "bin": {
     "asyncapi": "./bin/run_bin"