## aspect docs

Open documentation in the browser

### Synopsis

Given a selected topic, open the relevant API docs in a browser window.
		The mechanism of choosing the browser to open is documented at https://github.com/pkg/browser
		By default, opens docs.bazel.build

```
aspect docs [flags]
```

### Options

```
  -h, --help   help for docs
```

### 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

###### Auto generated by spf13/cobra
