Use `hugo mod init` to initialize a new Hugo Module. If it fails to guess the module path, you must provide it as an argument, e.g.:
```bash
hugo mod init github.com/gohugoio/myShortcodes
```
Also see the [CLI Doc](/commands/hugo_mod_init/).
## Update Modules
Modules will be downloaded and added when you add them as imports to your configuration, see [Module Imports](/hugo-modules/configuration/#module-config-imports).
To update or manage versions, you can use `hugo mod get`.
Some examples:
### Update All Modules
```bash
hugo mod get -u
```
### Update One Module
```bash
hugo mod get -u github.com/gohugoio/myShortcodes
```
### Get a Specific Version
```bash
hugo mod get github.com/gohugoio/myShortcodes@v1.0.7
```
Also see the [CLI Doc](/commands/hugo_mod_get/).
## Make and test changes in a module
One way to do local development of a module imported in a project is to add a replace directive to a local directory with the source in `go.mod`:
If you have the `hugo server` running, the configuration will be reloaded and `/Users/bep/hugotestmods/mypartials` put on the watch list.
## Print Dependency Graph
Use `hugo mod graph` from the relevant module directory and it will print the dependency graph, including vendoring, module replacement or disabled status.