# Kind The `kind` operator identifies the type of a node as either `scalar`, `map`, or `seq`. This can be used for filtering or transforming nodes based on their type. Note that `null` values are treated as `scalar`. ## Get kind Given a sample.yml file of: ```yaml a: cat b: 5 c: 3.2 e: true f: [] g: {} h: null ``` then ```bash yq '.. | kind' sample.yml ``` will output ```yaml map scalar scalar scalar scalar seq map scalar ``` ## Get kind, ignores custom tags Unlike tag, kind is not affected by custom tags. Given a sample.yml file of: ```yaml a: !!thing cat b: !!foo {} c: !!bar [] ``` then ```bash yq '.. | kind' sample.yml ``` will output ```yaml map scalar map seq ``` ## Add comments only to scalars An example of how you can use kind Given a sample.yml file of: ```yaml a: b: 5 c: 3.2 e: true f: [] g: {} h: null ``` then ```bash yq '(.. | select(kind == "scalar")) line_comment = "this is a scalar"' sample.yml ``` will output ```yaml a: b: 5 # this is a scalar c: 3.2 # this is a scalar e: true # this is a scalar f: [] g: {} h: null # this is a scalar ```