## aspect version

Print the version of aspect CLI as well as tools it invokes.

### Synopsis

Prints version info on colon-separated lines, just like bazel does

```
aspect version [flags]
```

### Options

```
      --gnu_format   format space-separated following GNU convention
  -h, --help         help for version
```

### Options inherited from parent commands

```
      --config string   config file (default is $HOME/.aspect.yaml)
      --interactive     Interactive mode (e.g. prompts for user input)
```

### SEE ALSO

* [aspect](aspect.md)	 - Aspect.build bazel wrapper

